@ -1940,7 +1940,7 @@ static void decode_postinit(H264Context *h, int setup_finished)
break ;
case SEI_PIC_STRUCT_TOP_BOTTOM :
case SEI_PIC_STRUCT_BOTTOM_TOP :
if ( FIELD_OR_MBAFF_PICTURE )
if ( FIELD_OR_MBAFF_PICTURE ( h ) )
cur - > f . interlaced_frame = 1 ;
else
// try to flag soft telecine progressive
@ -1966,7 +1966,7 @@ static void decode_postinit(H264Context *h, int setup_finished)
cur - > f . interlaced_frame = ( h - > sei_ct_type & ( 1 < < 1 ) ) ! = 0 ;
} else {
/* Derive interlacing flag from used decoding process. */
cur - > f . interlaced_frame = FIELD_OR_MBAFF_PICTURE ;
cur - > f . interlaced_frame = FIELD_OR_MBAFF_PICTURE ( h ) ;
}
h - > prev_interlaced_frame = cur - > f . interlaced_frame ;
@ -3587,13 +3587,13 @@ static int decode_slice_header(H264Context *h, H264Context *h0)
h - > cur_pic_ptr - > frame_num = h - > frame_num ; // FIXME frame_num cleanup
av_assert1 ( h - > mb_num = = h - > mb_width * h - > mb_height ) ;
if ( first_mb_in_slice < < FIELD_OR_MBAFF_PICTURE > = h - > mb_num | |
if ( first_mb_in_slice < < FIELD_OR_MBAFF_PICTURE ( h ) > = h - > mb_num | |
first_mb_in_slice > = h - > mb_num ) {
av_log ( h - > avctx , AV_LOG_ERROR , " first_mb_in_slice overflow \n " ) ;
return - 1 ;
}
h - > resync_mb_x = h - > mb_x = first_mb_in_slice % h - > mb_width ;
h - > resync_mb_y = h - > mb_y = ( first_mb_in_slice / h - > mb_width ) < < FIELD_OR_MBAFF_PICTURE ;
h - > resync_mb_y = h - > mb_y = ( first_mb_in_slice / h - > mb_width ) < < FIELD_OR_MBAFF_PICTURE ( h ) ;
if ( h - > picture_structure = = PICT_BOTTOM_FIELD )
h - > resync_mb_y = h - > mb_y = h - > mb_y + 1 ;
av_assert1 ( h - > mb_y < h - > mb_height ) ;
@ -4078,7 +4078,7 @@ static int fill_filter_caches(H264Context *h, int mb_type)
/* CAVLC 8x8dct requires NNZ values for residual decoding that differ
* from what the loop filter needs */
if ( ! CABAC & & h - > pps . transform_8x8_mode ) {
if ( ! CABAC ( h ) & & h - > pps . transform_8x8_mode ) {
if ( IS_8x8DCT ( top_type ) ) {
nnz_cache [ 4 + 8 * 0 ] =
nnz_cache [ 5 + 8 * 0 ] = ( h - > cbp_table [ top_xy ] & 0x4000 ) > > 12 ;
@ -4314,7 +4314,7 @@ static int decode_slice(struct AVCodecContext *avctx, void *arg)
h - > mb_x = lf_x_start = 0 ;
decode_finish_row ( h ) ;
+ + h - > mb_y ;
if ( FIELD_OR_MBAFF_PICTURE ) {
if ( FIELD_OR_MBAFF_PICTURE ( h ) ) {
+ + h - > mb_y ;
if ( FRAME_MBAFF ( h ) & & h - > mb_y < h - > mb_height )
predict_field_decoding_flag ( h ) ;
@ -4361,7 +4361,7 @@ static int decode_slice(struct AVCodecContext *avctx, void *arg)
h - > mb_x = lf_x_start = 0 ;
decode_finish_row ( h ) ;
+ + h - > mb_y ;
if ( FIELD_OR_MBAFF_PICTURE ) {
if ( FIELD_OR_MBAFF_PICTURE ( h ) ) {
+ + h - > mb_y ;
if ( FRAME_MBAFF ( h ) & & h - > mb_y < h - > mb_height )
predict_field_decoding_flag ( h ) ;