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)
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:
(Note that here, a length of 05:59:18 is claimed, but 05:57:18 is written to the file)
cd-paranoia output:
track lengths as determined by libcdio / cd-paranoia: