int avcodec_open(AVCodecContext *avctx, AVCodec *codec)

{

    int ret;



    if(avctx->codec)

        return -1;



    avctx->codec = codec;

    avctx->codec_id = codec->id;

    avctx->frame_number = 0;

    if (codec->priv_data_size > 0) {

        avctx->priv_data = av_mallocz(codec->priv_data_size);

        if (!avctx->priv_data) 

            return -ENOMEM;

    } else {

        avctx->priv_data = NULL;

    }



    if(avctx->coded_width && avctx->coded_height)

        avcodec_set_dimensions(avctx, avctx->coded_width, avctx->coded_height);

    else if(avctx->width && avctx->height)

        avcodec_set_dimensions(avctx, avctx->width, avctx->height);



    if((avctx->coded_width||avctx->coded_height) && avcodec_check_dimensions(avctx,avctx->coded_width,avctx->coded_height)){

        av_freep(&avctx->priv_data);

        return -1;

    }



    ret = avctx->codec->init(avctx);

    if (ret < 0) {

        av_freep(&avctx->priv_data);

        return ret;

    }

    return 0;

}

int avcodec_open(AVCodecContext *avctx, AVCodec *codec)

{

    int ret;



    if(avctx->codec)

        return -1;



    avctx->codec = codec;

    avctx->codec_id = codec->id;

    avctx->frame_number = 0;

    if (codec->priv_data_size > 0) {

        avctx->priv_data = av_mallocz(codec->priv_data_size);

        if (!avctx->priv_data) 

            return -ENOMEM;

    } else {

        avctx->priv_data = NULL;

    }



    if(avctx->coded_width && avctx->coded_height)

        avcodec_set_dimensions(avctx, avctx->coded_width, avctx->coded_height);

    else if(avctx->width && avctx->height)

        avcodec_set_dimensions(avctx, avctx->width, avctx->height);



    if((avctx->coded_width||avctx->coded_height) && avcodec_check_dimensions(avctx,avctx->coded_width,avctx->coded_height)){

        av_freep(&avctx->priv_data);

        return -1;

    }



    ret = avctx->codec->init(avctx);

    if (ret < 0) {

        av_freep(&avctx->priv_data);

        return ret;

    }

    return 0;

}

int FUNC_0(AVCodecContext *VAR_0, AVCodec *VAR_1)

{

    int VAR_2;



    if(VAR_0->VAR_1)

        return -1;



    VAR_0->VAR_1 = VAR_1;

    VAR_0->codec_id = VAR_1->id;

    VAR_0->frame_number = 0;

    if (VAR_1->priv_data_size > 0) {

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

        if (!VAR_0->priv_data) 

            return -ENOMEM;

    } else {

        VAR_0->priv_data = NULL;

    }



    if(VAR_0->coded_width && VAR_0->coded_height)

        avcodec_set_dimensions(VAR_0, VAR_0->coded_width, VAR_0->coded_height);

    else if(VAR_0->width && VAR_0->height)

        avcodec_set_dimensions(VAR_0, VAR_0->width, VAR_0->height);



    if((VAR_0->coded_width||VAR_0->coded_height) && avcodec_check_dimensions(VAR_0,VAR_0->coded_width,VAR_0->coded_height)){

        av_freep(&VAR_0->priv_data);

        return -1;

    }



    VAR_2 = VAR_0->VAR_1->init(VAR_0);

    if (VAR_2 < 0) {

        av_freep(&VAR_0->priv_data);

        return VAR_2;

    }

    return 0;

}

int FUNC_0(AVCodecContext *VAR_0, AVCodec *VAR_1)
{ int VAR_2; if(VAR_0->VAR_1)
return -1; VAR_0->VAR_1 = VAR_1; VAR_0->codec_id = VAR_1->id; VAR_0->frame_number = 0; if (VAR_1->priv_data_size > 0) { VAR_0->priv_data = av_mallocz(VAR_1->priv_data_size); if (!VAR_0->priv_data)
return -ENOMEM; } else { VAR_0->priv_data = NULL; } if(VAR_0->coded_width && VAR_0->coded_height)
avcodec_set_dimensions(VAR_0, VAR_0->coded_width, VAR_0->coded_height); else if(VAR_0->width && VAR_0->height)
avcodec_set_dimensions(VAR_0, VAR_0->width, VAR_0->height); if((VAR_0->coded_width||VAR_0->coded_height) && avcodec_check_dimensions(VAR_0,VAR_0->coded_width,VAR_0->coded_height)){ av_freep(&VAR_0->priv_data); return -1; } VAR_2 = VAR_0->VAR_1->init(VAR_0); if (VAR_2 < 0) { av_freep(&VAR_0->priv_data); return VAR_2; } return 0; }