From ab84effdeda931a74d8503891488ed538619a5d3 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sat, 6 Sep 2014 04:42:48 +0200 Subject: [PATCH] ffmpeg: Copy extradata if it has been initialized later from the encoder Fixes Ticket3909 Signed-off-by: Michael Niedermayer --- ffmpeg.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ffmpeg.c b/ffmpeg.c index 220816b851..0807eec0b6 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -590,6 +590,14 @@ static void write_frame(AVFormatContext *s, AVPacket *pkt, OutputStream *ost) AVCodecContext *avctx = ost->st->codec; int ret; + if (!ost->st->codec->extradata_size && ost->enc_ctx->extradata_size) { + ost->st->codec->extradata = av_mallocz(ost->enc_ctx->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE); + if (ost->st->codec->extradata) { + memcpy(ost->st->codec->extradata, ost->enc_ctx->extradata, ost->enc_ctx->extradata_size); + ost->st->codec->extradata_size = ost->enc_ctx->extradata_size; + } + } + if ((avctx->codec_type == AVMEDIA_TYPE_VIDEO && video_sync_method == VSYNC_DROP) || (avctx->codec_type == AVMEDIA_TYPE_AUDIO && audio_sync_method < 0)) pkt->pts = pkt->dts = AV_NOPTS_VALUE;