this repo has no description
at fixPythonPipStalling 176 lines 7.3 kB view raw
1#ifndef AUDIOCONVERTER_H 2#define AUDIOCONVERTER_H 3#include <CoreServices/MacTypes.h> 4#include <CoreAudio/CoreAudioTypes.h> 5 6#ifdef __cplusplus 7extern "C" { 8#endif 9 10typedef struct OpaqueAudioConverter * AudioConverterRef; 11 12typedef UInt32 AudioConverterPropertyID; 13enum 14{ 15 kAudioConverterPropertyMinimumInputBufferSize = 'mibs', 16 kAudioConverterPropertyMinimumOutputBufferSize = 'mobs', 17 kAudioConverterPropertyMaximumInputBufferSize = 'xibs', 18 kAudioConverterPropertyMaximumInputPacketSize = 'xips', 19 kAudioConverterPropertyMaximumOutputPacketSize = 'xops', 20 kAudioConverterPropertyCalculateInputBufferSize = 'cibs', 21 kAudioConverterPropertyCalculateOutputBufferSize = 'cobs', 22 kAudioConverterPropertyInputCodecParameters = 'icdp', 23 kAudioConverterPropertyOutputCodecParameters = 'ocdp', 24 kAudioConverterSampleRateConverterAlgorithm = 'srci', 25 kAudioConverterSampleRateConverterComplexity = 'srca', 26 kAudioConverterSampleRateConverterQuality = 'srcq', 27 kAudioConverterSampleRateConverterInitialPhase = 'srcp', 28 kAudioConverterCodecQuality = 'cdqu', 29 kAudioConverterPrimeMethod = 'prmm', 30 kAudioConverterPrimeInfo = 'prim', 31 kAudioConverterChannelMap = 'chmp', 32 kAudioConverterDecompressionMagicCookie = 'dmgc', 33 kAudioConverterCompressionMagicCookie = 'cmgc', 34 kAudioConverterEncodeBitRate = 'brat', 35 kAudioConverterEncodeAdjustableSampleRate = 'ajsr', 36 kAudioConverterInputChannelLayout = 'icl ', 37 kAudioConverterOutputChannelLayout = 'ocl ', 38 kAudioConverterApplicableEncodeBitRates = 'aebr', 39 kAudioConverterAvailableEncodeBitRates = 'vebr', 40 kAudioConverterApplicableEncodeSampleRates = 'aesr', 41 kAudioConverterAvailableEncodeSampleRates = 'vesr', 42 kAudioConverterAvailableEncodeChannelLayoutTags = 'aecl', 43 kAudioConverterCurrentOutputStreamDescription = 'acod', 44 kAudioConverterCurrentInputStreamDescription = 'acid', 45 kAudioConverterPropertySettings = 'acps', 46 kAudioConverterPropertyBitDepthHint = 'acbd', 47 kAudioConverterPropertyFormatList = 'flst' 48}; 49enum 50{ 51 kAudioConverterPropertyDithering = 'dith', 52 kAudioConverterPropertyDitherBitDepth = 'dbit' 53}; 54enum 55{ 56 kDitherAlgorithm_TPDF = 1, 57 kDitherAlgorithm_NoiseShaping = 2 58}; 59enum 60{ 61 kAudioConverterQuality_Max = 0x7F, 62 kAudioConverterQuality_High = 0x60, 63 kAudioConverterQuality_Medium = 0x40, 64 kAudioConverterQuality_Low = 0x20, 65 kAudioConverterQuality_Min = 0 66}; 67enum 68{ 69 kAudioConverterSampleRateConverterComplexity_Linear = 'line', 70 kAudioConverterSampleRateConverterComplexity_Normal = 'norm', 71 kAudioConverterSampleRateConverterComplexity_Mastering = 'bats', 72 kAudioConverterSampleRateConverterComplexity_MinimumPhase = 'minp' 73}; 74enum 75{ 76 kConverterPrimeMethod_Pre = 0, 77 kConverterPrimeMethod_Normal = 1, 78 kConverterPrimeMethod_None = 2 79}; 80struct AudioConverterPrimeInfo { 81 UInt32 leadingFrames; 82 UInt32 trailingFrames; 83}; 84typedef struct AudioConverterPrimeInfo AudioConverterPrimeInfo; 85 86 87 88 89 90enum 91{ 92 kAudioConverterErr_FormatNotSupported = 'fmt?', 93 kAudioConverterErr_OperationNotSupported = 0x6F703F3F, 94 kAudioConverterErr_PropertyNotSupported = 'prop', 95 kAudioConverterErr_InvalidInputSize = 'insz', 96 kAudioConverterErr_InvalidOutputSize = 'otsz', 97 98 kAudioConverterErr_UnspecifiedError = 'what', 99 kAudioConverterErr_BadPropertySizeError = '!siz', 100 kAudioConverterErr_RequiresPacketDescriptionsError = '!pkd', 101 kAudioConverterErr_InputSampleRateOutOfRange = '!isr', 102 kAudioConverterErr_OutputSampleRateOutOfRange = '!osr' 103}; 104extern OSStatus 105AudioConverterNew( const AudioStreamBasicDescription * inSourceFormat, 106 const AudioStreamBasicDescription * inDestinationFormat, 107 AudioConverterRef _Nullable * _Nonnull outAudioConverter); 108extern OSStatus 109AudioConverterNewSpecific( const AudioStreamBasicDescription * inSourceFormat, 110 const AudioStreamBasicDescription * inDestinationFormat, 111 UInt32 inNumberClassDescriptions, 112 const AudioClassDescription * inClassDescriptions, 113 AudioConverterRef _Nullable * _Nonnull outAudioConverter); 114extern OSStatus 115AudioConverterDispose( AudioConverterRef inAudioConverter); 116extern OSStatus 117AudioConverterReset( AudioConverterRef inAudioConverter); 118extern OSStatus 119AudioConverterGetPropertyInfo( AudioConverterRef inAudioConverter, 120 AudioConverterPropertyID inPropertyID, 121 UInt32 * _Nullable outSize, 122 Boolean * _Nullable outWritable); 123extern OSStatus 124AudioConverterGetProperty( AudioConverterRef inAudioConverter, 125 AudioConverterPropertyID inPropertyID, 126 UInt32 * ioPropertyDataSize, 127 void * outPropertyData); 128extern OSStatus 129AudioConverterSetProperty( AudioConverterRef inAudioConverter, 130 AudioConverterPropertyID inPropertyID, 131 UInt32 inPropertyDataSize, 132 const void * inPropertyData); 133typedef OSStatus 134(*AudioConverterInputDataProc)( AudioConverterRef inAudioConverter, 135 UInt32 * ioDataSize, 136 void * _Nonnull * _Nonnull outData, 137 void * _Nullable inUserData); 138extern OSStatus 139AudioConverterFillBuffer( AudioConverterRef inAudioConverter, 140 AudioConverterInputDataProc inInputDataProc, 141 void * _Nullable inInputDataProcUserData, 142 UInt32 * ioOutputDataSize, 143 void * outOutputData); 144extern OSStatus 145AudioConverterConvertBuffer( AudioConverterRef inAudioConverter, 146 UInt32 inInputDataSize, 147 const void * inInputData, 148 UInt32 * ioOutputDataSize, 149 void * outOutputData); 150typedef OSStatus 151(*AudioConverterComplexInputDataProc)( AudioConverterRef inAudioConverter, 152 UInt32 * ioNumberDataPackets, 153 AudioBufferList * ioData, 154 AudioStreamPacketDescription * _Nullable * _Nullable outDataPacketDescription, 155 void * _Nullable inUserData); 156extern OSStatus 157AudioConverterFillComplexBuffer( AudioConverterRef inAudioConverter, 158 AudioConverterComplexInputDataProc inInputDataProc, 159 void * _Nullable inInputDataProcUserData, 160 UInt32 * ioOutputDataPacketSize, 161 AudioBufferList * outOutputData, 162 AudioStreamPacketDescription * _Nullable outPacketDescription); 163extern OSStatus 164AudioConverterConvertComplexBuffer( AudioConverterRef inAudioConverter, 165 UInt32 inNumberPCMFrames, 166 const AudioBufferList * inInputData, 167 AudioBufferList * outOutputData); 168 169 170#ifdef __cplusplus 171} 172#endif 173 174 175#endif 176