From fd84722e23d218f39ae669da6f1884ab5d94751e Mon Sep 17 00:00:00 2001 From: arpi Date: Wed, 3 Apr 2002 18:14:21 +0000 Subject: [PATCH] spudec_update_palette() added - dvdnav patch by Kees Cook git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5475 b3059339-0415-0410-9bf9-f77b7e298cf2 --- spudec.c | 15 +++++++++++++++ spudec.h | 1 + 2 files changed, 16 insertions(+) diff --git a/spudec.c b/spudec.c index de2f57e800..81f31ae092 100644 --- a/spudec.c +++ b/spudec.c @@ -206,6 +206,9 @@ static void spudec_process_control(spudec_handle_t *this, unsigned int pts100) case 0x00: /* Menu ID, 1 byte */ mp_msg(MSGT_SPUDEC,MSGL_DBG2,"Menu ID\n"); + /* shouldn't a Menu ID type force display start? */ + //this->start_pts = pts100 + date; + //this->end_pts = UINT_MAX; break; case 0x01: /* Start display */ @@ -651,6 +654,18 @@ void spudec_draw_scaled(void *me, unsigned int dxs, unsigned int dys, void (*dra spu->scaled_image, spu->scaled_aimage, spu->scaled_stride); } } + else + { + mp_msg(MSGT_SPUDEC,MSGL_DBG2,"SPU not displayed: start_pts=%d end_pts=%d now_pts=%d\n", + spu->start_pts, spu->end_pts, spu->now_pts); + } +} + +void spudec_update_palette(void * this, unsigned int *palette) +{ + spudec_handle_t *spu = (spudec_handle_t *) this; + if (spu && palette) + memcpy(spu->global_palette, palette, sizeof(spu->global_palette)); } void *spudec_new_scaled(unsigned int *palette, unsigned int frame_width, unsigned int frame_height) diff --git a/spudec.h b/spudec.h index fee6644139..fee0571956 100644 --- a/spudec.h +++ b/spudec.h @@ -5,6 +5,7 @@ void spudec_heartbeat(void *this, unsigned int pts100); void spudec_assemble(void *this, unsigned char *packet, unsigned int len, unsigned int pts100); void spudec_draw(void *this, void (*draw_alpha)(int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride)); void spudec_draw_scaled(void *this, unsigned int dxs, unsigned int dys, void (*draw_alpha)(int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride)); +void spudec_update_palette(void *this, unsigned int *palette); void *spudec_new_scaled(unsigned int *palette, unsigned int frame_width, unsigned int frame_height); void *spudec_new(unsigned int *palette); void spudec_free(void *this);