[vlc-devel] CDDAX on MacOSX

R. Bernstein rocky at panix.com
Sat Jan 22 00:17:35 CET 2005


Derk-Jan Hartman writes:
 > I just switched drives (replaced my burner in the mac with a DVD drive) 
 > and now CDDAX no longer works.
 > This just works with my other drive...

So you say that you now have two CD/DVD drives total right? 

Here's a wild guess. Disc scanning is a bit weird in OSX and with the
dictionary lookup that goes on. I wonder if libcdio is getting some
info from the correct drive trying to get some info from the wrong
drive. It would explain the behavior.

 > What is the proper debug procedure for this rocky?

One of the things I like about using something like libcdio (versus
say the inline CD reading) is that libcdio has it's own set of tools;
debugging in one of these tools in a debugger is usually easier than
debugging inside vlc.

My guess then is that if you were to run the cd-info program from
libcdio you'd get a similar failure. I'd like to see the cd-info
output. Also cd-drive output might be interesting too.

Ideally the current libcdio CVS would be best as the output of those
programs has fewer bugs and has more detail (than previous releases).

 > 
 > I get.
...
 > [00000427] cddax access debug: CDDAOpen: /dev/rdisk2
 > [00000427] cddax access warning: could not read trackinfo for track 1
...

First, is /dev/rdisk2 the correct disk? (Or should I write "disc"?)

"Common knowledge" is what you just learned 10 minutes ago. And in
this case I learned that CD-DA's on OSX get "mounted" so if one issues
"df" or "mount" I think you see your CD-DA as a filesystem and it
would show /dev/rdisk2. It's possible what you need is /dev/rdisk3.

The "trackinfo" error messages from libcdio are when it is trying to
verify that the track is an audio track. It does it via this code in
lib/_cdio_osx.c or lib/driver/_cdio_osx.c in the current CVS:

  if( ioctl( p_env->gen.fd, DKIOCCDREADTRACKINFO, &cd_read ) == -1 )
  {
    cdio_warn( "could not read trackinfo for track %d", i_track );
    return ...

You might be able to get more info by changing the cdio_warn() to: 

   cdio_warn( "could not read trackinfo for track %d:\n%s", i_track,
               strerror(errno));

In fact I've commited this change and to other similar cdio_warn()'s
What is strerror() reporting?  Not that I would know what to do based
on this additional information, but it might suggest what is wrong.

One could somehow change code to go around this code, but if this
ioctl is failing probably others will too since disc reading is done
via ioctl.

I suppose this is a start for now.

-- 
This is the vlc-devel mailing-list, see http://www.videolan.org/vlc/
To unsubscribe, please read http://developers.videolan.org/lists.html



More information about the vlc-devel mailing list