ffmpeg | branch: master | Michael Niedermayer <mich...@niedermayer.cc> | Mon 
Mar 24 16:00:02 2025 +0100| [5ca14b23f1e8137258580dd9045f025795b2eb88] | 
committer: Michael Niedermayer

avcodec/ffv1dec: compute end instead of hardcoding it and test for fltmap 
correctly

A step toward supporting remap for integer formats less than 16 bit

Signed-off-by: Michael Niedermayer <mich...@niedermayer.cc>

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

 libavcodec/ffv1dec.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavcodec/ffv1dec.c b/libavcodec/ffv1dec.c
index e9362eed19..21a7642a08 100644
--- a/libavcodec/ffv1dec.c
+++ b/libavcodec/ffv1dec.c
@@ -286,7 +286,7 @@ static int decode_current_mul(RangeCoder *rc, uint8_t 
state[32], int *mul, int m
 
 static int decode_remap(FFV1Context *f, FFV1SliceContext *sc)
 {
-    unsigned int end = f->avctx->bits_per_raw_sample == 32 ? 0xFFFFFFFF : 
0xFFFF;
+    unsigned int end = (1LL<<f->avctx->bits_per_raw_sample) - 1;
     int flip = sc->remap == 2 ? (end>>1) : 0;
 
     for (int p= 0; p < 1 + 2*f->chroma_planes + f->transparency; p++) {
@@ -328,7 +328,7 @@ static int decode_remap(FFV1Context *f, FFV1SliceContext 
*sc)
                     break;
                 if (i - 1 > end || j > 65535)
                     return AVERROR_INVALIDDATA;
-                if (end == 0xFFFF) {
+                if (end <= 0xFFFF) {
                     sc->fltmap  [p][j++] = i ^ ((i&    0x8000) ? 0 : flip);
                 } else
                     sc->fltmap32[p][j++] = i ^ ((i&0x80000000) ? 0 : flip);

_______________________________________________
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to