libcdio-devel
[Top][All Lists]
Advanced

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

Re: [Libcdio-devel] CD_MSF_FORMAT vs LBA on NetBSD


From: Thomas Schmitt
Subject: Re: [Libcdio-devel] CD_MSF_FORMAT vs LBA on NetBSD
Date: Wed, 31 Oct 2018 19:10:15 +0100

Hi,

i had a look at the other error messages reported by Greg in
  http://lists.gnu.org/archive/html/libcdio-devel/2018-10/msg00011.html
assuming that 
> SCIOCCOMMAND cmd 0xbe sts 3
> 010: Unable to access sector 169348352: skipping...
are now explained by the MSF-LBA confusion.


> WARN: ioctl CDIOREADMSADDR failed: Invalid argument

This ioctl is only used in the vext01 repo. Probably introduced by
  
https://github.com/vext01/libcdio/commit/3826afab31d4d418be3f0fee1132fa61077000f5#diff-b9a8ce23dcaa812552f5eb2ad75fe624
halloweenly at line 666 ff.

Some googling show that this ioctl is defined for both, NetBSD and OpenBSD.
It shall fetch the LBA of the start of the last session.
Dunno why it fails,


>  405: Option not supported by drive

This stems from libcdio-paranoia/lib/cdda_interface/interface.c function
cdio_cddap_speed_set(), which tries to call d->set_speed().
It is supposed to point to cddap_setspeed() which calls libcdio's
cdio_set_speed().
This calls CdIo_t.op.set_speed() if available, which is true in gnu_linux.c,
solaris.c, osx.c, freebsd.c, win32.c, but not in netbsd.c.

(One could try to employ set_speed_mmc() if no speed setting ioctl is
 provided by the BSDs.)


>  401: Invalid track number 255

Might come from cdda_track_firstsector() or cdda_track_lastsector().
A track number of 255 is not in the range of valid payload track numbers
or the lead-out track.

cdparanoia obtains the last track number from looking up the last
block of the CD in the table-of-content via cdda_sector_gettrack and
then libcdio's cdio_get_track().
If the addresses in the table-of-content are victim to MSF-LBA confusion
and thus the desired block cannot be found, then CDIO_INVALID_TRACK = 0xFF
is returned.


>  Selected span contains non audio track at track 19.  Aborting.

A loop over first and last track probably aborts before it can reach track
number 0xFF.


So except the message about CDIOREADMSADDR, everything is roughly explainable
by the MSF-LBA confusion and by the lack of a speed setting function.


Have a nice day :)

Thomas




reply via email to

[Prev in Thread] Current Thread [Next in Thread]