FFmpeg
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
Functions
Variables
Data Structures
Data Structures
Data Structure Index
Class Hierarchy
Data Fields
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
c
d
g
i
o
q
r
s
v
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
Enumerator
a
d
e
f
i
j
l
m
n
p
r
s
v
Files
File List
Globals
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
l
m
o
p
q
r
s
t
u
v
w
x
y
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Macros
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Examples
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Modules
Pages
libavcodec
x86
dcadsp_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 "
libavutil/attributes.h
"
20
#include "
libavutil/cpu.h
"
21
#include "
libavutil/x86/cpu.h
"
22
#include "
libavcodec/dcadsp.h
"
23
24
#define LFE_FIR_FLOAT_FUNC(opt) \
25
void ff_lfe_fir0_float_##opt(float *pcm_samples, int32_t *lfe_samples, \
26
const float *filter_coeff, ptrdiff_t npcmblocks); \
27
void ff_lfe_fir1_float_##opt(float *pcm_samples, int32_t *lfe_samples, \
28
const float *filter_coeff, ptrdiff_t npcmblocks);
29
30
LFE_FIR_FLOAT_FUNC
(
sse
)
31
LFE_FIR_FLOAT_FUNC
(sse2)
32
LFE_FIR_FLOAT_FUNC
(sse3)
33
LFE_FIR_FLOAT_FUNC
(avx)
34
LFE_FIR_FLOAT_FUNC
(fma3)
35
36
av_cold
void
ff_dcadsp_init_x86
(
DCADSPContext
*
s
)
37
{
38
int
cpu_flags
=
av_get_cpu_flags
();
39
40
if
(ARCH_X86_32 &&
EXTERNAL_SSE
(
cpu_flags
))
41
s
->lfe_fir_float[0] = ff_lfe_fir0_float_sse;
42
if
(
EXTERNAL_SSE2
(
cpu_flags
))
43
s
->lfe_fir_float[0] = ff_lfe_fir0_float_sse2;
44
if
(
EXTERNAL_SSE3
(
cpu_flags
))
45
s
->lfe_fir_float[1] = ff_lfe_fir1_float_sse3;
46
if
(
EXTERNAL_AVX
(
cpu_flags
)) {
47
s
->lfe_fir_float[0] = ff_lfe_fir0_float_avx;
48
s
->lfe_fir_float[1] = ff_lfe_fir1_float_avx;
49
}
50
if
(
EXTERNAL_FMA3
(
cpu_flags
))
51
s
->lfe_fir_float[0] = ff_lfe_fir0_float_fma3;
52
}
cpu.h
LFE_FIR_FLOAT_FUNC
#define LFE_FIR_FLOAT_FUNC(opt)
Definition:
dcadsp_init.c:24
av_get_cpu_flags
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
Definition:
cpu.c:98
cpu_flags
static atomic_int cpu_flags
Definition:
cpu.c:50
av_cold
#define av_cold
Definition:
attributes.h:90
s
#define s(width, name)
Definition:
cbs_vp9.c:257
EXTERNAL_SSE
#define EXTERNAL_SSE(flags)
Definition:
cpu.h:58
sse
static int sse(MpegEncContext *s, uint8_t *src1, uint8_t *src2, int w, int h, int stride)
Definition:
mpegvideo_enc.c:2571
ff_dcadsp_init_x86
av_cold void ff_dcadsp_init_x86(DCADSPContext *s)
Definition:
dcadsp_init.c:36
EXTERNAL_SSE3
#define EXTERNAL_SSE3(flags)
Definition:
cpu.h:62
DCADSPContext
Definition:
dcadsp.h:30
cpu.h
attributes.h
EXTERNAL_SSE2
#define EXTERNAL_SSE2(flags)
Definition:
cpu.h:59
dcadsp.h
EXTERNAL_AVX
#define EXTERNAL_AVX(flags)
Definition:
cpu.h:70
EXTERNAL_FMA3
#define EXTERNAL_FMA3(flags)
Definition:
cpu.h:74
Generated on Wed Aug 24 2022 21:38:01 for FFmpeg by
1.8.17