Index: webrtc/video/vie_encoder.cc |
diff --git a/webrtc/video/vie_encoder.cc b/webrtc/video/vie_encoder.cc |
index a1709bfe633d05420e4f50927a318b65ca4795ad..7cc799a644058291dd577927b47af91e6cf5c85c 100644 |
--- a/webrtc/video/vie_encoder.cc |
+++ b/webrtc/video/vie_encoder.cc |
@@ -74,28 +74,30 @@ |
switch (video_codec.codecType) { |
case kVideoCodecVP8: { |
if (!config.encoder_specific_settings) |
- *video_codec.VP8() = VideoEncoder::GetDefaultVp8Settings(); |
- video_codec.VP8()->numberOfTemporalLayers = static_cast<unsigned char>( |
- streams.back().temporal_layer_thresholds_bps.size() + 1); |
+ 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.VP9() = VideoEncoder::GetDefaultVp9Settings(); |
+ video_codec.codecSpecific.VP9 = VideoEncoder::GetDefaultVp9Settings(); |
if (video_codec.mode == kScreensharing && |
config.encoder_specific_settings) { |
- video_codec.VP9()->flexibleMode = true; |
+ video_codec.codecSpecific.VP9.flexibleMode = true; |
// For now VP9 screensharing use 1 temporal and 2 spatial layers. |
- RTC_DCHECK_EQ(1, video_codec.VP9()->numberOfTemporalLayers); |
- RTC_DCHECK_EQ(2, video_codec.VP9()->numberOfSpatialLayers); |
+ RTC_DCHECK_EQ(1, video_codec.codecSpecific.VP9.numberOfTemporalLayers); |
+ RTC_DCHECK_EQ(2, video_codec.codecSpecific.VP9.numberOfSpatialLayers); |
} |
- video_codec.VP9()->numberOfTemporalLayers = static_cast<unsigned char>( |
- streams.back().temporal_layer_thresholds_bps.size() + 1); |
+ video_codec.codecSpecific.VP9.numberOfTemporalLayers = |
+ static_cast<unsigned char>( |
+ streams.back().temporal_layer_thresholds_bps.size() + 1); |
break; |
} |
case kVideoCodecH264: { |
if (!config.encoder_specific_settings) |
- *video_codec.H264() = VideoEncoder::GetDefaultH264Settings(); |
+ video_codec.codecSpecific.H264 = VideoEncoder::GetDefaultH264Settings(); |
break; |
} |
default: |
@@ -118,8 +120,8 @@ |
// If the vector is empty, bitrates will be configured automatically. |
RTC_DCHECK(config.spatial_layers.empty() || |
config.spatial_layers.size() == |
- video_codec.VP9()->numberOfSpatialLayers); |
- RTC_DCHECK_LE(video_codec.VP9()->numberOfSpatialLayers, |
+ video_codec.codecSpecific.VP9.numberOfSpatialLayers); |
+ RTC_DCHECK_LE(video_codec.codecSpecific.VP9.numberOfSpatialLayers, |
kMaxSimulcastStreams); |
for (size_t i = 0; i < config.spatial_layers.size(); ++i) |
video_codec.spatialLayers[i] = config.spatial_layers[i]; |
@@ -661,15 +663,19 @@ |
webrtc::CodecSpecificInfo codec_specific_info; |
codec_specific_info.codecType = webrtc::kVideoCodecVP8; |
- codec_specific_info.codecSpecific.VP8.hasReceivedRPSI = has_received_rpsi_; |
- codec_specific_info.codecSpecific.VP8.hasReceivedSLI = has_received_sli_; |
- codec_specific_info.codecSpecific.VP8.pictureIdRPSI = picture_id_rpsi_; |
- codec_specific_info.codecSpecific.VP8.pictureIdSLI = picture_id_sli_; |
- has_received_sli_ = false; |
- has_received_rpsi_ = false; |
- |
- video_sender_.AddVideoFrame(video_frame, &codec_specific_info); |
- return; |
+ codec_specific_info.codecSpecific.VP8.hasReceivedRPSI = |
+ has_received_rpsi_; |
+ codec_specific_info.codecSpecific.VP8.hasReceivedSLI = |
+ has_received_sli_; |
+ codec_specific_info.codecSpecific.VP8.pictureIdRPSI = |
+ picture_id_rpsi_; |
+ codec_specific_info.codecSpecific.VP8.pictureIdSLI = |
+ picture_id_sli_; |
+ has_received_sli_ = false; |
+ has_received_rpsi_ = false; |
+ |
+ video_sender_.AddVideoFrame(video_frame, &codec_specific_info); |
+ return; |
} |
video_sender_.AddVideoFrame(video_frame, nullptr); |
} |