summaryrefslogtreecommitdiff
path: root/thirdparty/libvpx/rtcd/vp9_rtcd_x86.h
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <rverschelde@gmail.com>2016-10-30 18:12:00 +0100
committerGitHub <noreply@github.com>2016-10-30 18:12:00 +0100
commitc6c13eb8fc7d4ad631a92edcf360f38210129d39 (patch)
tree12e82cb0ab3e2c3953d92ffd2aca5500685b87d7 /thirdparty/libvpx/rtcd/vp9_rtcd_x86.h
parent1944635ac4f3e9f12b176c2f38d43205195c35c5 (diff)
parentd710b265f8c9c94f3315d2d2ae2267c7437eb179 (diff)
Merge pull request #6490 from zaps166/webm-pr
Add WebM support
Diffstat (limited to 'thirdparty/libvpx/rtcd/vp9_rtcd_x86.h')
-rw-r--r--thirdparty/libvpx/rtcd/vp9_rtcd_x86.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/thirdparty/libvpx/rtcd/vp9_rtcd_x86.h b/thirdparty/libvpx/rtcd/vp9_rtcd_x86.h
new file mode 100644
index 0000000000..8ce8067674
--- /dev/null
+++ b/thirdparty/libvpx/rtcd/vp9_rtcd_x86.h
@@ -0,0 +1,55 @@
+#ifndef VP9_RTCD_H_
+#define VP9_RTCD_H_
+
+#ifdef RTCD_C
+#define RTCD_EXTERN
+#else
+#define RTCD_EXTERN extern
+#endif
+
+/*
+ * VP9
+ */
+
+#include "vp9/common/vp9_common.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void vp9_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
+void vp9_iht16x16_256_add_sse2(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
+RTCD_EXTERN void (*vp9_iht16x16_256_add)(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
+
+void vp9_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
+void vp9_iht4x4_16_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
+RTCD_EXTERN void (*vp9_iht4x4_16_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
+
+void vp9_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
+void vp9_iht8x8_64_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
+RTCD_EXTERN void (*vp9_iht8x8_64_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
+
+void vp9_rtcd(void);
+
+#ifdef RTCD_C
+#include "vpx_ports/x86.h"
+static void setup_rtcd_internal(void)
+{
+ int flags = x86_simd_caps();
+
+ vp9_iht16x16_256_add = vp9_iht16x16_256_add_c;
+ if (flags & HAS_SSE2) vp9_iht16x16_256_add = vp9_iht16x16_256_add_sse2;
+
+ vp9_iht4x4_16_add = vp9_iht4x4_16_add_c;
+ if (flags & HAS_SSE2) vp9_iht4x4_16_add = vp9_iht4x4_16_add_sse2;
+
+ vp9_iht8x8_64_add = vp9_iht8x8_64_add_c;
+ if (flags & HAS_SSE2) vp9_iht8x8_64_add = vp9_iht8x8_64_add_sse2;
+}
+#endif
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif