| 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 | /** | 
|---|
| 22 | * @file | 
|---|
| 23 | * @ingroup lavu | 
|---|
| 24 | * Libavutil version macros | 
|---|
| 25 | */ | 
|---|
| 26 |  | 
|---|
| 27 | #ifndef AVUTIL_VERSION_H | 
|---|
| 28 | #define AVUTIL_VERSION_H | 
|---|
| 29 |  | 
|---|
| 30 | #include "macros.h" | 
|---|
| 31 |  | 
|---|
| 32 | /** | 
|---|
| 33 | * @addtogroup version_utils | 
|---|
| 34 | * | 
|---|
| 35 | * Useful to check and match library version in order to maintain | 
|---|
| 36 | * backward compatibility. | 
|---|
| 37 | * | 
|---|
| 38 | * The FFmpeg libraries follow a versioning sheme very similar to | 
|---|
| 39 | * Semantic Versioning (http://semver.org/) | 
|---|
| 40 | * The difference is that the component called PATCH is called MICRO in FFmpeg | 
|---|
| 41 | * and its value is reset to 100 instead of 0 to keep it above or equal to 100. | 
|---|
| 42 | * Also we do not increase MICRO for every bugfix or change in git master. | 
|---|
| 43 | * | 
|---|
| 44 | * Prior to FFmpeg 3.2 point releases did not change any lib version number to | 
|---|
| 45 | * avoid aliassing different git master checkouts. | 
|---|
| 46 | * Starting with FFmpeg 3.2, the released library versions will occupy | 
|---|
| 47 | * a separate MAJOR.MINOR that is not used on the master development branch. | 
|---|
| 48 | * That is if we branch a release of master 55.10.123 we will bump to 55.11.100 | 
|---|
| 49 | * for the release and master will continue at 55.12.100 after it. Each new | 
|---|
| 50 | * point release will then bump the MICRO improving the usefulness of the lib | 
|---|
| 51 | * versions. | 
|---|
| 52 | * | 
|---|
| 53 | * @{ | 
|---|
| 54 | */ | 
|---|
| 55 |  | 
|---|
| 56 | #define AV_VERSION_INT(a, b, c) ((a)<<16 | (b)<<8 | (c)) | 
|---|
| 57 | #define AV_VERSION_DOT(a, b, c) a ##.## b ##.## c | 
|---|
| 58 | #define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c) | 
|---|
| 59 |  | 
|---|
| 60 | /** | 
|---|
| 61 | * Extract version components from the full ::AV_VERSION_INT int as returned | 
|---|
| 62 | * by functions like ::avformat_version() and ::avcodec_version() | 
|---|
| 63 | */ | 
|---|
| 64 | #define AV_VERSION_MAJOR(a) ((a) >> 16) | 
|---|
| 65 | #define AV_VERSION_MINOR(a) (((a) & 0x00FF00) >> 8) | 
|---|
| 66 | #define AV_VERSION_MICRO(a) ((a) & 0xFF) | 
|---|
| 67 |  | 
|---|
| 68 | /** | 
|---|
| 69 | * @} | 
|---|
| 70 | */ | 
|---|
| 71 |  | 
|---|
| 72 | /** | 
|---|
| 73 | * @defgroup lavu_ver Version and Build diagnostics | 
|---|
| 74 | * | 
|---|
| 75 | * Macros and function useful to check at compiletime and at runtime | 
|---|
| 76 | * which version of libavutil is in use. | 
|---|
| 77 | * | 
|---|
| 78 | * @{ | 
|---|
| 79 | */ | 
|---|
| 80 |  | 
|---|
| 81 | #define LIBAVUTIL_VERSION_MAJOR  56 | 
|---|
| 82 | #define LIBAVUTIL_VERSION_MINOR  70 | 
|---|
| 83 | #define LIBAVUTIL_VERSION_MICRO 100 | 
|---|
| 84 |  | 
|---|
| 85 | #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ | 
|---|
| 86 | LIBAVUTIL_VERSION_MINOR, \ | 
|---|
| 87 | LIBAVUTIL_VERSION_MICRO) | 
|---|
| 88 | #define LIBAVUTIL_VERSION       AV_VERSION(LIBAVUTIL_VERSION_MAJOR,     \ | 
|---|
| 89 | LIBAVUTIL_VERSION_MINOR,     \ | 
|---|
| 90 | LIBAVUTIL_VERSION_MICRO) | 
|---|
| 91 | #define LIBAVUTIL_BUILD         LIBAVUTIL_VERSION_INT | 
|---|
| 92 |  | 
|---|
| 93 | #define LIBAVUTIL_IDENT         "Lavu" AV_STRINGIFY(LIBAVUTIL_VERSION) | 
|---|
| 94 |  | 
|---|
| 95 | /** | 
|---|
| 96 | * @defgroup lavu_depr_guards Deprecation Guards | 
|---|
| 97 | * FF_API_* defines may be placed below to indicate public API that will be | 
|---|
| 98 | * dropped at a future version bump. The defines themselves are not part of | 
|---|
| 99 | * the public API and may change, break or disappear at any time. | 
|---|
| 100 | * | 
|---|
| 101 | * @note, when bumping the major version it is recommended to manually | 
|---|
| 102 | * disable each FF_API_* in its own commit instead of disabling them all | 
|---|
| 103 | * at once through the bump. This improves the git bisect-ability of the change. | 
|---|
| 104 | * | 
|---|
| 105 | * @{ | 
|---|
| 106 | */ | 
|---|
| 107 |  | 
|---|
| 108 | #ifndef FF_API_VAAPI | 
|---|
| 109 | #define FF_API_VAAPI                    (LIBAVUTIL_VERSION_MAJOR < 57) | 
|---|
| 110 | #endif | 
|---|
| 111 | #ifndef FF_API_FRAME_QP | 
|---|
| 112 | #define FF_API_FRAME_QP                 (LIBAVUTIL_VERSION_MAJOR < 57) | 
|---|
| 113 | #endif | 
|---|
| 114 | #ifndef FF_API_PLUS1_MINUS1 | 
|---|
| 115 | #define FF_API_PLUS1_MINUS1             (LIBAVUTIL_VERSION_MAJOR < 57) | 
|---|
| 116 | #endif | 
|---|
| 117 | #ifndef FF_API_ERROR_FRAME | 
|---|
| 118 | #define FF_API_ERROR_FRAME              (LIBAVUTIL_VERSION_MAJOR < 57) | 
|---|
| 119 | #endif | 
|---|
| 120 | #ifndef FF_API_PKT_PTS | 
|---|
| 121 | #define FF_API_PKT_PTS                  (LIBAVUTIL_VERSION_MAJOR < 57) | 
|---|
| 122 | #endif | 
|---|
| 123 | #ifndef FF_API_CRYPTO_SIZE_T | 
|---|
| 124 | #define FF_API_CRYPTO_SIZE_T            (LIBAVUTIL_VERSION_MAJOR < 57) | 
|---|
| 125 | #endif | 
|---|
| 126 | #ifndef FF_API_FRAME_GET_SET | 
|---|
| 127 | #define FF_API_FRAME_GET_SET            (LIBAVUTIL_VERSION_MAJOR < 57) | 
|---|
| 128 | #endif | 
|---|
| 129 | #ifndef FF_API_PSEUDOPAL | 
|---|
| 130 | #define FF_API_PSEUDOPAL                (LIBAVUTIL_VERSION_MAJOR < 57) | 
|---|
| 131 | #endif | 
|---|
| 132 | #ifndef FF_API_CHILD_CLASS_NEXT | 
|---|
| 133 | #define FF_API_CHILD_CLASS_NEXT         (LIBAVUTIL_VERSION_MAJOR < 57) | 
|---|
| 134 | #endif | 
|---|
| 135 | #ifndef FF_API_BUFFER_SIZE_T | 
|---|
| 136 | #define FF_API_BUFFER_SIZE_T            (LIBAVUTIL_VERSION_MAJOR < 57) | 
|---|
| 137 | #endif | 
|---|
| 138 | #ifndef FF_API_D2STR | 
|---|
| 139 | #define FF_API_D2STR                    (LIBAVUTIL_VERSION_MAJOR < 58) | 
|---|
| 140 | #endif | 
|---|
| 141 | #ifndef FF_API_DECLARE_ALIGNED | 
|---|
| 142 | #define FF_API_DECLARE_ALIGNED          (LIBAVUTIL_VERSION_MAJOR < 58) | 
|---|
| 143 | #endif | 
|---|
| 144 |  | 
|---|
| 145 | /** | 
|---|
| 146 | * @} | 
|---|
| 147 | * @} | 
|---|
| 148 | */ | 
|---|
| 149 |  | 
|---|
| 150 | #endif /* AVUTIL_VERSION_H */ | 
|---|
| 151 |  | 
|---|