[FFmpeg-cvslog] cbs_h265: Fix ranges of prediction weight offsets

Mark Thompson git at videolan.org
Sat Nov 11 19:11:03 EET 2017


ffmpeg | branch: master | Mark Thompson <sw at jkqxz.net> | Mon Aug 28 17:07:01 2017 +0100| [067a9ddeb8feff1f724856f0054930c55219f76b] | committer: Mark Thompson

cbs_h265: Fix ranges of prediction weight offsets

The bracketing was wrong - '-' binds before '<<'.  This would
previously incorrectly reject the streams in the WP_A and WP_B
conformance tests.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=067a9ddeb8feff1f724856f0054930c55219f76b
---

 libavcodec/cbs_h265_syntax_template.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/libavcodec/cbs_h265_syntax_template.c b/libavcodec/cbs_h265_syntax_template.c
index 8564220d53..a194887d76 100644
--- a/libavcodec/cbs_h265_syntax_template.c
+++ b/libavcodec/cbs_h265_syntax_template.c
@@ -1133,7 +1133,7 @@ static int FUNC(pred_weight_table)(CodedBitstreamContext *ctx, RWContext *rw,
             se(delta_luma_weight_l0[i], -128, +127);
             se(luma_offset_l0[i],
                -(1 << (sps->bit_depth_luma_minus8 + 8 - 1)),
-               +(1 << (sps->bit_depth_luma_minus8 + 8 - 1) - 1));
+               ((1 << (sps->bit_depth_luma_minus8 + 8 - 1)) - 1));
         } else {
             infer(delta_luma_weight_l0[i], 0);
             infer(luma_offset_l0[i],       0);
@@ -1143,7 +1143,7 @@ static int FUNC(pred_weight_table)(CodedBitstreamContext *ctx, RWContext *rw,
                 se(delta_chroma_weight_l0[i][j], -128, +127);
                 se(chroma_offset_l0[i][j],
                    -(4 << (sps->bit_depth_chroma_minus8 + 8 - 1)),
-                   +(4 << (sps->bit_depth_chroma_minus8 + 8 - 1) - 1));
+                   ((4 << (sps->bit_depth_chroma_minus8 + 8 - 1)) - 1));
             }
         } else {
             for (j = 0; j < 2; j++) {
@@ -1173,8 +1173,8 @@ static int FUNC(pred_weight_table)(CodedBitstreamContext *ctx, RWContext *rw,
             if (current->luma_weight_l1_flag[i]) {
                 se(delta_luma_weight_l1[i], -128, +127);
                 se(luma_offset_l1[i],
-                   - 1 << (sps->bit_depth_luma_minus8 + 8 - 1),
-                   + 1 << (sps->bit_depth_luma_minus8 + 8 - 1) - 1);
+                   -(1 << (sps->bit_depth_luma_minus8 + 8 - 1)),
+                   ((1 << (sps->bit_depth_luma_minus8 + 8 - 1)) - 1));
             } else {
                 infer(delta_luma_weight_l1[i], 0);
                 infer(luma_offset_l1[i],       0);
@@ -1183,8 +1183,8 @@ static int FUNC(pred_weight_table)(CodedBitstreamContext *ctx, RWContext *rw,
                 for (j = 0; j < 2; j++) {
                     se(delta_chroma_weight_l1[i][j], -128, +127);
                     se(chroma_offset_l1[i][j],
-                       - 4 << (sps->bit_depth_chroma_minus8 + 8 - 1),
-                       + 4 << (sps->bit_depth_chroma_minus8 + 8 - 1) - 1);
+                       -(4 << (sps->bit_depth_chroma_minus8 + 8 - 1)),
+                       ((4 << (sps->bit_depth_chroma_minus8 + 8 - 1)) - 1));
                 }
             } else {
                 for (j = 0; j < 2; j++) {



More information about the ffmpeg-cvslog mailing list