Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(90)

Unified Diff: webrtc/video/video_send_stream_tests.cc

Issue 2347843002: Add proper lifetime of encoder-specific settings (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);

Powered by Google App Engine
This is Rietveld 408576698