version.h (3888B)
1 /* 2 * copyright (c) 2003 Fabrice Bellard 3 * 4 * This file is part of FFmpeg. 5 * 6 * FFmpeg is free software; you can redistribute it and/or 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 * 11 * FFmpeg is distributed in the hope that it will be useful, 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 17 * License along with FFmpeg; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 */ 20 21 #ifndef AVUTIL_VERSION_H 22 #define AVUTIL_VERSION_H 23 24 #include "macros.h" 25 26 /** 27 * @addtogroup version_utils 28 * 29 * Useful to check and match library version in order to maintain 30 * backward compatibility. 31 * 32 * @{ 33 */ 34 35 #define AV_VERSION_INT(a, b, c) ((a)<<16 | (b)<<8 | (c)) 36 #define AV_VERSION_DOT(a, b, c) a ##.## b ##.## c 37 #define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c) 38 39 /** 40 * Extract version components from the full ::AV_VERSION_INT int as returned 41 * by functions like ::avformat_version() and ::avcodec_version() 42 */ 43 #define AV_VERSION_MAJOR(a) ((a) >> 16) 44 #define AV_VERSION_MINOR(a) (((a) & 0x00FF00) >> 8) 45 #define AV_VERSION_MICRO(a) ((a) & 0xFF) 46 47 /** 48 * @} 49 */ 50 51 /** 52 * @file 53 * @ingroup lavu 54 * Libavutil version macros 55 */ 56 57 /** 58 * @defgroup lavu_ver Version and Build diagnostics 59 * 60 * Macros and function useful to check at compiletime and at runtime 61 * which version of libavutil is in use. 62 * 63 * @{ 64 */ 65 66 #define LIBAVUTIL_VERSION_MAJOR 55 67 #define LIBAVUTIL_VERSION_MINOR 12 68 #define LIBAVUTIL_VERSION_MICRO 100 69 70 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ 71 LIBAVUTIL_VERSION_MINOR, \ 72 LIBAVUTIL_VERSION_MICRO) 73 #define LIBAVUTIL_VERSION AV_VERSION(LIBAVUTIL_VERSION_MAJOR, \ 74 LIBAVUTIL_VERSION_MINOR, \ 75 LIBAVUTIL_VERSION_MICRO) 76 #define LIBAVUTIL_BUILD LIBAVUTIL_VERSION_INT 77 78 #define LIBAVUTIL_IDENT "Lavu" AV_STRINGIFY(LIBAVUTIL_VERSION) 79 80 /** 81 * @} 82 * 83 * @defgroup depr_guards Deprecation guards 84 * FF_API_* defines may be placed below to indicate public API that will be 85 * dropped at a future version bump. The defines themselves are not part of 86 * the public API and may change, break or disappear at any time. 87 * 88 * @note, when bumping the major version it is recommended to manually 89 * disable each FF_API_* in its own commit instead of disabling them all 90 * at once through the bump. This improves the git bisect-ability of the change. 91 * 92 * @{ 93 */ 94 95 #ifndef FF_API_VDPAU 96 #define FF_API_VDPAU (LIBAVUTIL_VERSION_MAJOR < 56) 97 #endif 98 #ifndef FF_API_XVMC 99 #define FF_API_XVMC (LIBAVUTIL_VERSION_MAJOR < 56) 100 #endif 101 #ifndef FF_API_OPT_TYPE_METADATA 102 #define FF_API_OPT_TYPE_METADATA (LIBAVUTIL_VERSION_MAJOR < 56) 103 #endif 104 #ifndef FF_API_DLOG 105 #define FF_API_DLOG (LIBAVUTIL_VERSION_MAJOR < 56) 106 #endif 107 #ifndef FF_API_VAAPI 108 #define FF_API_VAAPI (LIBAVUTIL_VERSION_MAJOR < 56) 109 #endif 110 #ifndef FF_API_FRAME_QP 111 #define FF_API_FRAME_QP (LIBAVUTIL_VERSION_MAJOR < 56) 112 #endif 113 #ifndef FF_API_PLUS1_MINUS1 114 #define FF_API_PLUS1_MINUS1 (LIBAVUTIL_VERSION_MAJOR < 56) 115 #endif 116 #ifndef FF_API_ERROR_FRAME 117 #define FF_API_ERROR_FRAME (LIBAVUTIL_VERSION_MAJOR < 56) 118 #endif 119 #ifndef FF_API_CRC_BIG_TABLE 120 #define FF_API_CRC_BIG_TABLE (LIBAVUTIL_VERSION_MAJOR < 56) 121 #endif 122 123 124 /** 125 * @} 126 */ 127 128 #endif /* AVUTIL_VERSION_H */