comparison h264_direct.c @ 11090:eda7b4f6db51 libavcodec

Remove FIXMEs for cases that are disallowed by the spec.
author michael
date Sun, 07 Feb 2010 15:13:56 +0000
parents 1bfb70c225bb
children 74748a220032
comparison
equal deleted inserted replaced
11089:68fa9b353337 11090:eda7b4f6db51
170 mb_xy= s->mb_x + (s->mb_y&~1)*s->mb_stride; 170 mb_xy= s->mb_x + (s->mb_y&~1)*s->mb_stride;
171 mb_type_col[0] = h->ref_list[1][0].mb_type[mb_xy]; 171 mb_type_col[0] = h->ref_list[1][0].mb_type[mb_xy];
172 mb_type_col[1] = h->ref_list[1][0].mb_type[mb_xy + s->mb_stride]; 172 mb_type_col[1] = h->ref_list[1][0].mb_type[mb_xy + s->mb_stride];
173 b8_stride *= 3; 173 b8_stride *= 3;
174 b4_stride *= 6; 174 b4_stride *= 6;
175 //FIXME IS_8X8(mb_type_col[0]) && !h->sps.direct_8x8_inference_flag 175
176 if( (mb_type_col[0] & MB_TYPE_16x16_OR_INTRA) 176 if( (mb_type_col[0] & MB_TYPE_16x16_OR_INTRA)
177 && (mb_type_col[1] & MB_TYPE_16x16_OR_INTRA) 177 && (mb_type_col[1] & MB_TYPE_16x16_OR_INTRA)
178 && !is_b8x8){ 178 && !is_b8x8){
179 sub_mb_type = MB_TYPE_16x16|MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_DIRECT2; /* B_SUB_8x8 */ 179 sub_mb_type = MB_TYPE_16x16|MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_DIRECT2; /* B_SUB_8x8 */
180 *mb_type |= MB_TYPE_16x8 |MB_TYPE_L0L1|MB_TYPE_DIRECT2; /* B_16x8 */ 180 *mb_type |= MB_TYPE_16x8 |MB_TYPE_L0L1|MB_TYPE_DIRECT2; /* B_16x8 */
355 } 355 }
356 if(h->ref_list[1][0].mbaff && IS_INTERLACED(mb_type_col[0])) 356 if(h->ref_list[1][0].mbaff && IS_INTERLACED(mb_type_col[0]))
357 ref_offset += 16; 357 ref_offset += 16;
358 358
359 if(IS_INTERLACED(*mb_type) != IS_INTERLACED(mb_type_col[0])){ 359 if(IS_INTERLACED(*mb_type) != IS_INTERLACED(mb_type_col[0])){
360 /* FIXME assumes direct_8x8_inference == 1 */
361 int y_shift = 2*!IS_INTERLACED(*mb_type); 360 int y_shift = 2*!IS_INTERLACED(*mb_type);
362 assert(h->sps.direct_8x8_inference_flag); 361 assert(h->sps.direct_8x8_inference_flag);
363 362
364 for(i8=0; i8<4; i8++){ 363 for(i8=0; i8<4; i8++){
365 const int x8 = i8&1; 364 const int x8 = i8&1;