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

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

Issue 2347843002: Add proper lifetime of encoder-specific settings (Closed)
Patch Set: nitpicks 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
« no previous file with comments | « webrtc/media/engine/webrtcvideoengine2.h ('k') | webrtc/modules/audio_coding/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/media/engine/webrtcvideoengine2.cc
diff --git a/webrtc/media/engine/webrtcvideoengine2.cc b/webrtc/media/engine/webrtcvideoengine2.cc
index 8a2b373d914510502a2f71b7a9ec8e487f5f8081..a9e522512cb1bdb25a8bdf90e1c4a818079c02c4 100644
--- a/webrtc/media/engine/webrtcvideoengine2.cc
+++ b/webrtc/media/engine/webrtcvideoengine2.cc
@@ -450,7 +450,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.
@@ -468,36 +469,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()
« no previous file with comments | « webrtc/media/engine/webrtcvideoengine2.h ('k') | webrtc/modules/audio_coding/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698