[FFmpeg-devel] [PATCH] ffserver: Use avcodec_copy_context instead of manually copying a context
Baptiste Coudurier
baptiste.coudurier
Mon Jun 21 23:48:46 CEST 2010
On 6/21/10 1:40 AM, Martin Storsj? wrote:
> Hi,
>
> This makes ffserver use avcodec_copy_context at once place instead of
> manually memcpying it and copying extradata separately. This fixes an
> issue where rc_eq in the copy pointed to a string owned by the source
> AVCodecContext, and which was later free'd when the original context was
> closed.
>
> // Martin
>
>
> 0001-ffserver-Use-avcodec_copy_context-instead-of-manuall.patch
>
>
> From b36d7df28a9d4a2d7eccbcf52375ba461b3d93d4 Mon Sep 17 00:00:00 2001
> From: Martin Storsjo<martin at martin.st>
> Date: Mon, 21 Jun 2010 10:47:59 +0300
> Subject: [PATCH] ffserver: Use avcodec_copy_context instead of manually copying an AVCodecContext
>
> ---
> ffserver.c | 9 +--------
> 1 files changed, 1 insertions(+), 8 deletions(-)
>
> diff --git a/ffserver.c b/ffserver.c
> index 31d0268..14141f7 100644
> --- a/ffserver.c
> +++ b/ffserver.c
> @@ -2748,14 +2748,7 @@ static int http_receive_data(HTTPContext *c)
> for (i = 0; i< s->nb_streams; i++) {
> AVStream *fst = feed->streams[i];
> AVStream *st = s->streams[i];
> - memcpy(fst->codec, st->codec, sizeof(AVCodecContext));
> - if (fst->codec->extradata_size) {
> - fst->codec->extradata = av_malloc(fst->codec->extradata_size);
> - if (!fst->codec->extradata)
> - goto fail;
> - memcpy(fst->codec->extradata, st->codec->extradata,
> - fst->codec->extradata_size);
> - }
> + avcodec_copy_context(fst->codec, st->codec);
> }
>
> av_close_input_stream(s);
>
>
ok
--
Baptiste COUDURIER
Key fingerprint 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
FFmpeg maintainer http://www.ffmpeg.org
More information about the ffmpeg-devel
mailing list