summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demux_mkv.c
diff options
context:
space:
mode:
authorulion <ulion@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-12-08 12:15:03 +0000
committerulion <ulion@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-12-08 12:15:03 +0000
commit151e8cceec6bc6803fb29685b4f95b2ed0e0ca8c (patch)
tree7014fb277df4900c30cf083e1b5cdae6c0d50509 /libmpdemux/demux_mkv.c
parent460de55771934eedfb870ef734bd3cdea6c4095f (diff)
downloadmpv-151e8cceec6bc6803fb29685b4f95b2ed0e0ca8c.tar.bz2
mpv-151e8cceec6bc6803fb29685b4f95b2ed0e0ca8c.tar.xz
Move vobsub palette->yuv convert code into a common function.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25320 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demux_mkv.c')
-rw-r--r--libmpdemux/demux_mkv.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/libmpdemux/demux_mkv.c b/libmpdemux/demux_mkv.c
index 3c6df0c61e..c383872518 100644
--- a/libmpdemux/demux_mkv.c
+++ b/libmpdemux/demux_mkv.c
@@ -22,6 +22,7 @@
#include "mp_msg.h"
#include "help_mp.h"
+#include "vobsub.h"
#include "subreader.h"
#include "libvo/sub.h"
@@ -305,7 +306,7 @@ vobsub_parse_size (sh_sub_t *sh, const char *start)
static int
vobsub_parse_palette (sh_sub_t *sh, const char *start)
{
- int i, r, g, b, y, u, v, tmp;
+ int i, tmp;
start += 8;
while (isspace(*start))
@@ -314,14 +315,7 @@ vobsub_parse_palette (sh_sub_t *sh, const char *start)
{
if (sscanf(start, "%06x", &tmp) != 1)
break;
- 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 = y * 219 / 255 + 16;
- sh->palette[i] = y << 16 | u << 8 | v;
+ sh->palette[i] = vobsub_palette_to_yuv(tmp);
start += 6;
while ((*start == ',') || isspace(*start))
start++;