diff mbox

[FFmpeg-devel] ffserver: Remove last use of AVStream size

Message ID 20161127182626.20811-1-michael@niedermayer.cc
State Accepted
Commit 0dbee67700393b9e2a84e5570294209b1f2a985c
Headers show

Commit Message

Michael Niedermayer Nov. 27, 2016, 6:26 p.m. UTC
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
---
 ffserver.c | 18 ++++--------------
 1 file changed, 4 insertions(+), 14 deletions(-)

Comments

Ronald S. Bultje Nov. 27, 2016, 10:29 p.m. UTC | #1
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
James Almer Nov. 27, 2016, 11:52 p.m. UTC | #2
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.
Reynaldo H. Verdejo Pinochet Nov. 28, 2016, 9:36 p.m. UTC | #3
Hi Michael

Looks good too. Please feel free to push
alongside the ones on the "Remove use of
AVStream.." thread.

Bests,
Michael Niedermayer Nov. 28, 2016, 9:46 p.m. UTC | #4
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 mbox

Patch

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);
 }