From debe07d9e4fdc46be99c1c213bbf70b43882142e Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Tue, 18 Dec 2012 17:46:59 +0000 Subject: [PATCH] Fix #33586: Encoding to mpeg4 makes first frame(s) blocky Issue was caused by rc_initial_buffer_occupancy being set for context Commented this option for now -- it's not used in ffmpeg.c. Now encoding seems to be working nice for MPEG4 and other codecs as well. However, if there're some gurus around please check :) --- source/blender/blenkernel/intern/writeffmpeg.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c index 0f861a7ed37..cf2a165c2b2 100644 --- a/source/blender/blenkernel/intern/writeffmpeg.c +++ b/source/blender/blenkernel/intern/writeffmpeg.c @@ -497,8 +497,15 @@ static AVStream *alloc_video_stream(RenderData *rd, int codec_id, AVFormatContex c->rc_max_rate = rd->ffcodecdata.rc_max_rate * 1000; c->rc_min_rate = rd->ffcodecdata.rc_min_rate * 1000; c->rc_buffer_size = rd->ffcodecdata.rc_buffer_size * 1024; + +#if 0 + /* this options are not set in ffmpeg.c and leads to artifacts with MPEG-4 + * see #33586: Encoding to mpeg4 makes first frame(s) blocky + */ c->rc_initial_buffer_occupancy = rd->ffcodecdata.rc_buffer_size * 3 / 4; c->rc_buffer_aggressivity = 1.0; +#endif + c->me_method = ME_EPZS; codec = avcodec_find_encoder(c->codec_id);