diff options
author | nicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-12-09 19:23:35 +0000 |
---|---|---|
committer | nicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-12-09 19:23:35 +0000 |
commit | 266f5de2bb4e7d3f9077970a06d58f864558b5e0 (patch) | |
tree | 2ede9c2e88ece14d17964622a63182f04d0b6f49 /stream | |
parent | 29ec343e071827562f0179e1edae47e778d20593 (diff) |
export spu palette; part of a patch by Otvos Attila
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21554 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'stream')
-rw-r--r-- | stream/stream_dvdnav.c | 11 | ||||
-rw-r--r-- | stream/stream_dvdnav.h | 2 |
2 files changed, 13 insertions, 0 deletions
diff --git a/stream/stream_dvdnav.c b/stream/stream_dvdnav.c index 8893c6becc..641a8ad676 100644 --- a/stream/stream_dvdnav.c +++ b/stream/stream_dvdnav.c @@ -179,6 +179,11 @@ static int dvdnav_stream_read(dvdnav_priv_t * priv, unsigned char *buf, int *len priv->duration = ev->pgc_length/90; break; } + case DVDNAV_SPU_CLUT_CHANGE: { + memcpy(priv->spu_clut, buf, 16*sizeof(unsigned int)); + priv->spu_set = 1; + break; + } case DVDNAV_WAIT: dvdnav_wait_skip(priv->dvdnav); break; @@ -511,6 +516,12 @@ int dvdnav_number_of_subs(stream_t *stream) { return n; } +unsigned int *mp_dvdnav_get_spu_clut(stream_t *stream) { + dvdnav_priv_t *priv=(dvdnav_priv_t*)stream->priv; + if(!priv->spu_set) return NULL; + return priv->spu_clut; +} + void mp_dvdnav_get_highlight (stream_t *stream, nav_highlight_t *hl) { dvdnav_priv_t *priv = (dvdnav_priv_t *) stream->priv; dvdnav_highlight_event_t hlev = priv->hlev; diff --git a/stream/stream_dvdnav.h b/stream/stream_dvdnav.h index 46a3a2f32d..726187ec40 100644 --- a/stream/stream_dvdnav.h +++ b/stream/stream_dvdnav.h @@ -24,6 +24,7 @@ typedef struct { unsigned int duration; /* in milliseconds */ int mousex, mousey; int title; + unsigned int spu_clut[16], spu_set; dvdnav_highlight_event_t hlev; } dvdnav_priv_t; @@ -33,5 +34,6 @@ int dvdnav_sid_from_lang(stream_t *stream, unsigned char *language); int mp_dvdnav_handle_input(stream_t *stream, int cmd, int *button); void mp_dvdnav_update_mouse_pos(stream_t *stream, int32_t x, int32_t y, int* button); void mp_dvdnav_get_highlight (stream_t *stream, nav_highlight_t *hl); +unsigned int *mp_dvdnav_get_spu_clut(stream_t *stream); #endif |