aboutsummaryrefslogtreecommitdiffstats
path: root/libavresample/x86/util.asm
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-05-30 19:32:06 +0200
committerMichael Niedermayer <michaelni@gmx.at>2012-05-30 19:32:06 +0200
commita1fc1d2e1b4a5bcfd07549dce9735f24237aa32e (patch)
tree924f2f1428ad37e7265a8effffd0158bb2a4ef48 /libavresample/x86/util.asm
parent39f0a45a1a087e5bbef84fa3366942384ec32155 (diff)
parentd041dec3cba300aef6e489990be7242dcd808441 (diff)
downloadffmpeg-a1fc1d2e1b4a5bcfd07549dce9735f24237aa32e.tar.gz
Merge remote-tracking branch 'qatar/master'
* qatar/master: pcm-mpeg: improve log message wording fate: add missing $(TARGET_PATH) to ac3-fixed-encode fate: fix md5sum replacement on some systems avprobe: correctly set the default formatter lavr: add x86-optimized function for mixing 2 to 1 s16p with q8 coeffs lavr: add x86-optimized functions for mixing 2 to 1 s16p with float coeffs lavr: add C functions for mixing 2 to 1 channels with s16p format avprobe: move formatter functions in the context Conflicts: ffprobe.c libavcodec/pcm-mpeg.c tests/fate/ac3.mak Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavresample/x86/util.asm')
-rw-r--r--libavresample/x86/util.asm34
1 files changed, 34 insertions, 0 deletions
diff --git a/libavresample/x86/util.asm b/libavresample/x86/util.asm
new file mode 100644
index 0000000000..501f662d43
--- /dev/null
+++ b/libavresample/x86/util.asm
@@ -0,0 +1,34 @@
+;******************************************************************************
+;* x86 utility macros for libavresample
+;* Copyright (c) 2012 Justin Ruggles <justin.ruggles@gmail.com>
+;*
+;* This file is part of Libav.
+;*
+;* Libav is free software; you can redistribute it and/or
+;* modify it under the terms of the GNU Lesser General Public
+;* License as published by the Free Software Foundation; either
+;* version 2.1 of the License, or (at your option) any later version.
+;*
+;* Libav is distributed in the hope that it will be useful,
+;* but WITHOUT ANY WARRANTY; without even the implied warranty of
+;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;* Lesser General Public License for more details.
+;*
+;* You should have received a copy of the GNU Lesser General Public
+;* License along with Libav; if not, write to the Free Software
+;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+;******************************************************************************
+
+%macro S16_TO_S32_SX 2 ; src/low dst, high dst
+%if cpuflag(sse4)
+ pmovsxwd m%2, m%1
+ psrldq m%1, 8
+ pmovsxwd m%1, m%1
+ SWAP %1, %2
+%else
+ punpckhwd m%2, m%1
+ punpcklwd m%1, m%1
+ psrad m%2, 16
+ psrad m%1, 16
+%endif
+%endmacro