On Wed, May 18, 2011 at 17:03:10 (CEST), Mike Williams wrote: > Fixed another dereference in the RTSP code. > > Removed a useless variable. > > Changed an unnecessary looping assignment to a simple assignment suggested by > Maksym. > > Added fixes and tweaks suggested by Maksym Veremeyenko [[email protected]] and > Clément B. > --- > ffmpeg.c | 1 + > ffserver.c | 21 ++++++++++----------- > 2 files changed, 11 insertions(+), 11 deletions(-) > > diff --git a/ffmpeg.c b/ffmpeg.c > index c99c4de..0cbb5e9 100644 > --- a/ffmpeg.c > +++ b/ffmpeg.c > @@ -627,6 +627,7 @@ static int read_ffserver_streams(AVFormatContext *s, > const char *filename) > return err; > /* copy stream format */ > s->nb_streams = 0; > + s->streams = av_mallocz(sizeof(AVStream *) * ic->nb_streams); > for(i=0;i<ic->nb_streams;i++) { > AVStream *st; > AVCodec *codec; > diff --git a/ffserver.c b/ffserver.c > index b4613af..b95a854 100644 > --- a/ffserver.c > +++ b/ffserver.c > @@ -2229,11 +2229,11 @@ static int http_prepare_data(HTTPContext *c) > av_metadata_set2(&c->fmt_ctx.metadata, "copyright", > c->stream->copyright, 0); > av_metadata_set2(&c->fmt_ctx.metadata, "title" , c->stream->title > , 0); > > + c->fmt_ctx.streams = av_mallocz(sizeof(AVStream *) * > c->stream->nb_streams); > + > for(i=0;i<c->stream->nb_streams;i++) { > - AVStream *st; > AVStream *src; > - st = av_mallocz(sizeof(AVStream)); > - c->fmt_ctx.streams[i] = st; > + c->fmt_ctx.streams[i] = av_mallocz(sizeof(AVStream)); > /* if file or feed, then just take streams from FFStream struct > */ > if (!c->stream->feed || > c->stream->feed == c->stream) > @@ -2241,9 +2241,9 @@ static int http_prepare_data(HTTPContext *c) > else > src = c->stream->feed->streams[c->stream->feed_streams[i]]; > > - *st = *src; > - st->priv_data = 0; > - st->codec->frame_number = 0; /* XXX: should be done in > + *(c->fmt_ctx.streams[i]) = *src; > + c->fmt_ctx.streams[i]->priv_data = 0; > + c->fmt_ctx.streams[i]->codec->frame_number = 0; /* XXX: should > be done in > AVStream, not in codec */ > } > /* set output format parameters */ > @@ -3385,6 +3385,9 @@ static int rtp_new_av_stream(HTTPContext *c, > if (!st) > goto fail; > ctx->nb_streams = 1; > + ctx->streams = av_mallocz(sizeof(AVStream *) * ctx->nb_streams); > + if (!ctx->streams) > + goto fail; > ctx->streams[0] = st; > > if (!c->stream->feed || > @@ -3765,11 +3768,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");
Patch passes 'make test' and 'make fate'. As there haven't been further comments, patch queued. -- Gruesse/greetings, Reinhard Tartler, KeyID 945348A4 _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
