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

Unified Diff: webrtc/media/engine/webrtcvideoengine2.cc

Issue 2047513002: Add proper lifetime of encoder-specific settings. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: feedback Created 4 years, 4 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/media/engine/webrtcvideoengine2.cc
diff --git a/webrtc/media/engine/webrtcvideoengine2.cc b/webrtc/media/engine/webrtcvideoengine2.cc
index dc9cdf0422f689f2db8dad67c8c67e87df152d52..7f091f817a1d822b90ff87938b4f99807230f897 100644
--- a/webrtc/media/engine/webrtcvideoengine2.cc
+++ b/webrtc/media/engine/webrtcvideoengine2.cc
@@ -446,7 +446,8 @@ WebRtcVideoChannel2::WebRtcVideoSendStream::CreateVideoStreams(
return streams;
}
-void* WebRtcVideoChannel2::WebRtcVideoSendStream::ConfigureVideoEncoderSettings(
+rtc::scoped_refptr<webrtc::VideoEncoderConfig::EncoderSpecificSettings>
+WebRtcVideoChannel2::WebRtcVideoSendStream::ConfigureVideoEncoderSettings(
const VideoCodec& codec) {
bool is_screencast = parameters_.options.is_screencast.value_or(false);
// No automatic resizing when using simulcast or screencast.
@@ -464,36 +465,39 @@ void* WebRtcVideoChannel2::WebRtcVideoSendStream::ConfigureVideoEncoderSettings(
}
if (CodecNamesEq(codec.name, kH264CodecName)) {
- encoder_settings_.h264 = webrtc::VideoEncoder::GetDefaultH264Settings();
- encoder_settings_.h264.frameDroppingOn = frame_dropping;
- return &encoder_settings_.h264;
+ webrtc::VideoCodecH264 h264_settings =
+ webrtc::VideoEncoder::GetDefaultH264Settings();
+ h264_settings.frameDroppingOn = frame_dropping;
+ return new rtc::RefCountedObject<
+ webrtc::VideoEncoderConfig::H264EncoderSpecificSettings>(h264_settings);
}
if (CodecNamesEq(codec.name, kVp8CodecName)) {
- encoder_settings_.vp8 = webrtc::VideoEncoder::GetDefaultVp8Settings();
- encoder_settings_.vp8.automaticResizeOn = automatic_resize;
+ webrtc::VideoCodecVP8 vp8_settings =
+ webrtc::VideoEncoder::GetDefaultVp8Settings();
+ vp8_settings.automaticResizeOn = automatic_resize;
// VP8 denoising is enabled by default.
- encoder_settings_.vp8.denoisingOn =
- codec_default_denoising ? true : denoising;
- encoder_settings_.vp8.frameDroppingOn = frame_dropping;
- return &encoder_settings_.vp8;
+ vp8_settings.denoisingOn = codec_default_denoising ? true : denoising;
+ vp8_settings.frameDroppingOn = frame_dropping;
+ return new rtc::RefCountedObject<
+ webrtc::VideoEncoderConfig::Vp8EncoderSpecificSettings>(vp8_settings);
}
if (CodecNamesEq(codec.name, kVp9CodecName)) {
- encoder_settings_.vp9 = webrtc::VideoEncoder::GetDefaultVp9Settings();
+ webrtc::VideoCodecVP9 vp9_settings =
+ webrtc::VideoEncoder::GetDefaultVp9Settings();
if (is_screencast) {
// TODO(asapersson): Set to 2 for now since there is a DCHECK in
// VideoSendStream::ReconfigureVideoEncoder.
- encoder_settings_.vp9.numberOfSpatialLayers = 2;
+ vp9_settings.numberOfSpatialLayers = 2;
} else {
- encoder_settings_.vp9.numberOfSpatialLayers =
- GetDefaultVp9SpatialLayers();
+ vp9_settings.numberOfSpatialLayers = GetDefaultVp9SpatialLayers();
}
// VP9 denoising is disabled by default.
- encoder_settings_.vp9.denoisingOn =
- codec_default_denoising ? false : denoising;
- encoder_settings_.vp9.frameDroppingOn = frame_dropping;
- return &encoder_settings_.vp9;
+ vp9_settings.denoisingOn = codec_default_denoising ? false : denoising;
+ vp9_settings.frameDroppingOn = frame_dropping;
+ return new rtc::RefCountedObject<
+ webrtc::VideoEncoderConfig::Vp9EncoderSpecificSettings>(vp9_settings);
}
- return NULL;
+ return nullptr;
}
DefaultUnsignalledSsrcHandler::DefaultUnsignalledSsrcHandler()

Powered by Google App Engine
This is Rietveld 408576698