Enumerations



ExtAudioFilePropertyID


enum { // ExtAudioFilePropertyID 
    kExtAudioFileProperty_FileDataFormat = 'ffmt', // AudioStreamBasicDescription 
    kExtAudioFileProperty_FileChannelLayout = 'fclo', // AudioChannelLayout 
    kExtAudioFileProperty_ClientDataFormat = 'cfmt', // AudioStreamBasicDescription 
    kExtAudioFileProperty_ClientChannelLayout = 'cclo', // AudioChannelLayout  
    // read-only: 
    kExtAudioFileProperty_AudioConverter = 'acnv', // AudioConverterRef 
    kExtAudioFileProperty_FileMaxPacketSize = 'fmps', // UInt32 
    kExtAudioFileProperty_ClientMaxPacketSize = 'cmps', // UInt32 
    kExtAudioFileProperty_FileLengthFrames = '#frm', // SInt64  
    // writable: 
    kExtAudioFileProperty_ConverterConfig = 'accf', // CFPropertyListRef 
    kExtAudioFileProperty_IOBufferSizeBytes = 'iobs', // UInt32 
    kExtAudioFileProperty_IOBuffer = 'iobf' // void * 
}; 
Constants
kExtAudioFileProperty_FileDataFormat
An AudioStreamBasicDescription. Represents the file's actual data format. Read-only.
kExtAudioFileProperty_FileChannelLayout
An AudioChannelLayout.

If writing: the channel layout is written to the file, if the format supports the layout. If the format does not support the layout, the channel layout is still interpreted as the destination layout when performing conversion from the client channel layout, if any.

If reading: the specified layout overrides the one read from the file, if any.

When setting this, it must be set before the client format or channel layout.
kExtAudioFileProperty_ClientDataFormat
An AudioStreamBasicDescription.

The format must be linear PCM (kAudioFormatLinearPCM).

You must set this in order to encode or decode a non-PCM file data format. You may set this on PCM files to specify the data format used in your calls to read/write.
kExtAudioFileProperty_ClientChannelLayout
An AudioChannelLayout. Specifies the channel layout of the AudioBufferList's passed to ExtAudioFileReadFrames() and ExtAudioFileWriteFrames(). The layout may be different from the file's channel layout, in which the ExtAudioFileRef's underlying AudioConverter performs the remapping. This must be set after ClientDataFormat, and the number of channels in the layout must match.
kExtAudioFileProperty_AudioConverter
AudioConverterRef. The underlying AudioConverterRef, if any. Read-only.

N.B. If you alter any properties of the AudioConverterRef, for example, an encoder's bit rate, you must set the kExtAudioFileProperty_ConverterConfig property on the ExtAudioFileRef afterwards. A NULL configuration is sufficient. This will ensure that the output file's data format is consistent with the format being produced by the converter.
kExtAudioFileProperty_FileMaxPacketSize
UInt32 representing the file data format's maximum packet size in bytes. Read-only.
kExtAudioFileProperty_ClientMaxPacketSize
UInt32 representing the client data format's maximum packet size in bytes. Read-only.
kExtAudioFileProperty_FileLengthFrames
SInt64 representing the file's length in sample frames. Read-only on non-PCM formats; writable for files in PCM formats.
kExtAudioFileProperty_ConverterConfig
CFArrayRef representing the underlying AudioConverter's configuration, as specified by kAudioConverterPropertySettings.

This may be NULL to force resynchronization of the converter's output format with the file's data format.
kExtAudioFileProperty_IOBufferSizeBytes
UInt32 representing the size of the buffer through which the converter reads/writes the audio file (when there is an AudioConverter).
kExtAudioFileProperty_IOBuffer
void *. This is the memory buffer which the ExtAudioFileRef will use for disk I/O when there is a conversion between the client and file data formats. A client may be able to share buffers between multiple ExtAudioFileRef instances, in which case, it can set this property to point to its own buffer. After setting this property, the client must subsequently set the kExtAudioFileProperty_IOBufferSizeBytes property. Note that a pointer to a pointer should be passed to ExtAudioFileSetProperty.

(Last Updated July 18, 2005)