| Index: webrtc/video/video_send_stream.cc
|
| diff --git a/webrtc/video/video_send_stream.cc b/webrtc/video/video_send_stream.cc
|
| index cb9ff4100d86343730c595f2c9907313dd14f9f8..f2b555bfa29d27315e3dc9017e4462598e3fc5c9 100644
|
| --- a/webrtc/video/video_send_stream.cc
|
| +++ b/webrtc/video/video_send_stream.cc
|
| @@ -232,32 +232,27 @@ VideoCodec VideoEncoderConfigToVideoCodec(const VideoEncoderConfig& config,
|
| break;
|
| }
|
|
|
| + if (config.encoder_specific_settings)
|
| + config.encoder_specific_settings->FillEncoderSpecificSettings(&video_codec);
|
| +
|
| switch (video_codec.codecType) {
|
| case kVideoCodecVP8: {
|
| - if (config.encoder_specific_settings) {
|
| - video_codec.codecSpecific.VP8 = *reinterpret_cast<const VideoCodecVP8*>(
|
| - config.encoder_specific_settings);
|
| - } else {
|
| + if (!config.encoder_specific_settings)
|
| video_codec.codecSpecific.VP8 = VideoEncoder::GetDefaultVp8Settings();
|
| - }
|
| video_codec.codecSpecific.VP8.numberOfTemporalLayers =
|
| static_cast<unsigned char>(
|
| streams.back().temporal_layer_thresholds_bps.size() + 1);
|
| break;
|
| }
|
| case kVideoCodecVP9: {
|
| - if (config.encoder_specific_settings) {
|
| - video_codec.codecSpecific.VP9 = *reinterpret_cast<const VideoCodecVP9*>(
|
| - config.encoder_specific_settings);
|
| - if (video_codec.mode == kScreensharing) {
|
| - video_codec.codecSpecific.VP9.flexibleMode = true;
|
| - // For now VP9 screensharing use 1 temporal and 2 spatial layers.
|
| - RTC_DCHECK_EQ(video_codec.codecSpecific.VP9.numberOfTemporalLayers,
|
| - 1);
|
| - RTC_DCHECK_EQ(video_codec.codecSpecific.VP9.numberOfSpatialLayers, 2);
|
| - }
|
| - } else {
|
| + if (!config.encoder_specific_settings)
|
| video_codec.codecSpecific.VP9 = VideoEncoder::GetDefaultVp9Settings();
|
| + if (video_codec.mode == kScreensharing &&
|
| + config.encoder_specific_settings) {
|
| + video_codec.codecSpecific.VP9.flexibleMode = true;
|
| + // For now VP9 screensharing use 1 temporal and 2 spatial layers.
|
| + RTC_DCHECK_EQ(1, video_codec.codecSpecific.VP9.numberOfTemporalLayers);
|
| + RTC_DCHECK_EQ(2, video_codec.codecSpecific.VP9.numberOfSpatialLayers);
|
| }
|
| video_codec.codecSpecific.VP9.numberOfTemporalLayers =
|
| static_cast<unsigned char>(
|
| @@ -265,13 +260,8 @@ VideoCodec VideoEncoderConfigToVideoCodec(const VideoEncoderConfig& config,
|
| break;
|
| }
|
| case kVideoCodecH264: {
|
| - if (config.encoder_specific_settings) {
|
| - video_codec.codecSpecific.H264 =
|
| - *reinterpret_cast<const VideoCodecH264*>(
|
| - config.encoder_specific_settings);
|
| - } else {
|
| + if (!config.encoder_specific_settings)
|
| video_codec.codecSpecific.H264 = VideoEncoder::GetDefaultH264Settings();
|
| - }
|
| break;
|
| }
|
| default:
|
|
|