From a18ecfeb365c9fe3e97a782d2d1aeb4e875b469c Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sat, 29 Oct 2011 20:21:59 +0200 Subject: [PATCH] ffmpeg: Fix memory corruption with ffserver Bug has been introduced by: commit 1cede1d0112b5b26e6d023846729662b7cf1853f Author: Anton Khirnov Date: Sat Jun 25 07:43:49 2011 +0200 ffmpeg: factor common code from new_a/v/s/d_stream to new_output_stream() --- ffmpeg.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ffmpeg.c b/ffmpeg.c index 1a3cc3c79b..38464f7c13 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -3636,15 +3636,18 @@ static int read_ffserver_streams(OptionsContext *o, AVFormatContext *s, const ch AVStream *st; OutputStream *ost; AVCodec *codec; + AVCodecContext *avctx; codec = avcodec_find_encoder(ic->streams[i]->codec->codec_id); ost = new_output_stream(o, s, codec->type); st = ost->st; + avctx = st->codec; // FIXME: a more elegant solution is needed memcpy(st, ic->streams[i], sizeof(AVStream)); st->info = av_malloc(sizeof(*st->info)); memcpy(st->info, ic->streams[i]->info, sizeof(*st->info)); + st->codec= avctx; avcodec_copy_context(st->codec, ic->streams[i]->codec); if (st->codec->codec_type == AVMEDIA_TYPE_AUDIO && !ost->stream_copy)