Home | History | Annotate | Download | only in libavutil
      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 /**
     25  * @defgroup preproc_misc Preprocessor String Macros
     26  *
     27  * String manipulation macros
     28  *
     29  * @{
     30  */
     31 
     32 #define AV_STRINGIFY(s)         AV_TOSTRING(s)
     33 #define AV_TOSTRING(s) #s
     34 
     35 #define AV_GLUE(a, b) a ## b
     36 #define AV_JOIN(a, b) AV_GLUE(a, b)
     37 
     38 #define AV_PRAGMA(s) _Pragma(#s)
     39 
     40 /**
     41  * @}
     42  */
     43 
     44 /**
     45  * @defgroup version_utils Library Version Macros
     46  *
     47  * Useful to check and match library version in order to maintain
     48  * backward compatibility.
     49  *
     50  * @{
     51  */
     52 
     53 #define AV_VERSION_INT(a, b, c) (a<<16 | b<<8 | c)
     54 #define AV_VERSION_DOT(a, b, c) a ##.## b ##.## c
     55 #define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c)
     56 
     57 /**
     58  * @}
     59  */
     60 
     61 
     62 /**
     63  * @file
     64  * @ingroup lavu
     65  * Libavutil version macros
     66  */
     67 
     68 /**
     69  * @defgroup lavu_ver Version and Build diagnostics
     70  *
     71  * Macros and function useful to check at compiletime and at runtime
     72  * which version of libavutil is in use.
     73  *
     74  * @{
     75  */
     76 
     77 #define LIBAVUTIL_VERSION_MAJOR  52
     78 #define LIBAVUTIL_VERSION_MINOR  38
     79 #define LIBAVUTIL_VERSION_MICRO 100
     80 
     81 #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
     82                                                LIBAVUTIL_VERSION_MINOR, \
     83                                                LIBAVUTIL_VERSION_MICRO)
     84 #define LIBAVUTIL_VERSION       AV_VERSION(LIBAVUTIL_VERSION_MAJOR,     \
     85                                            LIBAVUTIL_VERSION_MINOR,     \
     86                                            LIBAVUTIL_VERSION_MICRO)
     87 #define LIBAVUTIL_BUILD         LIBAVUTIL_VERSION_INT
     88 
     89 #define LIBAVUTIL_IDENT         "Lavu" AV_STRINGIFY(LIBAVUTIL_VERSION)
     90 
     91 /**
     92  * @}
     93  *
     94  * @defgroup depr_guards Deprecation guards
     95  * FF_API_* defines may be placed below to indicate public API that will be
     96  * dropped at a future version bump. The defines themselves are not part of
     97  * the public API and may change, break or disappear at any time.
     98  *
     99  * @{
    100  */
    101 
    102 #ifndef FF_API_GET_BITS_PER_SAMPLE_FMT
    103 #define FF_API_GET_BITS_PER_SAMPLE_FMT (LIBAVUTIL_VERSION_MAJOR < 53)
    104 #endif
    105 #ifndef FF_API_FIND_OPT
    106 #define FF_API_FIND_OPT                 (LIBAVUTIL_VERSION_MAJOR < 53)
    107 #endif
    108 #ifndef FF_API_OLD_AVOPTIONS
    109 #define FF_API_OLD_AVOPTIONS            (LIBAVUTIL_VERSION_MAJOR < 53)
    110 #endif
    111 #ifndef FF_API_PIX_FMT
    112 #define FF_API_PIX_FMT                  (LIBAVUTIL_VERSION_MAJOR < 53)
    113 #endif
    114 #ifndef FF_API_CONTEXT_SIZE
    115 #define FF_API_CONTEXT_SIZE             (LIBAVUTIL_VERSION_MAJOR < 53)
    116 #endif
    117 #ifndef FF_API_PIX_FMT_DESC
    118 #define FF_API_PIX_FMT_DESC             (LIBAVUTIL_VERSION_MAJOR < 53)
    119 #endif
    120 #ifndef FF_API_AV_REVERSE
    121 #define FF_API_AV_REVERSE               (LIBAVUTIL_VERSION_MAJOR < 53)
    122 #endif
    123 #ifndef FF_API_AUDIOCONVERT
    124 #define FF_API_AUDIOCONVERT             (LIBAVUTIL_VERSION_MAJOR < 53)
    125 #endif
    126 #ifndef FF_API_CPU_FLAG_MMX2
    127 #define FF_API_CPU_FLAG_MMX2            (LIBAVUTIL_VERSION_MAJOR < 53)
    128 #endif
    129 #ifndef FF_API_SAMPLES_UTILS_RETURN_ZERO
    130 #define FF_API_SAMPLES_UTILS_RETURN_ZERO (LIBAVUTIL_VERSION_MAJOR < 53)
    131 #endif
    132 #ifndef FF_API_LLS_PRIVATE
    133 #define FF_API_LLS_PRIVATE              (LIBAVUTIL_VERSION_MAJOR < 53)
    134 #endif
    135 #ifndef FF_API_AVFRAME_LAVC
    136 #define FF_API_AVFRAME_LAVC             (LIBAVUTIL_VERSION_MAJOR < 53)
    137 #endif
    138 
    139 /**
    140  * @}
    141  */
    142 
    143 #endif /* AVUTIL_VERSION_H */
    144 
    145