summaryrefslogtreecommitdiffstats
path: root/dom/media/platforms/ffmpeg/FFmpegLibs.h
blob: 95af0732982df2550366c655c87deb4fa5ebd317 (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
42
43
44
45
46
47
48
49
50
51
52
53
54
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim:set ts=2 sw=2 sts=2 et cindent: */
/* 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/. */

#ifndef __FFmpegLibs_h__
#define __FFmpegLibs_h__

extern "C" {
#ifdef __GNUC__
#  pragma GCC visibility push(default)
#endif
#include "libavcodec/avcodec.h"
#include "libavutil/avutil.h"
#include "libavutil/mem.h"
#ifdef MOZ_USE_HWDECODE
#  include "libavutil/hwcontext_vaapi.h"
#  include "libavutil/hwcontext_drm.h"
#endif
#ifdef __GNUC__
#  pragma GCC visibility pop
#endif
}

#if LIBAVCODEC_VERSION_MAJOR >= 58
#  include "libavcodec/codec_desc.h"
#endif  // LIBAVCODEC_VERSION_MAJOR >= 58

#if LIBAVCODEC_VERSION_MAJOR < 55
// This value is not defined in older version of libavcodec
#  define CODEC_ID_OPUS 86076
#  define AV_CODEC_ID_VP6F CODEC_ID_VP6F
#  define AV_CODEC_ID_H264 CODEC_ID_H264
#  define AV_CODEC_ID_AAC CODEC_ID_AAC
#  define AV_CODEC_ID_VORBIS CODEC_ID_VORBIS
#  define AV_CODEC_ID_OPUS CODEC_ID_OPUS
#  define AV_CODEC_ID_MP3 CODEC_ID_MP3
#  define AV_CODEC_ID_VP8 CODEC_ID_VP8
#  define AV_CODEC_ID_NONE CODEC_ID_NONE
#  define AV_CODEC_ID_FLAC CODEC_ID_FLAC
typedef CodecID AVCodecID;
#endif
#if LIBAVCODEC_VERSION_MAJOR <= 55
#  define AV_CODEC_FLAG_LOW_DELAY CODEC_FLAG_LOW_DELAY
#endif

#ifdef FFVPX_VERSION
enum { LIBAV_VER = FFVPX_VERSION };
#else
enum { LIBAV_VER = LIBAVCODEC_VERSION_MAJOR };
#endif

#endif  // __FFmpegLibs_h__