[FFmpeg-cvslog] swscale: fix NEON hscale init
Josh de Kock
git at videolan.org
Fri May 15 13:27:25 EEST 2020
ffmpeg | branch: master | Josh de Kock <josh at itanimul.li> | Thu May 7 12:01:16 2020 +0100| [718c8f9aa59751bb490e2688acf2b5cb68fd5ad1] | committer: Josh de Kock
swscale: fix NEON hscale init
The NEON hscale function only supports X8 filter sizes and should only
be selected when these are being used. At the moment filterAlign is
set to 8 but in the future when extra NEON assembly for specific sizes is
added they will need to have checks here too.
The immediate usecase for this change is making the hscale checkasm
test easier and without NEON specific edge-cases (x86 already has these
guards).
Signed-off-by: Josh de Kock <josh at itanimul.li>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=718c8f9aa59751bb490e2688acf2b5cb68fd5ad1
---
libswscale/aarch64/swscale.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/libswscale/aarch64/swscale.c b/libswscale/aarch64/swscale.c
index 54a3beabe8..eecbea88ca 100644
--- a/libswscale/aarch64/swscale.c
+++ b/libswscale/aarch64/swscale.c
@@ -34,7 +34,10 @@ av_cold void ff_sws_init_swscale_aarch64(SwsContext *c)
int cpu_flags = av_get_cpu_flags();
if (have_neon(cpu_flags)) {
- if (c->srcBpc == 8 && c->dstBpc <= 14) {
+ if (c->srcBpc == 8 && c->dstBpc <= 14 &&
+ (c->hLumFilterSize % 8) == 0 &&
+ (c->hChrFilterSize % 8) == 0)
+ {
c->hyScale = c->hcScale = ff_hscale_8_to_15_neon;
}
if (c->dstBpc == 8) {
More information about the ffmpeg-cvslog
mailing list