FFmpeg
libavresample
aarch64
audio_convert_init.c
Go to the documentation of this file.
1
/*
2
* This file is part of FFmpeg.
3
*
4
* FFmpeg is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU Lesser General Public
6
* License as published by the Free Software Foundation; either
7
* version 2.1 of the License, or (at your option) any later version.
8
*
9
* FFmpeg is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
* Lesser General Public License for more details.
13
*
14
* You should have received a copy of the GNU Lesser General Public
15
* License along with FFmpeg; if not, write to the Free Software
16
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
*/
18
19
#include <stdint.h>
20
21
#include "config.h"
22
#include "
libavutil/attributes.h
"
23
#include "
libavutil/cpu.h
"
24
#include "
libavutil/aarch64/cpu.h
"
25
#include "
libavutil/samplefmt.h
"
26
#include "
libavresample/audio_convert.h
"
27
28
void
ff_conv_flt_to_s16_neon
(int16_t *dst,
const
float
*
src
,
int
len
);
29
void
ff_conv_fltp_to_s16_neon
(int16_t *dst,
float
*
const
*
src
,
30
int
len
,
int
channels
);
31
void
ff_conv_fltp_to_s16_2ch_neon
(int16_t *dst,
float
*
const
*
src
,
32
int
len
,
int
channels
);
33
34
av_cold
void
ff_audio_convert_init_aarch64
(
AudioConvert
*ac)
35
{
36
int
cpu_flags
=
av_get_cpu_flags
();
37
38
if
(
have_neon
(
cpu_flags
)) {
39
ff_audio_convert_set_func
(ac,
AV_SAMPLE_FMT_S16
,
AV_SAMPLE_FMT_FLT
,
40
0, 16, 8,
"NEON"
,
41
ff_conv_flt_to_s16_neon
);
42
ff_audio_convert_set_func
(ac,
AV_SAMPLE_FMT_S16
,
AV_SAMPLE_FMT_FLTP
,
43
2, 16, 8,
"NEON"
,
44
ff_conv_fltp_to_s16_2ch_neon
);
45
ff_audio_convert_set_func
(ac,
AV_SAMPLE_FMT_S16
,
AV_SAMPLE_FMT_FLTP
,
46
0, 16, 8,
"NEON"
,
47
ff_conv_fltp_to_s16_neon
);
48
}
49
}
AV_SAMPLE_FMT_FLTP
@ AV_SAMPLE_FMT_FLTP
float, planar
Definition:
samplefmt.h:69
audio_convert.h
av_get_cpu_flags
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
Definition:
cpu.c:95
cpu_flags
static atomic_int cpu_flags
Definition:
cpu.c:50
samplefmt.h
av_cold
#define av_cold
Definition:
attributes.h:90
ff_conv_fltp_to_s16_2ch_neon
void ff_conv_fltp_to_s16_2ch_neon(int16_t *dst, float *const *src, int len, int channels)
channels
channels
Definition:
aptx.h:33
src
#define src
Definition:
vp8dsp.c:255
ff_conv_fltp_to_s16_neon
void ff_conv_fltp_to_s16_neon(int16_t *dst, float *const *src, int len, int channels)
ff_conv_flt_to_s16_neon
void ff_conv_flt_to_s16_neon(int16_t *dst, const float *src, int len)
cpu.h
have_neon
#define have_neon(flags)
Definition:
cpu.h:26
attributes.h
ff_audio_convert_init_aarch64
av_cold void ff_audio_convert_init_aarch64(AudioConvert *ac)
Definition:
audio_convert_init.c:34
AV_SAMPLE_FMT_S16
@ AV_SAMPLE_FMT_S16
signed 16 bits
Definition:
samplefmt.h:61
len
int len
Definition:
vorbis_enc_data.h:452
ff_audio_convert_set_func
void ff_audio_convert_set_func(AudioConvert *ac, enum AVSampleFormat out_fmt, enum AVSampleFormat in_fmt, int channels, int ptr_align, int samples_align, const char *descr, void *conv)
Set conversion function if the parameters match.
Definition:
audio_convert.c:70
AudioConvert
Definition:
audio_convert.c:48
cpu.h
AV_SAMPLE_FMT_FLT
@ AV_SAMPLE_FMT_FLT
float
Definition:
samplefmt.h:63
Generated on Tue Apr 27 2021 19:22:13 for FFmpeg by
1.8.17