FFmpeg
4.4.6
libavcodec
x86
fmtconvert_init.c
Go to the documentation of this file.
1
/*
2
* Format Conversion Utils
3
* Copyright (c) 2000, 2001 Fabrice Bellard
4
* Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
5
*
6
* MMX optimization by Nick Kurshev <nickols_k@mail.ru>
7
*
8
* This file is part of FFmpeg.
9
*
10
* FFmpeg is free software; you can redistribute it and/or
11
* modify it under the terms of the GNU Lesser General Public
12
* License as published by the Free Software Foundation; either
13
* version 2.1 of the License, or (at your option) any later version.
14
*
15
* FFmpeg is distributed in the hope that it will be useful,
16
* but WITHOUT ANY WARRANTY; without even the implied warranty of
17
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18
* Lesser General Public License for more details.
19
*
20
* You should have received a copy of the GNU Lesser General Public
21
* License along with FFmpeg; if not, write to the Free Software
22
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
23
*/
24
25
#include "
libavutil/attributes.h
"
26
#include "
libavutil/cpu.h
"
27
#include "
libavutil/x86/cpu.h
"
28
#include "
libavcodec/fmtconvert.h
"
29
30
#if HAVE_X86ASM
31
32
void
ff_int32_to_float_fmul_scalar_sse (
float
*dst,
const
int32_t
*
src
,
float
mul
,
int
len
);
33
void
ff_int32_to_float_fmul_scalar_sse2(
float
*dst,
const
int32_t
*
src
,
float
mul
,
int
len
);
34
void
ff_int32_to_float_fmul_array8_sse (
FmtConvertContext
*
c
,
float
*dst,
const
int32_t
*
src
,
35
const
float
*
mul
,
int
len
);
36
void
ff_int32_to_float_fmul_array8_sse2(
FmtConvertContext
*
c
,
float
*dst,
const
int32_t
*
src
,
37
const
float
*
mul
,
int
len
);
38
39
#endif
/* HAVE_X86ASM */
40
41
av_cold
void
ff_fmt_convert_init_x86
(
FmtConvertContext
*
c
,
AVCodecContext
*avctx)
42
{
43
#if HAVE_X86ASM
44
int
cpu_flags
=
av_get_cpu_flags
();
45
46
if
(
EXTERNAL_SSE
(
cpu_flags
)) {
47
c
->int32_to_float_fmul_scalar = ff_int32_to_float_fmul_scalar_sse;
48
c
->int32_to_float_fmul_array8 = ff_int32_to_float_fmul_array8_sse;
49
}
50
if
(
EXTERNAL_SSE2
(
cpu_flags
)) {
51
c
->int32_to_float_fmul_scalar = ff_int32_to_float_fmul_scalar_sse2;
52
c
->int32_to_float_fmul_array8 = ff_int32_to_float_fmul_array8_sse2;
53
}
54
#endif
/* HAVE_X86ASM */
55
}
attributes.h
Macro definitions for various function/variable attributes.
av_cold
#define av_cold
Definition:
attributes.h:88
int32_t
int32_t
Definition:
audio_convert.c:194
cpu_flags
static atomic_int cpu_flags
Definition:
cpu.c:50
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.h
mul
static float mul(float src0, float src1)
Definition:
dnn_backend_native_layer_mathbinary.c:40
fmtconvert.h
AVCodecContext
main external API structure.
Definition:
avcodec.h:536
FmtConvertContext
Definition:
fmtconvert.h:28
src
#define src
Definition:
vp8dsp.c:255
len
int len
Definition:
vorbis_enc_data.h:452
c
static double c[64]
Definition:
vsrc_mptestsrc.c:92
cpu.h
EXTERNAL_SSE
#define EXTERNAL_SSE(flags)
Definition:
cpu.h:58
EXTERNAL_SSE2
#define EXTERNAL_SSE2(flags)
Definition:
cpu.h:59
ff_fmt_convert_init_x86
av_cold void ff_fmt_convert_init_x86(FmtConvertContext *c, AVCodecContext *avctx)
Definition:
fmtconvert_init.c:41
Generated on Sun May 18 2025 06:58:54 for FFmpeg by
1.9.1