diff options
author | Lu Wang <wanglu@loongson.cn> | 2023-05-25 15:24:30 +0800 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2023-05-25 21:05:08 +0200 |
commit | 4501b1dfd7b812fdd459634a3e2b974525107592 (patch) | |
tree | 68723ee5cb45538fd1fc46b22339c55cf4de9c44 /libswscale/utils.c | |
parent | f6077cc666b7fdea536c1461c5582ed6ef04d1ff (diff) | |
download | ffmpeg-4501b1dfd7b812fdd459634a3e2b974525107592.tar.gz |
swscale/la: Optimize the functions of the swscale series with lsx.
./configure --disable-lasx
ffmpeg -i ~/media/1_h264_1080p_30fps_3Mbps.mp4 -f rawvideo -s 640x480
-pix_fmt bgra -y /dev/null -an
before: 91fps
after: 160fps
Reviewed-by: Shiyou Yin <yinshiyou-hf@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libswscale/utils.c')
-rw-r--r-- | libswscale/utils.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/libswscale/utils.c b/libswscale/utils.c index 925c536bf1..b02e6cdc64 100644 --- a/libswscale/utils.c +++ b/libswscale/utils.c @@ -653,7 +653,7 @@ static av_cold int initFilter(int16_t **outFilter, int32_t **filterPos, filterAlign = 1; } - if (have_lasx(cpu_flags)) { + if (have_lasx(cpu_flags) || have_lsx(cpu_flags)) { int reNum = minFilterSize & (0x07); if (minFilterSize < 5) @@ -1806,6 +1806,7 @@ static av_cold int sws_init_single_context(SwsContext *c, SwsFilter *srcFilter, const int filterAlign = X86_MMX(cpu_flags) ? 4 : PPC_ALTIVEC(cpu_flags) ? 8 : have_neon(cpu_flags) ? 4 : + have_lsx(cpu_flags) ? 8 : have_lasx(cpu_flags) ? 8 : 1; if ((ret = initFilter(&c->hLumFilter, &c->hLumFilterPos, |