Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MultiSession Audio/9660



On Sep 17, 2003, at 12:06 PM, email@hidden wrote:

I am trying to produce a dual "session" disk with Audio Tracks in the
first session and an ISO 9660 session containing files and folders.

What I'm getting is either not mounting on the Mac OS X or PC, or both.

I've got a sample disc (burned on a PC) that works correctly. When I
mount it, the Console Log shows the following:

Sep 17 10:09:57 ip67-xxx /sbin/autodiskmount[261]: disk1 cddafs no
no Audio CD [not mounted]

Sep 17 10:09:57 ip67-xxx/sbin/autodiskmount[261]: disk1s0 cd9660 no
no Sample Netburner1 [not mounted]

Sep 17 10:09:57 ip67-xxx /sbin/autodiskmount[261]: disk1 cddafs no
no Audio CD /Volumes/Audio CD

Sep 17 10:09:58 ip67-xxx /sbin/autodiskmount[261]: disk1s0 cd9660 no
no Sample Netburner1 /Volumes/Sample Netburner1


When I try to mount the one I created, with HFS+, Joliet, and ISO 8660
flags set in the mask, I get the following:
Sep 17 01:07:23 ip67-xxx /sbin/autodiskmount[261]: disk1 cddafs no
no Audio CD [not mounted]

Sep 17 01:07:23 ip67-xxx /sbin/autodiskmount[261]: disk1s3s2 hfs no
no image [not mounted]

Sep 17 01:07:23 ip67-xxx /sbin/autodiskmount[261]: disk1 cddafs no
no Audio CD /Volumes/Audio CD

Sep 17 01:07:23 ip67-xxx /sbin/autodiskmount[261]: disk1s3s2 hfs no
no image /Volumes/image

This one mounts on the Mac when Classic isn't running, but not when
Classic is running. What's more, the data session doesn't mount on a PC.

This is most likely because of the problem I mentioned in my last email, where the offsets are incorrect.



I'm trying to determine what I'm doing wrong. Looking at the log, I
noticed the disk lables are different for the two disk "disk1s0" for the
PC-burned disk that works, and "disk1s3s2" for mine that doesn't. Is
this significant?

Nope. The BSD nodes are different because the disc burned on a Mac includes an Apple Partition Map and a HFS+ volume.

In a little bit more technical detail, the content of the disc affects the way that IOKit creates IOMedia objects for the device. In general there's a 1:1 correspondence between BSD disk nodes and IOMedia objects. The IOMedia for the whole disk corresponds to "disk1", and the extra "s"'s are caused by the way IOKit creates IOMedia objects representing tracks or partitions. When you have different layouts, for example when one disc has a partition map and another doesn't, you get different BSD disk nodes.


After trying to do this the Objective-C route with two separate burns and
getting nowhere, I converted to using the C-library and adding the data
track as just another track in the burn. Starting with a trackArray that
already contains the audio tracks, my code is as follows:

{
enum {
DRFilesystemInclusionMaskISO9660 = (1<<0),
DRFilesystemInclusionMaskJoliet = (1<<1),
DRFilesystemInclusionMaskHFSPlus = (1<<3)
};

FSRef folderOnDisk;
DRFolderRef folder = NULL;
DRFilesystemMask mask = DRFilesystemInclusionMaskISO9660 |
DRFilesystemInclusionMaskJoliet |
DRFilesystemInclusionMaskHFSPlus;
DRFilesystemTrackRef track = NULL;

err = FSMakeFSRef((SInt16)0, (SInt32)0, kDataRelativePath,
&folderOnDisk);
if (err == 0) {
folder = DRFolderCreateReal(&folderOnDisk);
if (folder) {
DRFSObjectSetFilesystemMask(folder,mask);
track = DRFilesystemTrackCreate(folder);
if (track) {
/* Put the track into the array for burning */
CFArrayAppendValue(trackArray, track);
CFRelease(track);
}
CFRelease(folder);
}
}
}


I tried this again with just the DRFilesystemInclusionMaskISO9660 flag
and it was worse. No data mounted on the Mac OR PC, and the audio didn't
work on the Mac.

The correct and compliant way to do this (according to the various CD specifications) would be to add the track in a second session. To achieve this, your layout would be an array of arrays of tracks, with the data track alone in the second session.

But again, the ISO/Joliet that DR generates is currently broken when it appears beyond the first track, so until that bug is fixed you can't use DRFilesystemTrack to do this. You could do it if you generated your own ISO/Joliet.

drew

--
Drew Thaler
Recording Artist
CD/DVD Burning Issues
Apple Computer, Inc.
_______________________________________________
discrecording mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/discrecording
Do not post admin requests to the list. They will be ignored.



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.