From: Michael R. <mr...@us...> - 2004-08-19 10:35:41
|
Update of /cvsroot/xine/xine-lib/src/dxr3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4019/src/dxr3 Modified Files: dxr3_decode_spu.c Log Message: check for NAV updates earlier and thus more often; fixes initially missing menu highlight in "Chicago" RC2 Index: dxr3_decode_spu.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/dxr3/dxr3_decode_spu.c,v retrieving revision 1.49 retrieving revision 1.50 diff -u -r1.49 -r1.50 --- dxr3_decode_spu.c 20 Jul 2004 16:37:44 -0000 1.49 +++ dxr3_decode_spu.c 19 Aug 2004 10:35:32 -0000 1.50 @@ -319,6 +319,11 @@ xine_event_free(event); } + /* check, if we need to process the next PCI from the list */ + pthread_mutex_lock(&this->pci_lock); + dxr3_spudec_update_nav(this); + pthread_mutex_unlock(&this->pci_lock); + if ( (buf->type & 0xffff0000) != BUF_SPU_DVD || !(buf->decoder_flags & BUF_FLAG_SPECIAL) || buf->decoder_info[1] != BUF_SPECIAL_SPU_DVD_SUBTYPE ) @@ -407,11 +412,6 @@ return; } - /* check, if we need to process the next PCI from the list */ - pthread_mutex_lock(&this->pci_lock); - dxr3_spudec_update_nav(this); - pthread_mutex_unlock(&this->pci_lock); - /* We parse the SPUs command and end sequence here for two reasons: * 1. Look for the display duration entry in the spu packets. * If the spu is a menu button highlight pane, this entry must not exist, @@ -453,9 +453,10 @@ state->parse++; break; case 0x01: /* show */ - case 0x02: /* hide */ /* when only forced SPUs are allowed, change show to hide */ if (spu_channel & 0x80) buf->content[offset_in_buffer] = 0x02; + /* falling through intended */ + case 0x02: /* hide */ state->parse++; break; case 0x03: /* colour lookup table */ |