Libav
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 Libav.
9
*
10
* Libav 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
* Libav 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 Libav; 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_YASM
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
35
#endif
/* HAVE_YASM */
36
37
av_cold
void
ff_fmt_convert_init_x86
(
FmtConvertContext
*c,
AVCodecContext
*avctx)
38
{
39
#if HAVE_YASM
40
int
cpu_flags =
av_get_cpu_flags
();
41
42
if
(
EXTERNAL_SSE
(cpu_flags)) {
43
c->
int32_to_float_fmul_scalar
= ff_int32_to_float_fmul_scalar_sse;
44
}
45
if
(
EXTERNAL_SSE2
(cpu_flags)) {
46
c->
int32_to_float_fmul_scalar
= ff_int32_to_float_fmul_scalar_sse2;
47
}
48
#endif
/* HAVE_YASM */
49
}
cpu.h
EXTERNAL_SSE
#define EXTERNAL_SSE(flags)
Definition:
cpu.h:57
attributes.h
Macro definitions for various function/variable attributes.
av_cold
#define av_cold
Definition:
attributes.h:66
FmtConvertContext
Definition:
fmtconvert.h:28
EXTERNAL_SSE2
#define EXTERNAL_SSE2(flags)
Definition:
cpu.h:58
src
#define src
Definition:
vp8dsp.c:254
FmtConvertContext::int32_to_float_fmul_scalar
void(* int32_to_float_fmul_scalar)(float *dst, const int32_t *src, float mul, int len)
Convert an array of int32_t to float and multiply by a float value.
Definition:
fmtconvert.h:38
int32_t
int32_t
Definition:
audio_convert.c:194
cpu.h
AVCodecContext
main external API structure.
Definition:
avcodec.h:1409
av_get_cpu_flags
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
Definition:
cpu.c:47
fmtconvert.h
len
int len
Definition:
vorbis_enc_data.h:452
ff_fmt_convert_init_x86
av_cold void ff_fmt_convert_init_x86(FmtConvertContext *c, AVCodecContext *avctx)
Definition:
fmtconvert_init.c:37
Generated on Fri Dec 1 2017 07:11:39 for Libav by
1.8.13