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, 12 Dec 2018 12:58:31 +0100

Hi,

more mail will follow. This one is only about the outcome of the proposed
cd-paranoia tests.

The results look good (with my two changes for "Table of contents" and
"Attempting to determine drive endianness from data").

The long run time of "cd-paranoia -Q" with my track 1-3 CD turned out
to be caused by poorly readable or unreadable sectors on the CD.

-------------------------------------------------------------------------

> 1) Rip an entire CD:
>   cd-paranoia -B

  $ cd-paranoia -v -d /dev/sr4 -B
  ...
          Data appears to be coming back Little Endian.
          certainty: 100%
  ...
  Table of contents (audio tracks only):
  track        length               begin        copy pre ch
  ===========================================================
    4.     2682 [00:35.57]        0 [00:00.00]    no   no  2
    5.     2682 [00:35.57]     2682 [00:35.57]    no   no  2
    6.     2682 [00:35.57]     5364 [01:11.39]    no   no  2
  TOTAL    8046 [01:47.21]    (audio only)
   
  Ripping from sector       0 (track  4 [0:00.00])
            to sector    8045 (track  6 [0:35.56])
  
  outputting to track04.cdda.wav
  
   (== PROGRESS == [                              | 002681 00 ] == :^D * ==)   
  
  outputting to track05.cdda.wav
  
   (== PROGRESS == [                              | 005363 00 ] == :^D * ==)   
  
  outputting to track06.cdda.wav
  
   (== PROGRESS == [                              | 008045 00 ] == :^D * ==) 
  
  Done.

  $ ls -l 
  total 18492
  -rw-r--r-- 1 ... ... 6308108 Dec 12 10:07 track04.cdda.wav
  -rw-r--r-- 1 ... ... 6308108 Dec 12 10:07 track05.cdda.wav
  -rw-r--r-- 1 ... ... 6308108 Dec 12 10:08 track06.cdda.wav 

The file sizes match the track: (file_bytes - 44) / 2352 = track_size.
44 bytes is the WAV header.

  $ file track*.cdda.wav
  track04.cdda.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 
bit, stereo 44100 Hz
  track05.cdda.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 
bit, stereo 44100 Hz
  track06.cdda.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 
bit, stereo 44100 Hz

-------------------------------------------------------------------------

The same with the CD that has track 1 to 3:

  $ cd-paranoia -v -d /dev/sr4 -B
  ...

gnawing again on:

  Attempting to determine drive endianness from data....

and then

  010: Unable to access sector 2682: skipping...
  ...
  outputting to track01.cdda.wav

     INFO: ioctl CDROM_SEND_PACKET for command READ CD (0xbe) failed:
          Input/output error
  ...

Medium and drive are not in love. I abort.

-------------------------------------------------------------------------

Another CD with track 1 to 3 (this one shows quick determination of
endianness):

  $ cd-paranoia -v -d /dev/sr4 -B
  ...
    1.     3290 [00:43.65]        0 [00:00.00]    no   no  2
    2.     3061 [00:40.61]     3290 [00:43.65]    no   no  2
    3.     1293 [00:17.18]     6351 [01:24.51]    no   no  2
  TOTAL    7644 [01:41.69]    (audio only)
  ...
 
  Ripping from sector       0 (track  1 [0:00.00])
            to sector    7643 (track  3 [0:17.17])

  outputting to track01.cdda.wav

   (== PROGRESS == [                              | 003289 00 ] == :^D * ==)   

  outputting to track02.cdda.wav


    (== PROGRESS == [                              | 006350 00 ] == :^D * ==)   

  outputting to track03.cdda.wav

    (== PROGRESS == [                              | 007643 00 ] == :^D * ==)   

  Done.

  $ ls -l track0[123]*
  -rw-r--r-- 1 ... ... 7738124 Dec 12 10:29 track01.cdda.wav
  -rw-r--r-- 1 ... ... 7199516 Dec 12 10:29 track02.cdda.wav
  -rw-r--r-- 1 ... ... 3041180 Dec 12 10:29 track03.cdda.wav

The file sizes match the track sizes.

  $ file track0[123]*
  track01.cdda.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 
bit, stereo 44100 Hz
  track02.cdda.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 
bit, stereo 44100 Hz
  track03.cdda.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 
bit, stereo 44100 Hz

So at least the track range is handled properly.

-------------------------------------------------------------------------

> 2) Rip a span of a CD:
>    cd-paranoia 6-8

Again with the CD that has track 4 to 6:

  $ rm track*

  $ cd-paranoia -v -d /dev/sr4 4-6
  ...
  Ripping from sector       0 (track  4 [0:00.00])
            to sector    8045 (track  6 [0:35.56])
  ...
  outputting to cdda.wav

     (== PROGRESS == [                              | 008045 00 ] == :^D * ==)  
 
  Done.

  $ ls -l
  -rw-r--r-- 1 ... ... 18924236 Dec 12 10:44 cdda.wav

The size matches the total size from start of CD to start of lead-out.

-------------------------------------------------------------------------

With the nicely readable CD that has track 1 to 3:

  $ rm cdda.wav

  $ cd-paranoia -v -d /dev/sr4 1-3
  ...
  Ripping from sector       0 (track  1 [0:00.00])
            to sector    7643 (track  3 [0:17.17])

  outputting to cdda.wav

   (== PROGRESS == [                              | 007643 00 ] == :^D * ==)   

  Done.

  $ ls -l
  -rw-r--r-- 1 ... ... 17978732 Dec 12 10:53 cdda.wav

File size and CD size match.

-------------------------------------------------------------------------

Trying to read the bad CD with cdrskin:

  $ cdrskin -v dev=/dev/sr4 extract_audio_to=. cdtext_to_v07t=./cdtext.v07
  ...
  cdrskin: Writing audio track file: ./01.wav
  cdrskin: SORRY : SCSI error on read_cd(48,0): [4 3E 02] Drive error. Timeout 
on logical unit.
  cdrskin: SORRY : SCSI error on read_cd(59,0): [4 3E 02] Drive error. Timeout 
on logical unit.
  cdrskin: FAILURE : Failure to read audio sectors

So the failure of cd-paranoia is explainable.
(Only its error messages are not very enlightening. libburn uses on Linux
 ioctl(SG_IO) rather than ioctl(CDROM_SEND_PACKET).)

On a different drive i get from the same CD

  cdrskin: SORRY : SCSI error on read_cd(2850,0): [3 11 00] Medium error. 
Unrecovered read error.

I'll keep that CD well marked as example of a bad one. :))

-------------------------------------------------------------------------

Have a nice day :)

Thomas




reply via email to

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