FFmpeg
4.0
libavcodec
x86
alacdsp_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/x86/cpu.h
"
21
#include "
libavcodec/alacdsp.h
"
22
#include "config.h"
23
24
void
ff_alac_decorrelate_stereo_sse4
(
int32_t
*
buffer
[2],
int
nb_samples,
25
int
decorr_shift,
int
decorr_left_weight);
26
void
ff_alac_append_extra_bits_stereo_sse2
(
int32_t
*
buffer
[2],
int32_t
*extra_bits_buffer[2],
27
int
extra_bits
,
int
channels
,
int
nb_samples);
28
void
ff_alac_append_extra_bits_mono_sse2
(
int32_t
*
buffer
[2],
int32_t
*extra_bits_buffer[2],
29
int
extra_bits
,
int
channels
,
int
nb_samples);
30
31
av_cold
void
ff_alacdsp_init_x86
(
ALACDSPContext
*
c
)
32
{
33
#if HAVE_X86ASM
34
int
cpu_flags
=
av_get_cpu_flags
();
35
36
if
(
EXTERNAL_SSE2
(cpu_flags)) {
37
c->
append_extra_bits
[0] =
ff_alac_append_extra_bits_mono_sse2
;
38
c->
append_extra_bits
[1] =
ff_alac_append_extra_bits_stereo_sse2
;
39
}
40
if
(
EXTERNAL_SSE4
(cpu_flags)) {
41
c->
decorrelate_stereo
=
ff_alac_decorrelate_stereo_sse4
;
42
}
43
#endif
/* HAVE_X86ASM */
44
}
extra_bits
#define extra_bits(eb)
Definition:
intrax8.c:159
channels
channels
Definition:
aptx.c:30
ff_alac_append_extra_bits_stereo_sse2
void ff_alac_append_extra_bits_stereo_sse2(int32_t *buffer[2], int32_t *extra_bits_buffer[2], int extra_bits, int channels, int nb_samples)
ff_alac_decorrelate_stereo_sse4
void ff_alac_decorrelate_stereo_sse4(int32_t *buffer[2], int nb_samples, int decorr_shift, int decorr_left_weight)
cpu_flags
static atomic_int cpu_flags
Definition:
cpu.c:50
cpu.h
attributes.h
Macro definitions for various function/variable attributes.
EXTERNAL_SSE4
#define EXTERNAL_SSE4(flags)
Definition:
cpu.h:68
buffer
static char buffer[20]
Definition:
seek.c:32
av_cold
#define av_cold
Definition:
attributes.h:82
EXTERNAL_SSE2
#define EXTERNAL_SSE2(flags)
Definition:
cpu.h:59
ALACDSPContext
Definition:
alacdsp.h:24
int32_t
int32_t
Definition:
audio_convert.c:194
ALACDSPContext::append_extra_bits
void(* append_extra_bits[2])(int32_t *buffer[2], int32_t *extra_bits_buffer[2], int extra_bits, int channels, int nb_samples)
Definition:
alacdsp.h:27
av_get_cpu_flags
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
Definition:
cpu.c:93
ALACDSPContext::decorrelate_stereo
void(* decorrelate_stereo)(int32_t *buffer[2], int nb_samples, int decorr_shift, int decorr_left_weight)
Definition:
alacdsp.h:25
ff_alacdsp_init_x86
av_cold void ff_alacdsp_init_x86(ALACDSPContext *c)
Definition:
alacdsp_init.c:31
ff_alac_append_extra_bits_mono_sse2
void ff_alac_append_extra_bits_mono_sse2(int32_t *buffer[2], int32_t *extra_bits_buffer[2], int extra_bits, int channels, int nb_samples)
c
static double c[64]
Definition:
vsrc_mptestsrc.c:87
alacdsp.h
Generated on Tue May 22 2018 07:06:44 for FFmpeg by
1.8.13