Index: webrtc/config.cc |
diff --git a/webrtc/config.cc b/webrtc/config.cc |
index d870878a631c16e29eab52077c7d34726abdfba0..3761d66cc7484ac909f4619c34269c7013d9d797 100644 |
--- a/webrtc/config.cc |
+++ b/webrtc/config.cc |
@@ -12,6 +12,8 @@ |
#include <sstream> |
#include <string> |
+#include "webrtc/base/checks.h" |
+ |
namespace webrtc { |
std::string NackConfig::ToString() const { |
std::stringstream ss; |
@@ -113,7 +115,7 @@ std::string VideoStream::ToString() const { |
VideoEncoderConfig::VideoEncoderConfig() |
: content_type(ContentType::kRealtimeVideo), |
- encoder_specific_settings(NULL), |
+ encoder_specific_settings(nullptr), |
min_transmit_bitrate_bps(0), |
expect_encode_from_texture(false) {} |
@@ -146,4 +148,59 @@ std::string VideoEncoderConfig::ToString() const { |
return ss.str(); |
} |
+void VideoEncoderConfig::EncoderSpecificSettings::FillEncoderSpecificSettings( |
+ VideoCodec* codec) const { |
+ if (codec->codecType == kVideoCodecH264) { |
+ FillVideoCodecH264(&codec->codecSpecific.H264); |
+ } else if (codec->codecType == kVideoCodecVP8) { |
+ FillVideoCodecVp8(&codec->codecSpecific.VP8); |
+ } else if (codec->codecType == kVideoCodecVP9) { |
+ FillVideoCodecVp9(&codec->codecSpecific.VP9); |
+ } else { |
+ RTC_NOTREACHED() << "Encoder specifics set/used for unknown codec type."; |
+ } |
+} |
+ |
+void VideoEncoderConfig::EncoderSpecificSettings::FillVideoCodecH264( |
+ VideoCodecH264* h264_settings) const { |
+ RTC_NOTREACHED(); |
+} |
+ |
+void VideoEncoderConfig::EncoderSpecificSettings::FillVideoCodecVp8( |
+ VideoCodecVP8* vp8_settings) const { |
+ RTC_NOTREACHED(); |
+} |
+ |
+void VideoEncoderConfig::EncoderSpecificSettings::FillVideoCodecVp9( |
+ VideoCodecVP9* vp9_settings) const { |
+ RTC_NOTREACHED(); |
+} |
+ |
+VideoEncoderConfig::H264EncoderSpecificSettings::H264EncoderSpecificSettings( |
+ const VideoCodecH264& specifics) |
+ : specifics_(specifics) {} |
+ |
+void VideoEncoderConfig::H264EncoderSpecificSettings::FillVideoCodecH264( |
+ VideoCodecH264* h264_settings) const { |
+ *h264_settings = specifics_; |
+} |
+ |
+VideoEncoderConfig::Vp8EncoderSpecificSettings::Vp8EncoderSpecificSettings( |
+ const VideoCodecVP8& specifics) |
+ : specifics_(specifics) {} |
+ |
+void VideoEncoderConfig::Vp8EncoderSpecificSettings::FillVideoCodecVp8( |
+ VideoCodecVP8* vp8_settings) const { |
+ *vp8_settings = specifics_; |
+} |
+ |
+VideoEncoderConfig::Vp9EncoderSpecificSettings::Vp9EncoderSpecificSettings( |
+ const VideoCodecVP9& specifics) |
+ : specifics_(specifics) {} |
+ |
+void VideoEncoderConfig::Vp9EncoderSpecificSettings::FillVideoCodecVp9( |
+ VideoCodecVP9* vp9_settings) const { |
+ *vp9_settings = specifics_; |
+} |
+ |
} // namespace webrtc |