aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2011-10-29 20:21:59 +0200
committerMichael Niedermayer <michaelni@gmx.at>2011-10-29 20:21:59 +0200
commita18ecfeb365c9fe3e97a782d2d1aeb4e875b469c (patch)
tree13fd194de28da9b592fcce45a9bda8439873e8c6
parent9b04f51d5f63e74c5f0c258ad866ce7959c936fd (diff)
downloadffmpeg-a18ecfeb365c9fe3e97a782d2d1aeb4e875b469c.tar.gz
ffmpeg: Fix memory corruption with ffserver
Bug has been introduced by: commit 1cede1d0112b5b26e6d023846729662b7cf1853f Author: Anton Khirnov <anton@khirnov.net> Date: Sat Jun 25 07:43:49 2011 +0200 ffmpeg: factor common code from new_a/v/s/d_stream to new_output_stream()
-rw-r--r--ffmpeg.c3
1 files changed, 3 insertions, 0 deletions
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)