[FFmpeg-devel] [PATCH 1/1] libavformat/rtsp: Pass protocol options for udp multicast

Marton Balint cus at passwd.hu
Sun Apr 19 15:44:50 EEST 2020



On Sun, 19 Apr 2020, Wolfgang Haupt wrote:

> ping
>
> On 03.04.20 08:53, Wolfgang Haupt wrote:
>> Protocol options like buffer_size need to be passed to the
>> underlying transport implementation for udp multicasts as well.
>> ---
>>   libavformat/rtsp.c | 5 ++++-
>>   1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
>> index a69484d78b..dbf626eb13 100644
>> --- a/libavformat/rtsp.c
>> +++ b/libavformat/rtsp.c
>> @@ -1616,6 +1616,7 @@ int ff_rtsp_make_setup_request(AVFormatContext *s, 
> const char *host, int port,
>>               char url[1024], namebuf[50], optbuf[20] = "";
>>               struct sockaddr_storage addr;
>>               int port, ttl;
>> +            AVDictionary *opts = map_to_opts(rt);
>>
>>               if (reply->transports[0].destination.ss_family) {
>>                   addr      = reply->transports[0].destination;
>> @@ -1633,10 +1634,12 @@ int ff_rtsp_make_setup_request(AVFormatContext *s, 
> const char *host, int port,
>>               ff_url_join(url, sizeof(url), "rtp", NULL, namebuf,
>>                           port, "%s", optbuf);
>>               if (ffurl_open_whitelist(&rtsp_st->rtp_handle, url, 
> AVIO_FLAG_READ_WRITE,
>> -                           &s->interrupt_callback, NULL, 
> s->protocol_whitelist, s->protocol_blacklist, NULL) < 0) {
>> +                           &s->interrupt_callback, &opts, 
> s->protocol_whitelist, s->protocol_blacklist, NULL) < 0) {
>>                   err = AVERROR_INVALIDDATA;
>> +                av_dict_free(&opts);
>>                   goto fail;
>>               }
>> +            av_dict_free(&opts);

Can you rework this to something like

err = ff_url_open_whitelist()
av_dict_free(&opts)
if (err < 0) {
    err = AVERROR_INVALIDDATA;
    goto fail;
}

It frees opst in only one place.

Thanks,
Marton


More information about the ffmpeg-devel mailing list