int avformat_alloc_output_context2(AVFormatContext **avctx, AVOutputFormat *oformat,

                                   const char *format, const char *filename)

{

    AVFormatContext *s = avformat_alloc_context();

    int ret = 0;



    *avctx = NULL;

    if (!s)

        goto nomem;



    if (!oformat) {

        if (format) {

            oformat = av_guess_format(format, NULL, NULL);

            if (!oformat) {

                av_log(s, AV_LOG_ERROR, "Requested output format '%s' is not a suitable output format\n", format);

                ret = AVERROR(EINVAL);

                goto error;

            }

        } else {

            oformat = av_guess_format(NULL, filename, NULL);

            if (!oformat) {

                ret = AVERROR(EINVAL);

                av_log(s, AV_LOG_ERROR, "Unable to find a suitable output format for '%s'\n",

                       filename);

                goto error;

            }

        }

    }



    s->oformat = oformat;

    if (s->oformat->priv_data_size > 0) {

        s->priv_data = av_mallocz(s->oformat->priv_data_size);

        if (!s->priv_data)

            goto nomem;

        if (s->oformat->priv_class) {

            *(const AVClass**)s->priv_data= s->oformat->priv_class;

            av_opt_set_defaults(s->priv_data);

        }

    } else

        s->priv_data = NULL;



    if (filename)

        av_strlcpy(s->filename, filename, sizeof(s->filename));

    *avctx = s;

    return 0;

nomem:

    av_log(s, AV_LOG_ERROR, "Out of memory\n");

    ret = AVERROR(ENOMEM);

error:

    avformat_free_context(s);

    return ret;

}

int avformat_alloc_output_context2(AVFormatContext **avctx, AVOutputFormat *oformat,

                                   const char *format, const char *filename)

{

    AVFormatContext *s = avformat_alloc_context();

    int ret = 0;



    *avctx = NULL;

    if (!s)

        goto nomem;



    if (!oformat) {

        if (format) {

            oformat = av_guess_format(format, NULL, NULL);

            if (!oformat) {

                av_log(s, AV_LOG_ERROR, "Requested output format '%s' is not a suitable output format\n", format);

                ret = AVERROR(EINVAL);

                goto error;

            }

        } else {

            oformat = av_guess_format(NULL, filename, NULL);

            if (!oformat) {

                ret = AVERROR(EINVAL);

                av_log(s, AV_LOG_ERROR, "Unable to find a suitable output format for '%s'\n",

                       filename);

                goto error;

            }

        }

    }



    s->oformat = oformat;

    if (s->oformat->priv_data_size > 0) {

        s->priv_data = av_mallocz(s->oformat->priv_data_size);

        if (!s->priv_data)

            goto nomem;

        if (s->oformat->priv_class) {

            *(const AVClass**)s->priv_data= s->oformat->priv_class;

            av_opt_set_defaults(s->priv_data);

        }

    } else

        s->priv_data = NULL;



    if (filename)

        av_strlcpy(s->filename, filename, sizeof(s->filename));

    *avctx = s;

    return 0;

nomem:

    av_log(s, AV_LOG_ERROR, "Out of memory\n");

    ret = AVERROR(ENOMEM);

error:

    avformat_free_context(s);

    return ret;

}

int FUNC_0(AVFormatContext **VAR_0, AVOutputFormat *VAR_1,

                                   const char *VAR_2, const char *VAR_3)

{

    AVFormatContext *s = avformat_alloc_context();

    int VAR_4 = 0;



    *VAR_0 = NULL;

    if (!s)

        goto nomem;



    if (!VAR_1) {

        if (VAR_2) {

            VAR_1 = av_guess_format(VAR_2, NULL, NULL);

            if (!VAR_1) {

                av_log(s, AV_LOG_ERROR, "Requested output VAR_2 '%s' is not a suitable output VAR_2\n", VAR_2);

                VAR_4 = AVERROR(EINVAL);

                goto error;

            }

        } else {

            VAR_1 = av_guess_format(NULL, VAR_3, NULL);

            if (!VAR_1) {

                VAR_4 = AVERROR(EINVAL);

                av_log(s, AV_LOG_ERROR, "Unable to find a suitable output VAR_2 for '%s'\n",

                       VAR_3);

                goto error;

            }

        }

    }



    s->VAR_1 = VAR_1;

    if (s->VAR_1->priv_data_size > 0) {

        s->priv_data = av_mallocz(s->VAR_1->priv_data_size);

        if (!s->priv_data)

            goto nomem;

        if (s->VAR_1->priv_class) {

            *(const AVClass**)s->priv_data= s->VAR_1->priv_class;

            av_opt_set_defaults(s->priv_data);

        }

    } else

        s->priv_data = NULL;



    if (VAR_3)

        av_strlcpy(s->VAR_3, VAR_3, sizeof(s->VAR_3));

    *VAR_0 = s;

    return 0;

nomem:

    av_log(s, AV_LOG_ERROR, "Out of memory\n");

    VAR_4 = AVERROR(ENOMEM);

error:

    avformat_free_context(s);

    return VAR_4;

}

int FUNC_0(AVFormatContext **VAR_0, AVOutputFormat *VAR_1,
const char *VAR_2, const char *VAR_3)
{ AVFormatContext *s = avformat_alloc_context(); int VAR_4 = 0; *VAR_0 = NULL; if (!s)
goto nomem; if (!VAR_1) { if (VAR_2) { VAR_1 = av_guess_format(VAR_2, NULL, NULL); if (!VAR_1) { av_log(s, AV_LOG_ERROR, "Requested output VAR_2 '%s' is not a suitable output VAR_2\n", VAR_2); VAR_4 = AVERROR(EINVAL); goto error; } } else { VAR_1 = av_guess_format(NULL, VAR_3, NULL); if (!VAR_1) { VAR_4 = AVERROR(EINVAL); av_log(s, AV_LOG_ERROR, "Unable to find a suitable output VAR_2 for '%s'\n",
VAR_3); goto error; } } } s->VAR_1 = VAR_1; if (s->VAR_1->priv_data_size > 0) { s->priv_data = av_mallocz(s->VAR_1->priv_data_size); if (!s->priv_data)
goto nomem; if (s->VAR_1->priv_class) { *(const AVClass**)s->priv_data= s->VAR_1->priv_class; av_opt_set_defaults(s->priv_data); } } else s->priv_data = NULL; if (VAR_3)
av_strlcpy(s->VAR_3, VAR_3, sizeof(s->VAR_3)); *VAR_0 = s; return 0; nomem:
av_log(s, AV_LOG_ERROR, "Out of memory\n"); VAR_4 = AVERROR(ENOMEM); error:
avformat_free_context(s); return VAR_4; }