Commit | Line | Data |
---|---|---|
558b86a5 LB |
1 | /* |
2 | * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at> | |
3 | * | |
2912e87a | 4 | * This file is part of Libav. |
558b86a5 | 5 | * |
2912e87a | 6 | * Libav is free software; you can redistribute it and/or |
558b86a5 LB |
7 | * modify it under the terms of the GNU Lesser General Public |
8 | * License as published by the Free Software Foundation; either | |
9 | * version 2.1 of the License, or (at your option) any later version. | |
10 | * | |
2912e87a | 11 | * Libav is distributed in the hope that it will be useful, |
558b86a5 LB |
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
14 | * Lesser General Public License for more details. | |
15 | * | |
16 | * You should have received a copy of the GNU Lesser General Public | |
2912e87a | 17 | * License along with Libav; if not, write to the Free Software |
558b86a5 LB |
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
19 | */ | |
20 | ||
98790382 SS |
21 | #ifndef AVUTIL_AVUTIL_H |
22 | #define AVUTIL_AVUTIL_H | |
558b86a5 LB |
23 | |
24 | /** | |
ba87f080 | 25 | * @file |
7ce68923 | 26 | * external API header |
558b86a5 LB |
27 | */ |
28 | ||
29 | ||
558b86a5 LB |
30 | #define AV_STRINGIFY(s) AV_TOSTRING(s) |
31 | #define AV_TOSTRING(s) #s | |
87fec35d MR |
32 | |
33 | #define AV_GLUE(a, b) a ## b | |
34 | #define AV_JOIN(a, b) AV_GLUE(a, b) | |
35 | ||
d408b77a | 36 | #define AV_PRAGMA(s) _Pragma(#s) |
558b86a5 | 37 | |
800c289a MR |
38 | #define AV_VERSION_INT(a, b, c) (a<<16 | b<<8 | c) |
39 | #define AV_VERSION_DOT(a, b, c) a ##.## b ##.## c | |
40 | #define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c) | |
e97ac1e6 | 41 | |
139f3ac4 | 42 | #define LIBAVUTIL_VERSION_MAJOR 51 |
62706711 | 43 | #define LIBAVUTIL_VERSION_MINOR 16 |
96a59cf3 | 44 | #define LIBAVUTIL_VERSION_MICRO 0 |
e97ac1e6 | 45 | |
800c289a MR |
46 | #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ |
47 | LIBAVUTIL_VERSION_MINOR, \ | |
48 | LIBAVUTIL_VERSION_MICRO) | |
49 | #define LIBAVUTIL_VERSION AV_VERSION(LIBAVUTIL_VERSION_MAJOR, \ | |
50 | LIBAVUTIL_VERSION_MINOR, \ | |
51 | LIBAVUTIL_VERSION_MICRO) | |
558b86a5 LB |
52 | #define LIBAVUTIL_BUILD LIBAVUTIL_VERSION_INT |
53 | ||
54 | #define LIBAVUTIL_IDENT "Lavu" AV_STRINGIFY(LIBAVUTIL_VERSION) | |
55 | ||
7f0026dd | 56 | /** |
d2af7205 SS |
57 | * Those FF_API_* defines are not part of public API. |
58 | * They may change, break or disappear at any time. | |
59 | */ | |
a6703faa SS |
60 | #ifndef FF_API_GET_BITS_PER_SAMPLE_FMT |
61 | #define FF_API_GET_BITS_PER_SAMPLE_FMT (LIBAVUTIL_VERSION_MAJOR < 52) | |
62 | #endif | |
dc59ec5e AK |
63 | #ifndef FF_API_FIND_OPT |
64 | #define FF_API_FIND_OPT (LIBAVUTIL_VERSION_MAJOR < 52) | |
65 | #endif | |
f2011ed2 SS |
66 | #ifndef FF_API_AV_FIFO_PEEK |
67 | #define FF_API_AV_FIFO_PEEK (LIBAVUTIL_VERSION_MAJOR < 52) | |
68 | #endif | |
79eff913 AK |
69 | #ifndef FF_API_OLD_AVOPTIONS |
70 | #define FF_API_OLD_AVOPTIONS (LIBAVUTIL_VERSION_MAJOR < 52) | |
71 | #endif | |
d2af7205 SS |
72 | |
73 | /** | |
49bd8e4b | 74 | * Return the LIBAVUTIL_VERSION_INT constant. |
7f0026dd SS |
75 | */ |
76 | unsigned avutil_version(void); | |
558b86a5 | 77 | |
c1736936 | 78 | /** |
49bd8e4b | 79 | * Return the libavutil build-time configuration. |
c1736936 | 80 | */ |
41600690 | 81 | const char *avutil_configuration(void); |
c1736936 DB |
82 | |
83 | /** | |
49bd8e4b | 84 | * Return the libavutil license. |
c1736936 | 85 | */ |
41600690 | 86 | const char *avutil_license(void); |
c1736936 | 87 | |
11491503 SS |
88 | enum AVMediaType { |
89 | AVMEDIA_TYPE_UNKNOWN = -1, | |
90 | AVMEDIA_TYPE_VIDEO, | |
91 | AVMEDIA_TYPE_AUDIO, | |
92 | AVMEDIA_TYPE_DATA, | |
93 | AVMEDIA_TYPE_SUBTITLE, | |
94 | AVMEDIA_TYPE_ATTACHMENT, | |
95 | AVMEDIA_TYPE_NB | |
96 | }; | |
97 | ||
6ed04040 MN |
98 | #define FF_LAMBDA_SHIFT 7 |
99 | #define FF_LAMBDA_SCALE (1<<FF_LAMBDA_SHIFT) | |
100 | #define FF_QP2LAMBDA 118 ///< factor to convert from H.263 QP to lambda | |
101 | #define FF_LAMBDA_MAX (256*128-1) | |
102 | ||
103 | #define FF_QUALITY_SCALE FF_LAMBDA_SCALE //FIXME maybe remove | |
104 | ||
737eb597 RT |
105 | #define AV_NOPTS_VALUE INT64_C(0x8000000000000000) |
106 | #define AV_TIME_BASE 1000000 | |
107 | #define AV_TIME_BASE_Q (AVRational){1, AV_TIME_BASE} | |
108 | ||
bebe72f4 SS |
109 | enum AVPictureType { |
110 | AV_PICTURE_TYPE_I = 1, ///< Intra | |
111 | AV_PICTURE_TYPE_P, ///< Predicted | |
112 | AV_PICTURE_TYPE_B, ///< Bi-dir predicted | |
113 | AV_PICTURE_TYPE_S, ///< S(GMC)-VOP MPEG4 | |
114 | AV_PICTURE_TYPE_SI, ///< Switching Intra | |
115 | AV_PICTURE_TYPE_SP, ///< Switching Predicted | |
116 | AV_PICTURE_TYPE_BI, ///< BI type | |
117 | }; | |
118 | ||
119 | /** | |
120 | * Return a single letter to describe the given picture type | |
121 | * pict_type. | |
122 | * | |
123 | * @param[in] pict_type the picture type @return a single character | |
124 | * representing the picture type, '?' if pict_type is unknown | |
125 | */ | |
126 | char av_get_picture_type_char(enum AVPictureType pict_type); | |
127 | ||
558b86a5 | 128 | #include "common.h" |
60c144f7 | 129 | #include "error.h" |
558b86a5 | 130 | |
98790382 | 131 | #endif /* AVUTIL_AVUTIL_H */ |