[05/14] cbs_h265: Use helper macro for maximum values of fixed-width elements

Message ID 20190504121427.9638-6-lu_zero@gentoo.org
State New
Headers show
Series
  • [01/14] maint: Ignore dot dirs
Related show

Commit Message

Luca Barbato May 4, 2019, 12:14 p.m.
From: Mark Thompson <sw@jkqxz.net>

Apply the same logic as the previous patch to H.265.  There are no cases
which currently overflow here, but this is still more consistent.
---
 libavcodec/cbs_h265_syntax_template.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

Comments

Alexandra Hájková May 13, 2019, 8:41 a.m. | #1
On Sat, May 4, 2019 at 2:15 PM Luca Barbato <lu_zero@gentoo.org> wrote:
>
> From: Mark Thompson <sw@jkqxz.net>
>
> Apply the same logic as the previous patch to H.265.  There are no cases
> which currently overflow here, but this is still more consistent.
> ---
>  libavcodec/cbs_h265_syntax_template.c | 16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/libavcodec/cbs_h265_syntax_template.c b/libavcodec/cbs_h265_syntax_template.c
> index a194887d76..20b0479891 100644
> --- a/libavcodec/cbs_h265_syntax_template.c
> +++ b/libavcodec/cbs_h265_syntax_template.c
> @@ -665,7 +665,7 @@ static int FUNC(sps_scc_extension)(CodedBitstreamContext *ctx, RWContext *rw,
>                                            : current->bit_depth_chroma_minus8 + 8;
>                  for (i = 0; i <= current->sps_num_palette_predictor_initializer_minus1; i++)
>                      u(bit_depth, sps_palette_predictor_initializers[comp][i],
> -                      0, (1 << bit_depth) - 1);
> +                      0, MAX_UINT_BITS(bit_depth));
>              }
>          }
>      }
> @@ -827,7 +827,7 @@ static int FUNC(sps)(CodedBitstreamContext *ctx, RWContext *rw,
>          for (i = 0; i < current->num_long_term_ref_pics_sps; i++) {
>              u(current->log2_max_pic_order_cnt_lsb_minus4 + 4,
>                lt_ref_pic_poc_lsb_sps[i],
> -              0, (1 << (current->log2_max_pic_order_cnt_lsb_minus4 + 4)) - 1);
> +              0, MAX_UINT_BITS(current->log2_max_pic_order_cnt_lsb_minus4 + 4));
>              flag(used_by_curr_pic_lt_sps_flag[i]);
>          }
>      }
> @@ -845,7 +845,7 @@ static int FUNC(sps)(CodedBitstreamContext *ctx, RWContext *rw,
>          flag(sps_multilayer_extension_flag);
>          flag(sps_3d_extension_flag);
>          flag(sps_scc_extension_flag);
> -        u(4, sps_extension_4bits, 0, (1 << 4) - 1);
> +        u(4, sps_extension_4bits, 0, MAX_UINT_BITS(4));
>      }
>
>      if (current->sps_range_extension_flag)
> @@ -925,7 +925,7 @@ static int FUNC(pps_scc_extension)(CodedBitstreamContext *ctx, RWContext *rw,
>                                            : current->chroma_bit_depth_entry_minus8 + 8;
>                  for (i = 0; i < current->pps_num_palette_predictor_initializer; i++)
>                      u(bit_depth, pps_palette_predictor_initializers[comp][i],
> -                      0, (1 << bit_depth) - 1);
> +                      0, MAX_UINT_BITS(bit_depth));
>              }
>          }
>      }
> @@ -1038,7 +1038,7 @@ static int FUNC(pps)(CodedBitstreamContext *ctx, RWContext *rw,
>          flag(pps_multilayer_extension_flag);
>          flag(pps_3d_extension_flag);
>          flag(pps_scc_extension_flag);
> -        u(4, pps_extension_4bits, 0, (1 << 4) - 1);
> +        u(4, pps_extension_4bits, 0, MAX_UINT_BITS(4));
>      }
>      if (current->pps_range_extension_flag)
>          CHECK(FUNC(pps_range_extension)(ctx, rw, current));
> @@ -1274,7 +1274,7 @@ static int FUNC(slice_segment_header)(CodedBitstreamContext *ctx, RWContext *rw,
>              const H265RawSTRefPicSet *rps;
>
>              u(sps->log2_max_pic_order_cnt_lsb_minus4 + 4, slice_pic_order_cnt_lsb,
> -              0, (1 << (sps->log2_max_pic_order_cnt_lsb_minus4 + 4)) - 1);
> +              0, MAX_UINT_BITS(sps->log2_max_pic_order_cnt_lsb_minus4 + 4));
>
>              flag(short_term_ref_pic_set_sps_flag);
>              if (!current->short_term_ref_pic_set_sps_flag) {
> @@ -1321,7 +1321,7 @@ static int FUNC(slice_segment_header)(CodedBitstreamContext *ctx, RWContext *rw,
>                              ++num_pic_total_curr;
>                      } else {
>                          u(sps->log2_max_pic_order_cnt_lsb_minus4 + 4, poc_lsb_lt[i],
> -                          0, (1 << (sps->log2_max_pic_order_cnt_lsb_minus4 + 4)) - 1);
> +                          0, MAX_UINT_BITS(sps->log2_max_pic_order_cnt_lsb_minus4 + 4));
>                          flag(used_by_curr_pic_lt_flag[i]);
>                          if (current->used_by_curr_pic_lt_flag[i])
>                              ++num_pic_total_curr;
> @@ -1487,7 +1487,7 @@ static int FUNC(slice_segment_header)(CodedBitstreamContext *ctx, RWContext *rw,
>              ue(offset_len_minus1, 0, 31);
>              for (i = 0; i < current->num_entry_point_offsets; i++)
>                  u(current->offset_len_minus1 + 1, entry_point_offset_minus1[i],
> -                  0, (1 << (current->offset_len_minus1 + 1)) - 1);
> +                  0, MAX_UINT_BITS(current->offset_len_minus1 + 1));
>          }
>      }
>
> --
> 2.12.2
>

OK

Patch

diff --git a/libavcodec/cbs_h265_syntax_template.c b/libavcodec/cbs_h265_syntax_template.c
index a194887d76..20b0479891 100644
--- a/libavcodec/cbs_h265_syntax_template.c
+++ b/libavcodec/cbs_h265_syntax_template.c
@@ -665,7 +665,7 @@  static int FUNC(sps_scc_extension)(CodedBitstreamContext *ctx, RWContext *rw,
                                           : current->bit_depth_chroma_minus8 + 8;
                 for (i = 0; i <= current->sps_num_palette_predictor_initializer_minus1; i++)
                     u(bit_depth, sps_palette_predictor_initializers[comp][i],
-                      0, (1 << bit_depth) - 1);
+                      0, MAX_UINT_BITS(bit_depth));
             }
         }
     }
@@ -827,7 +827,7 @@  static int FUNC(sps)(CodedBitstreamContext *ctx, RWContext *rw,
         for (i = 0; i < current->num_long_term_ref_pics_sps; i++) {
             u(current->log2_max_pic_order_cnt_lsb_minus4 + 4,
               lt_ref_pic_poc_lsb_sps[i],
-              0, (1 << (current->log2_max_pic_order_cnt_lsb_minus4 + 4)) - 1);
+              0, MAX_UINT_BITS(current->log2_max_pic_order_cnt_lsb_minus4 + 4));
             flag(used_by_curr_pic_lt_sps_flag[i]);
         }
     }
@@ -845,7 +845,7 @@  static int FUNC(sps)(CodedBitstreamContext *ctx, RWContext *rw,
         flag(sps_multilayer_extension_flag);
         flag(sps_3d_extension_flag);
         flag(sps_scc_extension_flag);
-        u(4, sps_extension_4bits, 0, (1 << 4) - 1);
+        u(4, sps_extension_4bits, 0, MAX_UINT_BITS(4));
     }
 
     if (current->sps_range_extension_flag)
@@ -925,7 +925,7 @@  static int FUNC(pps_scc_extension)(CodedBitstreamContext *ctx, RWContext *rw,
                                           : current->chroma_bit_depth_entry_minus8 + 8;
                 for (i = 0; i < current->pps_num_palette_predictor_initializer; i++)
                     u(bit_depth, pps_palette_predictor_initializers[comp][i],
-                      0, (1 << bit_depth) - 1);
+                      0, MAX_UINT_BITS(bit_depth));
             }
         }
     }
@@ -1038,7 +1038,7 @@  static int FUNC(pps)(CodedBitstreamContext *ctx, RWContext *rw,
         flag(pps_multilayer_extension_flag);
         flag(pps_3d_extension_flag);
         flag(pps_scc_extension_flag);
-        u(4, pps_extension_4bits, 0, (1 << 4) - 1);
+        u(4, pps_extension_4bits, 0, MAX_UINT_BITS(4));
     }
     if (current->pps_range_extension_flag)
         CHECK(FUNC(pps_range_extension)(ctx, rw, current));
@@ -1274,7 +1274,7 @@  static int FUNC(slice_segment_header)(CodedBitstreamContext *ctx, RWContext *rw,
             const H265RawSTRefPicSet *rps;
 
             u(sps->log2_max_pic_order_cnt_lsb_minus4 + 4, slice_pic_order_cnt_lsb,
-              0, (1 << (sps->log2_max_pic_order_cnt_lsb_minus4 + 4)) - 1);
+              0, MAX_UINT_BITS(sps->log2_max_pic_order_cnt_lsb_minus4 + 4));
 
             flag(short_term_ref_pic_set_sps_flag);
             if (!current->short_term_ref_pic_set_sps_flag) {
@@ -1321,7 +1321,7 @@  static int FUNC(slice_segment_header)(CodedBitstreamContext *ctx, RWContext *rw,
                             ++num_pic_total_curr;
                     } else {
                         u(sps->log2_max_pic_order_cnt_lsb_minus4 + 4, poc_lsb_lt[i],
-                          0, (1 << (sps->log2_max_pic_order_cnt_lsb_minus4 + 4)) - 1);
+                          0, MAX_UINT_BITS(sps->log2_max_pic_order_cnt_lsb_minus4 + 4));
                         flag(used_by_curr_pic_lt_flag[i]);
                         if (current->used_by_curr_pic_lt_flag[i])
                             ++num_pic_total_curr;
@@ -1487,7 +1487,7 @@  static int FUNC(slice_segment_header)(CodedBitstreamContext *ctx, RWContext *rw,
             ue(offset_len_minus1, 0, 31);
             for (i = 0; i < current->num_entry_point_offsets; i++)
                 u(current->offset_len_minus1 + 1, entry_point_offset_minus1[i],
-                  0, (1 << (current->offset_len_minus1 + 1)) - 1);
+                  0, MAX_UINT_BITS(current->offset_len_minus1 + 1));
         }
     }