Index: webrtc/modules/video_coding/codecs/test/videoprocessor_integrationtest.h |
diff --git a/webrtc/modules/video_coding/codecs/test/videoprocessor_integrationtest.h b/webrtc/modules/video_coding/codecs/test/videoprocessor_integrationtest.h |
index b8f6a5f2b820e45de56cad7224ca0657064651d5..669ae3012bca8683cd436be86e7904478b413610 100644 |
--- a/webrtc/modules/video_coding/codecs/test/videoprocessor_integrationtest.h |
+++ b/webrtc/modules/video_coding/codecs/test/videoprocessor_integrationtest.h |
@@ -144,31 +144,38 @@ class VideoProcessorIntegrationTest : public testing::Test { |
virtual ~VideoProcessorIntegrationTest() = default; |
void SetUpCodecConfig(const CodecConfigPars& process) { |
- if (hw_codec_) { |
+ if (process.hw_codec) { |
#if defined(WEBRTC_VIDEOPROCESSOR_INTEGRATIONTEST_HW_CODECS_ENABLED) |
#if defined(WEBRTC_ANDROID) |
// In general, external codecs should be destroyed by the factories that |
// allocated them. For the particular case of the Android |
// MediaCodecVideo{En,De}coderFactory's, however, it turns out that it is |
// fine for the std::unique_ptr to destroy the owned codec directly. |
- if (codec_type_ == kVideoCodecH264) { |
- encoder_.reset(external_encoder_factory_->CreateVideoEncoder( |
- cricket::VideoCodec(cricket::kH264CodecName))); |
- decoder_.reset( |
- external_decoder_factory_->CreateVideoDecoder(kVideoCodecH264)); |
- } else if (codec_type_ == kVideoCodecVP8) { |
- encoder_.reset(external_encoder_factory_->CreateVideoEncoder( |
- cricket::VideoCodec(cricket::kVp8CodecName))); |
- decoder_.reset( |
- external_decoder_factory_->CreateVideoDecoder(kVideoCodecVP8)); |
- } else if (codec_type_ == kVideoCodecVP9) { |
- encoder_.reset(external_encoder_factory_->CreateVideoEncoder( |
- cricket::VideoCodec(cricket::kVp9CodecName))); |
- decoder_.reset( |
- external_decoder_factory_->CreateVideoDecoder(kVideoCodecVP9)); |
+ switch (process.codec_type) { |
+ case kVideoCodecH264: |
+ encoder_.reset(external_encoder_factory_->CreateVideoEncoder( |
+ cricket::VideoCodec(cricket::kH264CodecName))); |
+ decoder_.reset( |
+ external_decoder_factory_->CreateVideoDecoder(kVideoCodecH264)); |
+ break; |
+ case kVideoCodecVP8: |
+ encoder_.reset(external_encoder_factory_->CreateVideoEncoder( |
+ cricket::VideoCodec(cricket::kVp8CodecName))); |
+ decoder_.reset( |
+ external_decoder_factory_->CreateVideoDecoder(kVideoCodecVP8)); |
+ break; |
+ case kVideoCodecVP9: |
+ encoder_.reset(external_encoder_factory_->CreateVideoEncoder( |
+ cricket::VideoCodec(cricket::kVp9CodecName))); |
+ decoder_.reset( |
+ external_decoder_factory_->CreateVideoDecoder(kVideoCodecVP9)); |
+ break; |
+ default: |
+ RTC_NOTREACHED(); |
+ break; |
} |
#elif defined(WEBRTC_IOS) |
- RTC_DCHECK_EQ(kVideoCodecH264, codec_type_) |
+ RTC_DCHECK_EQ(kVideoCodecH264, process.codec_type) |
<< "iOS HW codecs only support H264."; |
encoder_.reset(new H264VideoToolboxEncoder( |
cricket::VideoCodec(cricket::kH264CodecName))); |
@@ -181,20 +188,27 @@ class VideoProcessorIntegrationTest : public testing::Test { |
RTC_DCHECK(decoder_) << "HW decoder not successfully created."; |
} else { |
// SW codecs. |
- if (codec_type_ == kVideoCodecH264) { |
- encoder_.reset( |
- H264Encoder::Create(cricket::VideoCodec(cricket::kH264CodecName))); |
- decoder_.reset(H264Decoder::Create()); |
- } else if (codec_type_ == kVideoCodecVP8) { |
- encoder_.reset(VP8Encoder::Create()); |
- decoder_.reset(VP8Decoder::Create()); |
- } else if (codec_type_ == kVideoCodecVP9) { |
- encoder_.reset(VP9Encoder::Create()); |
- decoder_.reset(VP9Decoder::Create()); |
+ switch (process.codec_type) { |
+ case kVideoCodecH264: |
+ encoder_.reset(H264Encoder::Create( |
+ cricket::VideoCodec(cricket::kH264CodecName))); |
+ decoder_.reset(H264Decoder::Create()); |
+ break; |
+ case kVideoCodecVP8: |
+ encoder_.reset(VP8Encoder::Create()); |
+ decoder_.reset(VP8Decoder::Create()); |
+ break; |
+ case kVideoCodecVP9: |
+ encoder_.reset(VP9Encoder::Create()); |
+ decoder_.reset(VP9Decoder::Create()); |
+ break; |
+ default: |
+ RTC_NOTREACHED(); |
+ break; |
} |
} |
- VideoCodingModule::Codec(codec_type_, &codec_settings_); |
+ VideoCodingModule::Codec(process.codec_type, &codec_settings_); |
// Configure input filename. |
config_.input_filename = test::ResourcePath(process.filename, "yuv"); |
@@ -208,7 +222,7 @@ class VideoProcessorIntegrationTest : public testing::Test { |
config_.verbose = process.verbose_logging; |
config_.use_single_core = process.use_single_core; |
// Key frame interval and packet loss are set for each test. |
- config_.keyframe_interval = key_frame_interval_; |
+ config_.keyframe_interval = process.key_frame_interval; |
config_.networking_config.packet_loss_probability = packet_loss_; |
// Configure codec settings. |
@@ -220,26 +234,31 @@ class VideoProcessorIntegrationTest : public testing::Test { |
// These features may be set depending on the test. |
switch (config_.codec_settings->codecType) { |
case kVideoCodecH264: |
- config_.codec_settings->H264()->frameDroppingOn = frame_dropper_on_; |
+ config_.codec_settings->H264()->frameDroppingOn = |
+ process.frame_dropper_on; |
config_.codec_settings->H264()->keyFrameInterval = |
kBaseKeyFrameInterval; |
break; |
case kVideoCodecVP8: |
config_.codec_settings->VP8()->errorConcealmentOn = |
- error_concealment_on_; |
- config_.codec_settings->VP8()->denoisingOn = denoising_on_; |
+ process.error_concealment_on; |
+ config_.codec_settings->VP8()->denoisingOn = process.denoising_on; |
config_.codec_settings->VP8()->numberOfTemporalLayers = |
num_temporal_layers_; |
- config_.codec_settings->VP8()->frameDroppingOn = frame_dropper_on_; |
- config_.codec_settings->VP8()->automaticResizeOn = spatial_resize_on_; |
+ config_.codec_settings->VP8()->frameDroppingOn = |
+ process.frame_dropper_on; |
+ config_.codec_settings->VP8()->automaticResizeOn = |
+ process.spatial_resize_on; |
config_.codec_settings->VP8()->keyFrameInterval = kBaseKeyFrameInterval; |
break; |
case kVideoCodecVP9: |
- config_.codec_settings->VP9()->denoisingOn = denoising_on_; |
+ config_.codec_settings->VP9()->denoisingOn = process.denoising_on; |
config_.codec_settings->VP9()->numberOfTemporalLayers = |
num_temporal_layers_; |
- config_.codec_settings->VP9()->frameDroppingOn = frame_dropper_on_; |
- config_.codec_settings->VP9()->automaticResizeOn = spatial_resize_on_; |
+ config_.codec_settings->VP9()->frameDroppingOn = |
+ process.frame_dropper_on; |
+ config_.codec_settings->VP9()->automaticResizeOn = |
+ process.spatial_resize_on; |
config_.codec_settings->VP9()->keyFrameInterval = kBaseKeyFrameInterval; |
break; |
default: |
@@ -446,16 +465,9 @@ class VideoProcessorIntegrationTest : public testing::Test { |
CodecConfigPars process, |
RateControlMetrics* rc_metrics) { |
// Codec/config settings. |
- codec_type_ = process.codec_type; |
- hw_codec_ = process.hw_codec; |
start_bitrate_ = rate_profile.target_bit_rate[0]; |
packet_loss_ = process.packet_loss; |
- key_frame_interval_ = process.key_frame_interval; |
num_temporal_layers_ = process.num_temporal_layers; |
- error_concealment_on_ = process.error_concealment_on; |
- denoising_on_ = process.denoising_on; |
- frame_dropper_on_ = process.frame_dropper_on; |
- spatial_resize_on_ = process.spatial_resize_on; |
SetUpCodecConfig(process); |
// Update the layers and the codec with the initial rates. |
bit_rate_ = rate_profile.target_bit_rate[0]; |
@@ -678,15 +690,8 @@ class VideoProcessorIntegrationTest : public testing::Test { |
float start_bitrate_; |
// Codec and network settings. |
- VideoCodecType codec_type_; |
- bool hw_codec_; |
float packet_loss_; |
int num_temporal_layers_; |
- int key_frame_interval_; |
- bool error_concealment_on_; |
- bool denoising_on_; |
- bool frame_dropper_on_; |
- bool spatial_resize_on_; |
}; |
} // namespace test |