Hi, > To clarify, before the fix I posted in my previous email:
So was the shown cd-info result from the intermediate state before https://github.com/vext01/libcdio/commit/539c52488506c5bacdfebbcafc5406034a0738fd ? (Pity, i had it in mind as reason for the cdparanoia complaint.) But why then didn't this yield an error message ? TOTAL_TRACKS + 1 = 6, first_track = 7 , so track_num < first_track which should have caused get_track_msf_netbsd() to return CDIO_INVALID_TRACK. So this error indication gets lost on its way to cd-info.c ? Well, its a bit more off the road. In src/cd-info.c i read: if (!cdio_get_track_msf(p_cdio, i, &msf)) { err_exit("cdio_track_msf for track %i failed, I give up.\n", i); } lib/driver/track.c has if (p_cdio->op.get_track_msf) { return p_cdio->op.get_track_msf (p_cdio->env, u_track, msf); and netbsd.c has static cdio_funcs_t _funcs = { ... .get_track_msf = get_track_msf_netbsd, which returns in the case of bad track number neither "true" nor "false", but rather CDIO_INVALID_TRACK. include/cdio/track.h : extern enum cdio_track_enums { ... CDIO_INVALID_TRACK = 0xFF, /* ... */ include/cdio/types.h #define true 1 #define false 0 ======================================================================= So get_track_msf_netbsd() must not return CDIO_INVALID_TRACK but rather false in case of error. Alternatively cdio_get_track_msf() could check for values other than true and false. But CDIO_INVALID_TRACK seems to be intended as pseudo- track number, not as success indicator. Further get_track_msf_netbsd() is indeed declared as "bool". Have a nice day :) Thomas