diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-03-21 12:58:00 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-03-21 12:58:00 +0100 |
commit | 92656787cfeaf28af368bd4c20ffbaedc8ad3ca9 (patch) | |
tree | e02cc36e4c072e410ff7252b5599f56f186623ed | |
parent | bf4d0f8328c8f64611ca44a6ffdc30ca4f028249 (diff) | |
parent | 6d2b6f21eb45ffbda1103c772060303648714832 (diff) | |
download | ffmpeg-92656787cfeaf28af368bd4c20ffbaedc8ad3ca9.tar.gz |
Merge commit '6d2b6f21eb45ffbda1103c772060303648714832'
* commit '6d2b6f21eb45ffbda1103c772060303648714832':
h264: add a parameter to the CABAC macro.
h264: add a parameter to the FIELD_OR_MBAFF_PICTURE macro.
Conflicts:
libavcodec/h264.c
libavcodec/h264_cabac.c
libavcodec/h264_cavlc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavcodec/dxva2_h264.c | 2 | ||||
-rw-r--r-- | libavcodec/h264.c | 14 | ||||
-rw-r--r-- | libavcodec/h264.h | 8 | ||||
-rw-r--r-- | libavcodec/h264_cabac.c | 4 | ||||
-rw-r--r-- | libavcodec/h264_cavlc.c | 2 | ||||
-rw-r--r-- | libavcodec/h264_loopfilter.c | 2 | ||||
-rw-r--r-- | libavcodec/h264_mvpred.h | 8 | ||||
-rw-r--r-- | libavcodec/vaapi_h264.c | 2 |
8 files changed, 21 insertions, 21 deletions
diff --git a/libavcodec/dxva2_h264.c b/libavcodec/dxva2_h264.c index 355276b851..10905026be 100644 --- a/libavcodec/dxva2_h264.c +++ b/libavcodec/dxva2_h264.c @@ -206,7 +206,7 @@ static void fill_slice_long(AVCodecContext *avctx, DXVA_Slice_H264_Long *slice, slice->SliceBytesInBuffer = size; slice->wBadSliceChopping = 0; - slice->first_mb_in_slice = (h->mb_y >> FIELD_OR_MBAFF_PICTURE) * h->mb_width + h->mb_x; + slice->first_mb_in_slice = (h->mb_y >> FIELD_OR_MBAFF_PICTURE(h)) * h->mb_width + h->mb_x; slice->NumMbsForSlice = 0; /* XXX it is set once we have all slices */ slice->BitOffsetToSliceData = get_bits_count(&h->gb); slice->slice_type = ff_h264_get_slice_type(h); diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 6aed5841c3..87322a2b83 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -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); diff --git a/libavcodec/h264.h b/libavcodec/h264.h index 8d674aa072..f20401dc34 100644 --- a/libavcodec/h264.h +++ b/libavcodec/h264.h @@ -81,10 +81,10 @@ #define LBOT 0 #define LEFT(i) 0 #endif -#define FIELD_OR_MBAFF_PICTURE (FRAME_MBAFF(h) || FIELD_PICTURE(h)) +#define FIELD_OR_MBAFF_PICTURE(h) (FRAME_MBAFF(h) || FIELD_PICTURE(h)) #ifndef CABAC -#define CABAC h->pps.cabac +#define CABAC(h) h->pps.cabac #endif #define CHROMA (h->sps.chroma_format_idc) @@ -911,7 +911,7 @@ static av_always_inline void write_back_motion_list(H264Context *h, AV_COPY128(mv_dst + 1 * b_stride, mv_src + 8 * 1); AV_COPY128(mv_dst + 2 * b_stride, mv_src + 8 * 2); AV_COPY128(mv_dst + 3 * b_stride, mv_src + 8 * 3); - if (CABAC) { + if (CABAC(h)) { uint8_t (*mvd_dst)[2] = &h->mvd_table[list][FMO ? 8 * h->mb_xy : h->mb2br_xy[h->mb_xy]]; uint8_t(*mvd_src)[2] = &h->mvd_cache[list][scan8[0]]; @@ -950,7 +950,7 @@ static av_always_inline void write_back_motion(H264Context *h, int mb_type) if (USES_LIST(mb_type, 1)) write_back_motion_list(h, b_stride, b_xy, b8_xy, mb_type, 1); - if (h->slice_type_nos == AV_PICTURE_TYPE_B && CABAC) { + if (h->slice_type_nos == AV_PICTURE_TYPE_B && CABAC(h)) { if (IS_8X8(mb_type)) { uint8_t *direct_table = &h->direct_table[4 * h->mb_xy]; direct_table[1] = h->sub_mb_type[1] >> 1; diff --git a/libavcodec/h264_cabac.c b/libavcodec/h264_cabac.c index 55a0618d42..6f7224e013 100644 --- a/libavcodec/h264_cabac.c +++ b/libavcodec/h264_cabac.c @@ -25,7 +25,7 @@ * @author Michael Niedermayer <michaelni@gmx.at> */ -#define CABAC 1 +#define CABAC(h) 1 #define UNCHECKED_BITSTREAM_READER 1 #include "config.h" @@ -2310,7 +2310,7 @@ decode_intra_mb: } } if (h->top_type && !IS_8x8DCT(h->top_type)){ - uint32_t top_empty = CABAC && !IS_INTRA(mb_type) ? 0 : 0x40404040; + uint32_t top_empty = CABAC(h) && !IS_INTRA(mb_type) ? 0 : 0x40404040; AV_WN32A(&nnz_cache[4+8* 0], top_empty); AV_WN32A(&nnz_cache[4+8* 5], top_empty); AV_WN32A(&nnz_cache[4+8*10], top_empty); diff --git a/libavcodec/h264_cavlc.c b/libavcodec/h264_cavlc.c index d1dcb2ca51..63f8d7826f 100644 --- a/libavcodec/h264_cavlc.c +++ b/libavcodec/h264_cavlc.c @@ -25,7 +25,7 @@ * @author Michael Niedermayer <michaelni@gmx.at> */ -#define CABAC 0 +#define CABAC(h) 0 #define UNCHECKED_BITSTREAM_READER 1 #include "internal.h" diff --git a/libavcodec/h264_loopfilter.c b/libavcodec/h264_loopfilter.c index f383bc17eb..e617588d5a 100644 --- a/libavcodec/h264_loopfilter.c +++ b/libavcodec/h264_loopfilter.c @@ -497,7 +497,7 @@ static av_always_inline void filter_mb_dir(H264Context *h, int mb_x, int mb_y, u if (IS_INTRA(mb_type | h->cur_pic.mb_type[mbn_xy])) { AV_WN64A(bS, 0x0003000300030003ULL); } else { - if (!CABAC && IS_8x8DCT(h->cur_pic.mb_type[mbn_xy])) { + if (!CABAC(h) && IS_8x8DCT(h->cur_pic.mb_type[mbn_xy])) { bS[0]= 1+((h->cbp_table[mbn_xy] & 0x4000)||h->non_zero_count_cache[scan8[0]+0]); bS[1]= 1+((h->cbp_table[mbn_xy] & 0x4000)||h->non_zero_count_cache[scan8[0]+1]); bS[2]= 1+((h->cbp_table[mbn_xy] & 0x8000)||h->non_zero_count_cache[scan8[0]+2]); diff --git a/libavcodec/h264_mvpred.h b/libavcodec/h264_mvpred.h index 0a184b984c..361c1d7793 100644 --- a/libavcodec/h264_mvpred.h +++ b/libavcodec/h264_mvpred.h @@ -544,7 +544,7 @@ static void fill_decode_caches(H264Context *h, int mb_type) AV_COPY32(&nnz_cache[4 + 8 * 10], &nnz[4 * 9]); } } else { - uint32_t top_empty = CABAC && !IS_INTRA(mb_type) ? 0 : 0x40404040; + uint32_t top_empty = CABAC(h) && !IS_INTRA(mb_type) ? 0 : 0x40404040; AV_WN32A(&nnz_cache[4 + 8 * 0], top_empty); AV_WN32A(&nnz_cache[4 + 8 * 5], top_empty); AV_WN32A(&nnz_cache[4 + 8 * 10], top_empty); @@ -575,11 +575,11 @@ static void fill_decode_caches(H264Context *h, int mb_type) nnz_cache[3 + 8 * 6 + 2 * 8 * i] = nnz_cache[3 + 8 * 7 + 2 * 8 * i] = nnz_cache[3 + 8 * 11 + 2 * 8 * i] = - nnz_cache[3 + 8 * 12 + 2 * 8 * i] = CABAC && !IS_INTRA(mb_type) ? 0 : 64; + nnz_cache[3 + 8 * 12 + 2 * 8 * i] = CABAC(h) && !IS_INTRA(mb_type) ? 0 : 64; } } - if (CABAC) { + if (CABAC(h)) { // top_cbp if (top_type) h->top_cbp = h->cbp_table[top_xy]; @@ -688,7 +688,7 @@ static void fill_decode_caches(H264Context *h, int mb_type) AV_ZERO32(mv_cache[2 + 8 * 0]); AV_ZERO32(mv_cache[2 + 8 * 2]); - if (CABAC) { + if (CABAC(h)) { if (USES_LIST(top_type, list)) { const int b_xy = h->mb2br_xy[top_xy]; AV_COPY64(mvd_cache[0 - 1 * 8], mvd[b_xy + 0]); diff --git a/libavcodec/vaapi_h264.c b/libavcodec/vaapi_h264.c index b4ae27aca0..ea0f43420d 100644 --- a/libavcodec/vaapi_h264.c +++ b/libavcodec/vaapi_h264.c @@ -325,7 +325,7 @@ static int vaapi_h264_decode_slice(AVCodecContext *avctx, if (!slice_param) return -1; slice_param->slice_data_bit_offset = get_bits_count(&h->gb) + 8; /* bit buffer started beyond nal_unit_type */ - slice_param->first_mb_in_slice = (h->mb_y >> FIELD_OR_MBAFF_PICTURE) * h->mb_width + h->mb_x; + slice_param->first_mb_in_slice = (h->mb_y >> FIELD_OR_MBAFF_PICTURE(h)) * h->mb_width + h->mb_x; slice_param->slice_type = ff_h264_get_slice_type(h); slice_param->direct_spatial_mv_pred_flag = h->slice_type == AV_PICTURE_TYPE_B ? h->direct_spatial_mv_pred : 0; slice_param->num_ref_idx_l0_active_minus1 = h->list_count > 0 ? h->ref_count[0] - 1 : 0; |