Index: libmpdemux/demux_mkv.c =================================================================== --- libmpdemux/demux_mkv.c (revision 25278) +++ libmpdemux/demux_mkv.c (working copy) @@ -347,7 +348,7 @@ static int vobsub_parse_custom_colors (sh_sub_t *sh, const char *start) { - int use_custom_colors, i; + int use_custom_colors, i, r, g, b, y, u, v, tmp; use_custom_colors = 0; start += 14; @@ -366,8 +367,15 @@ start++; for (i = 0; i < 4; i++) { - if (sscanf(start, "%06x", &sh->colors[i]) != 1) + if (sscanf(start, "%06x", &tmp) != 1) break; + r = tmp >> 16 & 0xff; + g = tmp >> 8 & 0xff; + b = tmp & 0xff; + 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->colors[i] = y << 16 | u << 8 | v; start += 6; while ((*start == ',') || isspace(*start)) start++;