From cb51aef1ab82ea5d424646c83527daa88c6a0fb7 Mon Sep 17 00:00:00 2001
From: Baptiste Coudurier <baptiste.coudurier@gmail.com>
Date: Mon, 23 Jun 2008 19:57:58 +0000
Subject: [PATCH] copy extradata if present

Originally committed as revision 13913 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 ffserver.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/ffserver.c b/ffserver.c
index ad001402d3a..d17f9974128 100644
--- a/ffserver.c
+++ b/ffserver.c
@@ -2497,9 +2497,18 @@ static int http_receive_data(HTTPContext *c)
                 goto fail;
             }
 
-            for (i = 0; i < s->nb_streams; i++)
-                memcpy(feed->streams[i]->codec,
-                       s->streams[i]->codec, sizeof(AVCodecContext));
+            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);
+                }
+            }
 
             av_close_input_stream(s);
             av_free(pb);
-- 
GitLab