int avio_open2(AVIOContext **s, const char *filename, int flags,

               const AVIOInterruptCB *int_cb, AVDictionary **options)

{

    AVIOInternal *internal;

    const URLProtocol **protocols;

    URLContext *h;

    int err;



    protocols = ffurl_get_protocols(NULL, NULL);

    if (!protocols)

        return AVERROR(ENOMEM);



    err = ffurl_open(&h, filename, flags, int_cb, options, protocols);

    if (err < 0) {

        av_freep(&protocols);

        return err;

    }



    err = ffio_fdopen(s, h);

    if (err < 0) {

        ffurl_close(h);

        av_freep(&protocols);

        return err;

    }



    internal = (*s)->opaque;

    internal->protocols = protocols;



    return 0;

}

int avio_open2(AVIOContext **s, const char *filename, int flags,

               const AVIOInterruptCB *int_cb, AVDictionary **options)

{

    AVIOInternal *internal;

    const URLProtocol **protocols;

    URLContext *h;

    int err;



    protocols = ffurl_get_protocols(NULL, NULL);

    if (!protocols)

        return AVERROR(ENOMEM);



    err = ffurl_open(&h, filename, flags, int_cb, options, protocols);

    if (err < 0) {

        av_freep(&protocols);

        return err;

    }



    err = ffio_fdopen(s, h);

    if (err < 0) {

        ffurl_close(h);

        av_freep(&protocols);

        return err;

    }



    internal = (*s)->opaque;

    internal->protocols = protocols;



    return 0;

}

    protocols = ffurl_get_protocols(NULL, NULL);
int FUNC_0(AVIOContext **VAR_0, const char *VAR_1, int VAR_2,

               const AVIOInterruptCB *VAR_3, AVDictionary **VAR_4)

{

    AVIOInternal *internal;

    const URLProtocol **VAR_5;

    URLContext *h;

    int VAR_6;



    VAR_5 = ffurl_get_protocols(NULL, NULL);

    if (!VAR_5)

        return AVERROR(ENOMEM);



    VAR_6 = ffurl_open(&h, VAR_1, VAR_2, VAR_3, VAR_4, VAR_5);

    if (VAR_6 < 0) {

        av_freep(&VAR_5);

        return VAR_6;

    }



    VAR_6 = ffio_fdopen(VAR_0, h);

    if (VAR_6 < 0) {

        ffurl_close(h);

        av_freep(&VAR_5);

        return VAR_6;

    }



    internal = (*VAR_0)->opaque;

    internal->VAR_5 = VAR_5;



    return 0;

}

int FUNC_0(AVIOContext **VAR_0, const char *VAR_1, int VAR_2,
const AVIOInterruptCB *VAR_3, AVDictionary **VAR_4)
{ AVIOInternal *internal; const URLProtocol **VAR_5; URLContext *h; int VAR_6; VAR_5 = ffurl_get_protocols(NULL, NULL); if (!VAR_5)
return AVERROR(ENOMEM); VAR_6 = ffurl_open(&h, VAR_1, VAR_2, VAR_3, VAR_4, VAR_5); if (VAR_6 < 0) { av_freep(&VAR_5); return VAR_6; } VAR_6 = ffio_fdopen(VAR_0, h); if (VAR_6 < 0) { ffurl_close(h); av_freep(&VAR_5); return VAR_6; } internal = (*VAR_0)->opaque; internal->VAR_5 = VAR_5; return 0; }