Commit 7cb2863b8e for ffmpeg
commit 7cb2863b8e0e9f904531bd0bf8c9e4f543577dc9
Author: Zhao Zhili <quinkblack@foxmail.com>
Date: Fri Sep 11 21:57:11 2026 +0800
avcodec/sao: fix swapped 45 and 135 degree EO class comments
The position tables are indexed by sao_eo_class: index 2 is SAO_EO_135D,
with neighbours at (-1,-1) and (1,1), and index 3 is SAO_EO_45D.
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
diff --git a/libavcodec/aarch64/h26x/sao_neon.S b/libavcodec/aarch64/h26x/sao_neon.S
index 354614ecab..90022fcfc7 100644
--- a/libavcodec/aarch64/h26x/sao_neon.S
+++ b/libavcodec/aarch64/h26x/sao_neon.S
@@ -103,14 +103,14 @@ endfunc
.Lhevc_sao_edge_pos:
.word 1 // horizontal
.word HEVC_SAO_STRIDE // vertical
-.word HEVC_SAO_STRIDE + 1 // 45 degree
-.word HEVC_SAO_STRIDE - 1 // 135 degree
+.word HEVC_SAO_STRIDE + 1 // 135 degree
+.word HEVC_SAO_STRIDE - 1 // 45 degree
.Lvvc_sao_edge_pos:
.word 1 // horizontal
.word VVC_SAO_STRIDE // vertical
-.word VVC_SAO_STRIDE + 1 // 45 degree
-.word VVC_SAO_STRIDE - 1 // 135 degree
+.word VVC_SAO_STRIDE + 1 // 135 degree
+.word VVC_SAO_STRIDE - 1 // 45 degree
function ff_vvc_sao_edge_filter_16x16_8_neon, export=1
adr x7, .Lvvc_sao_edge_pos
diff --git a/libavcodec/arm/hevcdsp_init_neon.c b/libavcodec/arm/hevcdsp_init_neon.c
index 6f113618c0..1bda997ceb 100644
--- a/libavcodec/arm/hevcdsp_init_neon.c
+++ b/libavcodec/arm/hevcdsp_init_neon.c
@@ -177,8 +177,8 @@ void ff_hevc_sao_edge_filter_neon_8_wrapper(uint8_t *_dst, const uint8_t *_src,
static const int8_t pos[4][2][2] = {
{ { -1, 0 }, { 1, 0 } }, // horizontal
{ { 0, -1 }, { 0, 1 } }, // vertical
- { { -1, -1 }, { 1, 1 } }, // 45 degree
- { { 1, -1 }, { -1, 1 } }, // 135 degree
+ { { -1, -1 }, { 1, 1 } }, // 135 degree
+ { { 1, -1 }, { -1, 1 } }, // 45 degree
};
uint8_t *dst = _dst;
const uint8_t *src = _src;
diff --git a/libavcodec/h26x/h2656_sao_template.c b/libavcodec/h26x/h2656_sao_template.c
index b3eb8a3deb..a5028315a7 100644
--- a/libavcodec/h26x/h2656_sao_template.c
+++ b/libavcodec/h26x/h2656_sao_template.c
@@ -54,8 +54,8 @@ static void FUNC(sao_edge_filter)(uint8_t *_dst, const uint8_t *_src, ptrdiff_t
static const int8_t pos[4][2][2] = {
{ { -1, 0 }, { 1, 0 } }, // horizontal
{ { 0, -1 }, { 0, 1 } }, // vertical
- { { -1, -1 }, { 1, 1 } }, // 45 degree
- { { 1, -1 }, { -1, 1 } }, // 135 degree
+ { { -1, -1 }, { 1, 1 } }, // 135 degree
+ { { 1, -1 }, { -1, 1 } }, // 45 degree
};
pixel *dst = (pixel *)_dst;
const pixel *src = (const pixel *)_src;
diff --git a/libavcodec/wasm/hevc/sao.c b/libavcodec/wasm/hevc/sao.c
index a863b8e720..89e6b2cf07 100644
--- a/libavcodec/wasm/hevc/sao.c
+++ b/libavcodec/wasm/hevc/sao.c
@@ -124,8 +124,8 @@ void ff_hevc_sao_edge_filter_8x8_8_simd128(uint8_t *dst, const uint8_t *src,
static const int8_t pos[4][2][2] = {
{ { -1, 0 }, { 1, 0 } }, // horizontal
{ { 0, -1 }, { 0, 1 } }, // vertical
- { { -1, -1 }, { 1, 1 } }, // 45 degree
- { { 1, -1 }, { -1, 1 } }, // 135 degree
+ { { -1, -1 }, { 1, 1 } }, // 135 degree
+ { { 1, -1 }, { -1, 1 } }, // 45 degree
};
int a_stride, b_stride;
ptrdiff_t stride_src = (2 * HEVC_MAX_PB_SIZE + AV_INPUT_BUFFER_PADDING_SIZE);
@@ -194,8 +194,8 @@ void ff_hevc_sao_edge_filter_16x16_8_simd128(uint8_t *dst, const uint8_t *src,
static const int8_t pos[4][2][2] = {
{ { -1, 0 }, { 1, 0 } }, // horizontal
{ { 0, -1 }, { 0, 1 } }, // vertical
- { { -1, -1 }, { 1, 1 } }, // 45 degree
- { { 1, -1 }, { -1, 1 } }, // 135 degree
+ { { -1, -1 }, { 1, 1 } }, // 135 degree
+ { { 1, -1 }, { -1, 1 } }, // 45 degree
};
int a_stride, b_stride;
ptrdiff_t stride_src = (2 * HEVC_MAX_PB_SIZE + AV_INPUT_BUFFER_PADDING_SIZE);