summaryrefslogtreecommitdiffstats
path: root/gst-libs/ext/mplex/fastintfns.h
diff options
context:
space:
mode:
Diffstat (limited to 'gst-libs/ext/mplex/fastintfns.h')
-rw-r--r--gst-libs/ext/mplex/fastintfns.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/gst-libs/ext/mplex/fastintfns.h b/gst-libs/ext/mplex/fastintfns.h
new file mode 100644
index 00000000..db78af1e
--- /dev/null
+++ b/gst-libs/ext/mplex/fastintfns.h
@@ -0,0 +1,32 @@
+/* fast int primitives. min,max,abs,samesign
+ *
+ * WARNING: Assumes 2's complement arithmetic.
+ *
+ */
+
+
+static __inline__ int intmax( register int x, register int y )
+{
+ return x < y ? y : x;
+}
+
+static __inline__ int intmin( register int x, register int y )
+{
+ return x < y ? x : y;
+}
+
+static __inline__ int intabs( register int x )
+{
+ return x < 0 ? -x : x;
+}
+
+#define fabsshift ((8*sizeof(unsigned int))-1)
+
+#define signmask(x) (((int)x)>>fabsshift)
+static __inline__ int intsamesign(int x, int y)
+{
+ return (y+(signmask(x) & -(y<<1)));
+}
+#undef signmask
+#undef fabsshift
+