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 * };
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)