Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] HOWTO: debug dvd problems



Hi,

Here a small HOWTO on finding and fixing problems with DVD playback

1. BUG reports

BUG reports need to be as specific as possible. Please include all version 
information (kernel, libdvdcss, libdvdread, vdr), the type of DVD drive and 
the title of the DVD you have problems with.

2. Region Code and CSS Problems

Region Code and CSS are closly related. They can show as multitude of 
different problems. Crashes due to missing or undecoded data, corrupted 
pictures or sudden stops after menu selections and at chapter borders.

Before sending BUG reports about crashed, make 100% sure you do not have such 
a problem. CSS/RCE problems are not VDR specific.

Start vdr from an interactive console and set the environment variable 
DVDCSS_VERBOSE to 2, e.g.:

# export DVDCSS_VERBOSE=2
# ./vdr -v /video0

You definetly got a CSS/RCE problem, if the log shows messages like:

libdvdcss error: ioctl_ReadTitleKey failed
libdvdcss debug: GetASF not authenticated (ASF=0)
libdvdcss debug: lost ASF reqesting Title key

In most cases those error are related to uninitialised RPC-2 drives. You might 
then also have messages in syslog like:

Jul 24 15:47:17 ophelia kernel:   Error: Illegal request -- (Sense key=0x05)
Jul 24 15:47:17 ophelia kernel:   Media region code is mismatched to logical 
unit -- (asc=0x6f, ascq=0x04)

There is a tool avalilable at www.linuxtv.org in the DVD section to set the 
region code on a RPC-2 drive. Or just scout the internet a bit a get yourself 
a RPC-1 firmware for your drive.

3. Testing with other programs

The only other programs that can be used to verify DVD playback are xine 
(http://xine.sf.net/) and ogle (http://www.dtek.chalmers.se/groups/dvd/). 
Normal mplayer installations _are not_ usefull for testing DVD playback as it 
will not access certain control structures and navigation content on the DVD. 
Newer mplayer version appear to contain libdvdnav support. I have not used it 
so far, but it should be usefull then too for testing (but make sure you are 
really using libdvdnav).

Crashes and other issues with the navigation engine should then be reported to 
the libdvdnav team (http://dvd.sf.net/). The plugin version of the DVD player 
will switch to libdvdnav and all fixes going into the lib then be available 
to vdr as well.

4. Debug output

The output of the navigation engine will be required for most problem. This 
can be enabled by changing the Makefile and add a "DEFINES  += -DVMDEBUG"
just after "DEFINES  += -DDVDSUPPORT". It should read then:

ifdef DVD
DEFINES  += -DDVDSUPPORT
DEFINES  += -DVMDEBUG
DEFINES  += -D_LARGEFILE64_SOURCE # needed by libdvdread
SHLIBS   += -ldvdread
OBJS     += dvd.o decoder.o vm.o vmcmd.o
endif

5. Crashes

Crashes in vm.c, vmcmd.c or decoder.c are in the navigation stuff. This has 
been taken from ogle. Those problems I can not fix. I can only determin 
wether a work arround is possible if not, your out of luck.

Some examples:

*** Zero check failed in ifo_read.c:301
    for vmgi_mat->zero_3 = 0x00000000010000000000000000000000000000
libdvdread: Using libdvdcss.so.2 for DVD access
vdr: nav_read.c:205: navRead_DSI: Assertion `dsi->dsi_gi.zero1 == 0' failed.
Aborted


To be continued ...

Andreas
-- 
Andreas Schultz <aschultz@cs.uni-magdeburg.de>
Student of computer science

"In accordance with plans for Linux OS world domination
      infiltration of governments is vital (:-))."




Home | Main Index | Thread Index