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 8129af9ab2d37b00edce3b03bb8b975807fad310..b0d97bc722ea30238a423e790f91d48592f910b1 100644 |
--- a/webrtc/video/video_send_stream_tests.cc |
+++ b/webrtc/video/video_send_stream_tests.cc |
@@ -1722,7 +1722,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->Copy(); |
} |
@@ -1743,6 +1743,8 @@ class VideoCodecConfigObserver : public test::SendTest, |
} |
void VerifyCodecSpecifics(const VideoCodec& config) const; |
+ rtc::scoped_refptr<VideoEncoderConfig::EncoderSpecificSettings> |
+ GetEncoderSpecificSettings() const; |
void PerformTest() override { |
EXPECT_TRUE( |
@@ -1780,6 +1782,14 @@ void VideoCodecConfigObserver<VideoCodecH264>::VerifyCodecSpecifics( |
EXPECT_EQ(0, memcmp(&config.codecSpecific.H264, &encoder_settings_, |
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 { |
@@ -1801,6 +1811,14 @@ void VideoCodecConfigObserver<VideoCodecVP8>::VerifyCodecSpecifics( |
EXPECT_EQ(0, memcmp(&config.codecSpecific.VP8, &encoder_settings, |
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 { |
@@ -1823,6 +1841,13 @@ void VideoCodecConfigObserver<VideoCodecVP9>::VerifyCodecSpecifics( |
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"); |
RunBaseTest(&test); |
@@ -2186,11 +2211,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); |