summaryrefslogtreecommitdiff
path: root/libavcodec/dsputil.h
diff options
context:
space:
mode:
authorJustin Ruggles <justin.ruggles@gmail.com>2011-10-30 01:13:55 -0400
committerJustin Ruggles <justin.ruggles@gmail.com>2011-11-11 14:13:58 -0500
commit9d06037d48041ad8ccbae6c12aa9f3a313a89c4e (patch)
tree9521e25c2c61b0397b86f99d026b624251ee0d14 /libavcodec/dsputil.h
parent7b966566da24598a636a433a75a7842e272b18f6 (diff)
twinvq: add SSE/AVX optimized sum/difference stereo interleaving
Diffstat (limited to 'libavcodec/dsputil.h')
-rw-r--r--libavcodec/dsputil.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/libavcodec/dsputil.h b/libavcodec/dsputil.h
index acb2041460..98b7b1eeaa 100644
--- a/libavcodec/dsputil.h
+++ b/libavcodec/dsputil.h
@@ -453,6 +453,23 @@ typedef struct DSPContext {
*/
void (*butterflies_float)(float *restrict v1, float *restrict v2, int len);
+ /**
+ * Calculate the sum and difference of two vectors of floats and interleave
+ * results into a separate output vector of floats, with each sum
+ * positioned before the corresponding difference.
+ *
+ * @param dst output vector
+ * constraints: 16-byte aligned
+ * @param src0 first input vector
+ * constraints: 32-byte aligned
+ * @param src1 second input vector
+ * constraints: 32-byte aligned
+ * @param len number of elements in the input
+ * constraints: multiple of 8
+ */
+ void (*butterflies_float_interleave)(float *dst, const float *src0,
+ const float *src1, int len);
+
/* (I)DCT */
void (*fdct)(DCTELEM *block/* align 16*/);
void (*fdct248)(DCTELEM *block/* align 16*/);