diff options
Diffstat (limited to 'libavcodec/h264_cavlc.c')
-rw-r--r-- | libavcodec/h264_cavlc.c | 66 |
1 files changed, 33 insertions, 33 deletions
diff --git a/libavcodec/h264_cavlc.c b/libavcodec/h264_cavlc.c index 24db71ff5d..4ccfb4ce1d 100644 --- a/libavcodec/h264_cavlc.c +++ b/libavcodec/h264_cavlc.c @@ -718,12 +718,12 @@ int ff_h264_decode_mb_cavlc(H264Context *h, H264SliceContext *sl) down the code */ if (sl->slice_type_nos != AV_PICTURE_TYPE_I) { if (sl->mb_skip_run == -1) - sl->mb_skip_run = get_ue_golomb_long(&h->gb); + sl->mb_skip_run = get_ue_golomb_long(&sl->gb); if (sl->mb_skip_run--) { if (FRAME_MBAFF(h) && (sl->mb_y & 1) == 0) { if (sl->mb_skip_run == 0) - h->mb_mbaff = h->mb_field_decoding_flag = get_bits1(&h->gb); + h->mb_mbaff = h->mb_field_decoding_flag = get_bits1(&sl->gb); } decode_mb_skip(h, sl); return 0; @@ -731,12 +731,12 @@ int ff_h264_decode_mb_cavlc(H264Context *h, H264SliceContext *sl) } if (FRAME_MBAFF(h)) { if ((sl->mb_y & 1) == 0) - h->mb_mbaff = h->mb_field_decoding_flag = get_bits1(&h->gb); + h->mb_mbaff = h->mb_field_decoding_flag = get_bits1(&sl->gb); } sl->prev_mb_skipped = 0; - mb_type= get_ue_golomb(&h->gb); + mb_type= get_ue_golomb(&sl->gb); if (sl->slice_type_nos == AV_PICTURE_TYPE_B) { if(mb_type < 23){ partition_count= b_mb_type_info[mb_type].partition_count; @@ -778,12 +778,12 @@ decode_intra_mb: h->sps.bit_depth_luma; // We assume these blocks are very rare so we do not optimize it. - sl->intra_pcm_ptr = align_get_bits(&h->gb); - if (get_bits_left(&h->gb) < mb_size) { + sl->intra_pcm_ptr = align_get_bits(&sl->gb); + if (get_bits_left(&sl->gb) < mb_size) { av_log(h->avctx, AV_LOG_ERROR, "Not enough data for an intra PCM block.\n"); return AVERROR_INVALIDDATA; } - skip_bits_long(&h->gb, mb_size); + skip_bits_long(&sl->gb, mb_size); // In deblocking, the quantizer is 0 h->cur_pic.qscale_table[mb_xy] = 0; @@ -807,7 +807,7 @@ decode_intra_mb: if(IS_INTRA4x4(mb_type)){ int i; int di = 1; - if(dct8x8_allowed && get_bits1(&h->gb)){ + if(dct8x8_allowed && get_bits1(&sl->gb)){ mb_type |= MB_TYPE_8x8DCT; di = 4; } @@ -816,8 +816,8 @@ decode_intra_mb: for(i=0; i<16; i+=di){ int mode = pred_intra_mode(h, sl, i); - if(!get_bits1(&h->gb)){ - const int rem_mode= get_bits(&h->gb, 3); + if(!get_bits1(&sl->gb)){ + const int rem_mode= get_bits(&sl->gb, 3); mode = rem_mode + (rem_mode >= mode); } @@ -835,7 +835,7 @@ decode_intra_mb: return -1; } if(decode_chroma){ - pred_mode= ff_h264_check_intra_pred_mode(h, sl, get_ue_golomb_31(&h->gb), 1); + pred_mode= ff_h264_check_intra_pred_mode(h, sl, get_ue_golomb_31(&sl->gb), 1); if(pred_mode < 0) return -1; sl->chroma_pred_mode = pred_mode; @@ -847,7 +847,7 @@ decode_intra_mb: if (sl->slice_type_nos == AV_PICTURE_TYPE_B) { for(i=0; i<4; i++){ - sl->sub_mb_type[i]= get_ue_golomb_31(&h->gb); + sl->sub_mb_type[i]= get_ue_golomb_31(&sl->gb); if(sl->sub_mb_type[i] >=13){ av_log(h->avctx, AV_LOG_ERROR, "B sub_mb_type %u out of range at %d %d\n", sl->sub_mb_type[i], sl->mb_x, sl->mb_y); return -1; @@ -865,7 +865,7 @@ decode_intra_mb: }else{ av_assert2(sl->slice_type_nos == AV_PICTURE_TYPE_P); //FIXME SP correct ? for(i=0; i<4; i++){ - sl->sub_mb_type[i]= get_ue_golomb_31(&h->gb); + sl->sub_mb_type[i]= get_ue_golomb_31(&sl->gb); if(sl->sub_mb_type[i] >=4){ av_log(h->avctx, AV_LOG_ERROR, "P sub_mb_type %u out of range at %d %d\n", sl->sub_mb_type[i], sl->mb_x, sl->mb_y); return -1; @@ -884,9 +884,9 @@ decode_intra_mb: if(ref_count == 1){ tmp= 0; }else if(ref_count == 2){ - tmp= get_bits1(&h->gb)^1; + tmp= get_bits1(&sl->gb)^1; }else{ - tmp= get_ue_golomb_31(&h->gb); + tmp= get_ue_golomb_31(&sl->gb); if(tmp>=ref_count){ av_log(h->avctx, AV_LOG_ERROR, "ref %u overflow\n", tmp); return -1; @@ -920,8 +920,8 @@ decode_intra_mb: const int index= 4*i + block_width*j; int16_t (* mv_cache)[2]= &sl->mv_cache[list][ scan8[index] ]; pred_motion(h, sl, index, block_width, list, sl->ref_cache[list][ scan8[index] ], &mx, &my); - mx += get_se_golomb(&h->gb); - my += get_se_golomb(&h->gb); + mx += get_se_golomb(&sl->gb); + my += get_se_golomb(&sl->gb); tprintf(h->avctx, "final mv:%d %d\n", mx, my); if(IS_SUB_8X8(sub_mb_type)){ @@ -959,9 +959,9 @@ decode_intra_mb: if(local_ref_count[list]==1){ val= 0; } else if(local_ref_count[list]==2){ - val= get_bits1(&h->gb)^1; + val= get_bits1(&sl->gb)^1; }else{ - val= get_ue_golomb_31(&h->gb); + val= get_ue_golomb_31(&sl->gb); if (val >= local_ref_count[list]){ av_log(h->avctx, AV_LOG_ERROR, "ref %u overflow\n", val); return -1; @@ -973,8 +973,8 @@ decode_intra_mb: for (list = 0; list < sl->list_count; list++) { if(IS_DIR(mb_type, 0, list)){ pred_motion(h, sl, 0, 4, list, sl->ref_cache[list][ scan8[0] ], &mx, &my); - mx += get_se_golomb(&h->gb); - my += get_se_golomb(&h->gb); + mx += get_se_golomb(&sl->gb); + my += get_se_golomb(&sl->gb); tprintf(h->avctx, "final mv:%d %d\n", mx, my); fill_rectangle(sl->mv_cache[list][ scan8[0] ], 4, 4, 8, pack16to32(mx,my), 4); @@ -989,9 +989,9 @@ decode_intra_mb: if(local_ref_count[list] == 1) { val= 0; } else if(local_ref_count[list] == 2) { - val= get_bits1(&h->gb)^1; + val= get_bits1(&sl->gb)^1; }else{ - val= get_ue_golomb_31(&h->gb); + val= get_ue_golomb_31(&sl->gb); if (val >= local_ref_count[list]){ av_log(h->avctx, AV_LOG_ERROR, "ref %u overflow\n", val); return -1; @@ -1007,8 +1007,8 @@ decode_intra_mb: unsigned int val; if(IS_DIR(mb_type, i, list)){ pred_16x8_motion(h, sl, 8*i, list, sl->ref_cache[list][scan8[0] + 16*i], &mx, &my); - mx += get_se_golomb(&h->gb); - my += get_se_golomb(&h->gb); + mx += get_se_golomb(&sl->gb); + my += get_se_golomb(&sl->gb); tprintf(h->avctx, "final mv:%d %d\n", mx, my); val= pack16to32(mx,my); @@ -1026,9 +1026,9 @@ decode_intra_mb: if(local_ref_count[list]==1){ val= 0; } else if(local_ref_count[list]==2){ - val= get_bits1(&h->gb)^1; + val= get_bits1(&sl->gb)^1; }else{ - val= get_ue_golomb_31(&h->gb); + val= get_ue_golomb_31(&sl->gb); if (val >= local_ref_count[list]){ av_log(h->avctx, AV_LOG_ERROR, "ref %u overflow\n", val); return -1; @@ -1044,8 +1044,8 @@ decode_intra_mb: unsigned int val; if(IS_DIR(mb_type, i, list)){ pred_8x16_motion(h, sl, i*4, list, sl->ref_cache[list][ scan8[0] + 2*i ], &mx, &my); - mx += get_se_golomb(&h->gb); - my += get_se_golomb(&h->gb); + mx += get_se_golomb(&sl->gb); + my += get_se_golomb(&sl->gb); tprintf(h->avctx, "final mv:%d %d\n", mx, my); val= pack16to32(mx,my); @@ -1061,7 +1061,7 @@ decode_intra_mb: write_back_motion(h, sl, mb_type); if(!IS_INTRA16x16(mb_type)){ - cbp= get_ue_golomb(&h->gb); + cbp= get_ue_golomb(&sl->gb); if(decode_chroma){ if(cbp > 47){ @@ -1086,7 +1086,7 @@ decode_intra_mb: } if(dct8x8_allowed && (cbp&15) && !IS_INTRA(mb_type)){ - mb_type |= MB_TYPE_8x8DCT*get_bits1(&h->gb); + mb_type |= MB_TYPE_8x8DCT*get_bits1(&sl->gb); } sl->cbp= h->cbp_table[mb_xy]= cbp; @@ -1096,7 +1096,7 @@ decode_intra_mb: int i4x4, i8x8, chroma_idx; int dquant; int ret; - GetBitContext *gb = &h->gb; + GetBitContext *gb = &sl->gb; const uint8_t *scan, *scan8x8; const int max_qp = 51 + 6*(h->sps.bit_depth_luma-8); @@ -1108,7 +1108,7 @@ decode_intra_mb: scan = sl->qscale ? h->zigzag_scan : h->zigzag_scan_q0; } - dquant= get_se_golomb(&h->gb); + dquant= get_se_golomb(&sl->gb); sl->qscale += dquant; |