avcodec/hevc_refs: don't use the frame's AVBufferRef sizes when initializing planes

Use the actual plane sizes instead.

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
James Almer 2022-03-08 10:55:00 -03:00
parent f5d67469b0
commit 3aeeee1597

View File

@ -401,9 +401,9 @@ static HEVCFrame *generate_missing_ref(HEVCContext *s, int poc)
if (!s->avctx->hwaccel) {
if (!s->ps.sps->pixel_shift) {
for (i = 0; frame->frame->buf[i]; i++)
memset(frame->frame->buf[i]->data, 1 << (s->ps.sps->bit_depth - 1),
frame->frame->buf[i]->size);
for (i = 0; frame->frame->data[i]; i++)
memset(frame->frame->data[i], 1 << (s->ps.sps->bit_depth - 1),
frame->frame->linesize[i] * AV_CEIL_RSHIFT(s->ps.sps->height, s->ps.sps->vshift[i]));
} else {
for (i = 0; frame->frame->data[i]; i++)
for (y = 0; y < (s->ps.sps->height >> s->ps.sps->vshift[i]); y++) {