aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/vvc
diff options
context:
space:
mode:
authorNuo Mi <nuomi2021@gmail.com>2024-05-19 21:27:47 +0800
committerNuo Mi <nuomi2021@gmail.com>2024-05-21 20:20:25 +0800
commitcae0b01282d0d21be24d619692c48ce3181d56dd (patch)
tree45f1520205b21744dd92066af5bd530a271094b4 /libavcodec/vvc
parent7904ec2d34a4c1b5b330ab28fd5525b942995dfd (diff)
downloadffmpeg-cae0b01282d0d21be24d619692c48ce3181d56dd.tar.gz
avcodec/vvcdec: increase edge_emu_buffer for RPR
Diffstat (limited to 'libavcodec/vvc')
-rw-r--r--libavcodec/vvc/ctu.h9
1 files 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];