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

Marton Balint cus at passwd.hu
Mon Apr 20 00:50:47 EEST 2020



On Sun, 19 Apr 2020, Wolfgang Haupt wrote:

> On 19.04.20 14:44, Marton Balint wrote:
>>
>>
>> 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.
>
> Done.
> Sorry I clearly did something wrong with the submission of the new version.
> It's shown 3 times now in patchwork.

No worries. To be frank I am not sure how to signal explictly that a patch 
supersedes anther one to patchwork.

Applied the patch with a minor cosmetic change.

Thanks,
Marton


More information about the ffmpeg-devel mailing list