[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Libcdio-devel] Read Sub-channel changes
From: |
Thomas Schmitt |
Subject: |
Re: [Libcdio-devel] Read Sub-channel changes |
Date: |
Tue, 31 May 2016 17:40:27 +0200 |
Hi,
the difference in behavior between 0.93 and git was incidential.
---------------------------------------------------------------------
New observations:
---------------------------------------------------------------------
With the problem CD it is quite random whether TRACK 1 and/or TRACK 3
are reported. TRACK 2 is never reported.
The missing tracks get omitted, because the TCVAL bit is not set in
the reply data from the drive. 24 bytes get returned, though.
If i set this bit in order to print the received ISRC, i get "000000000000".
---------------------------------------------------------------------
MCN is not inquired via mmc_get_track_isrc_private(). During the run
of cd-info, it is not called with sub_chan_param == 2 for MCN. There
are only the three calls with sub_chan_param == 3 for ISRC.
The reason is that cd-info calls cdio_get_mcn(), which calls
((CdIo_t *) p_cdio)->op.get_mcn, which is set to get_mcn_linux()
in cdio_open_am_linux().
get_mcn_linux() calls ioctl(CDROM_GET_MCN) rather than mmc_get_mcn().
One should consider to give up the ioctl because mmc_get_mcn()
can indicate whether the result is valid. The ioctl returns 0, so that
the value "00...00" cannot be distinguished from a valid one.
This change could be done in cdio_get_mcn(). I.e. i would give up the
function pointer ((CdIo_t *) p_cdio)->op.get_mcn, because it gets
((CdIo_t *) p_cdio)->env whereas mmc_get_mcn() wants (CdIo_t *).
I am testing this now. mmc_get_mcn_isrc_private() gets called with
sub_chan_param = 2. Available length is 24. MCVAL bit in the reply
is not set.
---------------------------------------------------------------------
The first CD-RW which i tested, reliably returns a non-0 MCN and all
three ISRCs.
---------------------------------------------------------------------
Current theory:
---------------------------------------------------------------------
The drive has problems to read the MCN and ISRC of the problem CD.
It quite often succeeds with track 1 and 3. Never with track 2 or MCN.
By lack of MCVAL/TCVAL bit it correctly indicates the failure.
It does not indicate error by Sense Code, though.
(Regrettably this does not explain the ISRC glitch shown in
https://bugzilla.redhat.com/show_bug.cgi?id=1321677#c8
)
The changing read success makes me believe that libburn's way of
burning the CD-RW is not to blame. It rather looks like a problem between
drive and medium.
---------------------------------------------------------------------
Have a nice day :)
Thomas
- Re: [Libcdio-devel] Read Sub-channel changes, (continued)
- Re: [Libcdio-devel] Read Sub-channel changes, Thomas Schmitt, 2016/05/27
- Re: [Libcdio-devel] Read Sub-channel changes, Leon Merten Lohse, 2016/05/29
- Re: [Libcdio-devel] Read Sub-channel changes, Thomas Schmitt, 2016/05/29
- Re: [Libcdio-devel] Read Sub-channel changes, Leon Merten Lohse, 2016/05/29
- Re: [Libcdio-devel] Read Sub-channel changes, Thomas Schmitt, 2016/05/30
- Re: [Libcdio-devel] Read Sub-channel changes, Rocky Bernstein, 2016/05/30
- Re: [Libcdio-devel] Read Sub-channel changes, Thomas Schmitt, 2016/05/30
- Re: [Libcdio-devel] Read Sub-channel changes, Leon Merten Lohse, 2016/05/30
- Re: [Libcdio-devel] Read Sub-channel changes, Thomas Schmitt, 2016/05/30
- Re: [Libcdio-devel] Read Sub-channel changes, Thomas Schmitt, 2016/05/31
- Re: [Libcdio-devel] Read Sub-channel changes,
Thomas Schmitt <=
- Re: [Libcdio-devel] Read Sub-channel changes, Rocky Bernstein, 2016/05/31
- Re: [Libcdio-devel] Read Sub-channel changes, Thomas Schmitt, 2016/05/31
- Re: [Libcdio-devel] Read Sub-channel changes, Leon Merten Lohse, 2016/05/31
- Re: [Libcdio-devel] Read Sub-channel changes, Rocky Bernstein, 2016/05/31
- Re: [Libcdio-devel] Read Sub-channel changes, Thomas Schmitt, 2016/05/31
- Re: [Libcdio-devel] Read Sub-channel changes, Rocky Bernstein, 2016/05/31