Add image computing oriented builtin functions
The new built-in functions covers inverse DCT, ADST and walsh transforms.
Change-Id: Ie7044da4a5becf2cc80d066a258211721a5939d4
diff --git a/scriptc/rs_core.rsh b/scriptc/rs_core.rsh
index 9caf355..6b38df4 100644
--- a/scriptc/rs_core.rsh
+++ b/scriptc/rs_core.rsh
@@ -60,6 +60,11 @@
#include "rs_quaternion.rsh"
#include "rs_sampler.rsh"
#include "rs_time.rsh"
+#include "rs_idct.rsh"
+#include "rs_dct.rsh"
+#include "rs_iadst.rsh"
+#include "rs_fadst.rsh"
+#include "rs_walsh.rsh"
/**
* Send a message back to the client. Will not block and returns true
diff --git a/scriptc/rs_dct.rsh b/scriptc/rs_dct.rsh
new file mode 100644
index 0000000..51e789d
--- /dev/null
+++ b/scriptc/rs_dct.rsh
@@ -0,0 +1,14 @@
+#ifndef __RS_DCT_RSH__
+#define __RS_DCT_RSH__
+
+#if RS_VERSION > 19
+
+extern void dct4x4(rs_allocation input, rs_allocation output, int xoff, int yoff);
+extern void dct8x8(rs_allocation input, rs_allocation output, int xoff, int yoff);
+extern void dct16x16(rs_allocation input, rs_allocation output, int xoff, int yoff);
+extern void dct32x32(rs_allocation input, rs_allocation out, int xoff, int yoff);
+extern void dct32x32_rd(rs_allocation input, rs_allocation out, int xoff, int yoff);
+
+#endif
+
+#endif
diff --git a/scriptc/rs_fadst.rsh b/scriptc/rs_fadst.rsh
new file mode 100644
index 0000000..6dc0170
--- /dev/null
+++ b/scriptc/rs_fadst.rsh
@@ -0,0 +1,14 @@
+#ifndef __RS_FADST_RSH__
+#define __RS_FADST_RSH__
+
+#if RS_VERSION > 19
+
+extern void fadst4(const rs_allocation input, rs_allocation output, int32_t xoff);
+
+extern void fadst8(const rs_allocation input, rs_allocation output, int32_t xoff);
+
+extern void fadst16(const rs_allocation input, rs_allocation output, int32_t xoff);
+
+#endif
+
+#endif
\ No newline at end of file
diff --git a/scriptc/rs_iadst.rsh b/scriptc/rs_iadst.rsh
new file mode 100644
index 0000000..dad396c
--- /dev/null
+++ b/scriptc/rs_iadst.rsh
@@ -0,0 +1,14 @@
+#ifndef __RS_IADST_RSH__
+#define __RS_IADST_RSH__
+
+#if RS_VERSION > 19
+
+extern void iadst4(const rs_allocation input, rs_allocation output, int32_t xoff);
+
+extern void iadst8(const rs_allocation input, rs_allocation output, int32_t xoff);
+
+extern void iadst16(const rs_allocation input, rs_allocation output, int32_t xoff);
+
+#endif
+
+#endif
\ No newline at end of file
diff --git a/scriptc/rs_idct.rsh b/scriptc/rs_idct.rsh
new file mode 100644
index 0000000..e379736
--- /dev/null
+++ b/scriptc/rs_idct.rsh
@@ -0,0 +1,13 @@
+#ifndef __RS_IDCT_RSH__
+#define __RS_IDCT_RSH__
+
+#if RS_VERSION > 19
+
+extern void idct4x4(const rs_allocation input, rs_allocation dest, int eob, int xoff, int yoff);
+extern void idct8x8(const rs_allocation input, rs_allocation dest, int eob, int xoff, int yoff);
+extern void idct16x16(const rs_allocation input, rs_allocation dest, int eob, int xoff, int yoff);
+extern void idct32x32(const rs_allocation input, rs_allocation dest, int eob, int xoff, int yoff);
+
+#endif
+
+#endif
diff --git a/scriptc/rs_walsh.rsh b/scriptc/rs_walsh.rsh
new file mode 100644
index 0000000..de058ce
--- /dev/null
+++ b/scriptc/rs_walsh.rsh
@@ -0,0 +1,11 @@
+#ifndef __RS_WALSH_RSH__
+#define __RS_WALSH_RSH__
+
+#if RS_VERSION > 19
+
+extern void walsh4x4(rs_allocation input, rs_allocation dest, int xoff, int yoff);
+extern void walsh4x4_1(rs_allocation input, rs_allocation dest, int xoff, int yoff);
+
+#endif
+
+#endif