[FFmpeg-cvslog] avcodec/hevc_refs: don't use the frame's AVBufferRef sizes when initializing planes

James Almer git at videolan.org
Tue Mar 15 23:17:56 EET 2022


ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Tue Mar  8 10:55:00 2022 -0300| [3aeeee1597abd6c12308fbc2f4087d7c943166df] | committer: James Almer

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 at khirnov.net>
Signed-off-by: James Almer <jamrial at gmail.com>

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

 libavcodec/hevc_refs.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/libavcodec/hevc_refs.c b/libavcodec/hevc_refs.c
index 35b8e5e696..fe18ca2b1d 100644
--- a/libavcodec/hevc_refs.c
+++ b/libavcodec/hevc_refs.c
@@ -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++) {



More information about the ffmpeg-cvslog mailing list