this repo has no description
at fixPythonPipStalling 302 lines 11 kB view raw
1#ifndef _AUDIO_CODEC_H 2#define _AUDIO_CODEC_H 3 4#include <CoreAudio/CoreAudioTypes.h> 5#include <AudioToolbox/AudioComponent.h> 6 7#ifdef __cplusplus 8extern "C" { 9#endif 10 11typedef AudioComponentInstance AudioCodec; 12typedef UInt32 AudioCodecPropertyID; 13struct AudioCodecMagicCookieInfo 14{ 15 UInt32 mMagicCookieSize; 16 const void* _Nullable mMagicCookie; 17}; 18typedef struct AudioCodecMagicCookieInfo AudioCodecMagicCookieInfo; 19enum 20{ 21 kAudioDecoderComponentType = 'adec', 22 kAudioEncoderComponentType = 'aenc', 23 kAudioUnityCodecComponentType = 'acdc' 24}; 25enum 26{ 27 kAudioCodecPropertySupportedInputFormats = 'ifm#', 28 kAudioCodecPropertySupportedOutputFormats = 'ofm#', 29 kAudioCodecPropertyAvailableInputSampleRates = 'aisr', 30 kAudioCodecPropertyAvailableOutputSampleRates = 'aosr', 31 kAudioCodecPropertyAvailableBitRateRange = 'abrt', 32 kAudioCodecPropertyMinimumNumberInputPackets = 'mnip', 33 kAudioCodecPropertyMinimumNumberOutputPackets = 'mnop', 34 kAudioCodecPropertyAvailableNumberChannels = 'cmnc', 35 kAudioCodecPropertyDoesSampleRateConversion = 'lmrc', 36 kAudioCodecPropertyAvailableInputChannelLayoutTags = 'aicl', 37 kAudioCodecPropertyAvailableOutputChannelLayoutTags = 'aocl', 38 kAudioCodecPropertyInputFormatsForOutputFormat = 'if4o', 39 kAudioCodecPropertyOutputFormatsForInputFormat = 'of4i', 40 kAudioCodecPropertyFormatInfo = 'acfi' 41}; 42enum 43{ 44 kAudioCodecPropertyInputBufferSize = 'tbuf', 45 kAudioCodecPropertyPacketFrameSize = 'pakf', 46 kAudioCodecPropertyHasVariablePacketByteSizes = 'vpk?', 47 kAudioCodecPropertyMaximumPacketByteSize = 'pakb', 48 kAudioCodecPropertyPacketSizeLimitForVBR = 'pakl', 49 kAudioCodecPropertyCurrentInputFormat = 'ifmt', 50 kAudioCodecPropertyCurrentOutputFormat = 'ofmt', 51 kAudioCodecPropertyMagicCookie = 'kuki', 52 kAudioCodecPropertyUsedInputBufferSize = 'ubuf', 53 kAudioCodecPropertyIsInitialized = 'init', 54 kAudioCodecPropertyCurrentTargetBitRate = 'brat', 55 kAudioCodecPropertyCurrentInputSampleRate = 'cisr', 56 kAudioCodecPropertyCurrentOutputSampleRate = 'cosr', 57 kAudioCodecPropertyQualitySetting = 'srcq', 58 kAudioCodecPropertyApplicableBitRateRange = 'brta', 59 kAudioCodecPropertyRecommendedBitRateRange = 'brtr', 60 kAudioCodecPropertyApplicableInputSampleRates = 'isra', 61 kAudioCodecPropertyApplicableOutputSampleRates = 'osra', 62 kAudioCodecPropertyPaddedZeros = 'pad0', 63 kAudioCodecPropertyPrimeMethod = 'prmm', 64 kAudioCodecPropertyPrimeInfo = 'prim', 65 kAudioCodecPropertyCurrentInputChannelLayout = 'icl ', 66 kAudioCodecPropertyCurrentOutputChannelLayout = 'ocl ', 67 kAudioCodecPropertySettings = 'acs ', 68 kAudioCodecPropertyFormatList = 'acfl', 69 kAudioCodecPropertyBitRateControlMode = 'acbf', 70 kAudioCodecPropertySoundQualityForVBR = 'vbrq', 71 kAudioCodecPropertyDelayMode = 'dmod', 72 kAudioCodecPropertyAdjustLocalQuality = '^qal', 73 kAudioCodecPropertyProgramTargetLevel = 'pptl', 74 kAudioCodecPropertyDynamicRangeControlMode = 'mdrc', 75 kAudioCodecPropertyProgramTargetLevelConstant = 'ptlc', 76}; 77enum 78{ 79 kAudioCodecQuality_Max = 0x7F, 80 kAudioCodecQuality_High = 0x60, 81 kAudioCodecQuality_Medium = 0x40, 82 kAudioCodecQuality_Low = 0x20, 83 kAudioCodecQuality_Min = 0 84}; 85enum 86{ 87 kAudioCodecPrimeMethod_Pre = 0, 88 kAudioCodecPrimeMethod_Normal = 1, 89 kAudioCodecPrimeMethod_None = 2 90}; 91enum 92{ 93 kAudioCodecBitRateControlMode_Constant = 0, 94 kAudioCodecBitRateControlMode_LongTermAverage = 1, 95 kAudioCodecBitRateControlMode_VariableConstrained = 2, 96 kAudioCodecBitRateControlMode_Variable = 3, 97}; 98enum 99{ 100 kAudioCodecDelayMode_Compatibility = 0, 101 kAudioCodecDelayMode_Minimum = 1, 102 kAudioCodecDelayMode_Optimal = 2 103}; 104enum 105{ 106 kProgramTargetLevel_None = 0, 107 kProgramTargetLevel_Minus31dB = 1, 108 kProgramTargetLevel_Minus23dB = 2, 109 kProgramTargetLevel_Minus20dB = 3 110}; 111enum 112{ 113 kDynamicRangeControlMode_None = 0, 114 kDynamicRangeControlMode_Light = 1, 115 kDynamicRangeControlMode_Heavy = 2 116}; 117typedef struct AudioCodecPrimeInfo 118{ 119 UInt32 leadingFrames; 120 UInt32 trailingFrames; 121} AudioCodecPrimeInfo; 122typedef UInt32 AudioSettingsFlags; enum { 123 kAudioSettingsFlags_ExpertParameter = (1L << 0), 124 kAudioSettingsFlags_InvisibleParameter = (1L << 1), 125 kAudioSettingsFlags_MetaParameter = (1L << 2), 126 kAudioSettingsFlags_UserInterfaceParameter = (1L << 3) 127}; 128enum 129{ 130 kAudioCodecProduceOutputPacketFailure = 1, 131 kAudioCodecProduceOutputPacketSuccess = 2, 132 kAudioCodecProduceOutputPacketSuccessHasMore = 3, 133 kAudioCodecProduceOutputPacketNeedsMoreInputData = 4, 134 kAudioCodecProduceOutputPacketAtEOF = 5 135}; 136enum 137{ 138 kAudioCodecGetPropertyInfoSelect = 0x0001, 139 kAudioCodecGetPropertySelect = 0x0002, 140 kAudioCodecSetPropertySelect = 0x0003, 141 kAudioCodecInitializeSelect = 0x0004, 142 kAudioCodecUninitializeSelect = 0x0005, 143 kAudioCodecAppendInputDataSelect = 0x0006, 144 kAudioCodecProduceOutputDataSelect = 0x0007, 145 kAudioCodecResetSelect = 0x0008, 146 kAudioCodecAppendInputBufferListSelect = 0x0009, 147 kAudioCodecProduceOutputBufferListSelect = 0x000A 148}; 149enum 150{ 151 kAudioCodecNoError = 0, 152 kAudioCodecUnspecifiedError = 'what', 153 kAudioCodecUnknownPropertyError = 'who?', 154 kAudioCodecBadPropertySizeError = '!siz', 155 kAudioCodecIllegalOperationError = 'nope', 156 kAudioCodecUnsupportedFormatError = '!dat', 157 kAudioCodecStateError = '!stt', 158 kAudioCodecNotEnoughBufferSpaceError = '!buf' 159}; 160extern OSStatus 161AudioCodecGetPropertyInfo( AudioCodec inCodec, 162 AudioCodecPropertyID inPropertyID, 163 UInt32* _Nullable outSize, 164 Boolean* _Nullable outWritable); 165extern OSStatus 166AudioCodecGetProperty( AudioCodec inCodec, 167 AudioCodecPropertyID inPropertyID, 168 UInt32* ioPropertyDataSize, 169 void* outPropertyData); 170extern OSStatus 171AudioCodecSetProperty( AudioCodec inCodec, 172 AudioCodecPropertyID inPropertyID, 173 UInt32 inPropertyDataSize, 174 const void* inPropertyData); 175extern OSStatus 176AudioCodecInitialize( AudioCodec inCodec, 177 const AudioStreamBasicDescription* _Nullable inInputFormat, 178 const AudioStreamBasicDescription* _Nullable inOutputFormat, 179 const void* _Nullable inMagicCookie, 180 UInt32 inMagicCookieByteSize); 181extern OSStatus 182AudioCodecUninitialize(AudioCodec inCodec); 183extern OSStatus 184AudioCodecAppendInputData( AudioCodec inCodec, 185 const void* inInputData, 186 UInt32* ioInputDataByteSize, 187 UInt32* ioNumberPackets, 188 const AudioStreamPacketDescription* _Nullable inPacketDescription); 189extern OSStatus 190AudioCodecProduceOutputPackets( AudioCodec inCodec, 191 void* outOutputData, 192 UInt32* ioOutputDataByteSize, 193 UInt32* ioNumberPackets, 194 AudioStreamPacketDescription* _Nullable outPacketDescription, 195 UInt32* outStatus); 196 197extern OSStatus 198AudioCodecAppendInputBufferList( AudioCodec inCodec, 199 const AudioBufferList * inBufferList, 200 UInt32* ioNumberPackets, 201 const AudioStreamPacketDescription* _Nullable inPacketDescription, 202 UInt32* outBytesConsumed); 203 204extern OSStatus 205AudioCodecProduceOutputBufferList( AudioCodec inCodec, 206 AudioBufferList * ioBufferList, 207 UInt32* ioNumberPackets, 208 AudioStreamPacketDescription* _Nullable outPacketDescription, 209 UInt32* outStatus); 210extern OSStatus 211AudioCodecReset(AudioCodec inCodec); 212 213 214typedef OSStatus 215(*AudioCodecGetPropertyInfoProc)(void *self, AudioCodecPropertyID inPropertyID, UInt32 * _Nullable outSize, Boolean * _Nullable outWritable); 216 217typedef OSStatus 218(*AudioCodecGetPropertyProc)(void *self, AudioCodecPropertyID inPropertyID, UInt32 *ioPropertyDataSize, 219 void *outPropertyData); 220 221typedef OSStatus 222(*AudioCodecSetPropertyProc)(void *self, AudioCodecPropertyID inPropertyID, UInt32 inPropertyDataSize, 223 const void *inPropertyData); 224 225typedef OSStatus 226(*AudioCodecInitializeProc)(void *self, const AudioStreamBasicDescription * _Nullable inInputFormat, 227 const AudioStreamBasicDescription * _Nullable inOutputFormat, const void * _Nullable inMagicCookie, 228 UInt32 inMagicCookieByteSize); 229 230typedef OSStatus 231(*AudioCodecUninitializeProc)(void *self); 232 233typedef OSStatus 234(*AudioCodecAppendInputDataProc)(void *self, const void *inInputData, UInt32 *ioInputDataByteSize, UInt32 *ioNumberPackets, 235 const AudioStreamPacketDescription * _Nullable inPacketDescription); 236 237typedef OSStatus 238(*AudioCodecProduceOutputPacketsProc)(void *self, void *outOutputData, UInt32 *ioOutputDataByteSize, UInt32 *ioNumberPackets, 239 AudioStreamPacketDescription * _Nullable outPacketDescription, UInt32 *outStatus); 240 241typedef OSStatus 242(*AudioCodecResetProc)(void *self); 243 244typedef OSStatus 245(*AudioCodecAppendInputBufferListProc)(void *self, const AudioBufferList *ioBufferList, UInt32 *inNumberPackets, 246 const AudioStreamPacketDescription * _Nullable inPacketDescription, UInt32 *outBytesConsumed); 247 248typedef OSStatus 249(*AudioCodecProduceOutputBufferListProc)(void *self, AudioBufferList *ioBufferList, UInt32 *ioNumberPackets, 250 AudioStreamPacketDescription *_Nullable outPacketDescription, UInt32 *outStatus); 251enum 252{ 253 kAudioCodecPropertyMinimumDelayMode = 'mdel' 254}; 255enum 256{ 257 kAudioCodecPropertyNameCFString = 'lnam', 258 kAudioCodecPropertyManufacturerCFString = 'lmak', 259 kAudioCodecPropertyFormatCFString = 'lfor' 260}; 261enum 262{ 263 kAudioCodecPropertyRequiresPacketDescription = 'pakd', 264 kAudioCodecPropertyAvailableBitRates = 'brt#', 265 kAudioCodecExtendFrequencies = 'acef', 266 kAudioCodecUseRecommendedSampleRate = 'ursr', 267 kAudioCodecOutputPrecedence = 'oppr', 268 kAudioCodecBitRateFormat = kAudioCodecPropertyBitRateControlMode, 269 kAudioCodecDoesSampleRateConversion = kAudioCodecPropertyDoesSampleRateConversion, 270 kAudioCodecInputFormatsForOutputFormat = kAudioCodecPropertyInputFormatsForOutputFormat, 271 kAudioCodecOutputFormatsForInputFormat = kAudioCodecPropertyOutputFormatsForInputFormat, 272 kAudioCodecPropertyInputChannelLayout = kAudioCodecPropertyCurrentInputChannelLayout, 273 kAudioCodecPropertyOutputChannelLayout = kAudioCodecPropertyCurrentOutputChannelLayout, 274 kAudioCodecPropertyAvailableInputChannelLayouts = kAudioCodecPropertyAvailableInputChannelLayoutTags, 275 kAudioCodecPropertyAvailableOutputChannelLayouts = kAudioCodecPropertyAvailableOutputChannelLayoutTags, 276 kAudioCodecPropertyZeroFramesPadded = kAudioCodecPropertyPaddedZeros 277}; 278enum 279{ 280 kAudioCodecBitRateFormat_CBR = kAudioCodecBitRateControlMode_Constant, 281 kAudioCodecBitRateFormat_ABR = kAudioCodecBitRateControlMode_LongTermAverage, 282 kAudioCodecBitRateFormat_VBR = kAudioCodecBitRateControlMode_VariableConstrained 283}; 284enum 285{ 286 kAudioCodecOutputPrecedenceNone = 0, 287 kAudioCodecOutputPrecedenceBitRate = 1, 288 kAudioCodecOutputPrecedenceSampleRate = 2 289}; 290typedef struct AudioCodecMagicCookieInfo MagicCookieInfo __attribute__((deprecated)); 291enum 292{ 293 kHintBasic = 0, 294 kHintAdvanced = 1, 295 kHintHidden = 2 296}; 297 298#ifdef __cplusplus 299} 300#endif 301 302#endif