Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--intern/ffmpeg/ffmpeg_compat.h4
-rw-r--r--source/blender/blenkernel/intern/writeffmpeg.c14
2 files changed, 17 insertions, 1 deletions
diff --git a/intern/ffmpeg/ffmpeg_compat.h b/intern/ffmpeg/ffmpeg_compat.h
index bb2c4f2d0a4..9dbbb46ce40 100644
--- a/intern/ffmpeg/ffmpeg_compat.h
+++ b/intern/ffmpeg/ffmpeg_compat.h
@@ -72,6 +72,10 @@
#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
diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c
index 2291ea5a249..d47ba1274b1 100644
--- a/source/blender/blenkernel/intern/writeffmpeg.c
+++ b/source/blender/blenkernel/intern/writeffmpeg.c
@@ -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