summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/xine-utils/color.c3
-rw-r--r--src/xine-utils/xineutils.h10
2 files changed, 5 insertions, 8 deletions
diff --git a/src/xine-utils/color.c b/src/xine-utils/color.c
index 8b37134b7..3c2388c27 100644
--- a/src/xine-utils/color.c
+++ b/src/xine-utils/color.c
@@ -76,8 +76,7 @@
* next 9 defines.
*/
-/* convert full range rgb to mpeg range yuv */
-#if 0
+#if 1
#define Y_R (SCALEFACTOR * 0.29900)
#define Y_G (SCALEFACTOR * 0.58700)
diff --git a/src/xine-utils/xineutils.h b/src/xine-utils/xineutils.h
index 662f39467..5b16e6e3c 100644
--- a/src/xine-utils/xineutils.h
+++ b/src/xine-utils/xineutils.h
@@ -288,20 +288,18 @@ extern void (*yuy2_to_yv12)
unsigned char *v_dst, int v_dst_pitch,
int width, int height) XINE_PROTECTED;
-/* convert full range rgb to mpeg range yuv */
-#define SCALESHIFT 16
-#define SCALEFACTOR (1<<SCALESHIFT)
+#define SCALEFACTOR 65536
#define CENTERSAMPLE 128
#define COMPUTE_Y(r, g, b) \
(unsigned char) \
- (((y_r_table[r] + y_g_table[g] + y_b_table[b]) >> SCALESHIFT) + 16)
+ ((y_r_table[r] + y_g_table[g] + y_b_table[b]) / SCALEFACTOR)
#define COMPUTE_U(r, g, b) \
(unsigned char) \
- (((u_r_table[r] + u_g_table[g] + u_b_table[b]) >> SCALESHIFT) + CENTERSAMPLE)
+ ((u_r_table[r] + u_g_table[g] + u_b_table[b]) / SCALEFACTOR + CENTERSAMPLE)
#define COMPUTE_V(r, g, b) \
(unsigned char) \
- (((v_r_table[r] + v_g_table[g] + v_b_table[b]) >> SCALESHIFT) + CENTERSAMPLE)
+ ((v_r_table[r] + v_g_table[g] + v_b_table[b]) / SCALEFACTOR + CENTERSAMPLE)
#define UNPACK_BGR15(packed_pixel, r, g, b) \
b = (packed_pixel & 0x7C00) >> 7; \