diff options
author | Clément Bœsch <u@pkh.me> | 2016-06-29 20:07:52 +0200 |
---|---|---|
committer | Clément Bœsch <u@pkh.me> | 2016-06-29 20:07:52 +0200 |
commit | 57d30fde9ea847cf4bff70a1419facad905e72a4 (patch) | |
tree | 301746a8c61f6e8aa4c3b70eb1391b0ca180d48e /libavcodec | |
parent | c28aecc56ace7a6f5f21c1484d00932d4777f4e8 (diff) | |
parent | 39ab2ea53121b9976a619cd545fbd3464b908696 (diff) | |
download | ffmpeg-57d30fde9ea847cf4bff70a1419facad905e72a4.tar.gz |
Merge commit '39ab2ea53121b9976a619cd545fbd3464b908696'
* commit '39ab2ea53121b9976a619cd545fbd3464b908696':
h264: rename mmco_index to nb_mmco
Merged-by: Clément Bœsch <u@pkh.me>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/h264.h | 2 | ||||
-rw-r--r-- | libavcodec/h264_picture.c | 2 | ||||
-rw-r--r-- | libavcodec/h264_refs.c | 36 | ||||
-rw-r--r-- | libavcodec/h264_slice.c | 8 |
4 files changed, 24 insertions, 24 deletions
diff --git a/libavcodec/h264.h b/libavcodec/h264.h index 42f144fb3c..3512aaae5a 100644 --- a/libavcodec/h264.h +++ b/libavcodec/h264.h @@ -599,7 +599,7 @@ typedef struct H264Context { * memory management control operations buffer. */ MMCO mmco[MAX_MMCO_COUNT]; - int mmco_index; + int nb_mmco; int mmco_reset; int long_ref_count; ///< number of actual long term references diff --git a/libavcodec/h264_picture.c b/libavcodec/h264_picture.c index 7e2adda48f..320bb0cbbb 100644 --- a/libavcodec/h264_picture.c +++ b/libavcodec/h264_picture.c @@ -164,7 +164,7 @@ int ff_h264_field_end(H264Context *h, H264SliceContext *sl, int in_setup) if (in_setup || !(avctx->active_thread_type & FF_THREAD_FRAME)) { if (!h->droppable) { - err = ff_h264_execute_ref_pic_marking(h, h->mmco, h->mmco_index); + err = ff_h264_execute_ref_pic_marking(h, h->mmco, h->nb_mmco); h->poc.prev_poc_msb = h->poc.poc_msb; h->poc.prev_poc_lsb = h->poc.poc_lsb; } diff --git a/libavcodec/h264_refs.c b/libavcodec/h264_refs.c index c7676c45bc..e7ae447358 100644 --- a/libavcodec/h264_refs.c +++ b/libavcodec/h264_refs.c @@ -604,30 +604,30 @@ static int check_opcodes(MMCO *mmco1, MMCO *mmco2, int n_mmcos) int ff_generate_sliding_window_mmcos(H264Context *h, int first_slice) { MMCO mmco_temp[MAX_MMCO_COUNT], *mmco = first_slice ? h->mmco : mmco_temp; - int mmco_index = 0, i = 0; + int nb_mmco = 0, i = 0; if (h->short_ref_count && h->long_ref_count + h->short_ref_count >= h->ps.sps->ref_frame_count && !(FIELD_PICTURE(h) && !h->first_field && h->cur_pic_ptr->reference)) { mmco[0].opcode = MMCO_SHORT2UNUSED; mmco[0].short_pic_num = h->short_ref[h->short_ref_count - 1]->frame_num; - mmco_index = 1; + nb_mmco = 1; if (FIELD_PICTURE(h)) { mmco[0].short_pic_num *= 2; mmco[1].opcode = MMCO_SHORT2UNUSED; mmco[1].short_pic_num = mmco[0].short_pic_num + 1; - mmco_index = 2; + nb_mmco = 2; } } if (first_slice) { - h->mmco_index = mmco_index; - } else if (!first_slice && mmco_index >= 0 && - (mmco_index != h->mmco_index || - (i = check_opcodes(h->mmco, mmco_temp, mmco_index)))) { + h->nb_mmco = nb_mmco; + } else if (!first_slice && nb_mmco >= 0 && + (nb_mmco != h->nb_mmco || + (i = check_opcodes(h->mmco, mmco_temp, nb_mmco)))) { av_log(h->avctx, AV_LOG_ERROR, "Inconsistent MMCO state between slices [%d, %d]\n", - mmco_index, h->mmco_index); + nb_mmco, h->nb_mmco); return AVERROR_INVALIDDATA; } return 0; @@ -847,14 +847,14 @@ int ff_h264_decode_ref_pic_marking(H264Context *h, GetBitContext *gb, { int i, ret; MMCO mmco_temp[MAX_MMCO_COUNT], *mmco = mmco_temp; - int mmco_index = 0; + int nb_mmco = 0; if (h->nal_unit_type == NAL_IDR_SLICE) { // FIXME fields skip_bits1(gb); // broken_link if (get_bits1(gb)) { mmco[0].opcode = MMCO_LONG; mmco[0].long_arg = 0; - mmco_index = 1; + nb_mmco = 1; } } else { if (get_bits1(gb)) { // adaptive_ref_pic_marking_mode_flag @@ -900,26 +900,26 @@ int ff_h264_decode_ref_pic_marking(H264Context *h, GetBitContext *gb, if (opcode == MMCO_END) break; } - mmco_index = i; + nb_mmco = i; } else { if (first_slice) { ret = ff_generate_sliding_window_mmcos(h, first_slice); if (ret < 0 && h->avctx->err_recognition & AV_EF_EXPLODE) return ret; } - mmco_index = -1; + nb_mmco = -1; } } - if (first_slice && mmco_index != -1) { + if (first_slice && nb_mmco != -1) { memcpy(h->mmco, mmco_temp, sizeof(h->mmco)); - h->mmco_index = mmco_index; - } else if (!first_slice && mmco_index >= 0 && - (mmco_index != h->mmco_index || - check_opcodes(h->mmco, mmco_temp, mmco_index))) { + h->nb_mmco = nb_mmco; + } else if (!first_slice && nb_mmco >= 0 && + (nb_mmco != h->nb_mmco || + check_opcodes(h->mmco, mmco_temp, nb_mmco))) { av_log(h->avctx, AV_LOG_ERROR, "Inconsistent MMCO state between slices [%d, %d]\n", - mmco_index, h->mmco_index); + nb_mmco, h->nb_mmco); return AVERROR_INVALIDDATA; } diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c index e5fb64fc22..adbd1d83f1 100644 --- a/libavcodec/h264_slice.c +++ b/libavcodec/h264_slice.c @@ -429,7 +429,7 @@ int ff_h264_update_thread_context(AVCodecContext *dst, h->next_outputed_poc = h1->next_outputed_poc; memcpy(h->mmco, h1->mmco, sizeof(h->mmco)); - h->mmco_index = h1->mmco_index; + h->nb_mmco = h1->nb_mmco; h->mmco_reset = h1->mmco_reset; h->long_ref_count = h1->long_ref_count; h->short_ref_count = h1->short_ref_count; @@ -445,7 +445,7 @@ int ff_h264_update_thread_context(AVCodecContext *dst, return 0; if (!h->droppable) { - err = ff_h264_execute_ref_pic_marking(h, h->mmco, h->mmco_index); + err = ff_h264_execute_ref_pic_marking(h, h->mmco, h->nb_mmco); h->poc.prev_poc_msb = h->poc.poc_msb; h->poc.prev_poc_lsb = h->poc.poc_lsb; } @@ -1441,7 +1441,7 @@ static int h264_slice_header_parse(H264Context *h, H264SliceContext *sl) ret = ff_generate_sliding_window_mmcos(h, 1); if (ret < 0 && (h->avctx->err_recognition & AV_EF_EXPLODE)) return ret; - ret = ff_h264_execute_ref_pic_marking(h, h->mmco, h->mmco_index); + ret = ff_h264_execute_ref_pic_marking(h, h->mmco, h->nb_mmco); if (ret < 0 && (h->avctx->err_recognition & AV_EF_EXPLODE)) return ret; /* Error concealment: If a ref is missing, copy the previous ref @@ -1593,7 +1593,7 @@ static int h264_slice_header_parse(H264Context *h, H264SliceContext *sl) sl->slice_type_nos, &sl->pwt, h->avctx); // If frame-mt is enabled, only update mmco tables for the first slice - // in a field. Subsequent slices can temporarily clobber h->mmco_index + // in a field. Subsequent slices can temporarily clobber h->nb_mmco // or h->mmco, which will cause ref list mix-ups and decoding errors // further down the line. This may break decoding if the first slice is // corrupt, thus we only do this if frame-mt is enabled. |