mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
lagarith: pad RGB buffer by 1 byte.
For left HFYU prediction, we predict from the buffer buf+1 using 8- or 16-byte reads. This means that aligning the buffer by 16 bytes is in itself not sufficient, because if the width itself is 16- or 8-byte aligned, the buffer will not be padded, and thus a read of size 16 at buf+1 will overflow boundaries at the right edge. Padding the buffer by 1 byte is sufficient to not overflow its boundaries. Fixes bug 342.
This commit is contained in:
parent
da6505ad2f
commit
98d0d19208
@ -553,7 +553,7 @@ static int lag_decode_frame(AVCodecContext *avctx,
|
|||||||
|
|
||||||
if (!l->rgb_planes) {
|
if (!l->rgb_planes) {
|
||||||
l->rgb_stride = FFALIGN(avctx->width, 16);
|
l->rgb_stride = FFALIGN(avctx->width, 16);
|
||||||
l->rgb_planes = av_malloc(l->rgb_stride * avctx->height * planes);
|
l->rgb_planes = av_malloc(l->rgb_stride * avctx->height * planes + 1);
|
||||||
if (!l->rgb_planes) {
|
if (!l->rgb_planes) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "cannot allocate temporary buffer\n");
|
av_log(avctx, AV_LOG_ERROR, "cannot allocate temporary buffer\n");
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
Loading…
Reference in New Issue
Block a user