summaryrefslogtreecommitdiffstats
path: root/stream
diff options
context:
space:
mode:
authornicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-12-09 19:23:35 +0000
committernicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-12-09 19:23:35 +0000
commit266f5de2bb4e7d3f9077970a06d58f864558b5e0 (patch)
tree2ede9c2e88ece14d17964622a63182f04d0b6f49 /stream
parent29ec343e071827562f0179e1edae47e778d20593 (diff)
downloadmpv-266f5de2bb4e7d3f9077970a06d58f864558b5e0.tar.bz2
mpv-266f5de2bb4e7d3f9077970a06d58f864558b5e0.tar.xz
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.c11
-rw-r--r--stream/stream_dvdnav.h2
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