From 934aa9c24d34f8203744b56e4ac6e8599446ca02 Mon Sep 17 00:00:00 2001 From: Rinat Ibragimov Date: Tue, 26 Dec 2017 16:16:39 +0300 Subject: [PATCH] ppb_video_decoder: use AV_ prefixed macros Looks like newer FFmpeg versions have droped old definitions. --- cmake/ffmpeg-compat/CMakeLists.txt | 1 + cmake/ffmpeg-compat/cfg_avcodecflags.c | 4 ++++ cmake/ffmpeg-compat/ffmpeg_compat.h.in | 1 + src/ppb_video_decoder.c | 11 ++++++++--- 4 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 cmake/ffmpeg-compat/cfg_avcodecflags.c diff --git a/cmake/ffmpeg-compat/CMakeLists.txt b/cmake/ffmpeg-compat/CMakeLists.txt index 732a71ee..8f67c581 100644 --- a/cmake/ffmpeg-compat/CMakeLists.txt +++ b/cmake/ffmpeg-compat/CMakeLists.txt @@ -29,6 +29,7 @@ MACRO_C_SOURCE_CHECK(cfg_av_pix_fmt_vdpau.c HAVE_AV_PIX_FMT_VDPAU) MACRO_C_SOURCE_CHECK(cfg_avcodecid.c HAVE_AVCodecID) MACRO_C_SOURCE_CHECK(cfg_avcodeccontext_get_buffer2.c HAVE_AVCodecContext_get_buffer2) MACRO_C_SOURCE_CHECK(cfg_AVVDPAUContext.c HAVE_AVVDPAUContext) +MACRO_C_SOURCE_CHECK(cfg_avcodecflags.c HAVE_AV_CODEC_FLAGS) MACRO_SYMBOL_CHECK(av_frame_alloc "libavcodec/avcodec.h" HAVE_av_frame_alloc) MACRO_SYMBOL_CHECK(av_frame_free "libavcodec/avcodec.h" HAVE_av_frame_free) diff --git a/cmake/ffmpeg-compat/cfg_avcodecflags.c b/cmake/ffmpeg-compat/cfg_avcodecflags.c new file mode 100644 index 00000000..d04de55b --- /dev/null +++ b/cmake/ffmpeg-compat/cfg_avcodecflags.c @@ -0,0 +1,4 @@ +#include +int main(void) { + return AV_CODEC_FLAG_TRUNCATED + AV_CODEC_CAP_TRUNCATED; +} diff --git a/cmake/ffmpeg-compat/ffmpeg_compat.h.in b/cmake/ffmpeg-compat/ffmpeg_compat.h.in index dd40922c..da7834b1 100644 --- a/cmake/ffmpeg-compat/ffmpeg_compat.h.in +++ b/cmake/ffmpeg-compat/ffmpeg_compat.h.in @@ -6,3 +6,4 @@ #define HAVE_av_frame_free (@HAVE_av_frame_free@) #define HAVE_avcodec_free_context (@HAVE_avcodec_free_context@) #define HAVE_AVVDPAUContext (@HAVE_AVVDPAUContext@) +#define HAVE_AV_CODEC_FLAGS (@HAVE_AV_CODEC_FLAGS@) diff --git a/src/ppb_video_decoder.c b/src/ppb_video_decoder.c index eb150725..23647cdd 100644 --- a/src/ppb_video_decoder.c +++ b/src/ppb_video_decoder.c @@ -70,6 +70,11 @@ #define AV_CODEC_ID_H264 CODEC_ID_H264 #endif // !HAVE_AVCodecID +#if !HAVE_AV_CODEC_FLAGS +#define AV_CODEC_CAP_TRUNCATED CODEC_CAP_TRUNCATED +#define AV_CODEC_FLAG_TRUNCATED CODEC_FLAG_TRUNCATED +#endif // !HAVE_AV_CODEC_FLAGS + enum hwdec_api_e { HWDEC_NONE = 0, HWDEC_VAAPI, @@ -620,9 +625,9 @@ initialize_decoder(struct pp_video_decoder_s *vd) goto err; } - if (vd->avcodec->capabilities & CODEC_CAP_TRUNCATED) { - trace_info("%s, codec have CODEC_CAP_TRUNCATED\n", __func__); - vd->avctx->flags |= CODEC_FLAG_TRUNCATED; + if (vd->avcodec->capabilities & AV_CODEC_CAP_TRUNCATED) { + trace_info("%s, codec have AV_CODEC_CAP_TRUNCATED\n", __func__); + vd->avctx->flags |= AV_CODEC_FLAG_TRUNCATED; } vd->avctx->opaque = vd;