aboutsummaryrefslogtreecommitdiff
path: root/gem2pdp/yuv.h
diff options
context:
space:
mode:
authorHans-Christoph Steiner <eighthave@users.sourceforge.net>2003-08-11 04:43:58 +0000
committerHans-Christoph Steiner <eighthave@users.sourceforge.net>2003-08-11 04:43:58 +0000
commit1c2854727070e6a3edbc4cbd3a88ee60979ffc50 (patch)
tree51e2bd7d79b2e9476212fcad2c15b9caba0562e5 /gem2pdp/yuv.h
parenta4a7431b8103f42464fd401572cff76551896467 (diff)
added sources from gem2pdp-0.4 for Linux
svn path=/trunk/externals/unauthorized/; revision=839
Diffstat (limited to 'gem2pdp/yuv.h')
-rw-r--r--gem2pdp/yuv.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/gem2pdp/yuv.h b/gem2pdp/yuv.h
new file mode 100644
index 0000000..598e087
--- /dev/null
+++ b/gem2pdp/yuv.h
@@ -0,0 +1,33 @@
+/*
+ * EffecTV - Realtime Digital Video Effector
+ * Copyright (C) 2001-2002 FUKUCHI Kentaro
+ *
+ * yuv.c: YUV(YCbCr) color system utilities
+ *
+ */
+
+#include <math.h>
+
+/*
+ * conversion from YUV to RGB
+ * r = 1.164*(y-16) + 1.596*(v-128);
+ * g = 1.164*(y-16) - 0.813*(v-128) - 0.391*(u-128);
+ * b = 1.164*(y-16) + 2.018*(u-128);
+ * conversion from RGB to YUV
+ * y = 0.257*r + 0.504*g + 0.098*b + 16
+ * u = -0.148*r - 0.291*g + 0.439*b + 128
+ * v = 0.439*r - 0.368*g - 0.071*b + 128
+ */
+
+extern "C" {
+int yuv_init(void);
+unsigned char yuv_RGBtoY(int rgb);
+unsigned char yuv_RGBtoU(int rgb);
+unsigned char yuv_RGBtoV(int rgb);
+unsigned char yuv_YUVtoR(unsigned char y, unsigned char u, unsigned char v);
+unsigned char yuv_YUVtoG(unsigned char y, unsigned char u, unsigned char v);
+unsigned char yuv_YUVtoB(unsigned char y, unsigned char u, unsigned char v);
+int yuv_YUVtoRGB(unsigned char y, unsigned char u, unsigned char v);
+void yuv_Y122RGB( short int* packet, unsigned int *rgb, int width, int height );
+void yuv_RGB2Y12( unsigned int *rgb, short int* packet, int width, int height );
+}