| 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
 | 
| 
 |