Message ID | 20161127182626.20811-1-michael@niedermayer.cc |
---|---|
State | Accepted |
Commit | 0dbee67700393b9e2a84e5570294209b1f2a985c |
Headers | show |
Hi, On Sun, Nov 27, 2016 at 1:26 PM, Michael Niedermayer <michael@niedermayer.cc > wrote: > Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> > --- > ffserver.c | 18 ++++-------------- > 1 file changed, 4 insertions(+), 14 deletions(-) > > diff --git a/ffserver.c b/ffserver.c > index ded5149..9b1f6d5 100644 > --- a/ffserver.c > +++ b/ffserver.c > @@ -2961,7 +2961,6 @@ static int prepare_sdp_description(FFServerStream > *stream, uint8_t **pbuffer, > struct in_addr my_ip) > { > AVFormatContext *avc; > - AVStream *avs = NULL; > AVOutputFormat *rtp_format = av_guess_format("rtp", NULL, NULL); > AVDictionaryEntry *entry = av_dict_get(stream->metadata, "title", > NULL, 0); > int i; > @@ -2975,7 +2974,6 @@ static int prepare_sdp_description(FFServerStream > *stream, uint8_t **pbuffer, > avc->oformat = rtp_format; > av_dict_set(&avc->metadata, "title", > entry ? entry->value : "No Title", 0); > - avc->nb_streams = stream->nb_streams; > if (stream->is_multicast) { > snprintf(avc->filename, 1024, "rtp://%s:%d?multicast=1?ttl=%d", > inet_ntoa(stream->multicast_ip), > @@ -2983,19 +2981,12 @@ static int prepare_sdp_description(FFServerStream > *stream, uint8_t **pbuffer, > } else > snprintf(avc->filename, 1024, "rtp://0.0.0.0"); > > - avc->streams = av_malloc_array(avc->nb_streams, > sizeof(*avc->streams)); > - if (!avc->streams) > - goto sdp_done; > - > - avs = av_malloc_array(avc->nb_streams, sizeof(*avs)); > - if (!avs) > - goto sdp_done; > - > for(i = 0; i < stream->nb_streams; i++) { > - avc->streams[i] = &avs[i]; > - avc->streams[i]->codec = stream->streams[i]->codec; > + AVStream *st = avformat_new_stream(avc, NULL); > + if (!st) > + goto sdp_done; > avcodec_parameters_from_context(stream->streams[i]->codecpar, > stream->streams[i]->codec); > - avc->streams[i]->codecpar = stream->streams[i]->codecpar; > + unlayer_stream(st, stream->streams[i]); > } > #define PBUFFER_SIZE 2048 > *pbuffer = av_mallocz(PBUFFER_SIZE); > @@ -3007,7 +2998,6 @@ static int prepare_sdp_description(FFServerStream > *stream, uint8_t **pbuffer, > av_freep(&avc->streams); > av_dict_free(&avc->metadata); > av_free(avc); > - av_free(avs); > > return *pbuffer ? strlen(*pbuffer) : AVERROR(ENOMEM); > } > -- > 2.10.2 I think you're sending this to the wrong repository, ffserver is not part of the ffmpeg tree anymore. Ronald
On 11/27/2016 7:29 PM, Ronald S. Bultje wrote: > Hi, > > On Sun, Nov 27, 2016 at 1:26 PM, Michael Niedermayer <michael@niedermayer.cc >> wrote: > >> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> >> --- >> ffserver.c | 18 ++++-------------- >> 1 file changed, 4 insertions(+), 14 deletions(-) >> >> diff --git a/ffserver.c b/ffserver.c >> index ded5149..9b1f6d5 100644 >> --- a/ffserver.c >> +++ b/ffserver.c >> @@ -2961,7 +2961,6 @@ static int prepare_sdp_description(FFServerStream >> *stream, uint8_t **pbuffer, >> struct in_addr my_ip) >> { >> AVFormatContext *avc; >> - AVStream *avs = NULL; >> AVOutputFormat *rtp_format = av_guess_format("rtp", NULL, NULL); >> AVDictionaryEntry *entry = av_dict_get(stream->metadata, "title", >> NULL, 0); >> int i; >> @@ -2975,7 +2974,6 @@ static int prepare_sdp_description(FFServerStream >> *stream, uint8_t **pbuffer, >> avc->oformat = rtp_format; >> av_dict_set(&avc->metadata, "title", >> entry ? entry->value : "No Title", 0); >> - avc->nb_streams = stream->nb_streams; >> if (stream->is_multicast) { >> snprintf(avc->filename, 1024, "rtp://%s:%d?multicast=1?ttl=%d", >> inet_ntoa(stream->multicast_ip), >> @@ -2983,19 +2981,12 @@ static int prepare_sdp_description(FFServerStream >> *stream, uint8_t **pbuffer, >> } else >> snprintf(avc->filename, 1024, "rtp://0.0.0.0"); >> >> - avc->streams = av_malloc_array(avc->nb_streams, >> sizeof(*avc->streams)); >> - if (!avc->streams) >> - goto sdp_done; >> - >> - avs = av_malloc_array(avc->nb_streams, sizeof(*avs)); >> - if (!avs) >> - goto sdp_done; >> - >> for(i = 0; i < stream->nb_streams; i++) { >> - avc->streams[i] = &avs[i]; >> - avc->streams[i]->codec = stream->streams[i]->codec; >> + AVStream *st = avformat_new_stream(avc, NULL); >> + if (!st) >> + goto sdp_done; >> avcodec_parameters_from_context(stream->streams[i]->codecpar, >> stream->streams[i]->codec); >> - avc->streams[i]->codecpar = stream->streams[i]->codecpar; >> + unlayer_stream(st, stream->streams[i]); >> } >> #define PBUFFER_SIZE 2048 >> *pbuffer = av_mallocz(PBUFFER_SIZE); >> @@ -3007,7 +2998,6 @@ static int prepare_sdp_description(FFServerStream >> *stream, uint8_t **pbuffer, >> av_freep(&avc->streams); >> av_dict_free(&avc->metadata); >> av_free(avc); >> - av_free(avs); >> >> return *pbuffer ? strlen(*pbuffer) : AVERROR(ENOMEM); >> } >> -- >> 2.10.2 > > > I think you're sending this to the wrong repository, ffserver is not part > of the ffmpeg tree anymore. > > Ronald If this is part of the attempts at making it standalone, then it's ok. Lets try to at least not be passive aggressive towards efforts in that direction.
Hi Michael Looks good too. Please feel free to push alongside the ones on the "Remove use of AVStream.." thread. Bests,
On Mon, Nov 28, 2016 at 01:36:58PM -0800, Reynaldo H. Verdejo Pinochet wrote: > Hi Michael > > Looks good too. Please feel free to push > alongside the ones on the "Remove use of > AVStream.." thread. applied thx [...]
diff --git a/ffserver.c b/ffserver.c index ded5149..9b1f6d5 100644 --- a/ffserver.c +++ b/ffserver.c @@ -2961,7 +2961,6 @@ static int prepare_sdp_description(FFServerStream *stream, uint8_t **pbuffer, struct in_addr my_ip) { AVFormatContext *avc; - AVStream *avs = NULL; AVOutputFormat *rtp_format = av_guess_format("rtp", NULL, NULL); AVDictionaryEntry *entry = av_dict_get(stream->metadata, "title", NULL, 0); int i; @@ -2975,7 +2974,6 @@ static int prepare_sdp_description(FFServerStream *stream, uint8_t **pbuffer, avc->oformat = rtp_format; av_dict_set(&avc->metadata, "title", entry ? entry->value : "No Title", 0); - avc->nb_streams = stream->nb_streams; if (stream->is_multicast) { snprintf(avc->filename, 1024, "rtp://%s:%d?multicast=1?ttl=%d", inet_ntoa(stream->multicast_ip), @@ -2983,19 +2981,12 @@ static int prepare_sdp_description(FFServerStream *stream, uint8_t **pbuffer, } else snprintf(avc->filename, 1024, "rtp://0.0.0.0"); - avc->streams = av_malloc_array(avc->nb_streams, sizeof(*avc->streams)); - if (!avc->streams) - goto sdp_done; - - avs = av_malloc_array(avc->nb_streams, sizeof(*avs)); - if (!avs) - goto sdp_done; - for(i = 0; i < stream->nb_streams; i++) { - avc->streams[i] = &avs[i]; - avc->streams[i]->codec = stream->streams[i]->codec; + AVStream *st = avformat_new_stream(avc, NULL); + if (!st) + goto sdp_done; avcodec_parameters_from_context(stream->streams[i]->codecpar, stream->streams[i]->codec); - avc->streams[i]->codecpar = stream->streams[i]->codecpar; + unlayer_stream(st, stream->streams[i]); } #define PBUFFER_SIZE 2048 *pbuffer = av_mallocz(PBUFFER_SIZE); @@ -3007,7 +2998,6 @@ static int prepare_sdp_description(FFServerStream *stream, uint8_t **pbuffer, av_freep(&avc->streams); av_dict_free(&avc->metadata); av_free(avc); - av_free(avs); return *pbuffer ? strlen(*pbuffer) : AVERROR(ENOMEM); }
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> --- ffserver.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-)