Contains information describing a single channel.
typedef struct AudioChannelDescription {
AudioChannelLabel mChannelLabel;
UInt32 mChannelFlags;
Float32 mCoordinates[3];
} AudioChannelDescription;
This structure is used by AudioChannelLayout to
describe the position of a speaker. The mChannelFlags data
member contains a “Channel Labels” value, while mChannelFlags marks which
coordinate system is in use. The position of the speaker is kept
in mCoordinates, as per the “Channel Flags” and “Channel Coordinates.”
CoreAudioTypes.h
Specifies the channel layout in files and hardware.
typedef struct AudioChannelLayout {
AudioChannelLayoutTag mChannelLayoutTag;
UInt32 mChannelBitmap;
UInt32 mNumberChannelDescriptions;
AudioChannelDescription mChannelDescriptions[1];
} AudioChannelLayout;
This structure is used to keep track of the channel arrangements. A “Channel Layout Tags” value, stored in mChannelLayoutTag, signifies which layout scheme is in use, or, if the scheme is not available there, mChannelBitmap may contain a bitmap describing the layout. The bitmap is formed using “Channel Bitmaps.”
CoreAudioTypes.h
Typedefs are provided to help describe channel layouts.
typedef UInt32 AudioChannelLabel; |
typedef UInt32 AudioChannelLayoutTag; |
Specifies which channel is described by an AudioChannelDescription.
Unknown/unused:
kAudioChannelLabel_Unknown = 0xFFFFFFFF |
kAudioChannelLabel_Unused = 0 |
Standard channels:
kAudioChannelLabel_Left = 1 |
kAudioChannelLabel_Right= 2 |
kAudioChannelLabel_Center = 3 |
kAudioChannelLabel_LFEScreen = 4 |
kAudioChannelLabel_LeftSurround = 5 |
kAudioChannelLabel_RightSurround = 6 |
kAudioChannelLabel_LeftCenter = 7 |
kAudioChannelLabel_RightCenter = 8 |
kAudioChannelLabel_CenterSurround = 9 |
kAudioChannelLabel_LeftSurroundDirect = 10 |
kAudioChannelLabel_RightSurroundDirect = 11 |
kAudioChannelLabel_TopCenterSurround = 12 |
kAudioChannelLabel_VerticalHeightLeft = 13 |
kAudioChannelLabel_VerticalHeightCenter = 14 |
kAudioChannelLabel_VerticalHeightRight = 15 |
kAudioChannelLabel_TopBackLeft = 16 |
kAudioChannelLabel_TopBackCenter = 17 |
kAudioChannelLabel_TopBackRight = 18 |
kAudioChannelLabel_RearSurroundLeft = 33 |
kAudioChannelLabel_RearSurroundRight = 34 |
kAudioChannelLabel_LeftWide = 35 |
kAudioChannelLabel_RightWide = 36 |
kAudioChannelLabel_LFE2 = 37 |
kAudioChannelLabel_LeftTotal = 38 |
kAudioChannelLabel_RightTotal = 39 |
kAudioChannelLabel_HearingImpaired = 40 |
kAudioChannelLabel_Narration = 41 |
kAudioChannelLabel_Mono = 42 |
kAudioChannelLabel_DialogCentricMix = 43 |
First order Ambisonic channels:
kAudioChannelLabel_Ambisonic_W = 200 |
kAudioChannelLabel_Ambisonic_X = 201 |
kAudioChannelLabel_Ambisonic_Y = 202 |
kAudioChannelLabel_Ambisonic_Z = 203 |
Mid/side Recording:
kAudioChannelLabel_MS_Mid = 204 |
kAudioChannelLabel_MS_Side = 205 |
X-Y Recording:
kAudioChannelLabel_XY_X = 206 |
kAudioChannelLabel_XY_Y = 207 |
Other channels:
kAudioChannelLabel_HeadphonesLeft = 301 |
kAudioChannelLabel_HeadphonesRight = 302 |
kAudioChannelLabel_ClickTrack = 304 |
kAudioChannelLabel_ForeignLanguage = 305 |
Used in the mChannelBitmap field
of an AudioChannelLayout to specify a custom
layout.
kAudioChannelBit_Left = (1L<<0) |
kAudioChannelBit_Right = (1L<<1) |
kAudioChannelBit_Center = (1L<<2) |
kAudioChannelBit_LFEScreen = (1L<<3) |
kAudioChannelBit_LeftSurround = (1L<<4) |
kAudioChannelBit_RightSurround = (1L<<5) |
kAudioChannelBit_LeftCenter = (1L<<6) |
kAudioChannelBit_RightCenter = (1L<<7) |
kAudioChannelBit_CenterSurround = (1L<<8) |
kAudioChannelBit_LeftSurroundDirect = (1L<<9) |
kAudioChannelBit_RightSurroundDirect = (1L<<10) |
kAudioChannelBit_TopCenterSurround = (1L<<11) |
kAudioChannelBit_VerticalHeightLeft = (1L<<12) |
kAudioChannelBit_VerticalHeightCenter = (1L<<13) |
kAudioChannelBit_VerticalHeightRight = (1L<<14) |
kAudioChannelBit_TopBackLeft = (1L<<15) |
kAudioChannelBit_TopBackCenter = (1L<<16) |
kAudioChannelBit_TopBackRight = (1L<<17) |
Specifies which coordinate system is in use, and if the distances
are measured in meters; stored in mChannelFields in
an AudioChannelDescription instance.
kAudioChannelFlags_RectangularCoordinates = (1L<<0) |
kAudioChannelFlags_SphericalCoordinates = (1L<<1) |
kAudioChannelFlags_Meters = (1L<<2) |
Specifies the meaning of indices of mCoordinates in AudioChannelDescription.
For rectangular coordinates:
kAudioChannelCoordinates_LeftRight = 0 |
kAudioChannelCoordinates_BackFront = 1 |
kAudioChannelCoordinates_DownUp = 2 |
For spherical coordinates:
kAudioChannelCoordinates_Azimuth = 0 |
kAudioChannelCoordinates_Elevation = 1 |
kAudioChannelCoordinates_Distance = 2 |
Specifies which channel layout is in use; stored in mChannelLayout in AudioChannelLayout.
Other/unknown:
kAudioChannelLayoutTag_UseChannelDescriptions = 0 |
kAudioChannelLayoutTag_UseChannelBitmap = 1 |
kAudioChannelLayoutTag_AllUnknown = 9 |
General layouts:
kAudioChannelLayoutTag_Mono = 100 |
kAudioChannelLayoutTag_Stereo = 101 |
kAudioChannelLayoutTag_StereoHeadphones = 2 |
kAudioChannelLayoutTag_MatrixStereo = 3 |
kAudioChannelLayoutTag_MidSide = 4 |
kAudioChannelLayoutTag_XY = 5 |
kAudioChannelLayoutTag_Binaural = 6 |
kAudioChannelLayoutTag_Quadraphonic = 7 |
kAudioChannelLayoutTag_Ambisonic_B_Format = 8 |
kAudioChannelLayoutTag_AudioUnit_5_0 = 107 |
MPEG defined layouts:
kAudioChannelLayoutTag_MPEG_1_0 = 100 |
kAudioChannelLayoutTag_MPEG_2_0 = 101 |
kAudioChannelLayoutTag_MPEG_3_0_A = 102 |
kAudioChannelLayoutTag_MPEG_3_0_B = 103 |
kAudioChannelLayoutTag_MPEG_4_0_A = 104 |
kAudioChannelLayoutTag_MPEG_4_0_B = 105 |
kAudioChannelLayoutTag_MPEG_5_0_A = 106 |
kAudioChannelLayoutTag_MPEG_5_0_B = 107 |
kAudioChannelLayoutTag_MPEG_5_0_C = 108 |
kAudioChannelLayoutTag_MPEG_5_0_D = 109 |
kAudioChannelLayoutTag_MPEG_5_1_A = 110 |
kAudioChannelLayoutTag_MPEG_5_1_B = 111 |
kAudioChannelLayoutTag_MPEG_5_1_C = 112 |
kAudioChannelLayoutTag_MPEG_5_1_D = 113 |
kAudioChannelLayoutTag_MPEG_6_1_A = 114 |
kAudioChannelLayoutTag_MPEG_7_1_A = 115 |
kAudioChannelLayoutTag_MPEG_7_1_B = 116 |
kAudioChannelLayoutTag_MPEG_7_1_C = 117 |
kAudioChannelLayoutTag_Emagic_Default_7_1 = 118 |
kAudioChannelLayoutTag_SMPTE_DTV = 119 |
ITU defined layouts:
kAudioChannelLayoutTag_ITU_1_0 = 100 |
kAudioChannelLayoutTag_ITU_2_0 = 101 |
kAudioChannelLayoutTag_ITU_2_1 = 120 |
kAudioChannelLayoutTag_ITU_2_2 = 121 |
kAudioChannelLayoutTag_ITU_3_0 = 102 |
kAudioChannelLayoutTag_ITU_3_1 = 104 |
kAudioChannelLayoutTag_ITU_3_2 = 106 |
kAudioChannelLayoutTag_ITU_3_2_1 = 110 |
kAudioChannelLayoutTag_ITU_3_4_1 = 117 |
DVD defined layouts:
kAudioChannelLayoutTag_DVD_0 = 100 |
kAudioChannelLayoutTag_DVD_1 = 101 |
kAudioChannelLayoutTag_DVD_2 = 120 |
kAudioChannelLayoutTag_DVD_3 = 121 |
kAudioChannelLayoutTag_DVD_4 = 122 |
kAudioChannelLayoutTag_DVD_5 = 123 |
kAudioChannelLayoutTag_DVD_6 = 124 |
kAudioChannelLayoutTag_DVD_7 = 102 |
kAudioChannelLayoutTag_DVD_8 = 104 |
kAudioChannelLayoutTag_DVD_9 = 106 |
kAudioChannelLayoutTag_DVD_10 = 125 |
kAudioChannelLayoutTag_DVD_11 = 126 |
kAudioChannelLayoutTag_DVD_12 = 110 |
kAudioChannelLayoutTag_DVD_13 = 104 |
kAudioChannelLayoutTag_DVD_14 = 106 |
kAudioChannelLayoutTag_DVD_15 = 125 |
kAudioChannelLayoutTag_DVD_16 = 126 |
kAudioChannelLayoutTag_DVD_17 = 110 |
kAudioChannelLayoutTag_DVD_18 = 127 |
kAudioChannelLayoutTag_DVD_19 = 107 |
kAudioChannelLayoutTag_DVD_20 = 111 |
Last updated: 2004-03-25