Subject: Re: VCD playback working at all on i386 1.6.1?
To: Todd Vierling <tv@pobox.com>
From: Frederick Bruckman <fredb@immanent.net>
List: tech-pkg
Date: 05/31/2003 15:57:38
On Sat, 31 May 2003, Todd Vierling wrote:

> On Sat, 31 May 2003, Frederick Bruckman wrote:
>
> "/usr/bin/eject [-l|-L|-u]" works.
> "cdrecord dev=/dev/rcd0d" works (also with -dummy).
> "cdrecord dev=/dev/rcd0d -dao" works (also with -dummy).
> "cdrdao write --driver=generic-mmc[-raw]" works (also with --simulate).
> "cdrdao read-cd --driver=generic-mmc[-raw]" works.[*]
> "[g]mplayer cdda://" works on an audio CD.
> "cdparanoia" works, but not on [S]VCDs.[**]
> "cdd" works (protocol 0), but not on [S]VCDs (not even with -noed).
>
> Does cdparanoia or cdd work on [S]VCDs for you?  I can start to read the
> first track (ISO9660 mode 2 form 1) of a [S]VCD with cdd, and then it craps
> out at exactly 300 2k-sectors.

I'm not at the machine now, but no, I don't believe that it does.
(You'd need something like "cdrdao" that can rip raw tracks, as the
[S]VCD movie tracks are neither neither audio nor ISO9660.)

> [*] This doesn't produce the kernel message, either.  Obviously cdrdao has a
>     richer set of SCSI/ATAPI commands that it uses.
>
> [**] This, I now discover, is the supplier of SCSI routines to [g]mplayer.

Only for audio -- cdda://, cddb:// URI's.

> I've also just attached another drive (a DVD-ROM), and it works the same way
> with all the programs listed above.  Its dmesg:
>
> cd1 at atapibus0 drive 1: <RAITE RDR-108H DVDROM   V1.7, RDR-108H, VER 1.7> type 5 cdrom removable
> cd1: 32-bit data port
> cd1: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 2 (Ultra/33)
> pciide0: secondary channel interrupting at irq 15
> cd1(pciide0:1:1): using PIO mode 4, Ultra-DMA mode 2 (Ultra/33) (using DMA data transfers)
>
> Given the cdd/cdparanoia behavior above, and the fact that the same behavior
> exists on my DVD-ROM drive, I'm starting to wonder if there might be a
> kernel-in-the-way problem going on, or that cdparanoia/libscsi is not nearly
> as robust as it should be wrt errors.

...except you said that cdda:// works. The [S]VCD reading code is
mostly in "libmpdemux/vcd_read_nbsd.h" and elsewhere in "libmpdemux".
You know, I do seem to remember now that it was broken in CVS for a
while, and I wouldn't be too surprised if the break got pulled up into
the release. Unfortunately, there's no CVS history avalaible for the
release "fork", so the only way to figure out what changed is to
expand the tarballs and inspect diffs. I'll get on that. I don't
suppose you'd like to try the CVS version? The only patch you really
need is "patch-ad" (otherwise it dumps core immediately).

Frederick