Subject: DVD movie woes
To: None <netbsd-help@netbsd.org>
From: Tyler Mitchell <fission@styrophone.net>
List: netbsd-help
Date: 09/19/2004 21:59:16
I recently got a DVD-ROM drive:

cd0 at atapibus0 drive 1: <CREATIVEDVD-ROM DVD2240E    10/13/97, , 1.5A> cdrom removable
cd0: 32-bit data port
cd0: drive supports PIO mode 4, DMA mode 2
    [ ... ]
cd0(viaide0:0:1): using PIO mode 4, DMA mode 2 (using DMA data transfers)

So, I rented a DVD, and when I got home I installed mplayer, ogle and 
libdvdcss.  I originally had some memory allocation problems, which I 
resolved by setting SHMMAXPGS=16384.

I can play the warning screen of the DVD with mplayer, but not any of the 
actual movie titles/chapters.  When I try, the kernel complains:

    cd0(viaide0:0:1): illegal request, data = 00 00 00 00 6f 03 00 00 00 00

Apparently, "6f 03" is:

    6F/03       R          READ OF SCRAMBLED SECTOR WITHOUT AUTHENTICATION

I'm not sure what to make of this, because it looks like libdvdcss is 
doing its job.  I was told that the DVD player is set to region 1 (which 
is the region where I live and rent movies).


Ogle has this to say:

monopole% ogle --debug -u cli
Build: NetBSD 2.0_BETA NetBSD 2.0_BETA (MONOPOLE) #4: Tue Sep 14 09:42:15 PDT 2004 
fission@monopole.styrophone.net:/usr/obj/sys/arch/i386/compile.i386/MONOPOLE i386 i386 Sun Sep 19 16:37:27 PDT 2004 mmx Xv obsd
Runtime: NetBSD 2.0_BETA NetBSD 2.0_BETA (MONOPOLE) #5: Sun Sep 19 18:36:50 PDT2004 
root@monopole.styrophone.net:/usr/obj/sys/arch/i386/compile.i386/MONOPOLEi386 i386
Note[ogle_ctrl]: ogle 0.9.2
Debug[ogle_ctrl]: Started /usr/pkg/lib/ogle/ogle_cli with pid 3693
Debug[ogle_ctrl]: Started /usr/pkg/lib/ogle/ogle_nav with pid 3266
Debug[ogle_ctrl]: Started /usr/pkg/lib/ogle/ogle_mpeg_ps with pid 3501
Debug[ogle_ctrl]: Started /usr/pkg/lib/ogle/ogle_vout with pid 3647
Debug[ogle_vout]: CLK_TCK: 100
Debug[ogle_nav]: Opening DVD at "/dev/rcd0d"
libdvdread: Using libdvdcss version 1.2.8 for DVD access
libdvdcss debug: opening target `/dev/rcd0d'
libdvdcss debug: using libc for access
libdvdcss debug: disc is scrambled
libdvdcss debug: requesting AGID
libdvdcss debug: drive authenticated, using variant 0
libdvdcss debug: authentication established
libdvdcss debug: GetASF authenticated, ASF=1
libdvdcss debug: decrypting disc key with player keys
libdvdcss debug: decrypted disc key is 2e:97:32:1f:4b
libdvdcss debug: using CSS key cache dir: /home/fission/.dvdcss/MINORITY_REPORT#2002100223552900/
Debug[ogle_nav]: play_PGC: first_play_pgc
libdvdread: Using libdvdcss version 1.2.8 for DVD access
Debug[ogle_nav]: play_PGC: state.pgcN (9)
libdvdcss debug: opening target `/dev/rcd0d'
Debug[ogle_nav]: play_PG: state.pgN (1)
libdvdcss debug: using libc for access
Debug[ogle_nav]: state.pgN (1) == pgc->nr_of_programs + 1 (1)
Debug[ogle_nav]: play_PGC_post:
Debug[ogle_nav]: play_PGC: state.pgcN (10)
libdvdcss debug: disc is scrambled
libdvdcss debug: requesting AGID
Debug[ogle_nav]: play_PGC: state.pgcN (1)
Debug[ogle_nav]: PGC pre commands didn't do a Jump, Link or Call
Debug[ogle_nav]: play_PG: state.pgN (1)
Debug[ogle_nav]: play_Cell: state.cellN (1)
Debug[ogle_nav]: sending subp demuxstream 31
libdvdcss debug: drive authenticated, using variant 0
libdvdcss debug: authentication established
libdvdcss debug: GetASF authenticated, ASF=1
libdvdcss debug: decrypting disc key with player keys
libdvdcss debug: decrypted disc key is 2e:97:32:1f:4b
libdvdcss debug: using CSS key cache dir: /home/fission/.dvdcss/MINORITY_REPORT#2002100223552900/

libdvdread: Attempting to retrieve all CSS keys
libdvdread: This can take a _long_ time, please be patient

libdvdread: Get key for /VIDEO_TS/VIDEO_TS.VOB at 0x00000182
libdvdcss debug: key found in cache
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_01_0.VOB at 0x0000106b
libdvdcss debug: key found in cache
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_01_1.VOB at 0x00035639
libdvdcss debug: key found in cache
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_02_0.VOB at 0x003e88dd
libdvdcss debug: key found in cache
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_02_1.VOB at 0x003e88e1
libdvdcss debug: key found in cache
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_03_0.VOB at 0x003ea0a3
libdvdcss debug: key found in cache
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_03_1.VOB at 0x003ea0a7
libdvdcss debug: key found in cache
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_04_0.VOB at 0x003ebc20
libdvdcss debug: key found in cache
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_04_1.VOB at 0x003ebc24
libdvdcss debug: key found in cache
libdvdread: Elapsed time 0
libdvdread: Found 4 VTS's
libdvdread: Elapsed time 0
libdvdcss error: read error
FATAL[ogle_mpeg_ps]: dvdreadblocks failed
Debug[ogle_ctrl]: child: 3501 exited with 256 
(/usr/pkg/lib/ogle/ogle_mpeg_ps)
Debug[ogle_ctrl]: pid: 3501 exited with status: 1 
(/usr/pkg/lib/ogle/ogle_mpeg_ps)
Debug[ogle_ctrl]: child: 3266 killed (/usr/pkg/lib/ogle/ogle_nav)
Debug[ogle_ctrl]: pid: 3266 terminated on signal: 2 
(/usr/pkg/lib/ogle/ogle_nav)
Debug[ogle_ctrl]: slaying child: 3693 /usr/pkg/lib/ogle/ogle_cli
Debug[ogle_ctrl]: slaying child: 3647 /usr/pkg/lib/ogle/ogle_vout
Debug[ogle_ctrl]: removing shmid: 524288
Debug[ogle_ctrl]: removing shmid: 524289
Note[ogle_ctrl]: exiting


Mplayer says:

monopole% mplayer -v dvd://
MPlayer 1.0pre5-3.3.3 (C) 2000-2004 MPlayer Team

CPU: Advanced Micro Devices Athlon Thunderbird 1196 MHz (Family: 6, Stepping: 2)
Detected cache-line size is 64 bytes
CPUflags:  MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 0 SSE2: 0
Compiled with runtime CPU detection - WARNING - this is not optimal!
To get best performance, recompile MPlayer with --disable-runtime-cpudetection.
Reading config file /usr/pkg/share/mplayer/mplayer.conf: No such file or directory
Reading config file /home/fission/.mplayer/config
Reading /home/fission/.mplayer/codecs.conf: Can't open '/home/fission/.mplayer/codecs.conf': No such file or directory
Reading /usr/pkg/share/mplayer/codecs.conf: 73 audio & 180 video codecs
CommandLine: '-v' 'dvd://'
init_freetype
get_path('font/font.desc') -> '/home/fission/.mplayer/font/font.desc'
font: can't open file: /home/fission/.mplayer/font/font.desc
Font /usr/pkg/share/mplayer/font/font.desc loaded successfully! (206 chars)
Using MMX (with tiny bit MMX2) Optimized OnScreenDisplay
Using usleep() timing
get_path('input.conf') -> '/home/fission/.mplayer/input.conf'
Can't open input config file /home/fission/.mplayer/input.conf: No such file or directory
Parsing input config file /usr/pkg/share/mplayer/input.conf
Input config file /usr/pkg/share/mplayer/input.conf parsed: 53 binds
get_path('.conf') -> '/home/fission/.mplayer/.conf'

Playing dvd://.
libdvdread: Using libdvdcss version 1.2.8 for DVD access
Reading disc structure, please wait...
There are 4 titles on this DVD.
There are 25 chapters in this DVD title.
There are 1 angles in this DVD title.

libdvdread: Attempting to retrieve all CSS keys
libdvdread: This can take a _long_ time, please be patient

libdvdread: Get key for /VIDEO_TS/VIDEO_TS.VOB at 0x00000182
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_01_0.VOB at 0x0000106b
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_01_1.VOB at 0x00035639
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_02_0.VOB at 0x003e88dd
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_02_1.VOB at 0x003e88e1
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_03_0.VOB at 0x003ea0a3
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_03_1.VOB at 0x003ea0a7
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_04_0.VOB at 0x003ebc20
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_04_1.VOB at 0x003ebc24
libdvdread: Elapsed time 0
libdvdread: Found 4 VTS's
libdvdread: Elapsed time 0
DVD successfully opened.
[open] audio stream: 0 audio format: ac3 (5.1) language: en aid: 128
[open] audio stream: 1 audio format: ac3 (stereo) language: en aid: 129
[open] audio stream: 2 audio format: dts (5.1) language: en aid: 138
[open] audio stream: 3 audio format: ac3 (5.1) language: fr aid: 131
[open] number of audio channels on disk: 4.
[open] subtitle ( sid ): 0 language: en
[open] subtitle ( sid ): 1 language: es
[open] subtitle ( sid ): 2 language: fr
[open] number of subtitles on disk: 3
DVD start cell: 0  pack: 0x0-0x2CAAA
DVD start=0 end=3879528
DVD Seek! lba=0x0  cell=0  packs: 0x0-0x2CAAA

and it just hangs there forever, while the kernel spews those errors.


I have given the appropriate permissions:

monopole% ls -l /dev/{,r}{cd0{a,d},dvd}
brw-rw-rw-  1 root  operator         6, 0 Sep 10 20:03 /dev/cd0a
brw-rw-rw-  1 root  operator         6, 3 Sep 10 20:03 /dev/cd0d
lrwxr-xr-x  1 root  wheel               4 Sep 19 16:52 /dev/dvd -> cd0a
crw-rw-rw-  1 root  operator        15, 0 Sep 10 20:03 /dev/rcd0a
crw-rw-rw-  1 root  operator        15, 3 Sep 10 20:03 /dev/rcd0d
lrwxr-xr-x  1 root  wheel               5 Sep 19 16:52 /dev/rdvd -> rcd0a


Any thoughts, suggestions, comments would be most welcome.

Thanks,

-- 
Tyler Mitchell <fission@styrophone.net>