Index: webrtc/video/video_send_stream_tests.cc |
diff --git a/webrtc/video/video_send_stream_tests.cc b/webrtc/video/video_send_stream_tests.cc |
index 623cd34ac5e8860f7b9e6666172f5a082134ffa7..bf9f819c64042d2200afb3fe8837c9f510160961 100644 |
--- a/webrtc/video/video_send_stream_tests.cc |
+++ b/webrtc/video/video_send_stream_tests.cc |
@@ -1713,7 +1713,7 @@ class VideoCodecConfigObserver : public test::SendTest, |
kVideoCodecConfigObserverNumberOfTemporalLayers - 1); |
} |
- encoder_config->encoder_specific_settings = &encoder_settings_; |
+ encoder_config->encoder_specific_settings = GetEncoderSpecificSettings(); |
encoder_config_ = *encoder_config; |
} |
@@ -1734,6 +1734,8 @@ class VideoCodecConfigObserver : public test::SendTest, |
} |
void VerifyCodecSpecifics(const VideoCodec& config) const; |
+ rtc::scoped_refptr<VideoEncoderConfig::EncoderSpecificSettings> |
+ GetEncoderSpecificSettings() const; |
void PerformTest() override { |
EXPECT_TRUE( |
@@ -1741,6 +1743,7 @@ class VideoCodecConfigObserver : public test::SendTest, |
ASSERT_EQ(1u, num_initializations_) << "VideoEncoder not initialized."; |
encoder_settings_.frameDroppingOn = true; |
+ encoder_config_.encoder_specific_settings = GetEncoderSpecificSettings(); |
stream_->ReconfigureVideoEncoder(encoder_config_); |
ASSERT_TRUE( |
init_encode_event_.Wait(VideoSendStreamTest::kDefaultTimeoutMs)); |
@@ -1772,6 +1775,13 @@ void VideoCodecConfigObserver<VideoCodecH264>::VerifyCodecSpecifics( |
sizeof(encoder_settings_))); |
} |
template <> |
+rtc::scoped_refptr<VideoEncoderConfig::EncoderSpecificSettings> |
+VideoCodecConfigObserver<VideoCodecH264>::GetEncoderSpecificSettings() const { |
+ return new rtc::RefCountedObject< |
+ VideoEncoderConfig::H264EncoderSpecificSettings>(encoder_settings_); |
+} |
+ |
+template <> |
void VideoCodecConfigObserver<VideoCodecVP8>::VerifyCodecSpecifics( |
const VideoCodec& config) const { |
// Check that the number of temporal layers has propagated properly to |
@@ -1793,6 +1803,13 @@ void VideoCodecConfigObserver<VideoCodecVP8>::VerifyCodecSpecifics( |
sizeof(encoder_settings_))); |
} |
template <> |
+rtc::scoped_refptr<VideoEncoderConfig::EncoderSpecificSettings> |
+VideoCodecConfigObserver<VideoCodecVP8>::GetEncoderSpecificSettings() const { |
+ return new rtc::RefCountedObject< |
+ VideoEncoderConfig::Vp8EncoderSpecificSettings>(encoder_settings_); |
+} |
+ |
+template <> |
void VideoCodecConfigObserver<VideoCodecVP9>::VerifyCodecSpecifics( |
const VideoCodec& config) const { |
// Check that the number of temporal layers has propagated properly to |
@@ -1813,6 +1830,12 @@ void VideoCodecConfigObserver<VideoCodecVP9>::VerifyCodecSpecifics( |
EXPECT_EQ(0, memcmp(&config.codecSpecific.VP9, &encoder_settings, |
sizeof(encoder_settings_))); |
} |
+template <> |
+rtc::scoped_refptr<VideoEncoderConfig::EncoderSpecificSettings> |
+VideoCodecConfigObserver<VideoCodecVP9>::GetEncoderSpecificSettings() const { |
+ return new rtc::RefCountedObject< |
+ VideoEncoderConfig::Vp9EncoderSpecificSettings>(encoder_settings_); |
+} |
TEST_F(VideoSendStreamTest, EncoderSetupPropagatesVp8Config) { |
VideoCodecConfigObserver<VideoCodecVP8> test(kVideoCodecVP8, "VP8"); |
@@ -2145,11 +2168,12 @@ class Vp9HeaderObserver : public test::SendTest { |
VideoSendStream::Config* send_config, |
std::vector<VideoReceiveStream::Config>* receive_configs, |
VideoEncoderConfig* encoder_config) override { |
- encoder_config->encoder_specific_settings = &vp9_settings_; |
send_config->encoder_settings.encoder = vp9_encoder_.get(); |
send_config->encoder_settings.payload_name = "VP9"; |
send_config->encoder_settings.payload_type = kVp9PayloadType; |
ModifyVideoConfigsHook(send_config, receive_configs, encoder_config); |
+ encoder_config->encoder_specific_settings = new rtc::RefCountedObject< |
+ VideoEncoderConfig::Vp9EncoderSpecificSettings>(vp9_settings_); |
EXPECT_EQ(1u, encoder_config->streams.size()); |
encoder_config->streams[0].temporal_layer_thresholds_bps.resize( |
vp9_settings_.numberOfTemporalLayers - 1); |