diff options
Diffstat (limited to 'dom/media/webrtc/libwebrtcglue/MediaCodecVideoCodec.cpp')
-rw-r--r-- | dom/media/webrtc/libwebrtcglue/MediaCodecVideoCodec.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/dom/media/webrtc/libwebrtcglue/MediaCodecVideoCodec.cpp b/dom/media/webrtc/libwebrtcglue/MediaCodecVideoCodec.cpp new file mode 100644 index 0000000000..14765ecc33 --- /dev/null +++ b/dom/media/webrtc/libwebrtcglue/MediaCodecVideoCodec.cpp @@ -0,0 +1,41 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "common/browser_logging/CSFLog.h" +#include "nspr.h" +#include "mozilla/StaticPrefs_media.h" + +#include "WebrtcMediaCodecVP8VideoCodec.h" +#include "MediaCodecVideoCodec.h" + +namespace mozilla { + +static const char* mcvcLogTag = "MediaCodecVideoCodec"; +#ifdef LOGTAG +# undef LOGTAG +#endif +#define LOGTAG mcvcLogTag + +WebrtcVideoEncoder* MediaCodecVideoCodec::CreateEncoder(CodecType aCodecType) { + CSFLogDebug(LOGTAG, "%s ", __FUNCTION__); + if (aCodecType == CODEC_VP8) { + if (StaticPrefs:: + media_navigator_hardware_vp8_encode_acceleration_remote_enabled()) { + return new WebrtcMediaCodecVP8VideoRemoteEncoder(); + } else { + return new WebrtcMediaCodecVP8VideoEncoder(); + } + } + return nullptr; +} + +WebrtcVideoDecoder* MediaCodecVideoCodec::CreateDecoder(CodecType aCodecType) { + CSFLogDebug(LOGTAG, "%s ", __FUNCTION__); + if (aCodecType == CODEC_VP8) { + return new WebrtcMediaCodecVP8VideoDecoder(); + } + return nullptr; +} + +} // namespace mozilla |