From 32af333548fe7e7ea6273857e718fca4aefae19a Mon Sep 17 00:00:00 2001 From: wowzaman12 Date: Fri, 27 Mar 2015 17:58:35 +0000 Subject: [PATCH] fix compiling against latest ffmpeg code. --- src/common/ffmpeg.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/common/ffmpeg.cpp b/src/common/ffmpeg.cpp index 3c67e40e..9dd9b02b 100644 --- a/src/common/ffmpeg.cpp +++ b/src/common/ffmpeg.cpp @@ -178,17 +178,31 @@ MediaRet MediaRecorder::setup_video_stream(const char *fname, int w, int h, int // make sure RGB is supported (mostly not) if(codec->pix_fmts) { const enum PixelFormat *p; +#if LIBAVCODEC_VERSION_MAJOR < 55 int64_t mask = 0; +#endif for(p = codec->pix_fmts; *p != -1; p++) { // may get complaints about 1LL; thus the cast +#if LIBAVCODEC_VERSION_MAJOR < 55 mask |= ((int64_t)1) << *p; +#endif if(*p == pixfmt) break; } if(*p == -1) { // if not supported, use a converter to the next best format // this is swscale, the converter used by the output demo +#if LIBAVCODEC_VERSION_MAJOR < 55 enum PixelFormat dp = (PixelFormat)avcodec_find_best_pix_fmt(mask, pixfmt, 0, NULL); +#else +#if LIBAVCODEC_VERSION_MICRO >= 100 +// FFmpeg + enum AVPixelFormat dp = avcodec_find_best_pix_fmt_of_list(codec->pix_fmts, pixfmt, 0, NULL); +#else +// Libav + enum AVPixelFormat dp = avcodec_find_best_pix_fmt2(codec->pix_fmts, pixfmt, 0, NULL); +#endif +#endif if(dp == -1) dp = codec->pix_fmts[0]; if(!(convpic = avcodec_alloc_frame()) ||