| Index: remoting/codec/video_encoder_vpx_perftest.cc
|
| diff --git a/remoting/codec/video_encoder_vpx_perftest.cc b/remoting/codec/video_encoder_vpx_perftest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..3dc4ef16ebcc6d243dba090c5a4365428be7c00a
|
| --- /dev/null
|
| +++ b/remoting/codec/video_encoder_vpx_perftest.cc
|
| @@ -0,0 +1,61 @@
|
| +// Copyright 2014 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "remoting/codec/video_encoder_vpx.h"
|
| +
|
| +#include <limits>
|
| +#include <vector>
|
| +
|
| +#include "base/logging.h"
|
| +#include "base/memory/scoped_ptr.h"
|
| +#include "remoting/codec/codec_test.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +#include "third_party/webrtc/modules/desktop_capture/desktop_geometry.h"
|
| +
|
| +using webrtc::DesktopSize;
|
| +
|
| +namespace remoting {
|
| +
|
| +// Measure the performance of the VP8 encoder.
|
| +TEST(VideoEncoderVpxTest, MeasureVp8Fps) {
|
| + scoped_ptr<VideoEncoderVpx> encoder(VideoEncoderVpx::CreateForVP8());
|
| +
|
| + const DesktopSize kFrameSizes[] = {
|
| + DesktopSize(1280, 1024), DesktopSize(1920, 1200)
|
| + };
|
| +
|
| + for (size_t i = 0; i < arraysize(kFrameSizes); ++i) {
|
| + float fps =
|
| + MeasureVideoEncoderFpsWithSize(encoder.get(), kFrameSizes[i]);
|
| + LOG(ERROR) << kFrameSizes[i].width() << "x" << kFrameSizes[i].height()
|
| + << ": " << fps << "fps";
|
| + }
|
| +}
|
| +
|
| +// Measure the performance of the VP9 encoder.
|
| +TEST(VideoEncoderVpxTest, MeasureVp9Fps) {
|
| + const DesktopSize kFrameSizes[] = {
|
| + DesktopSize(1280, 1024), DesktopSize(1920, 1200)
|
| + };
|
| +
|
| + for (int lossless_mode = 0; lossless_mode < 4; ++lossless_mode) {
|
| + bool lossless_color = lossless_mode & 1;
|
| + bool lossless_encode = lossless_mode & 2;
|
| +
|
| + scoped_ptr<VideoEncoderVpx> encoder(VideoEncoderVpx::CreateForVP9());
|
| + encoder->SetLosslessColor(lossless_color);
|
| + encoder->SetLosslessEncode(lossless_encode);
|
| +
|
| + for (size_t i = 0; i < arraysize(kFrameSizes); ++i) {
|
| + float fps =
|
| + MeasureVideoEncoderFpsWithSize(encoder.get(), kFrameSizes[i]);
|
| + LOG(ERROR) << kFrameSizes[i].width() << "x" << kFrameSizes[i].height()
|
| + << "(" << (lossless_encode ? "lossless" : "lossy ") << ")"
|
| + << "(" << (lossless_color ? "I444" : "I420") << ")"
|
| + << ": " << fps << "fps";
|
| + }
|
| + }
|
| +}
|
| +
|
| +} // namespace remoting
|
|
|