[FFmpeg-cvslog] avcodec/scpr: make sure that component value is <= 0x1F for 16 bpc
Paul B Mahol
git at videolan.org
Fri Feb 24 13:03:44 EET 2017
ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Fri Feb 24 12:01:30 2017 +0100| [178cd50c47aa5b7db03f7ce7a3f2934857dbd35b] | committer: Paul B Mahol
avcodec/scpr: make sure that component value is <= 0x1F for 16 bpc
Signed-off-by: Paul B Mahol <onemda at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=178cd50c47aa5b7db03f7ce7a3f2934857dbd35b
---
libavcodec/scpr.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/libavcodec/scpr.c b/libavcodec/scpr.c
index 5555d81..0802dd4 100644
--- a/libavcodec/scpr.c
+++ b/libavcodec/scpr.c
@@ -58,6 +58,7 @@ typedef struct SCPRContext {
unsigned nbx, nby;
unsigned nbcount;
unsigned *blocks;
+ unsigned cbits;
int cxshift;
} SCPRContext;
@@ -241,7 +242,7 @@ static int decode_unit(SCPRContext *s, PixelModel *pixel, unsigned step, unsigne
}
pixel->total_freq = totfr;
- *rval = c;
+ *rval = c & s->cbits;
return 0;
}
@@ -789,6 +790,7 @@ static av_cold int decode_init(AVCodecContext *avctx)
}
s->cxshift = avctx->bits_per_coded_sample == 16 ? 0 : 2;
+ s->cbits = avctx->bits_per_coded_sample == 16 ? 0x1F : 0xFF;
s->nbx = (avctx->width + 15) / 16;
s->nby = (avctx->height + 15) / 16;
s->nbcount = s->nbx * s->nby;
More information about the ffmpeg-cvslog
mailing list