[FFmpeg-devel] [PATCH 2/2] avformat: add protocol_whitelist

Nicolas George george at nsup.org
Sun Jan 24 12:47:59 CET 2016


Le quintidi 5 pluviôse, an CCXXIV, Michael Niedermayer a écrit :
> --- a/libavformat/avio.h
> +++ b/libavformat/avio.h
> @@ -595,6 +595,10 @@ int avio_open(AVIOContext **s, const char *url, int flags);
>  int avio_open2(AVIOContext **s, const char *url, int flags,
>                 const AVIOInterruptCB *int_cb, AVDictionary **options);
>  
> +int avio_open_whitelist(AVIOContext **s, const char *url, int flags,
> +                         const AVIOInterruptCB *int_cb, AVDictionary **options,
> +                         const char *whitelist);
> +

Please no! Adding new arguments to a function that already has too many and
using a string as a structured data structure: two things that are already
present way too much in the code base and should be avoided for future
design.

I suggest to put it in a structure, maybe AVIOSettings (or directly
AVGlobalSettings), as an array of protocols, and with int_cb while we are at
it:

typedef struct AVIOSettings {
    AVIOInterruptCB *int_cb;
    struct URLProtocol **protocols;
    unsigned nb_protocols;
}

Then, if someone really like strings for user interface, they can do:

int avio_settings_set_protocols_whitelist_string(AVIOSettings *settings,
                                                 const char *whitelist);

Regards,

-- 
  Nicolas George
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20160124/71125f3a/attachment.sig>


More information about the ffmpeg-devel mailing list