Merge commit '39ab2ea53121b9976a619cd545fbd3464b908696'
authorClément Bœsch <u@pkh.me>
Wed, 29 Jun 2016 18:07:52 +0000 (20:07 +0200)
committerClément Bœsch <u@pkh.me>
Wed, 29 Jun 2016 18:07:52 +0000 (20:07 +0200)
* commit '39ab2ea53121b9976a619cd545fbd3464b908696':
  h264: rename mmco_index to nb_mmco

Merged-by: Clément Bœsch <u@pkh.me>
1  2 
libavcodec/h264.h
libavcodec/h264_picture.c
libavcodec/h264_refs.c
libavcodec/h264_slice.c

Simple merge
Simple merge
@@@ -604,10 -539,12 +604,10 @@@ static int check_opcodes(MMCO *mmco1, M
  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;
  
 -    assert(h->long_ref_count + h->short_ref_count <= h->ps.sps->ref_frame_count);
 -
      if (h->short_ref_count &&
 -        h->long_ref_count + h->short_ref_count == h->ps.sps->ref_frame_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;
      }
  
      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, %d]\n",
 -               nb_mmco, h->nb_mmco, i);
 +               "Inconsistent MMCO state between slices [%d, %d]\n",
-                mmco_index, h->mmco_index);
++               nb_mmco, h->nb_mmco);
          return AVERROR_INVALIDDATA;
      }
      return 0;
@@@ -846,8 -747,8 +846,8 @@@ int ff_h264_decode_ref_pic_marking(H264
                                     int first_slice)
  {
      int i, ret;
 -    MMCO mmco_temp[MAX_MMCO_COUNT], *mmco = first_slice ? h->mmco : mmco_temp;
 +    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 (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;
      }
  
@@@ -1590,10 -1340,10 +1590,10 @@@ static int h264_slice_header_parse(H264
          (pps->weighted_bipred_idc == 1 &&
           sl->slice_type_nos == AV_PICTURE_TYPE_B))
          ff_h264_pred_weight_table(&sl->gb, sps, sl->ref_count,
 -                                  sl->slice_type_nos, &sl->pwt);
 +                                  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.