[Bf-blender-cvs] [a61e3b9] master: Fix T38422: Error writing AAC frame when using FFmpeg compiled with vo_aacenc

Sergey Sharybin noreply at git.blender.org
Mon Feb 17 13:10:45 CET 2014


Commit: a61e3b9a9e335fdccf64fbdc942c4fd17b25646e
Author: Sergey Sharybin
Date:   Mon Feb 17 18:08:53 2014 +0600
https://developer.blender.org/rBa61e3b9a9e335fdccf64fbdc942c4fd17b25646e

Fix T38422: Error writing AAC frame when using FFmpeg compiled with vo_aacenc

Issue was caused by missing GLOBALHEADER flag set for audio stream.

Also made it so frame is getting filled with default, that's what
happening in ffmpeg.c.

===================================================================

M	source/blender/blenkernel/intern/writeffmpeg.c

===================================================================

diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c
index ddd6780..10d6e7c 100644
--- a/source/blender/blenkernel/intern/writeffmpeg.c
+++ b/source/blender/blenkernel/intern/writeffmpeg.c
@@ -138,6 +138,7 @@ static int write_audio_frame(void)
 
 #ifdef FFMPEG_HAVE_ENCODE_AUDIO2
 	frame = avcodec_alloc_frame();
+	avcodec_get_frame_defaults(frame);
 	frame->pts = audio_time / av_q2d(c->time_base);
 	frame->nb_samples = audio_input_samples;
 	frame->format = c->sample_fmt;
@@ -710,6 +711,10 @@ static AVStream *alloc_audio_stream(RenderData *rd, int codec_id, AVFormatContex
 		st->codec->sample_rate = best;
 	}
 
+	if (of->oformat->flags & AVFMT_GLOBALHEADER) {
+		c->flags |= CODEC_FLAG_GLOBAL_HEADER;
+	}
+
 	set_ffmpeg_properties(rd, c, "audio");
 
 	if (avcodec_open2(c, codec, NULL) < 0) {




More information about the Bf-blender-cvs mailing list