summaryrefslogtreecommitdiffstats
path: root/dom/media/webrtc/libwebrtcglue/MediaCodecVideoCodec.cpp
blob: 14765ecc33c24902aa86b5321f2b2eec25579e77 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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