[FFmpeg-devel] [PATCH 1/2] swscale: fix NEON hscale init

Josh de Kock josh at itanimul.li
Sat May 16 23:36:11 EEST 2020


On 16/05/2020 11:50, Carl Eugen Hoyos wrote:
> Am Fr., 15. Mai 2020 um 12:27 Uhr schrieb Josh de Kock <josh at itanimul.li>:
>>
>> On 08/05/2020 12:25, Michael Niedermayer wrote:
>>> On Thu, May 07, 2020 at 12:25:34PM +0100, Josh de Kock wrote:
>>>> The NEON hscale function only supports X8 filter sizes and should only
>>>> be selected when these are being used.
>>>>
>>>> Signed-off-by: Josh de Kock <josh at itanimul.li>
>>>> ---
>>>>    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;
>>>>            }
>>>
>>> isnt filterAlign set to 8 when neon is available ?
>>
>> Discussed on IRC. Pushed with set.
> 
> Could you give a very short explanation on why the comment
> was not relevant?
> 

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 use-case for this change is making the hscale checkasm
test easier and without NEON specific edge-cases (x86 already has these
guards).

Michael then said the extra check was fine here. The checkasm test 
breaks on altivec (I was unable to test this) but I'm discussing with 
Martin if there's a better way to do this, these checks are likely to be 
reverted with a different solution implemented.

-- 
Josh


More information about the ffmpeg-devel mailing list