Blender should now compile fine with older FFmpeg libraries used.
authorSergey Sharybin <sergey.vfx@gmail.com>
Fri, 24 Feb 2012 15:34:57 +0000 (15:34 +0000)
committerSergey Sharybin <sergey.vfx@gmail.com>
Fri, 24 Feb 2012 15:34:57 +0000 (15:34 +0000)
intern/ffmpeg/ffmpeg_compat.h
source/blender/blenkernel/intern/writeffmpeg.c

index bb2c4f2..9dbbb46 100644 (file)
 #define FFMPEG_SWSCALE_COLOR_SPACE_SUPPORT
 #endif
 
+#if ((LIBAVUTIL_VERSION_MAJOR > 51) || (LIBAVUTIL_VERSION_MAJOR == 51) && (LIBAVUTIL_VERSION_MINOR >= 32))
+#define FFMPEG_FFV1_ALPHA_SUPPORTED
+#endif
+
 #ifndef FFMPEG_HAVE_AVIO
 #define AVIO_FLAG_WRITE URL_WRONLY
 #define avio_open url_fopen
index 2291ea5..d47ba12 100644 (file)
@@ -512,12 +512,16 @@ static AVStream* alloc_video_stream(RenderData *rd, int codec_id, AVFormatContex
        }
 
        if (codec_id == CODEC_ID_FFV1) {
+#ifdef FFMPEG_FFV1_ALPHA_SUPPORTED
                if (rd->im_format.planes ==  R_IMF_PLANES_RGBA) {
                        c->pix_fmt = PIX_FMT_RGB32;
                }
                else {
                        c->pix_fmt = PIX_FMT_BGR0;
                }
+#else
+               c->pix_fmt = PIX_FMT_RGB32;
+#endif
        }
 
        if (codec_id == CODEC_ID_QTRLE ) {
@@ -1435,7 +1439,15 @@ int ffmpeg_alpha_channel_supported(RenderData *rd)
 {
        int codec = rd->ffcodecdata.codec;
 
-       return ELEM(codec, CODEC_ID_QTRLE, CODEC_ID_FFV1);
+       if (codec == CODEC_ID_QTRLE)
+               return TRUE;
+
+#ifdef FFMPEG_FFV1_ALPHA_SUPPORTED
+       if (codec == CODEC_ID_FFV1)
+               return TRUE;
+#endif
+
+       return FALSE;
 }
 
 #endif