aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh de Kock <josh@itanimul.li>2020-05-07 12:01:16 +0100
committerJosh de Kock <josh@itanimul.li>2020-05-15 10:29:30 +0100
commit718c8f9aa59751bb490e2688acf2b5cb68fd5ad1 (patch)
treee5ca264d26bdcbaf9a920c5145c16010ec5e3d78
parentb18fd2b95b2fea10f0b5381333a1b4c032f010bc (diff)
downloadffmpeg-718c8f9aa59751bb490e2688acf2b5cb68fd5ad1.tar.gz
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@itanimul.li>
-rw-r--r--libswscale/aarch64/swscale.c5
1 files changed, 4 insertions, 1 deletions
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) {