From cae0b01282d0d21be24d619692c48ce3181d56dd Mon Sep 17 00:00:00 2001 From: Nuo Mi Date: Sun, 19 May 2024 21:27:47 +0800 Subject: [PATCH] avcodec/vvcdec: increase edge_emu_buffer for RPR --- libavcodec/vvc/ctu.h | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/libavcodec/vvc/ctu.h b/libavcodec/vvc/ctu.h index 50109154aa..a987328d81 100644 --- a/libavcodec/vvc/ctu.h +++ b/libavcodec/vvc/ctu.h @@ -46,7 +46,8 @@ #define MAX_QP 63 #define MAX_PB_SIZE 128 -#define EDGE_EMU_BUFFER_STRIDE (MAX_PB_SIZE + 32) +#define MAX_SCALING_RATIO 8 +#define EDGE_EMU_BUFFER_STRIDE ((MAX_PB_SIZE + 32) * MAX_SCALING_RATIO) #define CHROMA_EXTRA_BEFORE 1 #define CHROMA_EXTRA_AFTER 2 @@ -375,10 +376,8 @@ typedef struct VVCLocalContext { int end_of_tiles_x; int end_of_tiles_y; - /* +7 is for subpixel interpolation, *2 for high bit depths */ - DECLARE_ALIGNED(32, uint8_t, edge_emu_buffer)[(MAX_PB_SIZE + 7) * EDGE_EMU_BUFFER_STRIDE * 2]; - /* The extended size between the new edge emu buffer is abused by SAO */ - DECLARE_ALIGNED(32, uint8_t, edge_emu_buffer2)[(MAX_PB_SIZE + 7) * EDGE_EMU_BUFFER_STRIDE * 2]; + /* *2 for high bit depths */ + DECLARE_ALIGNED(32, uint8_t, edge_emu_buffer)[EDGE_EMU_BUFFER_STRIDE * EDGE_EMU_BUFFER_STRIDE * 2]; DECLARE_ALIGNED(32, int16_t, tmp)[MAX_PB_SIZE * MAX_PB_SIZE]; DECLARE_ALIGNED(32, int16_t, tmp1)[MAX_PB_SIZE * MAX_PB_SIZE]; DECLARE_ALIGNED(32, int16_t, tmp2)[MAX_PB_SIZE * MAX_PB_SIZE];