diff options
| author | Michael Niedermayer <[email protected]> | 2013-03-13 13:28:29 +0100 | 
|---|---|---|
| committer | Michael Niedermayer <[email protected]> | 2013-03-13 13:28:29 +0100 | 
| commit | 87d263a122f6212c236531f8586598605ecab87c (patch) | |
| tree | 32b87745ae8461d61561abbcdf6c83c5e27d6c70 | |
| parent | 6c3e4e391dc881233e0cb96311da5a48a85a0eaf (diff) | |
| parent | c2597c5a0a08526493abb9bc9544b61a290fe20f (diff) | |
Merge commit 'c2597c5a0a08526493abb9bc9544b61a290fe20f'
* commit 'c2597c5a0a08526493abb9bc9544b61a290fe20f':
  h264_refs: cosmetics, reformat
Conflicts:
	libavcodec/h264_refs.c
Merged-by: Michael Niedermayer <[email protected]>
| -rw-r--r-- | libavcodec/h264_refs.c | 404 | 
1 files changed, 215 insertions, 189 deletions
diff --git a/libavcodec/h264_refs.c b/libavcodec/h264_refs.c index e8f252bf8e..e720c0795c 100644 --- a/libavcodec/h264_refs.c +++ b/libavcodec/h264_refs.c @@ -47,19 +47,19 @@ static void pic_as_field(Picture *pic, const int parity){      for (i = 0; i < 4; ++i) {          if (parity == PICT_BOTTOM_FIELD)              pic->f.data[i] += pic->f.linesize[i]; -        pic->reference    = parity; +        pic->reference      = parity;          pic->f.linesize[i] *= 2;      }      pic->poc= pic->field_poc[parity == PICT_BOTTOM_FIELD];  } -static int split_field_copy(Picture *dest, Picture *src, -                            int parity, int id_add){ +static int split_field_copy(Picture *dest, Picture *src, int parity, int id_add) +{      int match = !!(src->reference & parity);      if (match) {          COPY_PICTURE(dest, src); -        if(parity != PICT_FRAME){ +        if (parity != PICT_FRAME) {              pic_as_field(dest, parity);              dest->pic_id *= 2;              dest->pic_id += id_add; @@ -69,76 +69,79 @@ static int split_field_copy(Picture *dest, Picture *src,      return match;  } -static int build_def_list(Picture *def, Picture **in, int len, int is_long, int sel){ -    int i[2]={0}; -    int index=0; +static int build_def_list(Picture *def, Picture **in, int len, int is_long, int sel) +{ +    int  i[2] = { 0 }; +    int index = 0; -    while(i[0]<len || i[1]<len){ -        while (i[0] < len && !(in[ i[0] ] && (in[ i[0] ]->reference & sel))) +    while (i[0] < len || i[1] < len) { +        while (i[0] < len && !(in[i[0]] && (in[i[0]]->reference & sel)))              i[0]++; -        while (i[1] < len && !(in[ i[1] ] && (in[ i[1] ]->reference & (sel^3)))) +        while (i[1] < len && !(in[i[1]] && (in[i[1]]->reference & (sel ^ 3))))              i[1]++; -        if(i[0] < len){ -            in[ i[0] ]->pic_id= is_long ? i[0] : in[ i[0] ]->frame_num; -            split_field_copy(&def[index++], in[ i[0]++ ], sel  , 1); +        if (i[0] < len) { +            in[i[0]]->pic_id = is_long ? i[0] : in[i[0]]->frame_num; +            split_field_copy(&def[index++], in[i[0]++], sel, 1);          } -        if(i[1] < len){ -            in[ i[1] ]->pic_id= is_long ? i[1] : in[ i[1] ]->frame_num; -            split_field_copy(&def[index++], in[ i[1]++ ], sel^3, 0); +        if (i[1] < len) { +            in[i[1]]->pic_id = is_long ? i[1] : in[i[1]]->frame_num; +            split_field_copy(&def[index++], in[i[1]++], sel ^ 3, 0);          }      }      return index;  } -static int add_sorted(Picture **sorted, Picture **src, int len, int limit, int dir){ +static int add_sorted(Picture **sorted, Picture **src, int len, int limit, int dir) +{      int i, best_poc; -    int out_i= 0; +    int out_i = 0; -    for(;;){ -        best_poc= dir ? INT_MIN : INT_MAX; +    for (;;) { +        best_poc = dir ? INT_MIN : INT_MAX; -        for(i=0; i<len; i++){ -            const int poc= src[i]->poc; -            if(((poc > limit) ^ dir) && ((poc < best_poc) ^ dir)){ -                best_poc= poc; -                sorted[out_i]= src[i]; +        for (i = 0; i < len; i++) { +            const int poc = src[i]->poc; +            if (((poc > limit) ^ dir) && ((poc < best_poc) ^ dir)) { +                best_poc      = poc; +                sorted[out_i] = src[i];              }          } -        if(best_poc == (dir ? INT_MIN : INT_MAX)) +        if (best_poc == (dir ? INT_MIN : INT_MAX))              break; -        limit= sorted[out_i++]->poc - dir; +        limit = sorted[out_i++]->poc - dir;      }      return out_i;  } -int ff_h264_fill_default_ref_list(H264Context *h){ +int ff_h264_fill_default_ref_list(H264Context *h) +{      int i, len; -    if(h->slice_type_nos==AV_PICTURE_TYPE_B){ +    if (h->slice_type_nos == AV_PICTURE_TYPE_B) {          Picture *sorted[32];          int cur_poc, list;          int lens[2]; -        if(FIELD_PICTURE) -            cur_poc= h->cur_pic_ptr->field_poc[h->picture_structure == PICT_BOTTOM_FIELD]; +        if (FIELD_PICTURE) +            cur_poc = h->cur_pic_ptr->field_poc[h->picture_structure == PICT_BOTTOM_FIELD];          else -            cur_poc= h->cur_pic_ptr->poc; - -        for(list= 0; list<2; list++){ -            len= add_sorted(sorted    , h->short_ref, h->short_ref_count, cur_poc, 1^list); -            len+=add_sorted(sorted+len, h->short_ref, h->short_ref_count, cur_poc, 0^list); -            av_assert0(len<=32); -            len= build_def_list(h->default_ref_list[list]    , sorted     , len, 0, h->picture_structure); -            len+=build_def_list(h->default_ref_list[list]+len, h->long_ref, 16 , 1, h->picture_structure); -            av_assert0(len<=32); - -            if(len < h->ref_count[list]) -                memset(&h->default_ref_list[list][len], 0, sizeof(Picture)*(h->ref_count[list] - len)); -            lens[list]= len; +            cur_poc = h->cur_pic_ptr->poc; + +        for (list = 0; list < 2; list++) { +            len  = add_sorted(sorted,       h->short_ref, h->short_ref_count, cur_poc, 1 ^ list); +            len += add_sorted(sorted + len, h->short_ref, h->short_ref_count, cur_poc, 0 ^ list); +            av_assert0(len <= 32); +            len  = build_def_list(h->default_ref_list[list],       sorted,      len, 0, h->picture_structure); +            len += build_def_list(h->default_ref_list[list] + len, h->long_ref, 16,  1, h->picture_structure); +            av_assert0(len <= 32); + +            if (len < h->ref_count[list]) +                memset(&h->default_ref_list[list][len], 0, sizeof(Picture) * (h->ref_count[list] - len)); +            lens[list] = len;          } -        if(lens[0] == lens[1] && lens[1] > 1){ +        if (lens[0] == lens[1] && lens[1] > 1) {              for (i = 0; h->default_ref_list[0][i].f.data[0] == h->default_ref_list[1][i].f.data[0] && i < lens[0]; i++);              if (i == lens[0]) {                  Picture tmp; @@ -147,20 +150,26 @@ int ff_h264_fill_default_ref_list(H264Context *h){                  COPY_PICTURE(&h->default_ref_list[1][1], &tmp);              }          } -    }else{ -        len = build_def_list(h->default_ref_list[0]    , h->short_ref, h->short_ref_count, 0, h->picture_structure); -        len+= build_def_list(h->default_ref_list[0]+len, h-> long_ref, 16                , 1, h->picture_structure); -        av_assert0(len<=32); -        if(len < h->ref_count[0]) -            memset(&h->default_ref_list[0][len], 0, sizeof(Picture)*(h->ref_count[0] - len)); +    } else { +        len  = build_def_list(h->default_ref_list[0],       h->short_ref, h->short_ref_count, 0, h->picture_structure); +        len += build_def_list(h->default_ref_list[0] + len, h-> long_ref, 16,                 1, h->picture_structure); +        av_assert0(len <= 32); +        if (len < h->ref_count[0]) +            memset(&h->default_ref_list[0][len], 0, sizeof(Picture) * (h->ref_count[0] - len));      }  #ifdef TRACE -    for (i=0; i<h->ref_count[0]; i++) { -        tprintf(h->avctx, "List0: %s fn:%d 0x%p\n", (h->default_ref_list[0][i].long_ref ? "LT" : "ST"), h->default_ref_list[0][i].pic_id, h->default_ref_list[0][i].f.data[0]); +    for (i = 0; i < h->ref_count[0]; i++) { +        tprintf(h->avctx, "List0: %s fn:%d 0x%p\n", +                (h->default_ref_list[0][i].long_ref ? "LT" : "ST"), +                h->default_ref_list[0][i].pic_id, +                h->default_ref_list[0][i].f.data[0]);      } -    if(h->slice_type_nos==AV_PICTURE_TYPE_B){ -        for (i=0; i<h->ref_count[1]; i++) { -            tprintf(h->avctx, "List1: %s fn:%d 0x%p\n", (h->default_ref_list[1][i].long_ref ? "LT" : "ST"), h->default_ref_list[1][i].pic_id, h->default_ref_list[1][i].f.data[0]); +    if (h->slice_type_nos == AV_PICTURE_TYPE_B) { +        for (i = 0; i < h->ref_count[1]; i++) { +            tprintf(h->avctx, "List1: %s fn:%d 0x%p\n", +                    (h->default_ref_list[1][i].long_ref ? "LT" : "ST"), +                    h->default_ref_list[1][i].pic_id, +                    h->default_ref_list[1][i].f.data[0]);          }      }  #endif @@ -180,9 +189,10 @@ static void print_long_term(H264Context *h);   * @return frame number (short term) or long term index of picture   *         described by pic_num   */ -static int pic_num_extract(H264Context *h, int pic_num, int *structure){ +static int pic_num_extract(H264Context *h, int pic_num, int *structure) +{      *structure = h->picture_structure; -    if(FIELD_PICTURE){ +    if (FIELD_PICTURE) {          if (!(pic_num & 1))              /* opposite field */              *structure ^= PICT_FRAME; @@ -192,79 +202,80 @@ static int pic_num_extract(H264Context *h, int pic_num, int *structure){      return pic_num;  } -int ff_h264_decode_ref_pic_list_reordering(H264Context *h){ +int ff_h264_decode_ref_pic_list_reordering(H264Context *h) +{      int list, index, pic_structure, i;      print_short_term(h);      print_long_term(h); -    for(list=0; list<h->list_count; list++){ +    for (list = 0; list < h->list_count; list++) {          for (i = 0; i < h->ref_count[list]; i++)              COPY_PICTURE(&h->ref_list[list][i], &h->default_ref_list[list][i]); -        if(get_bits1(&h->gb)){ -            int pred= h->curr_pic_num; +        if (get_bits1(&h->gb)) { +            int pred = h->curr_pic_num; -            for(index=0; ; index++){ -                unsigned int reordering_of_pic_nums_idc= get_ue_golomb_31(&h->gb); +            for (index = 0; ; index++) { +                unsigned int reordering_of_pic_nums_idc = get_ue_golomb_31(&h->gb);                  unsigned int pic_id;                  int i;                  Picture *ref = NULL; -                if(reordering_of_pic_nums_idc==3) +                if (reordering_of_pic_nums_idc == 3)                      break; -                if(index >= h->ref_count[list]){ +                if (index >= h->ref_count[list]) {                      av_log(h->avctx, AV_LOG_ERROR, "reference count overflow\n");                      return -1;                  } -                if(reordering_of_pic_nums_idc<3){ -                    if(reordering_of_pic_nums_idc<2){ -                        const unsigned int abs_diff_pic_num= get_ue_golomb(&h->gb) + 1; +                if (reordering_of_pic_nums_idc < 3) { +                    if (reordering_of_pic_nums_idc < 2) { +                        const unsigned int abs_diff_pic_num = get_ue_golomb(&h->gb) + 1;                          int frame_num; -                        if(abs_diff_pic_num > h->max_pic_num){ +                        if (abs_diff_pic_num > h->max_pic_num) {                              av_log(h->avctx, AV_LOG_ERROR, "abs_diff_pic_num overflow\n");                              return -1;                          } -                        if(reordering_of_pic_nums_idc == 0) pred-= abs_diff_pic_num; -                        else                                pred+= abs_diff_pic_num; +                        if (reordering_of_pic_nums_idc == 0) +                            pred -= abs_diff_pic_num; +                        else +                            pred += abs_diff_pic_num;                          pred &= h->max_pic_num - 1;                          frame_num = pic_num_extract(h, pred, &pic_structure); -                        for(i= h->short_ref_count-1; i>=0; i--){ +                        for (i = h->short_ref_count - 1; i >= 0; i--) {                              ref = h->short_ref[i];                              assert(ref->reference);                              assert(!ref->long_ref); -                            if( -                                   ref->frame_num == frame_num && -                                   (ref->reference & pic_structure) -                              ) +                            if (ref->frame_num == frame_num && +                                (ref->reference & pic_structure))                                  break;                          } -                        if(i>=0) -                            ref->pic_id= pred; -                    }else{ +                        if (i >= 0) +                            ref->pic_id = pred; +                    } else {                          int long_idx; -                        pic_id= get_ue_golomb(&h->gb); //long_term_pic_idx +                        pic_id = get_ue_golomb(&h->gb); //long_term_pic_idx -                        long_idx= pic_num_extract(h, pic_id, &pic_structure); +                        long_idx = pic_num_extract(h, pic_id, &pic_structure); -                        if(long_idx>31){ +                        if (long_idx > 31) {                              av_log(h->avctx, AV_LOG_ERROR, "long_term_pic_idx overflow\n");                              return -1;                          }                          ref = h->long_ref[long_idx];                          assert(!(ref && !ref->reference));                          if (ref && (ref->reference & pic_structure)) { -                            ref->pic_id= pic_id; +                            ref->pic_id = pic_id;                              assert(ref->long_ref); -                            i=0; -                        }else{ -                            i=-1; +                            i = 0; +                        } else { +                            i = -1;                          }                      } @@ -272,32 +283,33 @@ int ff_h264_decode_ref_pic_list_reordering(H264Context *h){                          av_log(h->avctx, AV_LOG_ERROR, "reference picture missing during reorder\n");                          memset(&h->ref_list[list][index], 0, sizeof(Picture)); //FIXME                      } else { -                        for(i=index; i+1<h->ref_count[list]; i++){ -                            if(ref->long_ref == h->ref_list[list][i].long_ref && ref->pic_id == h->ref_list[list][i].pic_id) +                        for (i = index; i + 1 < h->ref_count[list]; i++) { +                            if (ref->long_ref == h->ref_list[list][i].long_ref && +                                ref->pic_id   == h->ref_list[list][i].pic_id)                                  break;                          } -                        for(; i > index; i--){ +                        for (; i > index; i--) {                              COPY_PICTURE(&h->ref_list[list][i], &h->ref_list[list][i - 1]);                          }                          COPY_PICTURE(&h->ref_list[list][index], ref); -                        if (FIELD_PICTURE){ +                        if (FIELD_PICTURE) {                              pic_as_field(&h->ref_list[list][index], pic_structure);                          }                      } -                }else{ +                } else {                      av_log(h->avctx, AV_LOG_ERROR, "illegal reordering_of_pic_nums_idc\n");                      return -1;                  }              }          }      } -    for(list=0; list<h->list_count; list++){ -        for(index= 0; index < h->ref_count[list]; index++){ +    for (list = 0; list < h->list_count; list++) { +        for (index = 0; index < h->ref_count[list]; index++) {              if (   !h->ref_list[list][index].f.data[0]                  || (!FIELD_PICTURE && (h->ref_list[list][index].reference&3) != 3)) {                  int i;                  av_log(h->avctx, AV_LOG_ERROR, "Missing reference picture, default is %d\n", h->default_ref_list[list][0].poc); -                for (i=0; i<FF_ARRAY_ELEMS(h->last_pocs); i++) +                for (i = 0; i < FF_ARRAY_ELEMS(h->last_pocs); i++)                      h->last_pocs[i] = INT_MIN;                  if (h->default_ref_list[list][0].f.data[0]                      && !(!FIELD_PICTURE && (h->default_ref_list[list][index].reference&3) != 3)) @@ -311,28 +323,29 @@ int ff_h264_decode_ref_pic_list_reordering(H264Context *h){      return 0;  } -void ff_h264_fill_mbaff_ref_list(H264Context *h){ +void ff_h264_fill_mbaff_ref_list(H264Context *h) +{      int list, i, j; -    for(list=0; list<h->list_count; list++){ -        for(i=0; i<h->ref_count[list]; i++){ +    for (list = 0; list < h->list_count; list++) { +        for (i = 0; i < h->ref_count[list]; i++) {              Picture *frame = &h->ref_list[list][i]; -            Picture *field = &h->ref_list[list][16+2*i]; +            Picture *field = &h->ref_list[list][16 + 2 * i];              COPY_PICTURE(field, frame); -            for(j=0; j<3; j++) +            for (j = 0; j < 3; j++)                  field[0].f.linesize[j] <<= 1;              field[0].reference = PICT_TOP_FIELD; -            field[0].poc= field[0].field_poc[0]; +            field[0].poc       = field[0].field_poc[0];              COPY_PICTURE(field + 1, field); -            for(j=0; j<3; j++) +            for (j = 0; j < 3; j++)                  field[1].f.data[j] += frame->f.linesize[j];              field[1].reference = PICT_BOTTOM_FIELD; -            field[1].poc= field[1].field_poc[1]; +            field[1].poc       = field[1].field_poc[1]; -            h->luma_weight[16+2*i][list][0] = h->luma_weight[16+2*i+1][list][0] = h->luma_weight[i][list][0]; -            h->luma_weight[16+2*i][list][1] = h->luma_weight[16+2*i+1][list][1] = h->luma_weight[i][list][1]; -            for(j=0; j<2; j++){ -                h->chroma_weight[16+2*i][list][j][0] = h->chroma_weight[16+2*i+1][list][j][0] = h->chroma_weight[i][list][j][0]; -                h->chroma_weight[16+2*i][list][j][1] = h->chroma_weight[16+2*i+1][list][j][1] = h->chroma_weight[i][list][j][1]; +            h->luma_weight[16 + 2 * i][list][0] = h->luma_weight[16 + 2 * i + 1][list][0] = h->luma_weight[i][list][0]; +            h->luma_weight[16 + 2 * i][list][1] = h->luma_weight[16 + 2 * i + 1][list][1] = h->luma_weight[i][list][1]; +            for (j = 0; j < 2; j++) { +                h->chroma_weight[16 + 2 * i][list][j][0] = h->chroma_weight[16 + 2 * i + 1][list][j][0] = h->chroma_weight[i][list][j][0]; +                h->chroma_weight[16 + 2 * i][list][j][1] = h->chroma_weight[16 + 2 * i + 1][list][j][1] = h->chroma_weight[i][list][j][1];              }          }      } @@ -349,7 +362,8 @@ void ff_h264_fill_mbaff_ref_list(H264Context *h){   *         for display purposes) zero if one of the fields remains in   *         reference   */ -static inline int unreference_pic(H264Context *h, Picture *pic, int refmask){ +static inline int unreference_pic(H264Context *h, Picture *pic, int refmask) +{      int i;      if (pic->reference &= refmask) {          return 0; @@ -371,14 +385,15 @@ static inline int unreference_pic(H264Context *h, Picture *pic, int refmask){   * @return pointer to the found picture, or NULL if no pic with the provided   *                 frame number is found   */ -static Picture * find_short(H264Context *h, int frame_num, int *idx){ +static Picture *find_short(H264Context *h, int frame_num, int *idx) +{      int i; -    for(i=0; i<h->short_ref_count; i++){ -        Picture *pic= h->short_ref[i]; -        if(h->avctx->debug&FF_DEBUG_MMCO) +    for (i = 0; i < h->short_ref_count; i++) { +        Picture *pic = h->short_ref[i]; +        if (h->avctx->debug & FF_DEBUG_MMCO)              av_log(h->avctx, AV_LOG_DEBUG, "%d %d %p\n", i, pic->frame_num, pic); -        if(pic->frame_num == frame_num) { +        if (pic->frame_num == frame_num) {              *idx = i;              return pic;          } @@ -392,28 +407,31 @@ static Picture * find_short(H264Context *h, int frame_num, int *idx){   * to be valid. Other list entries are shifted down.   * @param i index into h->short_ref of picture to remove.   */ -static void remove_short_at_index(H264Context *h, int i){ +static void remove_short_at_index(H264Context *h, int i) +{      assert(i >= 0 && i < h->short_ref_count); -    h->short_ref[i]= NULL; +    h->short_ref[i] = NULL;      if (--h->short_ref_count) -        memmove(&h->short_ref[i], &h->short_ref[i+1], (h->short_ref_count - i)*sizeof(Picture*)); +        memmove(&h->short_ref[i], &h->short_ref[i + 1], +                (h->short_ref_count - i) * sizeof(Picture*));  }  /**   *   * @return the removed picture or NULL if an error occurs   */ -static Picture * remove_short(H264Context *h, int frame_num, int ref_mask){ +static Picture *remove_short(H264Context *h, int frame_num, int ref_mask) +{      Picture *pic;      int i; -    if(h->avctx->debug&FF_DEBUG_MMCO) +    if (h->avctx->debug & FF_DEBUG_MMCO)          av_log(h->avctx, AV_LOG_DEBUG, "remove short %d count %d\n", frame_num, h->short_ref_count);      pic = find_short(h, frame_num, &i); -    if (pic){ -        if(unreference_pic(h, pic, ref_mask)) -        remove_short_at_index(h, i); +    if (pic) { +        if (unreference_pic(h, pic, ref_mask)) +            remove_short_at_index(h, i);      }      return pic; @@ -424,15 +442,16 @@ static Picture * remove_short(H264Context *h, int frame_num, int ref_mask){   * that list.   * @return the removed picture or NULL if an error occurs   */ -static Picture * remove_long(H264Context *h, int i, int ref_mask){ +static Picture *remove_long(H264Context *h, int i, int ref_mask) +{      Picture *pic; -    pic= h->long_ref[i]; -    if (pic){ -        if(unreference_pic(h, pic, ref_mask)){ +    pic = h->long_ref[i]; +    if (pic) { +        if (unreference_pic(h, pic, ref_mask)) {              assert(h->long_ref[i]->long_ref == 1); -            h->long_ref[i]->long_ref= 0; -            h->long_ref[i]= NULL; +            h->long_ref[i]->long_ref = 0; +            h->long_ref[i]           = NULL;              h->long_ref_count--;          }      } @@ -440,19 +459,20 @@ static Picture * remove_long(H264Context *h, int i, int ref_mask){      return pic;  } -void ff_h264_remove_all_refs(H264Context *h){ +void ff_h264_remove_all_refs(H264Context *h) +{      int i; -    for(i=0; i<16; i++){ +    for (i = 0; i < 16; i++) {          remove_long(h, i, 0);      } -    assert(h->long_ref_count==0); +    assert(h->long_ref_count == 0); -    for(i=0; i<h->short_ref_count; i++){ +    for (i = 0; i < h->short_ref_count; i++) {          unreference_pic(h, h->short_ref[i], 0); -        h->short_ref[i]= NULL; +        h->short_ref[i] = NULL;      } -    h->short_ref_count=0; +    h->short_ref_count = 0;      memset(h->default_ref_list, 0, sizeof(h->default_ref_list));      memset(h->ref_list, 0, sizeof(h->ref_list)); @@ -461,12 +481,13 @@ void ff_h264_remove_all_refs(H264Context *h){  /**   * print short term list   */ -static void print_short_term(H264Context *h) { +static void print_short_term(H264Context *h) +{      uint32_t i; -    if(h->avctx->debug&FF_DEBUG_MMCO) { +    if (h->avctx->debug & FF_DEBUG_MMCO) {          av_log(h->avctx, AV_LOG_DEBUG, "short term list:\n"); -        for(i=0; i<h->short_ref_count; i++){ -            Picture *pic= h->short_ref[i]; +        for (i = 0; i < h->short_ref_count; i++) { +            Picture *pic = h->short_ref[i];              av_log(h->avctx, AV_LOG_DEBUG, "%d fn:%d poc:%d %p\n",                     i, pic->frame_num, pic->poc, pic->f.data[0]);          } @@ -476,12 +497,13 @@ static void print_short_term(H264Context *h) {  /**   * print long term list   */ -static void print_long_term(H264Context *h) { +static void print_long_term(H264Context *h) +{      uint32_t i; -    if(h->avctx->debug&FF_DEBUG_MMCO) { +    if (h->avctx->debug & FF_DEBUG_MMCO) {          av_log(h->avctx, AV_LOG_DEBUG, "long term list:\n"); -        for(i = 0; i < 16; i++){ -            Picture *pic= h->long_ref[i]; +        for (i = 0; i < 16; i++) { +            Picture *pic = h->long_ref[i];              if (pic) {                  av_log(h->avctx, AV_LOG_DEBUG, "%d fn:%d poc:%d %p\n",                         i, pic->frame_num, pic->poc, pic->f.data[0]); @@ -513,14 +535,14 @@ int ff_generate_sliding_window_mmcos(H264Context *h, int first_slice)      if (h->short_ref_count &&          h->long_ref_count + h->short_ref_count >= h->sps.ref_frame_count &&          !(FIELD_PICTURE && !h->first_field && h->cur_pic_ptr->reference)) { -        mmco[0].opcode = MMCO_SHORT2UNUSED; +        mmco[0].opcode        = MMCO_SHORT2UNUSED;          mmco[0].short_pic_num = h->short_ref[h->short_ref_count - 1]->frame_num; -        mmco_index = 1; +        mmco_index            = 1;          if (FIELD_PICTURE) {              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; +            mmco[1].opcode         = MMCO_SHORT2UNUSED; +            mmco[1].short_pic_num  = mmco[0].short_pic_num + 1; +            mmco_index             = 2;          }      } @@ -537,26 +559,29 @@ int ff_generate_sliding_window_mmcos(H264Context *h, int first_slice)      return 0;  } -int ff_h264_execute_ref_pic_marking(H264Context *h, MMCO *mmco, int mmco_count){ +int ff_h264_execute_ref_pic_marking(H264Context *h, MMCO *mmco, int mmco_count) +{      int i, av_uninit(j); -    int current_ref_assigned=0, err=0; +    int current_ref_assigned = 0, err = 0;      Picture *av_uninit(pic); -    if((h->avctx->debug&FF_DEBUG_MMCO) && mmco_count==0) +    if ((h->avctx->debug & FF_DEBUG_MMCO) && mmco_count == 0)          av_log(h->avctx, AV_LOG_DEBUG, "no mmco here\n"); -    for(i=0; i<mmco_count; i++){ +    for (i = 0; i < mmco_count; i++) {          int av_uninit(structure), av_uninit(frame_num); -        if(h->avctx->debug&FF_DEBUG_MMCO) -            av_log(h->avctx, AV_LOG_DEBUG, "mmco:%d %d %d\n", h->mmco[i].opcode, h->mmco[i].short_pic_num, h->mmco[i].long_arg); +        if (h->avctx->debug & FF_DEBUG_MMCO) +            av_log(h->avctx, AV_LOG_DEBUG, "mmco:%d %d %d\n", h->mmco[i].opcode, +                   h->mmco[i].short_pic_num, h->mmco[i].long_arg); -        if(   mmco[i].opcode == MMCO_SHORT2UNUSED -           || mmco[i].opcode == MMCO_SHORT2LONG){ +        if (mmco[i].opcode == MMCO_SHORT2UNUSED || +            mmco[i].opcode == MMCO_SHORT2LONG) {              frame_num = pic_num_extract(h, mmco[i].short_pic_num, &structure); -            pic = find_short(h, frame_num, &j); -            if(!pic){ -                if(mmco[i].opcode != MMCO_SHORT2LONG || !h->long_ref[mmco[i].long_arg] -                   || h->long_ref[mmco[i].long_arg]->frame_num != frame_num) { +            pic       = find_short(h, frame_num, &j); +            if (!pic) { +                if (mmco[i].opcode != MMCO_SHORT2LONG || +                    !h->long_ref[mmco[i].long_arg]    || +                    h->long_ref[mmco[i].long_arg]->frame_num != frame_num) {                      av_log(h->avctx, AV_LOG_ERROR, "mmco: unref short failure\n");                      err = AVERROR_INVALIDDATA;                  } @@ -564,10 +589,11 @@ int ff_h264_execute_ref_pic_marking(H264Context *h, MMCO *mmco, int mmco_count){              }          } -        switch(mmco[i].opcode){ +        switch (mmco[i].opcode) {          case MMCO_SHORT2UNUSED: -            if(h->avctx->debug&FF_DEBUG_MMCO) -                av_log(h->avctx, AV_LOG_DEBUG, "mmco: unref short %d count %d\n", h->mmco[i].short_pic_num, h->short_ref_count); +            if (h->avctx->debug & FF_DEBUG_MMCO) +                av_log(h->avctx, AV_LOG_DEBUG, "mmco: unref short %d count %d\n", +                       h->mmco[i].short_pic_num, h->short_ref_count);              remove_short(h, frame_num, structure ^ PICT_FRAME);              break;          case MMCO_SHORT2LONG: @@ -575,18 +601,18 @@ int ff_h264_execute_ref_pic_marking(H264Context *h, MMCO *mmco, int mmco_count){                      remove_long(h, mmco[i].long_arg, 0);                  remove_short_at_index(h, j); -                h->long_ref[ mmco[i].long_arg ]= pic; -                if (h->long_ref[ mmco[i].long_arg ]){ -                    h->long_ref[ mmco[i].long_arg ]->long_ref=1; +                h->long_ref[ mmco[i].long_arg ] = pic; +                if (h->long_ref[mmco[i].long_arg]) { +                    h->long_ref[mmco[i].long_arg]->long_ref = 1;                      h->long_ref_count++;                  }              break;          case MMCO_LONG2UNUSED: -            j = pic_num_extract(h, mmco[i].long_arg, &structure); +            j   = pic_num_extract(h, mmco[i].long_arg, &structure);              pic = h->long_ref[j];              if (pic) {                  remove_long(h, j, structure ^ PICT_FRAME); -            } else if(h->avctx->debug&FF_DEBUG_MMCO) +            } else if (h->avctx->debug & FF_DEBUG_MMCO)                  av_log(h->avctx, AV_LOG_DEBUG, "mmco: unref long failure\n");              break;          case MMCO_LONG: @@ -601,32 +627,31 @@ int ff_h264_execute_ref_pic_marking(H264Context *h, MMCO *mmco, int mmco_count){              if (h->long_ref[mmco[i].long_arg] != h->cur_pic_ptr) {                  remove_long(h, mmco[i].long_arg, 0); -                h->long_ref[ mmco[i].long_arg ]= h->cur_pic_ptr; -                h->long_ref[ mmco[i].long_arg ]->long_ref=1; +                h->long_ref[mmco[i].long_arg]           = h->cur_pic_ptr; +                h->long_ref[mmco[i].long_arg]->long_ref = 1;                  h->long_ref_count++;              }              h->cur_pic_ptr->reference |= h->picture_structure; -            current_ref_assigned=1; +            current_ref_assigned = 1;              break;          case MMCO_SET_MAX_LONG:              assert(mmco[i].long_arg <= 16);              // just remove the long term which index is greater than new max -            for(j = mmco[i].long_arg; j<16; j++){ +            for (j = mmco[i].long_arg; j < 16; j++) {                  remove_long(h, j, 0);              }              break;          case MMCO_RESET: -            while(h->short_ref_count){ +            while (h->short_ref_count) {                  remove_short(h, h->short_ref[0]->frame_num, 0);              } -            for(j = 0; j < 16; j++) { +            for (j = 0; j < 16; j++) {                  remove_long(h, j, 0);              } -            h->frame_num= -            h->cur_pic_ptr->frame_num= 0; +            h->frame_num  = h->cur_pic_ptr->frame_num = 0;              h->mmco_reset = 1; -            h->cur_pic_ptr->mmco_reset=1; +            h->cur_pic_ptr->mmco_reset = 1;              for (j = 0; j < MAX_DELAYED_PIC_COUNT; j++)                  h->last_pocs[j] = INT_MIN;              break; @@ -651,22 +676,23 @@ int ff_h264_execute_ref_pic_marking(H264Context *h, MMCO *mmco, int mmco_count){                                             "(first field is long term)\n");              err = AVERROR_INVALIDDATA;          } else { -            pic= remove_short(h, h->cur_pic_ptr->frame_num, 0); -            if(pic){ +            pic = remove_short(h, h->cur_pic_ptr->frame_num, 0); +            if (pic) {                  av_log(h->avctx, AV_LOG_ERROR, "illegal short term buffer state detected\n");                  err = AVERROR_INVALIDDATA;              } -            if(h->short_ref_count) -                memmove(&h->short_ref[1], &h->short_ref[0], h->short_ref_count*sizeof(Picture*)); +            if (h->short_ref_count) +                memmove(&h->short_ref[1], &h->short_ref[0], +                        h->short_ref_count * sizeof(Picture*)); -            h->short_ref[0]= h->cur_pic_ptr; +            h->short_ref[0] = h->cur_pic_ptr;              h->short_ref_count++;              h->cur_pic_ptr->reference |= h->picture_structure;          }      } -    if (h->long_ref_count + h->short_ref_count > FFMAX(h->sps.ref_frame_count, 1)){ +    if (h->long_ref_count + h->short_ref_count > FFMAX(h->sps.ref_frame_count, 1)) {          /* We have too many reference frames, probably due to corrupted           * stream. Need to discard one frame. Prevents overrun of the @@ -710,12 +736,12 @@ int ff_h264_decode_ref_pic_marking(H264Context *h, GetBitContext *gb,      MMCO mmco_temp[MAX_MMCO_COUNT], *mmco = first_slice ? h->mmco : mmco_temp;      int mmco_index = 0; -    if (h->nal_unit_type == NAL_IDR_SLICE){ // FIXME fields +    if (h->nal_unit_type == NAL_IDR_SLICE) { // FIXME fields          skip_bits1(gb); // broken_link -        if (get_bits1(gb)){ -            mmco[0].opcode = MMCO_LONG; +        if (get_bits1(gb)) { +            mmco[0].opcode   = MMCO_LONG;              mmco[0].long_arg = 0; -            mmco_index = 1; +            mmco_index       = 1;          }      } else {          if (get_bits1(gb)) { // adaptive_ref_pic_marking_mode_flag @@ -723,7 +749,7 @@ int ff_h264_decode_ref_pic_marking(H264Context *h, GetBitContext *gb,                  MMCOOpcode opcode = get_ue_golomb_31(gb);                  mmco[i].opcode = opcode; -                if (opcode == MMCO_SHORT2UNUSED || opcode == MMCO_SHORT2LONG){ +                if (opcode == MMCO_SHORT2UNUSED || opcode == MMCO_SHORT2LONG) {                      mmco[i].short_pic_num =                          (h->curr_pic_num - get_ue_golomb(gb) - 1) &                              (h->max_pic_num - 1); @@ -743,7 +769,7 @@ int ff_h264_decode_ref_pic_marking(H264Context *h, GetBitContext *gb,                      if (long_arg >= 32 ||                          (long_arg >= 16 && !(opcode == MMCO_SET_MAX_LONG &&                                               long_arg == 16) && -                         !(opcode == MMCO_LONG2UNUSED && FIELD_PICTURE))){ +                         !(opcode == MMCO_LONG2UNUSED && FIELD_PICTURE))) {                          av_log(h->avctx, AV_LOG_ERROR,                                 "illegal long ref in memory management control "                                 "operation %d\n", opcode); @@ -752,7 +778,7 @@ int ff_h264_decode_ref_pic_marking(H264Context *h, GetBitContext *gb,                      mmco[i].long_arg = long_arg;                  } -                if (opcode > (unsigned) MMCO_LONG){ +                if (opcode > (unsigned) MMCO_LONG) {                      av_log(h->avctx, AV_LOG_ERROR,                             "illegal memory management control operation %d\n",                             opcode);  | 
