static int decode_sequence_header_adv(VC1Context *v, GetBitContext *gb)

{

    v->res_rtm_flag = 1;

    v->level = get_bits(gb, 3);

    if(v->level >= 5)

    {

        av_log(v->s.avctx, AV_LOG_ERROR, "Reserved LEVEL %i\n",v->level);

    }

    v->chromaformat = get_bits(gb, 2);

    if (v->chromaformat != 1)

    {

        av_log(v->s.avctx, AV_LOG_ERROR,

               "Only 4:2:0 chroma format supported\n");

        return -1;

    }



    // (fps-2)/4 (->30)

    v->frmrtq_postproc = get_bits(gb, 3); //common

    // (bitrate-32kbps)/64kbps

    v->bitrtq_postproc = get_bits(gb, 5); //common

    v->postprocflag = get_bits(gb, 1); //common



    v->s.avctx->coded_width = (get_bits(gb, 12) + 1) << 1;

    v->s.avctx->coded_height = (get_bits(gb, 12) + 1) << 1;

    v->broadcast = get_bits1(gb);

    v->interlace = get_bits1(gb);

    if(v->interlace){

        av_log(v->s.avctx, AV_LOG_ERROR, "Interlaced mode not supported (yet)\n");

        return -1;

    }

    v->tfcntrflag = get_bits1(gb);

    v->finterpflag = get_bits1(gb);

    get_bits1(gb); // reserved

    v->psf = get_bits1(gb);

    if(v->psf) { //PsF, 6.1.13

        av_log(v->s.avctx, AV_LOG_ERROR, "Progressive Segmented Frame mode: not supported (yet)\n");

        return -1;

    }

    if(get_bits1(gb)) { //Display Info - decoding is not affected by it

        int w, h, ar = 0;

        av_log(v->s.avctx, AV_LOG_INFO, "Display extended info:\n");

        w = get_bits(gb, 14);

        h = get_bits(gb, 14);

        av_log(v->s.avctx, AV_LOG_INFO, "Display dimensions: %ix%i\n", w, h);

        //TODO: store aspect ratio in AVCodecContext

        if(get_bits1(gb))

            ar = get_bits(gb, 4);

        if(ar == 15) {

            w = get_bits(gb, 8);

            h = get_bits(gb, 8);

        }



        if(get_bits1(gb)){ //framerate stuff

            if(get_bits1(gb)) {

                get_bits(gb, 16);

            } else {

                get_bits(gb, 8);

                get_bits(gb, 4);

            }

        }



        if(get_bits1(gb)){

            v->color_prim = get_bits(gb, 8);

            v->transfer_char = get_bits(gb, 8);

            v->matrix_coef = get_bits(gb, 8);

        }

    }



    v->hrd_param_flag = get_bits1(gb);

    if(v->hrd_param_flag) {

        int i;

        v->hrd_num_leaky_buckets = get_bits(gb, 5);

        get_bits(gb, 4); //bitrate exponent

        get_bits(gb, 4); //buffer size exponent

        for(i = 0; i < v->hrd_num_leaky_buckets; i++) {

            get_bits(gb, 16); //hrd_rate[n]

            get_bits(gb, 16); //hrd_buffer[n]

        }

    }

    return 0;

}

static int decode_sequence_header_adv(VC1Context *v, GetBitContext *gb)

{

    v->res_rtm_flag = 1;

    v->level = get_bits(gb, 3);

    if(v->level >= 5)

    {

        av_log(v->s.avctx, AV_LOG_ERROR, "Reserved LEVEL %i\n",v->level);

    }

    v->chromaformat = get_bits(gb, 2);

    if (v->chromaformat != 1)

    {

        av_log(v->s.avctx, AV_LOG_ERROR,

               "Only 4:2:0 chroma format supported\n");

        return -1;

    }



    

    v->frmrtq_postproc = get_bits(gb, 3); 

    

    v->bitrtq_postproc = get_bits(gb, 5); 

    v->postprocflag = get_bits(gb, 1); 



    v->s.avctx->coded_width = (get_bits(gb, 12) + 1) << 1;

    v->s.avctx->coded_height = (get_bits(gb, 12) + 1) << 1;

    v->broadcast = get_bits1(gb);

    v->interlace = get_bits1(gb);

    if(v->interlace){

        av_log(v->s.avctx, AV_LOG_ERROR, "Interlaced mode not supported (yet)\n");

        return -1;

    }

    v->tfcntrflag = get_bits1(gb);

    v->finterpflag = get_bits1(gb);

    get_bits1(gb); 

    v->psf = get_bits1(gb);

    if(v->psf) { 

        av_log(v->s.avctx, AV_LOG_ERROR, "Progressive Segmented Frame mode: not supported (yet)\n");

        return -1;

    }

    if(get_bits1(gb)) { 

        int w, h, ar = 0;

        av_log(v->s.avctx, AV_LOG_INFO, "Display extended info:\n");

        w = get_bits(gb, 14);

        h = get_bits(gb, 14);

        av_log(v->s.avctx, AV_LOG_INFO, "Display dimensions: %ix%i\n", w, h);

        

        if(get_bits1(gb))

            ar = get_bits(gb, 4);

        if(ar == 15) {

            w = get_bits(gb, 8);

            h = get_bits(gb, 8);

        }



        if(get_bits1(gb)){ 

            if(get_bits1(gb)) {

                get_bits(gb, 16);

            } else {

                get_bits(gb, 8);

                get_bits(gb, 4);

            }

        }



        if(get_bits1(gb)){

            v->color_prim = get_bits(gb, 8);

            v->transfer_char = get_bits(gb, 8);

            v->matrix_coef = get_bits(gb, 8);

        }

    }



    v->hrd_param_flag = get_bits1(gb);

    if(v->hrd_param_flag) {

        int i;

        v->hrd_num_leaky_buckets = get_bits(gb, 5);

        get_bits(gb, 4); 

        get_bits(gb, 4); 

        for(i = 0; i < v->hrd_num_leaky_buckets; i++) {

            get_bits(gb, 16); 

            get_bits(gb, 16); 

        }

    }

    return 0;

}

        w = get_bits(gb, 14);         h = get_bits(gb, 14);
static int FUNC_0(VC1Context *VAR_0, GetBitContext *VAR_1)

{

    VAR_0->res_rtm_flag = 1;

    VAR_0->level = get_bits(VAR_1, 3);

    if(VAR_0->level >= 5)

    {

        av_log(VAR_0->s.avctx, AV_LOG_ERROR, "Reserved LEVEL %VAR_5\n",VAR_0->level);

    }

    VAR_0->chromaformat = get_bits(VAR_1, 2);

    if (VAR_0->chromaformat != 1)

    {

        av_log(VAR_0->s.avctx, AV_LOG_ERROR,

               "Only 4:2:0 chroma format supported\n");

        return -1;

    }



    

    VAR_0->frmrtq_postproc = get_bits(VAR_1, 3); 

    

    VAR_0->bitrtq_postproc = get_bits(VAR_1, 5); 

    VAR_0->postprocflag = get_bits(VAR_1, 1); 



    VAR_0->s.avctx->coded_width = (get_bits(VAR_1, 12) + 1) << 1;

    VAR_0->s.avctx->coded_height = (get_bits(VAR_1, 12) + 1) << 1;

    VAR_0->broadcast = get_bits1(VAR_1);

    VAR_0->interlace = get_bits1(VAR_1);

    if(VAR_0->interlace){

        av_log(VAR_0->s.avctx, AV_LOG_ERROR, "Interlaced mode not supported (yet)\n");

        return -1;

    }

    VAR_0->tfcntrflag = get_bits1(VAR_1);

    VAR_0->finterpflag = get_bits1(VAR_1);

    get_bits1(VAR_1); 

    VAR_0->psf = get_bits1(VAR_1);

    if(VAR_0->psf) { 

        av_log(VAR_0->s.avctx, AV_LOG_ERROR, "Progressive Segmented Frame mode: not supported (yet)\n");

        return -1;

    }

    if(get_bits1(VAR_1)) { 

        int VAR_2, VAR_3, VAR_4 = 0;

        av_log(VAR_0->s.avctx, AV_LOG_INFO, "Display extended info:\n");

        VAR_2 = get_bits(VAR_1, 14);

        VAR_3 = get_bits(VAR_1, 14);

        av_log(VAR_0->s.avctx, AV_LOG_INFO, "Display dimensions: %ix%VAR_5\n", VAR_2, VAR_3);

        

        if(get_bits1(VAR_1))

            VAR_4 = get_bits(VAR_1, 4);

        if(VAR_4 == 15) {

            VAR_2 = get_bits(VAR_1, 8);

            VAR_3 = get_bits(VAR_1, 8);

        }



        if(get_bits1(VAR_1)){ 

            if(get_bits1(VAR_1)) {

                get_bits(VAR_1, 16);

            } else {

                get_bits(VAR_1, 8);

                get_bits(VAR_1, 4);

            }

        }



        if(get_bits1(VAR_1)){

            VAR_0->color_prim = get_bits(VAR_1, 8);

            VAR_0->transfer_char = get_bits(VAR_1, 8);

            VAR_0->matrix_coef = get_bits(VAR_1, 8);

        }

    }



    VAR_0->hrd_param_flag = get_bits1(VAR_1);

    if(VAR_0->hrd_param_flag) {

        int VAR_5;

        VAR_0->hrd_num_leaky_buckets = get_bits(VAR_1, 5);

        get_bits(VAR_1, 4); 

        get_bits(VAR_1, 4); 

        for(VAR_5 = 0; VAR_5 < VAR_0->hrd_num_leaky_buckets; VAR_5++) {

            get_bits(VAR_1, 16); 

            get_bits(VAR_1, 16); 

        }

    }

    return 0;

}

static int FUNC_0(VC1Context *VAR_0, GetBitContext *VAR_1)
{ VAR_0->res_rtm_flag = 1; VAR_0->level = get_bits(VAR_1, 3); if(VAR_0->level >= 5)
{ av_log(VAR_0->s.avctx, AV_LOG_ERROR, "Reserved LEVEL %VAR_5\n",VAR_0->level); } VAR_0->chromaformat = get_bits(VAR_1, 2); if (VAR_0->chromaformat != 1)
{ av_log(VAR_0->s.avctx, AV_LOG_ERROR,
"Only 4:2:0 chroma format supported\n"); return -1; } VAR_0->frmrtq_postproc = get_bits(VAR_1, 3); VAR_0->bitrtq_postproc = get_bits(VAR_1, 5); VAR_0->postprocflag = get_bits(VAR_1, 1); VAR_0->s.avctx->coded_width = (get_bits(VAR_1, 12) + 1) << 1; VAR_0->s.avctx->coded_height = (get_bits(VAR_1, 12) + 1) << 1; VAR_0->broadcast = get_bits1(VAR_1); VAR_0->interlace = get_bits1(VAR_1); if(VAR_0->interlace){ av_log(VAR_0->s.avctx, AV_LOG_ERROR, "Interlaced mode not supported (yet)\n"); return -1; } VAR_0->tfcntrflag = get_bits1(VAR_1); VAR_0->finterpflag = get_bits1(VAR_1); get_bits1(VAR_1); VAR_0->psf = get_bits1(VAR_1); if(VAR_0->psf) { av_log(VAR_0->s.avctx, AV_LOG_ERROR, "Progressive Segmented Frame mode: not supported (yet)\n"); return -1; } if(get_bits1(VAR_1)) { int VAR_2, VAR_3, VAR_4 = 0; av_log(VAR_0->s.avctx, AV_LOG_INFO, "Display extended info:\n"); VAR_2 = get_bits(VAR_1, 14); VAR_3 = get_bits(VAR_1, 14); av_log(VAR_0->s.avctx, AV_LOG_INFO, "Display dimensions: %ix%VAR_5\n", VAR_2, VAR_3); if(get_bits1(VAR_1))
VAR_4 = get_bits(VAR_1, 4); if(VAR_4 == 15) { VAR_2 = get_bits(VAR_1, 8); VAR_3 = get_bits(VAR_1, 8); } if(get_bits1(VAR_1)){ if(get_bits1(VAR_1)) { get_bits(VAR_1, 16); } else { get_bits(VAR_1, 8); get_bits(VAR_1, 4); } } if(get_bits1(VAR_1)){ VAR_0->color_prim = get_bits(VAR_1, 8); VAR_0->transfer_char = get_bits(VAR_1, 8); VAR_0->matrix_coef = get_bits(VAR_1, 8); } } VAR_0->hrd_param_flag = get_bits1(VAR_1); if(VAR_0->hrd_param_flag) { int VAR_5; VAR_0->hrd_num_leaky_buckets = get_bits(VAR_1, 5); get_bits(VAR_1, 4); get_bits(VAR_1, 4); for(VAR_5 = 0; VAR_5 < VAR_0->hrd_num_leaky_buckets; VAR_5++) { get_bits(VAR_1, 16); get_bits(VAR_1, 16); } } return 0; }