I'm having an unusual, probably very simple problem when writing audio CDs. There is an extra data track before all the audio tracks, taking up 600 blocks. Following is output from the error log:
HTML Code:
18:39:37 #11 Text 0 File ThreadedTransferInterface.cpp, Line 813
Setup items (after recorder preparation)
0: TRM_DATA_MODE1 (CTransferItem)
2 indices, index0 (150) not provided
original disc pos #0 + 600 (600) = #600/0:8.0
relocatable, disc pos for caching/writing not required/required, no patch infos
-> TRM_DATA_MODE1, 2048, config 0, wanted index0 0 blocks, length 600 blocks [LITE-ON LTR-52327S ]
1: TRM_AUDIO_NOPRE (song name.mp3)
2 indices, index0 (150) not provided
original disc pos #0 + 21321 (21321) = #21321/4:44.21
relocatable, disc pos for caching/writing not required/not required, no patch infos
-> TRM_AUDIO_NOPRE, 2352, config 0, wanted index0 0 blocks, length 21321 blocks [LITE-ON LTR-52327S ]
Track info for other audio tracks follows this.
The next section of the error log contains:
HTML Code:
18:39:37 #12 Text 0 File ThreadedTransferInterface.cpp, Line 982
Prepare recorder [LITE-ON LTR-52327S ] for write in CUE-sheet-DAO
DAO infos:
==========
MCN: ""
TOCType: 0x00; Session Closed, disc fixated
Tracks 1 to 20:
1: TRM_DATA_MODE1, 2048/0x00, FilePos 0 307200 1536000, ISRC ""
2: TRM_AUDIO_NOPRE, 2352/0x00, FilePos 1536000 1888800 52035792, ISRC ""
3: TRM_AUDIO_NOPRE, 2352/0x00, FilePos 52035792 52035792 99386256, ISRC ""
4: TRM_AUDIO_NOPRE, 2352/0x00, FilePos 99386256 99386256 159851472, ISRC ""
...
...and then...
DAO layout:
===========
__Start_|____Track_|_Idx_|_RecDep_|_CtrlAdr_
-150 | lead-in | 0 | 0x00 | 0x41
-150 | 1 | 0 | 0x00 | 0x41
0 | 1 | 1 | 0x00 | 0x41
600 | 2 | 0 | 0x00 | 0x21
750 | 2 | 1 | 0x00 | 0x21
22071 | 3 | 0 | 0x00 | 0x21
22071 | 3 | 1 | 0x00 | 0x21
42203 | 4 | 0 | 0x00 | 0x21
...
This is the relevant code used to prepare and burn the disc:
HTML Code:
iSize = sizeof(NERO_WRITE_CD) + ((int) _vfTracks.size()-1)*sizeof(NERO_AUDIO_TRACK);
pWriteCD = (NERO_WRITE_CD*) malloc(iSize);
memset(pWriteCD, 0, iSize);
pWriteCD->nwcdNumTracks = (DWORD) _vfTracks.size();
.
.
NERO_CITE_ARGS ncaArgs;
memset (&ncaArgs, 0, sizeof (ncaArgs));
ncaArgs.dwBurnOptions = 0;
ncaArgs.firstRootItem = NULL;
.
.
pWriteCD->nwcdIsoTrack = NeroCreateIsoTrackEx(NULL, (const char *) &ncaArgs, NCITEF_USE_STRUCT);
for (unsigned int iTrackIdx=0; iTrackIdx<_vfTracks.size(); iTrackIdx++) {
// Set pause before track, in blocks
if (iTrackIdx == 0) {
pWriteCD->nwcdTracks[iTrackIdx].natPauseInBlksBeforeThisTrack = 150;
} else {
pWriteCD->nwcdTracks[iTrackIdx].natPauseInBlksBeforeThisTrack = 0;
}
NERO_DATA_EXCHANGE& ndeShort = pWriteCD->nwcdTracks[iTrackIdx].natSourceDataExchg;
// Add file info depending on type
char* sFilename = new char[_vfTracks[iTrackIdx]->getFullName().size()+1];
strcpy(sFilename, _vfTracks[iTrackIdx]->getFullName().c_str());
if (_vfTracks[iTrackIdx]->hasExt(".wav") || _vfTracks[iTrackIdx]->hasExt(".wave")) {
ndeShort.ndeType = NERO_ET_FILE;
ndeShort.ndeData.ndeLongFileName.reserved = NULL;
ndeShort.ndeData.ndeLongFileName.ptr = sFilename;
} else if (_vfTracks[iTrackIdx]->hasExt(".mp3") || _vfTracks[iTrackIdx]->hasExt(".mpeg3")) {
ndeShort.ndeType = NERO_ET_FILE_MP3;
ndeShort.ndeData.ndeLongFileName.reserved = NULL;
ndeShort.ndeData.ndeLongFileName.ptr = sFilename;
}
}
.
.
DWORD dwBurnFlags = 0;
dwBurnFlags = NBF_DAO |
NBF_SPEED_IN_KBS |
NBF_BUF_UNDERRUN_PROT |
(_bSimulate ?
NBF_SIMULATE | NBF_DISABLE_EJECT :
NBF_WRITE);
NEROAPI_BURN_ERROR nbeError;
nbeError = NeroBurn(_ndhDeviceHandle, NERO_ISO_AUDIO_MEDIA, pWriteCD, dwBurnFlags, _dwBurnSpeed, &_npProgress); The disc burns fine -- just has that little extra data track in front. Anyone got any ideas? Thanks!!