comparison h264.c @ 7918:84b37de61d98 libavcodec

Field -> MBAFF direct mode can use data from fields that are not in the reference list. Follow the spec and no comment on the sanity of this design ... Fixes HPCAMAPALQ_BRCM_B
author michael
date Wed, 24 Sep 2008 23:24:24 +0000
parents 8eb69709a934
children 17b22bf9fac6
comparison
equal deleted inserted replaced
7917:518c86ed8008 7918:84b37de61d98
1006 int cur_poc = s->current_picture_ptr->poc; 1006 int cur_poc = s->current_picture_ptr->poc;
1007 int *col_poc = h->ref_list[1]->field_poc; 1007 int *col_poc = h->ref_list[1]->field_poc;
1008 int col_parity = FFABS(col_poc[0] - cur_poc) >= FFABS(col_poc[1] - cur_poc); 1008 int col_parity = FFABS(col_poc[0] - cur_poc) >= FFABS(col_poc[1] - cur_poc);
1009 mb_xy= s->mb_x + ((s->mb_y&~1) + col_parity)*s->mb_stride; 1009 mb_xy= s->mb_x + ((s->mb_y&~1) + col_parity)*s->mb_stride;
1010 b8_stride = 0; 1010 b8_stride = 0;
1011 }else if(!(s->picture_structure & h->ref_list[1][0].reference)){// FL -> FL & differ parity 1011 }else if(!(s->picture_structure & h->ref_list[1][0].reference) && !h->ref_list[1][0].mbaff){// FL -> FL & differ parity
1012 int fieldoff= 2*(h->ref_list[1][0].reference)-3; 1012 int fieldoff= 2*(h->ref_list[1][0].reference)-3;
1013 mb_xy += s->mb_stride*fieldoff; 1013 mb_xy += s->mb_stride*fieldoff;
1014 } 1014 }
1015 goto single_col; 1015 goto single_col;
1016 }else{ // AFL/AFR/FR/FL -> AFR/FR 1016 }else{ // AFL/AFR/FR/FL -> AFR/FR