You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-15 14:13:16 +02:00
avcodec/scpr: make sure that component value is <= 0x1F for 16 bpc
Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
@@ -58,6 +58,7 @@ typedef struct SCPRContext {
|
|||||||
unsigned nbx, nby;
|
unsigned nbx, nby;
|
||||||
unsigned nbcount;
|
unsigned nbcount;
|
||||||
unsigned *blocks;
|
unsigned *blocks;
|
||||||
|
unsigned cbits;
|
||||||
int cxshift;
|
int cxshift;
|
||||||
} SCPRContext;
|
} SCPRContext;
|
||||||
|
|
||||||
@@ -241,7 +242,7 @@ static int decode_unit(SCPRContext *s, PixelModel *pixel, unsigned step, unsigne
|
|||||||
}
|
}
|
||||||
pixel->total_freq = totfr;
|
pixel->total_freq = totfr;
|
||||||
|
|
||||||
*rval = c;
|
*rval = c & s->cbits;
|
||||||
|
|
||||||
return 0;
|
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->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->nbx = (avctx->width + 15) / 16;
|
||||||
s->nby = (avctx->height + 15) / 16;
|
s->nby = (avctx->height + 15) / 16;
|
||||||
s->nbcount = s->nbx * s->nby;
|
s->nbcount = s->nbx * s->nby;
|
||||||
|
Reference in New Issue
Block a user