From 4a901e4db0f9c71e70a16c40d5dd1dba04732583 Mon Sep 17 00:00:00 2001 From: ulion Date: Wed, 19 Dec 2007 08:35:40 +0000 Subject: Vobsub support tridx setting in .idx file. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25460 b3059339-0415-0410-9bf9-f77b7e298cf2 --- vobsub.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'vobsub.c') diff --git a/vobsub.c b/vobsub.c index d1121d3e1f..754cfc0feb 100644 --- a/vobsub.c +++ b/vobsub.c @@ -912,7 +912,7 @@ vobsub_parse_cuspal(vobsub_t *vob, const char *line) if (p - line !=6) return -1; tmp = strtoul(line, NULL, 16); - vob->cuspal[n++] = vobsub_rgb_to_yuv(tmp); + vob->cuspal[n++] |= vobsub_rgb_to_yuv(tmp); if (n==4) break; if(*p == ',') @@ -922,14 +922,15 @@ vobsub_parse_cuspal(vobsub_t *vob, const char *line) return 0; } -/* don't know how to use tridx */ static int -vobsub_parse_tridx(const char *line) +vobsub_parse_tridx(vobsub_t *vob, const char *line) { //tridx: XXXX - int tridx; - tridx = strtoul((line + 26), NULL, 16); - tridx = ((tridx&0x1000)>>12) | ((tridx&0x100)>>7) | ((tridx&0x10)>>2) | ((tridx&1)<<3); + int tridx, i; + tridx = strtoul((line + 26), NULL, 2); + for (i = 0; i < 4; ++i) + if ((tridx << i) & 0x08) + vob->cuspal[i] |= 1 << 31; return tridx; } @@ -1017,7 +1018,7 @@ vobsub_parse_one_line(vobsub_t *vob, rar_stream_t *fd) res = vobsub_parse_timestamp(vob, line + 10); else if (strncmp("custom colors:", line, 14) == 0) //custom colors: ON/OFF, tridx: XXXX, colors: XXXXXX, XXXXXX, XXXXXX,XXXXXX - res = vobsub_parse_cuspal(vob, line) + vobsub_parse_tridx(line) + vobsub_parse_custom(vob, line); + res = vobsub_parse_cuspal(vob, line) + vobsub_parse_tridx(vob, line) + vobsub_parse_custom(vob, line); else if (strncmp("forced subs:", line, 12) == 0) res = vobsub_parse_forced_subs(vob, line + 12); else { -- cgit v1.2.3