3 #include <avcpp/avconfig.h>
6 #ifdef AVCPP_AVCODEC_VERSION_MAJOR
7 # include <libavcodec/avcodec.h>
10 # include <libavfilter/avfilter.h>
11 #if AVCPP_AVFILTER_VERSION_INT < AV_VERSION_INT(7,0,0)
12 # include <libavfilter/avfiltergraph.h>
14 #include <libavfilter/buffersink.h>
15 #include <libavfilter/buffersrc.h>
16 #if AVCPP_AVFILTER_VERSION_INT <= AV_VERSION_INT(2,77,100)
17 # include <libavfilter/vsrc_buffer.h>
19 #if AVCPP_AVFILTER_VERSION_INT < AV_VERSION_INT(6,31,100)
20 #include <libavfilter/avcodec.h>
27 #define AVCPP_USE_CODECPAR ((AVCPP_AVCODEC_VERSION_MAJOR) >= 59)
30 #define AVCPP_API_NEW_CHANNEL_LAYOUT ((AVCPP_AVUTIL_VERSION_MAJOR > 57) || (AVCPP_AVUTIL_VERSION_MAJOR == 57 && (AVCPP_AVUTIL_VERSION_MINOR >= 24)))
32 #define AVCPP_API_FRAME_NUM ((AVCPP_AVCODEC_VERSION_MAJOR > 60) || (AVCPP_AVCODEC_VERSION_MAJOR == 60 && AVCPP_AVCODEC_VERSION_MINOR >= 2))
34 #if AVCPP_HAS_AVFORMAT
35 # define AVCPP_API_AVFORMAT_URL ((AVCPP_AVFORMAT_VERSION_MAJOR > 58) || (AVCPP_AVFORMAT_VERSION_MAJOR == 58 && AVCPP_AVFORMAT_VERSION_MINOR >= 7))
38 #define AVCPP_API_FRAME_KEY ((AVCPP_AVUTIL_VERSION_MAJOR > 58) || (AVCPP_AVUTIL_VERSION_MAJOR == 58 && AVCPP_AVUTIL_VERSION_MINOR >= 29))
40 #define AVCPP_API_AVCODEC_CLOSE (AVCPP_AVCODEC_VERSION_MAJOR < 61)
43 #define AVCPP_API_AVCODEC_NEW_INIT_PACKET (AVCPP_AVCODEC_VERSION_MAJOR >= 58)
45 #define AVCPP_API_AVCODEC_GET_SUPPORTED_CONFIG (AVCPP_AVCODEC_VERSION_INT >= AV_VERSION_INT(61, 13, 100))
46 #if AVCPP_HAS_AVFORMAT
48 # define AVCPP_API_AVFORMAT_AV_STREAM_GET_CODEC_TIMEBASE (AVCPP_AVFORMAT_VERSION_INT < AV_VERSION_INT(61, 5, 101))
51 #define AVCPP_API_AVBUFFER_SIZE_T (AVCPP_AVUTIL_VERSION_MAJOR >= 57)
53 #define AVCPP_API_HAS_AVSIDEDATADESCRIPTOR (AVCPP_AVUTIL_VERSION_INT >= AV_VERSION_INT(59, 10, 100))
55 #if defined(__ICL) || defined (__INTEL_COMPILER)
56 # define FF_DISABLE_DEPRECATION_WARNINGS __pragma(warning(push)) __pragma(warning(disable:1478))
57 # define FF_ENABLE_DEPRECATION_WARNINGS __pragma(warning(pop))
58 #elif defined(_MSC_VER)
59 # define FF_DISABLE_DEPRECATION_WARNINGS __pragma(warning(push)) __pragma(warning(disable:4996))
60 # define FF_ENABLE_DEPRECATION_WARNINGS __pragma(warning(pop))
61 #elif defined(__GNUC__) || defined(__clang__)
62 # define FF_DISABLE_DEPRECATION_WARNINGS _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
63 # define FF_ENABLE_DEPRECATION_WARNINGS _Pragma("GCC diagnostic warning \"-Wdeprecated-declarations\"")
65 # define FF_DISABLE_DEPRECATION_WARNINGS
66 # define FF_ENABLE_DEPRECATION_WARNINGS
70 #define AVCPP_USE_SPACESHIP_OPERATOR 0
71 #if __has_include(<compare>)
73 # if defined(__cpp_lib_three_way_comparison) && __cpp_lib_three_way_comparison >= 201907
74 # undef AVCPP_USE_SPACESHIP_OPERATOR
75 # define AVCPP_USE_SPACESHIP_OPERATOR 1
81 #if AVCPP_AVCODEC_VERSION_INT < AV_VERSION_INT(54,59,100)
82 inline void avcodec_free_frame(AVFrame **frame)
89 #if AVCPP_HAS_AVFILTER
90 #if AVCPP_AVFILTER_VERSION_INT < AV_VERSION_INT(3,17,100)
91 inline const char *avfilter_pad_get_name(AVFilterPad *pads,
int pad_idx)
93 return pads[pad_idx].name;
96 inline AVMediaType avfilter_pad_get_type(AVFilterPad *pads,
int pad_idx)
98 return pads[pad_idx].type;
104 #if AVCPP_AVCODEC_VERSION_INT < AV_VERSION_INT(58,8,100)
105 #define avpacket_unref(p) av_free_packet(p)
107 #define avpacket_unref(p) av_packet_unref(p)