Index: libmpdemux/demux_mkv.c =================================================================== --- libmpdemux/demux_mkv.c (revision 25278) +++ libmpdemux/demux_mkv.c (working copy) @@ -29,6 +29,7 @@ #include "libass/ass_mp.h" #include "libavutil/common.h" +#include "libavcodec/colorspace.h" #ifdef USE_QTX_CODECS #include "loader/qtx/qtxsdk/components.h" @@ -317,9 +318,9 @@ r = tmp >> 16 & 0xff; g = tmp >> 8 & 0xff; b = tmp & 0xff; - y = av_clip_uint8( 0.1494 * r + 0.6061 * g + 0.2445 * b); - u = av_clip_uint8( 0.6066 * r - 0.4322 * g - 0.1744 * b + 128); - v = av_clip_uint8(-0.08435 * r - 0.3422 * g + 0.4266 * b + 128); + y = RGB_TO_Y_CCIR(r, g, b); + u = RGB_TO_U_CCIR(r, g, b, 0); + v = RGB_TO_V_CCIR(r, g, b, 0); sh->palette[i] = y << 16 | u << 8 | v; start += 6; while ((*start == ',') || isspace(*start)) Index: vobsub.c =================================================================== --- vobsub.c (revision 25279) +++ vobsub.c (working copy) @@ -24,6 +24,7 @@ #include "unrarlib.h" #endif #include "libavutil/common.h" +#include "libavcodec/colorspace.h" extern int vobsub_id; // Record the original -vobsubid set by commandline, since vobsub_id will be @@ -822,9 +823,9 @@ r = tmp >> 16 & 0xff; g = tmp >> 8 & 0xff; b = tmp & 0xff; - y = av_clip_uint8( 0.1494 * r + 0.6061 * g + 0.2445 * b); - u = av_clip_uint8( 0.6066 * r - 0.4322 * g - 0.1744 * b + 128); - v = av_clip_uint8(-0.08435 * r - 0.3422 * g + 0.4266 * b + 128); + y = RGB_TO_Y_CCIR(r, g, b); + u = RGB_TO_U_CCIR(r, g, b, 0); + v = RGB_TO_V_CCIR(r, g, b, 0); vob->palette[n++] = y << 16 | u << 8 | v; if (n == 16) break; @@ -870,9 +871,9 @@ r = tmp >> 16 & 0xff; g = tmp >> 8 & 0xff; b = tmp & 0xff; - y = av_clip_uint8( 0.1494 * r + 0.6061 * g + 0.2445 * b); - u = av_clip_uint8( 0.6066 * r - 0.4322 * g - 0.1744 * b + 128); - v = av_clip_uint8(-0.08435 * r - 0.3422 * g + 0.4266 * b + 128); + y = RGB_TO_Y_CCIR(r, g, b); + u = RGB_TO_U_CCIR(r, g, b, 0); + v = RGB_TO_V_CCIR(r, g, b, 0); vob->cuspal[n++] = y << 16 | u << 8 | v; if (n==4) break;