static void fill_mbaff_ref_list(H264Context *h){

    int list, i, j;

    for(list=0; list<2; list++){

        for(i=0; i<h->ref_count[list]; i++){

            Picture *frame = &h->ref_list[list][i];

            Picture *field = &h->ref_list[list][16+2*i];

            field[0] = *frame;

            for(j=0; j<3; j++)

                field[0].linesize[j] <<= 1;

            field[1] = field[0];

            for(j=0; j<3; j++)

                field[1].data[j] += frame->linesize[j];



            h->luma_weight[list][16+2*i] = h->luma_weight[list][16+2*i+1] = h->luma_weight[list][i];

            h->luma_offset[list][16+2*i] = h->luma_offset[list][16+2*i+1] = h->luma_offset[list][i];

            for(j=0; j<2; j++){

                h->chroma_weight[list][16+2*i][j] = h->chroma_weight[list][16+2*i+1][j] = h->chroma_weight[list][i][j];

                h->chroma_offset[list][16+2*i][j] = h->chroma_offset[list][16+2*i+1][j] = h->chroma_offset[list][i][j];

            }

        }

    }

    for(j=0; j<h->ref_count[1]; j++){

        for(i=0; i<h->ref_count[0]; i++)

            h->implicit_weight[j][16+2*i] = h->implicit_weight[j][16+2*i+1] = h->implicit_weight[j][i];

        memcpy(h->implicit_weight[16+2*j],   h->implicit_weight[j], sizeof(*h->implicit_weight));

        memcpy(h->implicit_weight[16+2*j+1], h->implicit_weight[j], sizeof(*h->implicit_weight));

    }

}

static void fill_mbaff_ref_list(H264Context *h){

    int list, i, j;

    for(list=0; list<2; list++){

        for(i=0; i<h->ref_count[list]; i++){

            Picture *frame = &h->ref_list[list][i];

            Picture *field = &h->ref_list[list][16+2*i];

            field[0] = *frame;

            for(j=0; j<3; j++)

                field[0].linesize[j] <<= 1;

            field[1] = field[0];

            for(j=0; j<3; j++)

                field[1].data[j] += frame->linesize[j];



            h->luma_weight[list][16+2*i] = h->luma_weight[list][16+2*i+1] = h->luma_weight[list][i];

            h->luma_offset[list][16+2*i] = h->luma_offset[list][16+2*i+1] = h->luma_offset[list][i];

            for(j=0; j<2; j++){

                h->chroma_weight[list][16+2*i][j] = h->chroma_weight[list][16+2*i+1][j] = h->chroma_weight[list][i][j];

                h->chroma_offset[list][16+2*i][j] = h->chroma_offset[list][16+2*i+1][j] = h->chroma_offset[list][i][j];

            }

        }

    }

    for(j=0; j<h->ref_count[1]; j++){

        for(i=0; i<h->ref_count[0]; i++)

            h->implicit_weight[j][16+2*i] = h->implicit_weight[j][16+2*i+1] = h->implicit_weight[j][i];

        memcpy(h->implicit_weight[16+2*j],   h->implicit_weight[j], sizeof(*h->implicit_weight));

        memcpy(h->implicit_weight[16+2*j+1], h->implicit_weight[j], sizeof(*h->implicit_weight));

    }

}

static void FUNC_0(H264Context *VAR_0){

    int VAR_1, VAR_2, VAR_3;

    for(VAR_1=0; VAR_1<2; VAR_1++){

        for(VAR_2=0; VAR_2<VAR_0->ref_count[VAR_1]; VAR_2++){

            Picture *frame = &VAR_0->ref_list[VAR_1][VAR_2];

            Picture *field = &VAR_0->ref_list[VAR_1][16+2*VAR_2];

            field[0] = *frame;

            for(VAR_3=0; VAR_3<3; VAR_3++)

                field[0].linesize[VAR_3] <<= 1;

            field[1] = field[0];

            for(VAR_3=0; VAR_3<3; VAR_3++)

                field[1].data[VAR_3] += frame->linesize[VAR_3];



            VAR_0->luma_weight[VAR_1][16+2*VAR_2] = VAR_0->luma_weight[VAR_1][16+2*VAR_2+1] = VAR_0->luma_weight[VAR_1][VAR_2];

            VAR_0->luma_offset[VAR_1][16+2*VAR_2] = VAR_0->luma_offset[VAR_1][16+2*VAR_2+1] = VAR_0->luma_offset[VAR_1][VAR_2];

            for(VAR_3=0; VAR_3<2; VAR_3++){

                VAR_0->chroma_weight[VAR_1][16+2*VAR_2][VAR_3] = VAR_0->chroma_weight[VAR_1][16+2*VAR_2+1][VAR_3] = VAR_0->chroma_weight[VAR_1][VAR_2][VAR_3];

                VAR_0->chroma_offset[VAR_1][16+2*VAR_2][VAR_3] = VAR_0->chroma_offset[VAR_1][16+2*VAR_2+1][VAR_3] = VAR_0->chroma_offset[VAR_1][VAR_2][VAR_3];

            }

        }

    }

    for(VAR_3=0; VAR_3<VAR_0->ref_count[1]; VAR_3++){

        for(VAR_2=0; VAR_2<VAR_0->ref_count[0]; VAR_2++)

            VAR_0->implicit_weight[VAR_3][16+2*VAR_2] = VAR_0->implicit_weight[VAR_3][16+2*VAR_2+1] = VAR_0->implicit_weight[VAR_3][VAR_2];

        memcpy(VAR_0->implicit_weight[16+2*VAR_3],   VAR_0->implicit_weight[VAR_3], sizeof(*VAR_0->implicit_weight));

        memcpy(VAR_0->implicit_weight[16+2*VAR_3+1], VAR_0->implicit_weight[VAR_3], sizeof(*VAR_0->implicit_weight));

    }

}

static void FUNC_0(H264Context *VAR_0){ int VAR_1, VAR_2, VAR_3; for(VAR_1=0; VAR_1<2; VAR_1++){ for(VAR_2=0; VAR_2<VAR_0->ref_count[VAR_1]; VAR_2++){ Picture *frame = &VAR_0->ref_list[VAR_1][VAR_2]; Picture *field = &VAR_0->ref_list[VAR_1][16+2*VAR_2]; field[0] = *frame; for(VAR_3=0; VAR_3<3; VAR_3++) field[0].linesize[VAR_3] <<= 1; field[1] = field[0]; for(VAR_3=0; VAR_3<3; VAR_3++) field[1].data[VAR_3] += frame->linesize[VAR_3]; VAR_0->luma_weight[VAR_1][16+2*VAR_2] = VAR_0->luma_weight[VAR_1][16+2*VAR_2+1] = VAR_0->luma_weight[VAR_1][VAR_2]; VAR_0->luma_offset[VAR_1][16+2*VAR_2] = VAR_0->luma_offset[VAR_1][16+2*VAR_2+1] = VAR_0->luma_offset[VAR_1][VAR_2]; for(VAR_3=0; VAR_3<2; VAR_3++){ VAR_0->chroma_weight[VAR_1][16+2*VAR_2][VAR_3] = VAR_0->chroma_weight[VAR_1][16+2*VAR_2+1][VAR_3] = VAR_0->chroma_weight[VAR_1][VAR_2][VAR_3]; VAR_0->chroma_offset[VAR_1][16+2*VAR_2][VAR_3] = VAR_0->chroma_offset[VAR_1][16+2*VAR_2+1][VAR_3] = VAR_0->chroma_offset[VAR_1][VAR_2][VAR_3]; } } } for(VAR_3=0; VAR_3<VAR_0->ref_count[1]; VAR_3++){ for(VAR_2=0; VAR_2<VAR_0->ref_count[0]; VAR_2++) VAR_0->implicit_weight[VAR_3][16+2*VAR_2] = VAR_0->implicit_weight[VAR_3][16+2*VAR_2+1] = VAR_0->implicit_weight[VAR_3][VAR_2]; memcpy(VAR_0->implicit_weight[16+2*VAR_3],   VAR_0->implicit_weight[VAR_3], sizeof(*VAR_0->implicit_weight)); memcpy(VAR_0->implicit_weight[16+2*VAR_3+1], VAR_0->implicit_weight[VAR_3], sizeof(*VAR_0->implicit_weight)); } }