Declare VideoCodec.codec_specific_info private
This completes the privatization of the codec specific
information in VideoCodec.
BUG=webrtc:6603
Review-Url: https://codereview.webrtc.org/2452963002
Cr-Commit-Position: refs/heads/master@{#15013}
diff --git a/webrtc/api/android/jni/androidmediaencoder_jni.cc b/webrtc/api/android/jni/androidmediaencoder_jni.cc
index 92b5aae..3361154 100644
--- a/webrtc/api/android/jni/androidmediaencoder_jni.cc
+++ b/webrtc/api/android/jni/androidmediaencoder_jni.cc
@@ -404,7 +404,7 @@
// TODO(pbos): Extract automaticResizeOn out of VP8 settings.
scale_ = false;
if (codecType_ == kVideoCodecVP8) {
- scale_ = codec_settings->codecSpecific.VP8.automaticResizeOn;
+ scale_ = codec_settings->VP8().automaticResizeOn;
} else if (codecType_ != kVideoCodecVP9) {
scale_ = true;
}
diff --git a/webrtc/common_types.cc b/webrtc/common_types.cc
index e78a4aa..8238443 100644
--- a/webrtc/common_types.cc
+++ b/webrtc/common_types.cc
@@ -59,36 +59,36 @@
simulcastStream(),
spatialLayers(),
mode(kRealtimeVideo),
- codecSpecific() {}
+ codec_specific_() {}
VideoCodecVP8* VideoCodec::VP8() {
RTC_DCHECK_EQ(codecType, kVideoCodecVP8);
- return &codecSpecific.VP8;
+ return &codec_specific_.VP8;
}
const VideoCodecVP8& VideoCodec::VP8() const {
RTC_DCHECK_EQ(codecType, kVideoCodecVP8);
- return codecSpecific.VP8;
+ return codec_specific_.VP8;
}
VideoCodecVP9* VideoCodec::VP9() {
RTC_DCHECK_EQ(codecType, kVideoCodecVP9);
- return &codecSpecific.VP9;
+ return &codec_specific_.VP9;
}
const VideoCodecVP9& VideoCodec::VP9() const {
RTC_DCHECK_EQ(codecType, kVideoCodecVP9);
- return codecSpecific.VP9;
+ return codec_specific_.VP9;
}
VideoCodecH264* VideoCodec::H264() {
RTC_DCHECK_EQ(codecType, kVideoCodecH264);
- return &codecSpecific.H264;
+ return &codec_specific_.H264;
}
const VideoCodecH264& VideoCodec::H264() const {
RTC_DCHECK_EQ(codecType, kVideoCodecH264);
- return codecSpecific.H264;
+ return codec_specific_.H264;
}
} // namespace webrtc
diff --git a/webrtc/common_types.h b/webrtc/common_types.h
index 24ba00a..d4f2f90 100644
--- a/webrtc/common_types.h
+++ b/webrtc/common_types.h
@@ -632,11 +632,10 @@
VideoCodecH264* H264();
const VideoCodecH264& H264() const;
- // This variable will be declared private and renamed to codec_specific_
- // once Chromium is not accessing it.
+ private:
// TODO(hta): Consider replacing the union with a pointer type.
// This will allow removing the VideoCodec* types from this file.
- VideoCodecUnion codecSpecific;
+ VideoCodecUnion codec_specific_;
};
// Bandwidth over-use detector options. These are used to drive
diff --git a/webrtc/config.cc b/webrtc/config.cc
index 281b89f..4b437e2 100644
--- a/webrtc/config.cc
+++ b/webrtc/config.cc
@@ -167,11 +167,11 @@
void VideoEncoderConfig::EncoderSpecificSettings::FillEncoderSpecificSettings(
VideoCodec* codec) const {
if (codec->codecType == kVideoCodecH264) {
- FillVideoCodecH264(&codec->codecSpecific.H264);
+ FillVideoCodecH264(codec->H264());
} else if (codec->codecType == kVideoCodecVP8) {
- FillVideoCodecVp8(&codec->codecSpecific.VP8);
+ FillVideoCodecVp8(codec->VP8());
} else if (codec->codecType == kVideoCodecVP9) {
- FillVideoCodecVp9(&codec->codecSpecific.VP9);
+ FillVideoCodecVp9(codec->VP9());
} else {
RTC_NOTREACHED() << "Encoder specifics set/used for unknown codec type.";
}
diff --git a/webrtc/video/vie_encoder.cc b/webrtc/video/vie_encoder.cc
index 7cc799a..a1709bf 100644
--- a/webrtc/video/vie_encoder.cc
+++ b/webrtc/video/vie_encoder.cc
@@ -74,30 +74,28 @@
switch (video_codec.codecType) {
case kVideoCodecVP8: {
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);
+ *video_codec.VP8() = VideoEncoder::GetDefaultVp8Settings();
+ video_codec.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 = VideoEncoder::GetDefaultVp9Settings();
+ *video_codec.VP9() = VideoEncoder::GetDefaultVp9Settings();
if (video_codec.mode == kScreensharing &&
config.encoder_specific_settings) {
- video_codec.codecSpecific.VP9.flexibleMode = true;
+ video_codec.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);
+ RTC_DCHECK_EQ(1, video_codec.VP9()->numberOfTemporalLayers);
+ RTC_DCHECK_EQ(2, video_codec.VP9()->numberOfSpatialLayers);
}
- video_codec.codecSpecific.VP9.numberOfTemporalLayers =
- static_cast<unsigned char>(
- streams.back().temporal_layer_thresholds_bps.size() + 1);
+ video_codec.VP9()->numberOfTemporalLayers = static_cast<unsigned char>(
+ streams.back().temporal_layer_thresholds_bps.size() + 1);
break;
}
case kVideoCodecH264: {
if (!config.encoder_specific_settings)
- video_codec.codecSpecific.H264 = VideoEncoder::GetDefaultH264Settings();
+ *video_codec.H264() = VideoEncoder::GetDefaultH264Settings();
break;
}
default:
@@ -120,8 +118,8 @@
// If the vector is empty, bitrates will be configured automatically.
RTC_DCHECK(config.spatial_layers.empty() ||
config.spatial_layers.size() ==
- video_codec.codecSpecific.VP9.numberOfSpatialLayers);
- RTC_DCHECK_LE(video_codec.codecSpecific.VP9.numberOfSpatialLayers,
+ video_codec.VP9()->numberOfSpatialLayers);
+ RTC_DCHECK_LE(video_codec.VP9()->numberOfSpatialLayers,
kMaxSimulcastStreams);
for (size_t i = 0; i < config.spatial_layers.size(); ++i)
video_codec.spatialLayers[i] = config.spatial_layers[i];
@@ -663,19 +661,15 @@
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;
+ 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, &codec_specific_info);
+ return;
}
video_sender_.AddVideoFrame(video_frame, nullptr);
}