diff options
author | Zhao Zhili <zhilizhao@tencent.com> | 2024-11-20 20:44:59 +0800 |
---|---|---|
committer | Zhao Zhili <zhilizhao@tencent.com> | 2024-12-04 16:43:06 +0800 |
commit | 2dc55f599332ca371d97c0a1e31655aa42402f4f (patch) | |
tree | 84b658c079bf308d6a838cdfdb5c46305ab07e37 /libavutil/wasm/cpu.c | |
parent | 7c1e732ad2e240af5afe9ffea443c91bb233aa65 (diff) | |
download | ffmpeg-2dc55f599332ca371d97c0a1e31655aa42402f4f.tar.gz |
configure: Add wasm as a fake arch
And add wasm simd128 flag, so we can add simd128 optimizations.
It can be enabled by put -msimd128 to extra cflags. There is
no runtime detection on simd128 support yet. I think that needs to
be done with JavaScript.
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
Diffstat (limited to 'libavutil/wasm/cpu.c')
-rw-r--r-- | libavutil/wasm/cpu.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/libavutil/wasm/cpu.c b/libavutil/wasm/cpu.c new file mode 100644 index 0000000000..a8e990dd29 --- /dev/null +++ b/libavutil/wasm/cpu.c @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2024 Zhao Zhili + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include <stdint.h> + +#include "libavutil/cpu_internal.h" + +int ff_get_cpu_flags_wasm(void) +{ + int flags = 0; +#if HAVE_SIMD128 + flags |= AV_CPU_FLAG_SIMD128; +#endif + return flags; +} + +size_t ff_get_cpu_max_align_wasm(void) +{ +#if HAVE_SIMD128 + return 16; +#else + return 8; +#endif +} + |