Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
b72a0f9c
Commit
b72a0f9c
authored
Apr 28, 2012
by
Michael Niedermayer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
swr: add int16_to_float_sse2()
Signed-off-by:
Michael Niedermayer
<
michaelni@gmx.at
>
parent
64943b47
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
39 additions
and
0 deletions
+39
-0
audio_convert.asm
libswresample/x86/audio_convert.asm
+36
-0
swresample_x86.c
libswresample/x86/swresample_x86.c
+3
-0
No files found.
libswresample/x86/audio_convert.asm
View file @
b72a0f9c
...
...
@@ -94,6 +94,40 @@ int32_to_float_u_int %+ SUFFIX
REP_RET
%endmacro
%macro
INT16_TO_FLOAT
1
cglobal
int16_to_float_
%1
,
3
,
3
,
4
,
dst
,
src
,
len
mov
srcq
,
[srcq]
mov
dstq
,
[dstq]
%ifidn
%1
,
a
test
dstq
,
mmsize
-
1
jne
int16_to_float_u_int
%
+
SUFFIX
test
srcq
,
mmsize
-
1
jne
int16_to_float_u_int
%
+
SUFFIX
%else
int16_to_float_u_int
%
+
SUFFIX
%endif
add
dstq
,
lenq
shr
lenq
,
1
add
srcq
,
lenq
neg
lenq
mova
m3
,
[flt2pm31]
.
next
:
mov%1
m2
,
[
srcq
+
lenq
]
pxor
m0
,
m0
pxor
m1
,
m1
punpcklwd
m0
,
m2
punpckhwd
m1
,
m2
cvtdq2ps
m0
,
m0
cvtdq2ps
m1
,
m1
mulps
m0
,
m3
mulps
m1
,
m3
mov%1
[
dstq
+
2
*
lenq
]
,
m0
mov%1
[
mmsize
+
dstq
+
2
*
lenq
]
,
m1
add
lenq
,
mmsize
jl
.
next
REP_RET
%endmacro
INIT_MMX
mmx
INT16_TO_INT32
u
...
...
@@ -106,3 +140,5 @@ INT16_TO_INT32 a
INIT_XMM
sse2
INT32_TO_FLOAT
u
INT32_TO_FLOAT
a
INT16_TO_FLOAT
u
INT16_TO_FLOAT
a
libswresample/x86/swresample_x86.c
View file @
b72a0f9c
...
...
@@ -27,6 +27,7 @@ MULTI_CAPS_FUNC_DECL(mmx)
MULTI_CAPS_FUNC_DECL
(
sse
)
void
ff_int32_to_float_a_sse2
(
uint8_t
**
dst
,
const
uint8_t
**
src
,
int
len
);
void
ff_int16_to_float_a_sse2
(
uint8_t
**
dst
,
const
uint8_t
**
src
,
int
len
);
void
swri_audio_convert_init_x86
(
struct
AudioConvert
*
ac
,
enum
AVSampleFormat
out_fmt
,
...
...
@@ -50,5 +51,7 @@ MULTI_CAPS_FUNC(AV_CPU_FLAG_SSE, sse)
if
(
mm_flags
&
AV_CPU_FLAG_SSE2
)
{
if
(
out_fmt
==
AV_SAMPLE_FMT_FLT
&&
in_fmt
==
AV_SAMPLE_FMT_S32
||
out_fmt
==
AV_SAMPLE_FMT_FLTP
&&
in_fmt
==
AV_SAMPLE_FMT_S32P
)
ac
->
simd_f
=
ff_int32_to_float_a_sse2
;
if
(
out_fmt
==
AV_SAMPLE_FMT_FLT
&&
in_fmt
==
AV_SAMPLE_FMT_S16
||
out_fmt
==
AV_SAMPLE_FMT_FLTP
&&
in_fmt
==
AV_SAMPLE_FMT_S16P
)
ac
->
simd_f
=
ff_int16_to_float_a_sse2
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment