Skip to content

cdrdao fails to read multi-session disc TOC, leading to incorrect track length and cd-paranoia failure #698

Description

@underscore-j

cdrdao (possibly because of the drive I'm using) fails to read the TOC properly, falling back to a generic method without multi-session support.
This generic method then treats the session lead-out and lead-in as part of the last audio track, resulting in a track length that is too long by exactly 2:30.00.

libcdio-paranoia, however, detects that the disc must be multi-session (because of an audio track followed by a data one), subtracts the lead-out and lead-in from the corresponding sector numbers, and reports that the requested end sector is beyond the end of the disc (not just track).

As a result, whipper fails to rip the last (audio) track of such a disc.

cdrdao track lengths:

$> cdrdao read-toc --fast-toc toc.out
/dev/sr0: HL-DT-ST RW/DVD GCC-M10N      Rev: 2.02
CD-TEXT writing is supported.
Using driver: Generic SCSI-3/MMC - Version 2.0 (options 0x0010)

Reading toc data...
WARNING: Found bogus toc data (no lead-out entry in raw data).
WARNING: Your drive probably does not support raw toc reading.
WARNING: Using TOC data retrieved with generic method (no multi session support).
WARNING: Use driver option 0x10000 to suppress this message.

Track   Mode    Flags  Start                Length
------------------------------------------------------------
 1      AUDIO   0      00:00:00(     0)     03:40:00( 16500)
 2      AUDIO   0      03:40:00( 16500)     02:42:06( 12156)
 3      AUDIO   0      06:22:06( 28656)     03:14:64( 14614)
 4      AUDIO   0      09:36:70( 43270)     03:59:74( 17999)
 5      AUDIO   0      13:36:69( 61269)     05:43:37( 25762)
 6      AUDIO   0      19:20:31( 87031)     04:32:68( 20468)
 7      AUDIO   0      23:53:24(107499)     01:38:40(  7390)
 8      AUDIO   0      25:31:64(114889)     04:42:73( 21223)
 9      AUDIO   0      30:14:62(136112)     04:46:70( 21520)
10      AUDIO   0      35:01:57(157632)     04:11:02( 18827)
11      AUDIO   0      39:12:59(176459)     03:29:40( 15715)
12      AUDIO   0      42:42:24(192174)     03:38:65( 16415)
13      AUDIO   0      46:21:14(208589)     03:33:40( 16015)
14      AUDIO   0      49:54:54(224604)     03:37:38( 16313)
15      AUDIO   0      53:32:17(240917)     04:01:40( 18115)
16      AUDIO   0      57:33:57(259032)     03:43:72( 16797)
17      AUDIO   0      61:17:54(275829)     05:59:18( 26943)
18      DATA    4      67:16:72(302772)     01:12:66(  5466)
Leadout DATA    4      68:29:63(308238)

(Note that here, a length of 05:59:18 is claimed, but 05:57:18 is written to the file)

cd-paranoia output:

$> cd-paranoia --stderr-progress --sample-offset=102 --force-cdrom-device /dev/sr0 --force-overread 17\[00:00:00.00\]-17\[00:05:57.17\] /tmp/tmpagph5q5e.track17.offset102.whipper.wav
Sending all callback output to stderr for wrapper script
cdparanoia III release 10.2 libcdio 2.3.0 x86_64-pc-linux-gnu
(C) 2001 Monty <monty@xiph.org> and Xiphophorus
(C) 2004, 2005, 2008 Rocky Bernstein <rocky@gnu.org>
(C) 2014 Robert Kausch <robert.kausch@freac.org>

Report bugs to bug-libcdio@gnu.org

Time/sector offset goes beyond end of disc.

track lengths as determined by libcdio / cd-paranoia:

$> cd-paranoia -Q
cdparanoia III release 10.2 libcdio 2.3.0 x86_64-pc-linux-gnu
(C) 2001 Monty <monty@xiph.org> and Xiphophorus
(C) 2004, 2005, 2008 Rocky Bernstein <rocky@gnu.org>
(C) 2014 Robert Kausch <robert.kausch@freac.org>

Report bugs to bug-libcdio@gnu.org


Table of contents (audio tracks only):
track        length               begin        copy pre ch
===========================================================
  1.    16500 [03:40.00]        0 [00:00.00]    no   no  2
  2.    12156 [02:42.06]    16500 [03:40.00]    no   no  2
  3.    14614 [03:14.64]    28656 [06:22.06]    no   no  2
  4.    17999 [03:59.74]    43270 [09:36.70]    no   no  2
  5.    25762 [05:43.37]    61269 [13:36.69]    no   no  2
  6.    20468 [04:32.68]    87031 [19:20.31]    no   no  2
  7.     7390 [01:38.40]   107499 [23:53.24]    no   no  2
  8.    21223 [04:42.73]   114889 [25:31.64]    no   no  2
  9.    21520 [04:46.70]   136112 [30:14.62]    no   no  2
 10.    18827 [04:11.02]   157632 [35:01.57]    no   no  2
 11.    15715 [03:29.40]   176459 [39:12.59]    no   no  2
 12.    16415 [03:38.65]   192174 [42:42.24]    no   no  2
 13.    16015 [03:33.40]   208589 [46:21.14]    no   no  2
 14.    16313 [03:37.38]   224604 [49:54.54]    no   no  2
 15.    18115 [04:01.40]   240917 [53:32.17]    no   no  2
 16.    16797 [03:43.72]   259032 [57:33.57]    no   no  2
 17.    15543 [03:27.18]   275829 [61:17.54]    no   no  2
TOTAL  291372 [64:44.72]    (audio only)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions