| Index: webrtc/modules/video_coding/codecs/h264/h264.cc
|
| diff --git a/webrtc/modules/video_coding/codecs/h264/h264.cc b/webrtc/modules/video_coding/codecs/h264/h264.cc
|
| index 645ed2cad7af3bdf99643ee0fc5972a20e0b96d8..70f3145c8d4e9947daa9715c558155d76632da33 100644
|
| --- a/webrtc/modules/video_coding/codecs/h264/h264.cc
|
| +++ b/webrtc/modules/video_coding/codecs/h264/h264.cc
|
| @@ -11,6 +11,10 @@
|
|
|
| #include "webrtc/modules/video_coding/codecs/h264/include/h264.h"
|
|
|
| +#if defined(WEBRTC_THIRD_PARTY_H264)
|
| +#include "webrtc/modules/video_coding/codecs/h264/h264_encoder_impl.h"
|
| +#include "webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.h"
|
| +#endif
|
| #if defined(WEBRTC_IOS)
|
| #include "webrtc/modules/video_coding/codecs/h264/h264_video_toolbox_decoder.h"
|
| #include "webrtc/modules/video_coding/codecs/h264/h264_video_toolbox_encoder.h"
|
| @@ -27,9 +31,15 @@ namespace webrtc {
|
| extern bool IsH264CodecSupportedObjC();
|
| #endif
|
|
|
| +// If any H.264 codec is supported (iOS HW or OpenH264/FFmpeg).
|
| bool IsH264CodecSupported() {
|
| #if defined(WEBRTC_IOS)
|
| - return IsH264CodecSupportedObjC();
|
| + if (IsH264CodecSupportedObjC()) {
|
| + return true;
|
| + }
|
| +#endif
|
| +#if defined(WEBRTC_THIRD_PARTY_H264)
|
| + return true;
|
| #else
|
| return false;
|
| #endif
|
| @@ -38,11 +48,15 @@ bool IsH264CodecSupported() {
|
| H264Encoder* H264Encoder::Create() {
|
| RTC_DCHECK(H264Encoder::IsSupported());
|
| #if defined(WEBRTC_IOS) && defined(WEBRTC_VIDEO_TOOLBOX_SUPPORTED)
|
| - return new H264VideoToolboxEncoder();
|
| -#else
|
| + if (IsH264CodecSupportedObjC()) {
|
| + return new H264VideoToolboxEncoder();
|
| + }
|
| +#endif
|
| +#if defined(WEBRTC_THIRD_PARTY_H264)
|
| + return new H264EncoderImpl();
|
| +#endif
|
| RTC_NOTREACHED();
|
| return nullptr;
|
| -#endif
|
| }
|
|
|
| bool H264Encoder::IsSupported() {
|
| @@ -52,11 +66,15 @@ bool H264Encoder::IsSupported() {
|
| H264Decoder* H264Decoder::Create() {
|
| RTC_DCHECK(H264Decoder::IsSupported());
|
| #if defined(WEBRTC_IOS) && defined(WEBRTC_VIDEO_TOOLBOX_SUPPORTED)
|
| - return new H264VideoToolboxDecoder();
|
| -#else
|
| + if (IsH264CodecSupportedObjC()) {
|
| + return new H264VideoToolboxDecoder();
|
| + }
|
| +#endif
|
| +#if defined(WEBRTC_THIRD_PARTY_H264)
|
| + return new H264DecoderImpl();
|
| +#endif
|
| RTC_NOTREACHED();
|
| return nullptr;
|
| -#endif
|
| }
|
|
|
| bool H264Decoder::IsSupported() {
|
|
|