summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ffmpeg.c2
-rw-r--r--ffserver.c9
2 files changed, 6 insertions, 5 deletions
diff --git a/ffmpeg.c b/ffmpeg.c
index 38297cc7f4..4d519c7ac9 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -713,6 +713,8 @@ static int read_ffserver_streams(AVFormatContext *s, const char *filename)
// FIXME: a more elegant solution is needed
st = av_mallocz(sizeof(AVStream));
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 = avcodec_alloc_context();
if (!st->codec) {
print_error(filename, AVERROR(ENOMEM));
diff --git a/ffserver.c b/ffserver.c
index 517cb6f3f3..4c2c5cf890 100644
--- a/ffserver.c
+++ b/ffserver.c
@@ -3386,6 +3386,9 @@ static int rtp_new_av_stream(HTTPContext *c,
if (!st)
goto fail;
ctx->nb_streams = 1;
+ ctx->streams = av_mallocz(sizeof(*ctx->streams) * ctx->nb_streams);
+ if (!ctx->streams)
+ goto fail;
ctx->streams[0] = st;
if (!c->stream->feed ||
@@ -3766,11 +3769,7 @@ static void build_feed_streams(void)
}
s->oformat = feed->fmt;
s->nb_streams = feed->nb_streams;
- for(i=0;i<s->nb_streams;i++) {
- AVStream *st;
- st = feed->streams[i];
- s->streams[i] = st;
- }
+ s->streams = feed->streams;
av_set_parameters(s, NULL);
if (av_write_header(s) < 0) {
http_log("Container doesn't supports the required parameters\n");