| Index: webrtc/modules/video_coding/codecs/test/videoprocessor_integrationtest_libvpx.cc
|
| diff --git a/webrtc/modules/video_coding/codecs/test/videoprocessor_integrationtest_libvpx.cc b/webrtc/modules/video_coding/codecs/test/videoprocessor_integrationtest_libvpx.cc
|
| index 062f662c179c2e9cf3ca7ea7d960c6c3a68045a5..9162b92f9a5ed4006706e19db089b1508fed8831 100644
|
| --- a/webrtc/modules/video_coding/codecs/test/videoprocessor_integrationtest_libvpx.cc
|
| +++ b/webrtc/modules/video_coding/codecs/test/videoprocessor_integrationtest_libvpx.cc
|
| @@ -12,24 +12,17 @@
|
|
|
| #include <vector>
|
|
|
| +#include "webrtc/test/testsupport/fileutils.h"
|
| +
|
| namespace webrtc {
|
| namespace test {
|
|
|
| namespace {
|
|
|
| -// Test settings.
|
| -// Only allow encoder/decoder to use single core, for predictability.
|
| -const bool kUseSingleCore = true;
|
| -const bool kVerboseLogging = false;
|
| -const bool kHwCodec = false;
|
| -
|
| // Codec settings.
|
| const bool kResilienceOn = true;
|
| -
|
| -// Default sequence is foreman (CIF): may be better to use VGA for resize test.
|
| const int kCifWidth = 352;
|
| const int kCifHeight = 288;
|
| -const char kForemanCif[] = "foreman_cif";
|
| #if !defined(WEBRTC_IOS)
|
| const int kNumFramesShort = 100;
|
| #endif
|
| @@ -39,15 +32,29 @@ const std::nullptr_t kNoVisualizationParams = nullptr;
|
|
|
| } // namespace
|
|
|
| +class VideoProcessorIntegrationTestLibvpx
|
| + : public VideoProcessorIntegrationTest {
|
| + protected:
|
| + VideoProcessorIntegrationTestLibvpx() {
|
| + config_.filename = "foreman_cif";
|
| + config_.input_filename = ResourcePath(config_.filename, "yuv");
|
| + config_.output_filename =
|
| + TempFilename(OutputPath(), "videoprocessor_integrationtest_libvpx");
|
| + config_.networking_config.packet_loss_probability = 0.0;
|
| + // Only allow encoder/decoder to use single core, for predictability.
|
| + config_.use_single_core = true;
|
| + config_.verbose = false;
|
| + config_.hw_codec = false;
|
| + }
|
| +};
|
| +
|
| // Fails on iOS. See webrtc:4755.
|
| #if !defined(WEBRTC_IOS)
|
|
|
| #if !defined(RTC_DISABLE_VP9)
|
| // VP9: Run with no packet loss and fixed bitrate. Quality should be very high.
|
| // One key frame (first frame only) in sequence.
|
| -TEST_F(VideoProcessorIntegrationTest, Process0PercentPacketLossVP9) {
|
| - SetTestConfig(&config_, kHwCodec, kUseSingleCore, 0.0f, kForemanCif,
|
| - kVerboseLogging);
|
| +TEST_F(VideoProcessorIntegrationTestLibvpx, Process0PercentPacketLossVP9) {
|
| SetCodecSettings(&config_, kVideoCodecVP9, 1, false, false, true, false,
|
| kResilienceOn, kCifWidth, kCifHeight);
|
|
|
| @@ -67,9 +74,8 @@ TEST_F(VideoProcessorIntegrationTest, Process0PercentPacketLossVP9) {
|
|
|
| // VP9: Run with 5% packet loss and fixed bitrate. Quality should be a bit
|
| // lower. One key frame (first frame only) in sequence.
|
| -TEST_F(VideoProcessorIntegrationTest, Process5PercentPacketLossVP9) {
|
| - SetTestConfig(&config_, kHwCodec, kUseSingleCore, 0.05f, kForemanCif,
|
| - kVerboseLogging);
|
| +TEST_F(VideoProcessorIntegrationTestLibvpx, Process5PercentPacketLossVP9) {
|
| + config_.networking_config.packet_loss_probability = 0.05f;
|
| SetCodecSettings(&config_, kVideoCodecVP9, 1, false, false, true, false,
|
| kResilienceOn, kCifWidth, kCifHeight);
|
|
|
| @@ -91,9 +97,7 @@ TEST_F(VideoProcessorIntegrationTest, Process5PercentPacketLossVP9) {
|
| // low to high to medium. Check that quality and encoder response to the new
|
| // target rate/per-frame bandwidth (for each rate update) is within limits.
|
| // One key frame (first frame only) in sequence.
|
| -TEST_F(VideoProcessorIntegrationTest, ProcessNoLossChangeBitRateVP9) {
|
| - SetTestConfig(&config_, kHwCodec, kUseSingleCore, 0.0f, kForemanCif,
|
| - kVerboseLogging);
|
| +TEST_F(VideoProcessorIntegrationTestLibvpx, ProcessNoLossChangeBitRateVP9) {
|
| SetCodecSettings(&config_, kVideoCodecVP9, 1, false, false, true, false,
|
| kResilienceOn, kCifWidth, kCifHeight);
|
|
|
| @@ -122,10 +126,8 @@ TEST_F(VideoProcessorIntegrationTest, ProcessNoLossChangeBitRateVP9) {
|
| // for the rate control metrics can be lower. One key frame (first frame only).
|
| // Note: quality after update should be higher but we currently compute quality
|
| // metrics averaged over whole sequence run.
|
| -TEST_F(VideoProcessorIntegrationTest,
|
| +TEST_F(VideoProcessorIntegrationTestLibvpx,
|
| ProcessNoLossChangeFrameRateFrameDropVP9) {
|
| - SetTestConfig(&config_, kHwCodec, kUseSingleCore, 0.0f, kForemanCif,
|
| - kVerboseLogging);
|
| SetCodecSettings(&config_, kVideoCodecVP9, 1, false, false, true, false,
|
| kResilienceOn, kCifWidth, kCifHeight);
|
|
|
| @@ -148,9 +150,7 @@ TEST_F(VideoProcessorIntegrationTest,
|
| }
|
|
|
| // VP9: Run with no packet loss and denoiser on. One key frame (first frame).
|
| -TEST_F(VideoProcessorIntegrationTest, ProcessNoLossDenoiserOnVP9) {
|
| - SetTestConfig(&config_, kHwCodec, kUseSingleCore, 0.0f, kForemanCif,
|
| - kVerboseLogging);
|
| +TEST_F(VideoProcessorIntegrationTestLibvpx, ProcessNoLossDenoiserOnVP9) {
|
| SetCodecSettings(&config_, kVideoCodecVP9, 1, false, true, true, false,
|
| kResilienceOn, kCifWidth, kCifHeight);
|
|
|
| @@ -171,10 +171,8 @@ TEST_F(VideoProcessorIntegrationTest, ProcessNoLossDenoiserOnVP9) {
|
| // Run with no packet loss, at low bitrate.
|
| // spatial_resize is on, for this low bitrate expect one resize in sequence.
|
| // Resize happens on delta frame. Expect only one key frame (first frame).
|
| -TEST_F(VideoProcessorIntegrationTest,
|
| +TEST_F(VideoProcessorIntegrationTestLibvpx,
|
| DISABLED_ProcessNoLossSpatialResizeFrameDropVP9) {
|
| - SetTestConfig(&config_, kHwCodec, kUseSingleCore, 0.0f, kForemanCif,
|
| - kVerboseLogging);
|
| SetCodecSettings(&config_, kVideoCodecVP9, 1, false, false, true, true,
|
| kResilienceOn, kCifWidth, kCifHeight);
|
|
|
| @@ -200,9 +198,7 @@ TEST_F(VideoProcessorIntegrationTest,
|
| // VP8: Run with no packet loss and fixed bitrate. Quality should be very high.
|
| // One key frame (first frame only) in sequence. Setting |key_frame_interval|
|
| // to -1 below means no periodic key frames in test.
|
| -TEST_F(VideoProcessorIntegrationTest, ProcessZeroPacketLoss) {
|
| - SetTestConfig(&config_, kHwCodec, kUseSingleCore, 0.0f, kForemanCif,
|
| - kVerboseLogging);
|
| +TEST_F(VideoProcessorIntegrationTestLibvpx, ProcessZeroPacketLoss) {
|
| SetCodecSettings(&config_, kVideoCodecVP8, 1, false, true, true, false,
|
| kResilienceOn, kCifWidth, kCifHeight);
|
|
|
| @@ -222,9 +218,8 @@ TEST_F(VideoProcessorIntegrationTest, ProcessZeroPacketLoss) {
|
|
|
| // VP8: Run with 5% packet loss and fixed bitrate. Quality should be a bit
|
| // lower. One key frame (first frame only) in sequence.
|
| -TEST_F(VideoProcessorIntegrationTest, Process5PercentPacketLoss) {
|
| - SetTestConfig(&config_, kHwCodec, kUseSingleCore, 0.05f, kForemanCif,
|
| - kVerboseLogging);
|
| +TEST_F(VideoProcessorIntegrationTestLibvpx, Process5PercentPacketLoss) {
|
| + config_.networking_config.packet_loss_probability = 0.05f;
|
| SetCodecSettings(&config_, kVideoCodecVP8, 1, false, true, true, false,
|
| kResilienceOn, kCifWidth, kCifHeight);
|
|
|
| @@ -244,9 +239,8 @@ TEST_F(VideoProcessorIntegrationTest, Process5PercentPacketLoss) {
|
|
|
| // VP8: Run with 10% packet loss and fixed bitrate. Quality should be lower.
|
| // One key frame (first frame only) in sequence.
|
| -TEST_F(VideoProcessorIntegrationTest, Process10PercentPacketLoss) {
|
| - SetTestConfig(&config_, kHwCodec, kUseSingleCore, 0.1f, kForemanCif,
|
| - kVerboseLogging);
|
| +TEST_F(VideoProcessorIntegrationTestLibvpx, Process10PercentPacketLoss) {
|
| + config_.networking_config.packet_loss_probability = 0.1f;
|
| SetCodecSettings(&config_, kVideoCodecVP8, 1, false, true, true, false,
|
| kResilienceOn, kCifWidth, kCifHeight);
|
|
|
| @@ -286,9 +280,8 @@ TEST_F(VideoProcessorIntegrationTest, Process10PercentPacketLoss) {
|
| #else
|
| #define MAYBE_ProcessNoLossChangeBitRateVP8 ProcessNoLossChangeBitRateVP8
|
| #endif
|
| -TEST_F(VideoProcessorIntegrationTest, MAYBE_ProcessNoLossChangeBitRateVP8) {
|
| - SetTestConfig(&config_, kHwCodec, kUseSingleCore, 0.0f, kForemanCif,
|
| - kVerboseLogging);
|
| +TEST_F(VideoProcessorIntegrationTestLibvpx,
|
| + MAYBE_ProcessNoLossChangeBitRateVP8) {
|
| SetCodecSettings(&config_, kVideoCodecVP8, 1, false, true, true, false,
|
| kResilienceOn, kCifWidth, kCifHeight);
|
|
|
| @@ -325,10 +318,8 @@ TEST_F(VideoProcessorIntegrationTest, MAYBE_ProcessNoLossChangeBitRateVP8) {
|
| #define MAYBE_ProcessNoLossChangeFrameRateFrameDropVP8 \
|
| ProcessNoLossChangeFrameRateFrameDropVP8
|
| #endif
|
| -TEST_F(VideoProcessorIntegrationTest,
|
| +TEST_F(VideoProcessorIntegrationTestLibvpx,
|
| MAYBE_ProcessNoLossChangeFrameRateFrameDropVP8) {
|
| - SetTestConfig(&config_, kHwCodec, kUseSingleCore, 0.0f, kForemanCif,
|
| - kVerboseLogging);
|
| SetCodecSettings(&config_, kVideoCodecVP8, 1, false, true, true, false,
|
| kResilienceOn, kCifWidth, kCifHeight);
|
|
|
| @@ -362,9 +353,8 @@ TEST_F(VideoProcessorIntegrationTest,
|
| #else
|
| #define MAYBE_ProcessNoLossTemporalLayersVP8 ProcessNoLossTemporalLayersVP8
|
| #endif
|
| -TEST_F(VideoProcessorIntegrationTest, MAYBE_ProcessNoLossTemporalLayersVP8) {
|
| - SetTestConfig(&config_, kHwCodec, kUseSingleCore, 0.0f, kForemanCif,
|
| - kVerboseLogging);
|
| +TEST_F(VideoProcessorIntegrationTestLibvpx,
|
| + MAYBE_ProcessNoLossTemporalLayersVP8) {
|
| SetCodecSettings(&config_, kVideoCodecVP8, 3, false, true, true, false,
|
| kResilienceOn, kCifWidth, kCifHeight);
|
|
|
|
|