mirror of https://github.com/FFmpeg/FFmpeg.git
Signed-off-by: Geoff Hill <geoff@geoffhill.org> Signed-off-by: Martin Storsjö <martin@martin.st>release/7.1
parent
2d33d6bfcc
commit
b69486ea18
5 changed files with 79 additions and 2 deletions
@ -0,0 +1,36 @@ |
||||
/*
|
||||
* Copyright (c) 2024 Geoff Hill <geoff@geoffhill.org> |
||||
* |
||||
* This file is part of FFmpeg. |
||||
* |
||||
* FFmpeg is free software; you can redistribute it and/or modify |
||||
* it under the terms of the GNU General Public License as published by |
||||
* the Free Software Foundation; either version 2 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 General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU 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/arm/cpu.h" |
||||
#include "libavutil/attributes.h" |
||||
#include "libavcodec/ac3dsp.h" |
||||
#include "config.h" |
||||
|
||||
void ff_float_to_fixed24_neon(int32_t *dst, const float *src, size_t len); |
||||
|
||||
av_cold void ff_ac3dsp_init_aarch64(AC3DSPContext *c) |
||||
{ |
||||
int cpu_flags = av_get_cpu_flags(); |
||||
if (!have_neon(cpu_flags)) return; |
||||
|
||||
c->float_to_fixed24 = ff_float_to_fixed24_neon; |
||||
} |
@ -0,0 +1,36 @@ |
||||
/* |
||||
* Copyright (c) 2011 Mans Rullgard <mans@mansr.com>
|
||||
* Copyright (c) 2024 Geoff Hill <geoff@geoffhill.org>
|
||||
* |
||||
* This file is part of FFmpeg. |
||||
* |
||||
* FFmpeg is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by |
||||
* the Free Software Foundation; either version 2 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 General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU 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 "libavutil/aarch64/asm.S" |
||||
|
||||
function ff_float_to_fixed24_neon, export=1 |
||||
1: ld1 {v0.4s, v1.4s}, [x1], #32 |
||||
fcvtzs v0.4s, v0.4s, #24 |
||||
ld1 {v2.4s, v3.4s}, [x1], #32 |
||||
fcvtzs v1.4s, v1.4s, #24 |
||||
fcvtzs v2.4s, v2.4s, #24 |
||||
st1 {v0.4s, v1.4s}, [x0], #32 |
||||
fcvtzs v3.4s, v3.4s, #24 |
||||
st1 {v2.4s, v3.4s}, [x0], #32 |
||||
subs w2, w2, #16 |
||||
b.ne 1b |
||||
ret |
||||
endfunc |
Loading…
Reference in new issue