Chromium Code Reviews| Index: talk/media/webrtc/webrtcvideoengine2.cc |
| diff --git a/talk/media/webrtc/webrtcvideoengine2.cc b/talk/media/webrtc/webrtcvideoengine2.cc |
| index d68d6192dbe4d818400cca524b246fdf86e80329..09855a85a0135fd482df77c9294688b90a11facf 100644 |
| --- a/talk/media/webrtc/webrtcvideoengine2.cc |
| +++ b/talk/media/webrtc/webrtcvideoengine2.cc |
| @@ -43,6 +43,7 @@ |
| #include "webrtc/base/logging.h" |
| #include "webrtc/base/stringutils.h" |
| #include "webrtc/call.h" |
| +#include "webrtc/modules/video_coding/codecs/h264/include/h264.h" |
| #include "webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter.h" |
| #include "webrtc/system_wrappers/interface/field_trial.h" |
| #include "webrtc/system_wrappers/interface/trace_event.h" |
| @@ -157,6 +158,9 @@ bool CodecIsInternallySupported(const std::string& codec_name) { |
| webrtc::field_trial::FindFullName("WebRTC-SupportVP9"); |
| return group_name == "Enabled" || group_name == "EnabledByFlag"; |
| } |
| + if (CodecNamesEq(codec_name, kH264CodecName)) { |
| + return webrtc::IsH264CodecSupported(); |
|
pbos-webrtc
2015/06/25 20:20:14
H264Encoder::IsSupported() && H264Decoder::IsSuppo
tkchin_webrtc
2015/06/25 21:37:49
Done.
|
| + } |
| return false; |
| } |
| @@ -316,8 +320,6 @@ static const int kDefaultQpMax = 56; |
| static const int kDefaultRtcpReceiverReportSsrc = 1; |
| -const char kH264CodecName[] = "H264"; |
| - |
| const int kMinBandwidthBps = 30000; |
| const int kStartBandwidthBps = 300000; |
| const int kMaxBandwidthBps = 2000000; |
| @@ -331,6 +333,10 @@ std::vector<VideoCodec> DefaultVideoCodecList() { |
| } |
| codecs.push_back(MakeVideoCodecWithDefaultFeedbackParams(kDefaultVp8PlType, |
| kVp8CodecName)); |
| + if (CodecIsInternallySupported(kH264CodecName)) { |
| + codecs.push_back(MakeVideoCodecWithDefaultFeedbackParams(kDefaultH264PlType, |
| + kH264CodecName)); |
| + } |
| codecs.push_back( |
| VideoCodec::CreateRtxCodec(kDefaultRtxVp8PlType, kDefaultVp8PlType)); |
| codecs.push_back(VideoCodec(kDefaultRedPlType, kRedCodecName)); |
| @@ -1876,6 +1882,9 @@ WebRtcVideoChannel2::WebRtcVideoSendStream::CreateVideoEncoder( |
| } else if (type == webrtc::kVideoCodecVP9) { |
| return AllocatedEncoder( |
| webrtc::VideoEncoder::Create(webrtc::VideoEncoder::kVp9), type, false); |
| + } else if (type == webrtc::kVideoCodecH264) { |
| + return AllocatedEncoder( |
| + webrtc::VideoEncoder::Create(webrtc::VideoEncoder::kH264), type, false); |
| } |
| // This shouldn't happen, we should not be trying to create something we don't |
| @@ -2284,6 +2293,11 @@ WebRtcVideoChannel2::WebRtcVideoReceiveStream::CreateOrReuseVideoDecoder( |
| webrtc::VideoDecoder::Create(webrtc::VideoDecoder::kVp9), type, false); |
| } |
| + if (type == webrtc::kVideoCodecH264) { |
| + return AllocatedDecoder( |
| + webrtc::VideoDecoder::Create(webrtc::VideoDecoder::kH264), type, false); |
| + } |
| + |
| // This shouldn't happen, we should not be trying to create something we don't |
| // support. |
| DCHECK(false); |