From: James Courtier-Dutton <J<ames@su...> - 2002-01-24 03:36:31
I have found a bug in dvdnav which effects some dvds. E.g. "Deep Purple -
1) The bug is caused by an incorrect Virtual Machine command being sent when
a Menu button is pressed.
This is basically caused by the fact that currently dvdnav decodes and uses
the NAV packet in dvdnav.
The timing of this NAV packet is before all the rest of the packets have
been through the demuxer and decoders and then video out.
So the current dvdnav buttons keyboard and mouse detection routines check
keyboard and mouse events against NAV information which is a lot earlier
than the actual video on the display.
My proposal to fix this, is to implement menu handling code in
This will also then permit menus for OSD, which I think Guenter has been
asking for in xine.
This change might take some time, but this issue has managed to reach the
top of my TODO list, so will be done as soon as I get the time.
2) There is also another bug in dvdnav which means that button highlight
information can be taken from the wrong NAV packet.
Rather than fixing this bug in dvdnav (Causes a NOP Virtual Machine command
on button click, instead of the proper VM command), I propose to implement
the fix in video_overlay.c and libspudec instead, which is where menu button
stuff should be done anyway. xine will then not use the button selection api
in dvdnav. I will fix the dvdnav button selection code so other applications
using dvdnav can use them, but will have to supply their own nav packets to
the button function calls, because only the app will know the best NAV
packet to use.
3) There is also a 3rd bug in dvdnav, which is also in ogle, whereby the End
of Program Chain command is not executed correctly in some situations. When
I get round to fixing it, I will also update the ogle people. As this bug is
demonstrated very nicely by the "Deep Purple" dvd currently, (dvdnav throws
and exception with assert, instead of just playing the Program Chain
again.). I might try to fix this bug first, because if I fix the menu bug
first, it will hide this bug. ogle does not have the dvdnav menu bug(2), so
currently ogle does not see this bug(3).
So, to summarise, it will be some time before "Deep Purple - Total Abandon"
DVD works in xine.
Nothing in this world is exactly what it appears to be.