objc2_audio_toolbox/generated/AudioCodec.rs
1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6#[cfg(feature = "objc2-core-audio-types")]
7use objc2_core_audio_types::*;
8
9use crate::*;
10
11/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiosettings_toplevelkey?language=objc)
12pub const kAudioSettings_TopLevelKey: &CStr =
13 unsafe { CStr::from_bytes_with_nul_unchecked(b"name\0") };
14/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiosettings_version?language=objc)
15pub const kAudioSettings_Version: &CStr =
16 unsafe { CStr::from_bytes_with_nul_unchecked(b"version\0") };
17/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiosettings_parameters?language=objc)
18pub const kAudioSettings_Parameters: &CStr =
19 unsafe { CStr::from_bytes_with_nul_unchecked(b"parameters\0") };
20/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiosettings_settingkey?language=objc)
21pub const kAudioSettings_SettingKey: &CStr =
22 unsafe { CStr::from_bytes_with_nul_unchecked(b"key\0") };
23/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiosettings_settingname?language=objc)
24pub const kAudioSettings_SettingName: &CStr =
25 unsafe { CStr::from_bytes_with_nul_unchecked(b"name\0") };
26/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiosettings_valuetype?language=objc)
27pub const kAudioSettings_ValueType: &CStr =
28 unsafe { CStr::from_bytes_with_nul_unchecked(b"value type\0") };
29/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiosettings_availablevalues?language=objc)
30pub const kAudioSettings_AvailableValues: &CStr =
31 unsafe { CStr::from_bytes_with_nul_unchecked(b"available values\0") };
32/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiosettings_limitedvalues?language=objc)
33pub const kAudioSettings_LimitedValues: &CStr =
34 unsafe { CStr::from_bytes_with_nul_unchecked(b"limited values\0") };
35/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiosettings_currentvalue?language=objc)
36pub const kAudioSettings_CurrentValue: &CStr =
37 unsafe { CStr::from_bytes_with_nul_unchecked(b"current value\0") };
38/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiosettings_summary?language=objc)
39pub const kAudioSettings_Summary: &CStr =
40 unsafe { CStr::from_bytes_with_nul_unchecked(b"summary\0") };
41/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiosettings_hint?language=objc)
42pub const kAudioSettings_Hint: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"hint\0") };
43/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiosettings_unit?language=objc)
44pub const kAudioSettings_Unit: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"unit\0") };
45/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/audiocodec?language=objc)
46#[cfg(feature = "AudioComponent")]
47pub type AudioCodec = AudioComponentInstance;
48
49/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/audiocodecpropertyid?language=objc)
50pub type AudioCodecPropertyID = u32;
51
52/// Structure holding the
53/// <em>
54/// magic cookie
55/// </em>
56/// information.
57///
58///
59/// Passed as input to AudioCodecGetProperty for kAudioCodecPropertyFormatList.
60/// The first four + sizeof(void *) bytes of the buffer pointed at by outPropertyData
61/// will contain this struct.
62///
63///
64/// The size of the magic cookie
65///
66/// Generic const pointer to magic cookie
67///
68/// See also [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/audiocodecmagiccookieinfo?language=objc)
69#[repr(C)]
70#[derive(Clone, Copy, Debug, PartialEq)]
71pub struct AudioCodecMagicCookieInfo {
72 pub mMagicCookieSize: u32,
73 pub mMagicCookie: *const c_void,
74}
75
76unsafe impl Encode for AudioCodecMagicCookieInfo {
77 const ENCODING: Encoding = Encoding::Struct(
78 "AudioCodecMagicCookieInfo",
79 &[<u32>::ENCODING, <*const c_void>::ENCODING],
80 );
81}
82
83unsafe impl RefEncode for AudioCodecMagicCookieInfo {
84 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
85}
86
87/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiodecodercomponenttype?language=objc)
88pub const kAudioDecoderComponentType: u32 = 0x61646563;
89/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudioencodercomponenttype?language=objc)
90pub const kAudioEncoderComponentType: u32 = 0x61656e63;
91/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiounitycodeccomponenttype?language=objc)
92pub const kAudioUnityCodecComponentType: u32 = 0x61636463;
93
94/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertysupportedinputformats?language=objc)
95pub const kAudioCodecPropertySupportedInputFormats: AudioCodecPropertyID = 0x69666d23;
96/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertysupportedoutputformats?language=objc)
97pub const kAudioCodecPropertySupportedOutputFormats: AudioCodecPropertyID = 0x6f666d23;
98/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyavailableinputsamplerates?language=objc)
99pub const kAudioCodecPropertyAvailableInputSampleRates: AudioCodecPropertyID = 0x61697372;
100/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyavailableoutputsamplerates?language=objc)
101pub const kAudioCodecPropertyAvailableOutputSampleRates: AudioCodecPropertyID = 0x616f7372;
102/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyavailablebitraterange?language=objc)
103pub const kAudioCodecPropertyAvailableBitRateRange: AudioCodecPropertyID = 0x61627274;
104/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyminimumnumberinputpackets?language=objc)
105pub const kAudioCodecPropertyMinimumNumberInputPackets: AudioCodecPropertyID = 0x6d6e6970;
106/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyminimumnumberoutputpackets?language=objc)
107pub const kAudioCodecPropertyMinimumNumberOutputPackets: AudioCodecPropertyID = 0x6d6e6f70;
108/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyavailablenumberchannels?language=objc)
109pub const kAudioCodecPropertyAvailableNumberChannels: AudioCodecPropertyID = 0x636d6e63;
110/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertydoessamplerateconversion?language=objc)
111pub const kAudioCodecPropertyDoesSampleRateConversion: AudioCodecPropertyID = 0x6c6d7263;
112/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyavailableinputchannellayouttags?language=objc)
113pub const kAudioCodecPropertyAvailableInputChannelLayoutTags: AudioCodecPropertyID = 0x6169636c;
114/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyavailableoutputchannellayouttags?language=objc)
115pub const kAudioCodecPropertyAvailableOutputChannelLayoutTags: AudioCodecPropertyID = 0x616f636c;
116/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyinputformatsforoutputformat?language=objc)
117pub const kAudioCodecPropertyInputFormatsForOutputFormat: AudioCodecPropertyID = 0x6966346f;
118/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyoutputformatsforinputformat?language=objc)
119pub const kAudioCodecPropertyOutputFormatsForInputFormat: AudioCodecPropertyID = 0x6f663469;
120/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyformatinfo?language=objc)
121pub const kAudioCodecPropertyFormatInfo: AudioCodecPropertyID = 0x61636669;
122
123/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyinputbuffersize?language=objc)
124pub const kAudioCodecPropertyInputBufferSize: AudioCodecPropertyID = 0x74627566;
125/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertypacketframesize?language=objc)
126pub const kAudioCodecPropertyPacketFrameSize: AudioCodecPropertyID = 0x70616b66;
127/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyhasvariablepacketbytesizes?language=objc)
128pub const kAudioCodecPropertyHasVariablePacketByteSizes: AudioCodecPropertyID = 0x76706b3f;
129/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyemploysdependentpackets?language=objc)
130pub const kAudioCodecPropertyEmploysDependentPackets: AudioCodecPropertyID = 0x64706b3f;
131/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertymaximumpacketbytesize?language=objc)
132pub const kAudioCodecPropertyMaximumPacketByteSize: AudioCodecPropertyID = 0x70616b62;
133/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertypacketsizelimitforvbr?language=objc)
134pub const kAudioCodecPropertyPacketSizeLimitForVBR: AudioCodecPropertyID = 0x70616b6c;
135/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertycurrentinputformat?language=objc)
136pub const kAudioCodecPropertyCurrentInputFormat: AudioCodecPropertyID = 0x69666d74;
137/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertycurrentoutputformat?language=objc)
138pub const kAudioCodecPropertyCurrentOutputFormat: AudioCodecPropertyID = 0x6f666d74;
139/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertymagiccookie?language=objc)
140pub const kAudioCodecPropertyMagicCookie: AudioCodecPropertyID = 0x6b756b69;
141/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyusedinputbuffersize?language=objc)
142pub const kAudioCodecPropertyUsedInputBufferSize: AudioCodecPropertyID = 0x75627566;
143/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyisinitialized?language=objc)
144pub const kAudioCodecPropertyIsInitialized: AudioCodecPropertyID = 0x696e6974;
145/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertycurrenttargetbitrate?language=objc)
146pub const kAudioCodecPropertyCurrentTargetBitRate: AudioCodecPropertyID = 0x62726174;
147/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertycurrentinputsamplerate?language=objc)
148pub const kAudioCodecPropertyCurrentInputSampleRate: AudioCodecPropertyID = 0x63697372;
149/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertycurrentoutputsamplerate?language=objc)
150pub const kAudioCodecPropertyCurrentOutputSampleRate: AudioCodecPropertyID = 0x636f7372;
151/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyqualitysetting?language=objc)
152pub const kAudioCodecPropertyQualitySetting: AudioCodecPropertyID = 0x73726371;
153/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyapplicablebitraterange?language=objc)
154pub const kAudioCodecPropertyApplicableBitRateRange: AudioCodecPropertyID = 0x62727461;
155/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyrecommendedbitraterange?language=objc)
156pub const kAudioCodecPropertyRecommendedBitRateRange: AudioCodecPropertyID = 0x62727472;
157/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyapplicableinputsamplerates?language=objc)
158pub const kAudioCodecPropertyApplicableInputSampleRates: AudioCodecPropertyID = 0x69737261;
159/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyapplicableoutputsamplerates?language=objc)
160pub const kAudioCodecPropertyApplicableOutputSampleRates: AudioCodecPropertyID = 0x6f737261;
161/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertypaddedzeros?language=objc)
162pub const kAudioCodecPropertyPaddedZeros: AudioCodecPropertyID = 0x70616430;
163/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyprimemethod?language=objc)
164pub const kAudioCodecPropertyPrimeMethod: AudioCodecPropertyID = 0x70726d6d;
165/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyprimeinfo?language=objc)
166pub const kAudioCodecPropertyPrimeInfo: AudioCodecPropertyID = 0x7072696d;
167/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertycurrentinputchannellayout?language=objc)
168pub const kAudioCodecPropertyCurrentInputChannelLayout: AudioCodecPropertyID = 0x69636c20;
169/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertycurrentoutputchannellayout?language=objc)
170pub const kAudioCodecPropertyCurrentOutputChannelLayout: AudioCodecPropertyID = 0x6f636c20;
171/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertysettings?language=objc)
172pub const kAudioCodecPropertySettings: AudioCodecPropertyID = 0x61637320;
173/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyformatlist?language=objc)
174pub const kAudioCodecPropertyFormatList: AudioCodecPropertyID = 0x6163666c;
175/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertybitratecontrolmode?language=objc)
176pub const kAudioCodecPropertyBitRateControlMode: AudioCodecPropertyID = 0x61636266;
177/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertysoundqualityforvbr?language=objc)
178pub const kAudioCodecPropertySoundQualityForVBR: AudioCodecPropertyID = 0x76627271;
179/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertybitrateforvbr?language=objc)
180pub const kAudioCodecPropertyBitRateForVBR: AudioCodecPropertyID = 0x76627262;
181/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertydelaymode?language=objc)
182pub const kAudioCodecPropertyDelayMode: AudioCodecPropertyID = 0x646d6f64;
183/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyadjustlocalquality?language=objc)
184pub const kAudioCodecPropertyAdjustLocalQuality: AudioCodecPropertyID = 0x5e71616c;
185/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertydynamicrangecontrolmode?language=objc)
186pub const kAudioCodecPropertyDynamicRangeControlMode: AudioCodecPropertyID = 0x6d647263;
187/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyadjustcompressionprofile?language=objc)
188pub const kAudioCodecPropertyAdjustCompressionProfile: AudioCodecPropertyID = 0x5e70726f;
189/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyprogramtargetlevelconstant?language=objc)
190pub const kAudioCodecPropertyProgramTargetLevelConstant: AudioCodecPropertyID = 0x70746c63;
191/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyadjusttargetlevelconstant?language=objc)
192pub const kAudioCodecPropertyAdjustTargetLevelConstant: AudioCodecPropertyID = 0x5e746c63;
193/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyprogramtargetlevel?language=objc)
194pub const kAudioCodecPropertyProgramTargetLevel: AudioCodecPropertyID = 0x7070746c;
195/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyadjusttargetlevel?language=objc)
196pub const kAudioCodecPropertyAdjustTargetLevel: AudioCodecPropertyID = 0x5e70746c;
197/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertydynamicrangecontrolconfiguration?language=objc)
198pub const kAudioCodecPropertyDynamicRangeControlConfiguration: AudioCodecPropertyID = 0x63647263;
199/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertycontentsource?language=objc)
200pub const kAudioCodecPropertyContentSource: AudioCodecPropertyID = 0x63737263;
201/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyaspfrequency?language=objc)
202pub const kAudioCodecPropertyASPFrequency: AudioCodecPropertyID = 0x61737066;
203
204/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecquality_max?language=objc)
205pub const kAudioCodecQuality_Max: u32 = 0x7F;
206/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecquality_high?language=objc)
207pub const kAudioCodecQuality_High: u32 = 0x60;
208/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecquality_medium?language=objc)
209pub const kAudioCodecQuality_Medium: u32 = 0x40;
210/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecquality_low?language=objc)
211pub const kAudioCodecQuality_Low: u32 = 0x20;
212/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecquality_min?language=objc)
213pub const kAudioCodecQuality_Min: u32 = 0;
214
215/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecprimemethod_pre?language=objc)
216pub const kAudioCodecPrimeMethod_Pre: u32 = 0;
217/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecprimemethod_normal?language=objc)
218pub const kAudioCodecPrimeMethod_Normal: u32 = 1;
219/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecprimemethod_none?language=objc)
220pub const kAudioCodecPrimeMethod_None: u32 = 2;
221
222/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecbitratecontrolmode_constant?language=objc)
223pub const kAudioCodecBitRateControlMode_Constant: u32 = 0;
224/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecbitratecontrolmode_longtermaverage?language=objc)
225pub const kAudioCodecBitRateControlMode_LongTermAverage: u32 = 1;
226/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecbitratecontrolmode_variableconstrained?language=objc)
227pub const kAudioCodecBitRateControlMode_VariableConstrained: u32 = 2;
228/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecbitratecontrolmode_variable?language=objc)
229pub const kAudioCodecBitRateControlMode_Variable: u32 = 3;
230
231/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecdelaymode_compatibility?language=objc)
232pub const kAudioCodecDelayMode_Compatibility: u32 = 0;
233/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecdelaymode_minimum?language=objc)
234pub const kAudioCodecDelayMode_Minimum: u32 = 1;
235/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecdelaymode_optimal?language=objc)
236pub const kAudioCodecDelayMode_Optimal: u32 = 2;
237
238/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kprogramtargetlevel_none?language=objc)
239pub const kProgramTargetLevel_None: u32 = 0;
240/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kprogramtargetlevel_minus31db?language=objc)
241pub const kProgramTargetLevel_Minus31dB: u32 = 1;
242/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kprogramtargetlevel_minus23db?language=objc)
243pub const kProgramTargetLevel_Minus23dB: u32 = 2;
244/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kprogramtargetlevel_minus20db?language=objc)
245pub const kProgramTargetLevel_Minus20dB: u32 = 3;
246
247/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kdynamicrangecontrolmode_none?language=objc)
248pub const kDynamicRangeControlMode_None: u32 = 0;
249/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kdynamicrangecontrolmode_light?language=objc)
250pub const kDynamicRangeControlMode_Light: u32 = 1;
251/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kdynamicrangecontrolmode_heavy?language=objc)
252pub const kDynamicRangeControlMode_Heavy: u32 = 2;
253
254/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kdynamicrangecompressionprofile_none?language=objc)
255pub const kDynamicRangeCompressionProfile_None: u32 = 0;
256/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kdynamicrangecompressionprofile_latenight?language=objc)
257pub const kDynamicRangeCompressionProfile_LateNight: u32 = 1;
258/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kdynamicrangecompressionprofile_noisyenvironment?language=objc)
259pub const kDynamicRangeCompressionProfile_NoisyEnvironment: u32 = 2;
260/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kdynamicrangecompressionprofile_limitedplaybackrange?language=objc)
261pub const kDynamicRangeCompressionProfile_LimitedPlaybackRange: u32 = 3;
262/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kdynamicrangecompressionprofile_generalcompression?language=objc)
263pub const kDynamicRangeCompressionProfile_GeneralCompression: u32 = 6;
264
265/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecdynamicrangecontrolconfiguration_none?language=objc)
266pub const kAudioCodecDynamicRangeControlConfiguration_None: u32 = 0;
267/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecdynamicrangecontrolconfiguration_music?language=objc)
268pub const kAudioCodecDynamicRangeControlConfiguration_Music: u32 = 1;
269/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecdynamicrangecontrolconfiguration_speech?language=objc)
270pub const kAudioCodecDynamicRangeControlConfiguration_Speech: u32 = 2;
271/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecdynamicrangecontrolconfiguration_movie?language=objc)
272pub const kAudioCodecDynamicRangeControlConfiguration_Movie: u32 = 3;
273/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecdynamicrangecontrolconfiguration_capture?language=objc)
274pub const kAudioCodecDynamicRangeControlConfiguration_Capture: u32 = 4;
275
276/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodeccontentsource_unspecified?language=objc)
277pub const kAudioCodecContentSource_Unspecified: i32 = -1;
278/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodeccontentsource_reserved?language=objc)
279pub const kAudioCodecContentSource_Reserved: i32 = 0;
280/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodeccontentsource_applecapture_traditional?language=objc)
281pub const kAudioCodecContentSource_AppleCapture_Traditional: i32 = 1;
282/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodeccontentsource_applecapture_spatial?language=objc)
283pub const kAudioCodecContentSource_AppleCapture_Spatial: i32 = 2;
284/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodeccontentsource_applecapture_spatial_enhanced?language=objc)
285pub const kAudioCodecContentSource_AppleCapture_Spatial_Enhanced: i32 = 3;
286/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodeccontentsource_applemusic_traditional?language=objc)
287pub const kAudioCodecContentSource_AppleMusic_Traditional: i32 = 4;
288/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodeccontentsource_applemusic_spatial?language=objc)
289pub const kAudioCodecContentSource_AppleMusic_Spatial: i32 = 5;
290/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodeccontentsource_appleav_traditional_offline?language=objc)
291pub const kAudioCodecContentSource_AppleAV_Traditional_Offline: i32 = 6;
292/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodeccontentsource_appleav_spatial_offline?language=objc)
293pub const kAudioCodecContentSource_AppleAV_Spatial_Offline: i32 = 7;
294/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodeccontentsource_appleav_traditional_live?language=objc)
295pub const kAudioCodecContentSource_AppleAV_Traditional_Live: i32 = 8;
296/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodeccontentsource_appleav_spatial_live?language=objc)
297pub const kAudioCodecContentSource_AppleAV_Spatial_Live: i32 = 9;
298/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodeccontentsource_applepassthrough?language=objc)
299pub const kAudioCodecContentSource_ApplePassthrough: i32 = 10;
300/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodeccontentsource_capture_traditional?language=objc)
301pub const kAudioCodecContentSource_Capture_Traditional: i32 = 33;
302/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodeccontentsource_capture_spatial?language=objc)
303pub const kAudioCodecContentSource_Capture_Spatial: i32 = 34;
304/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodeccontentsource_capture_spatial_enhanced?language=objc)
305pub const kAudioCodecContentSource_Capture_Spatial_Enhanced: i32 = 35;
306/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodeccontentsource_music_traditional?language=objc)
307pub const kAudioCodecContentSource_Music_Traditional: i32 = 36;
308/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodeccontentsource_music_spatial?language=objc)
309pub const kAudioCodecContentSource_Music_Spatial: i32 = 37;
310/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodeccontentsource_av_traditional_offline?language=objc)
311pub const kAudioCodecContentSource_AV_Traditional_Offline: i32 = 38;
312/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodeccontentsource_av_spatial_offline?language=objc)
313pub const kAudioCodecContentSource_AV_Spatial_Offline: i32 = 39;
314/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodeccontentsource_av_traditional_live?language=objc)
315pub const kAudioCodecContentSource_AV_Traditional_Live: i32 = 40;
316/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodeccontentsource_av_spatial_live?language=objc)
317pub const kAudioCodecContentSource_AV_Spatial_Live: i32 = 41;
318/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodeccontentsource_passthrough?language=objc)
319pub const kAudioCodecContentSource_Passthrough: i32 = 42;
320
321/// Specifies the number of leading and trailing empty frames
322/// which have to be inserted.
323///
324///
325/// An unsigned integer specifying the number of leading empty frames
326///
327/// An unsigned integer specifying the number of trailing empty frames
328///
329/// See also [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/audiocodecprimeinfo?language=objc)
330#[repr(C)]
331#[derive(Clone, Copy, Debug, PartialEq)]
332pub struct AudioCodecPrimeInfo {
333 pub leadingFrames: u32,
334 pub trailingFrames: u32,
335}
336
337unsafe impl Encode for AudioCodecPrimeInfo {
338 const ENCODING: Encoding =
339 Encoding::Struct("AudioCodecPrimeInfo", &[<u32>::ENCODING, <u32>::ENCODING]);
340}
341
342unsafe impl RefEncode for AudioCodecPrimeInfo {
343 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
344}
345
346/// Constants to be used with kAudioSettings_Hint
347/// in the kAudioCodecPropertySettings property dictionary.
348/// Indicates any special characteristics of each parameter within the dictionary,
349///
350///
351/// If set, then the parameter is an expert parameter.
352///
353/// If set, then the parameter should not be displayed.
354///
355/// If set, then changing this parameter may affect the values of other parameters.
356/// If not set, then this parameter can be set without affecting the values of other parameters.
357///
358/// If set, then this is only a user interface element and not reflected in the codec's bit stream.
359///
360/// See also [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/audiosettingsflags?language=objc)
361// NS_OPTIONS
362#[repr(transparent)]
363#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
364pub struct AudioSettingsFlags(pub u32);
365bitflags::bitflags! {
366 impl AudioSettingsFlags: u32 {
367 #[doc(alias = "kAudioSettingsFlags_ExpertParameter")]
368 const ExpertParameter = 1<<0;
369 #[doc(alias = "kAudioSettingsFlags_InvisibleParameter")]
370 const InvisibleParameter = 1<<1;
371 #[doc(alias = "kAudioSettingsFlags_MetaParameter")]
372 const MetaParameter = 1<<2;
373 #[doc(alias = "kAudioSettingsFlags_UserInterfaceParameter")]
374 const UserInterfaceParameter = 1<<3;
375 }
376}
377
378unsafe impl Encode for AudioSettingsFlags {
379 const ENCODING: Encoding = u32::ENCODING;
380}
381
382unsafe impl RefEncode for AudioSettingsFlags {
383 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
384}
385
386/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecproduceoutputpacketfailure?language=objc)
387pub const kAudioCodecProduceOutputPacketFailure: u32 = 1;
388/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecproduceoutputpacketsuccess?language=objc)
389pub const kAudioCodecProduceOutputPacketSuccess: u32 = 2;
390/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecproduceoutputpacketsuccesshasmore?language=objc)
391pub const kAudioCodecProduceOutputPacketSuccessHasMore: u32 = 3;
392/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecproduceoutputpacketneedsmoreinputdata?language=objc)
393pub const kAudioCodecProduceOutputPacketNeedsMoreInputData: u32 = 4;
394/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecproduceoutputpacketateof?language=objc)
395pub const kAudioCodecProduceOutputPacketAtEOF: u32 = 5;
396/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecproduceoutputpacketsuccessconcealed?language=objc)
397pub const kAudioCodecProduceOutputPacketSuccessConcealed: u32 = 6;
398
399/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecgetpropertyinfoselect?language=objc)
400pub const kAudioCodecGetPropertyInfoSelect: u32 = 0x0001;
401/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecgetpropertyselect?language=objc)
402pub const kAudioCodecGetPropertySelect: u32 = 0x0002;
403/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecsetpropertyselect?language=objc)
404pub const kAudioCodecSetPropertySelect: u32 = 0x0003;
405/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecinitializeselect?language=objc)
406pub const kAudioCodecInitializeSelect: u32 = 0x0004;
407/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecuninitializeselect?language=objc)
408pub const kAudioCodecUninitializeSelect: u32 = 0x0005;
409/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecappendinputdataselect?language=objc)
410pub const kAudioCodecAppendInputDataSelect: u32 = 0x0006;
411/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecproduceoutputdataselect?language=objc)
412pub const kAudioCodecProduceOutputDataSelect: u32 = 0x0007;
413/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecresetselect?language=objc)
414pub const kAudioCodecResetSelect: u32 = 0x0008;
415/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecappendinputbufferlistselect?language=objc)
416pub const kAudioCodecAppendInputBufferListSelect: u32 = 0x0009;
417/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecproduceoutputbufferlistselect?language=objc)
418pub const kAudioCodecProduceOutputBufferListSelect: u32 = 0x000A;
419
420/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecnoerror?language=objc)
421pub const kAudioCodecNoError: OSStatus = 0;
422/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecunspecifiederror?language=objc)
423pub const kAudioCodecUnspecifiedError: OSStatus = 0x77686174;
424/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecunknownpropertyerror?language=objc)
425pub const kAudioCodecUnknownPropertyError: OSStatus = 0x77686f3f;
426/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecbadpropertysizeerror?language=objc)
427pub const kAudioCodecBadPropertySizeError: OSStatus = 0x2173697a;
428/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecillegaloperationerror?language=objc)
429pub const kAudioCodecIllegalOperationError: OSStatus = 0x6e6f7065;
430/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecunsupportedformaterror?language=objc)
431pub const kAudioCodecUnsupportedFormatError: OSStatus = 0x21646174;
432/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecstateerror?language=objc)
433pub const kAudioCodecStateError: OSStatus = 0x21737474;
434/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecnotenoughbufferspaceerror?language=objc)
435pub const kAudioCodecNotEnoughBufferSpaceError: OSStatus = 0x21627566;
436/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecbaddataerror?language=objc)
437pub const kAudioCodecBadDataError: OSStatus = 0x62616461;
438
439extern "C-unwind" {
440 /// Retrieve information about the given property. The outSize argument
441 /// will return the size in bytes of the current value of the property.
442 /// The outWritable argument will return whether or not the property
443 /// in question can be changed.
444 ///
445 ///
446 /// Parameter `inCodec`: An AudioCodec instance
447 ///
448 /// Parameter `inPropertyID`: Property ID whose value should be read
449 ///
450 /// Parameter `outSize`: Size in bytes of the property
451 ///
452 /// Parameter `outWritable`: Flag indicating wether the underlying property can be modified or not
453 ///
454 ///
455 /// Returns: The OSStatus value
456 ///
457 /// # Safety
458 ///
459 /// - `in_codec` must be a valid pointer.
460 /// - `out_size` must be a valid pointer or null.
461 /// - `out_writable` must be a valid pointer or null.
462 #[cfg(feature = "AudioComponent")]
463 pub fn AudioCodecGetPropertyInfo(
464 in_codec: AudioCodec,
465 in_property_id: AudioCodecPropertyID,
466 out_size: *mut u32,
467 out_writable: *mut Boolean,
468 ) -> OSStatus;
469}
470
471extern "C-unwind" {
472 /// Retrieve the indicated property data. On input, ioDataSize has the size
473 /// of the data pointed to by outPropertyData. On output, ioDataSize will contain
474 /// the amount written.
475 ///
476 ///
477 /// Parameter `inCodec`: An AudioCodec instance
478 ///
479 /// Parameter `inPropertyID`: Property ID whose value should be read
480 ///
481 /// Parameter `ioPropertyDataSize`: Size in bytes of the property data
482 ///
483 /// Parameter `outPropertyData`: Pointer to the property data buffer
484 ///
485 ///
486 /// Returns: The OSStatus value
487 ///
488 /// # Safety
489 ///
490 /// - `in_codec` must be a valid pointer.
491 /// - `io_property_data_size` must be a valid pointer.
492 /// - `out_property_data` must be a valid pointer.
493 #[cfg(feature = "AudioComponent")]
494 pub fn AudioCodecGetProperty(
495 in_codec: AudioCodec,
496 in_property_id: AudioCodecPropertyID,
497 io_property_data_size: NonNull<u32>,
498 out_property_data: NonNull<c_void>,
499 ) -> OSStatus;
500}
501
502extern "C-unwind" {
503 /// Set the indicated property data.
504 ///
505 ///
506 /// Parameter `inCodec`: An AudioCodec instance
507 ///
508 /// Parameter `inPropertyID`: Property ID whose value should be changed
509 ///
510 /// Parameter `inPropertyDataSize`: Size in bytes of the property data
511 ///
512 /// Parameter `inPropertyData`: Pointer to the property data buffer
513 ///
514 ///
515 /// Returns: The OSStatus value
516 ///
517 /// # Safety
518 ///
519 /// - `in_codec` must be a valid pointer.
520 /// - `in_property_data` must be a valid pointer.
521 #[cfg(feature = "AudioComponent")]
522 pub fn AudioCodecSetProperty(
523 in_codec: AudioCodec,
524 in_property_id: AudioCodecPropertyID,
525 in_property_data_size: u32,
526 in_property_data: NonNull<c_void>,
527 ) -> OSStatus;
528}
529
530extern "C-unwind" {
531 /// This call will allocate any buffers needed and otherwise set the codec
532 /// up to perform the indicated translation. If an argument is NULL, any
533 /// previously set properties will be used for preparing the codec for work.
534 /// Note that this routine will also validate the format information as useable.
535 ///
536 ///
537 /// Parameter `inCodec`: An AudioCodec instance
538 ///
539 /// Parameter `inInputFormat`: Pointer to an input format structure
540 ///
541 /// Parameter `inOutputFormat`: Pointer to an output format structure
542 ///
543 /// Parameter `inMagicCookie`: Pointer to the magic cookie
544 ///
545 /// Parameter `inMagicCookieByteSize`: Size in bytes of the magic cookie
546 ///
547 ///
548 /// Returns: The OSStatus value
549 ///
550 /// # Safety
551 ///
552 /// - `in_codec` must be a valid pointer.
553 /// - `in_input_format` must be a valid pointer or null.
554 /// - `in_output_format` must be a valid pointer or null.
555 /// - `in_magic_cookie` must be a valid pointer or null.
556 #[cfg(all(feature = "AudioComponent", feature = "objc2-core-audio-types"))]
557 pub fn AudioCodecInitialize(
558 in_codec: AudioCodec,
559 in_input_format: *const AudioStreamBasicDescription,
560 in_output_format: *const AudioStreamBasicDescription,
561 in_magic_cookie: *const c_void,
562 in_magic_cookie_byte_size: u32,
563 ) -> OSStatus;
564}
565
566extern "C-unwind" {
567 /// This call will move the codec from the initialized state back to the
568 /// uninitialized state. The codec will release any resources it allocated
569 /// or claimed in AudioCodecInitialize.
570 ///
571 ///
572 /// Parameter `inCodec`: An AudioCodec instance
573 ///
574 ///
575 /// Returns: The OSStatus value
576 ///
577 /// # Safety
578 ///
579 /// `in_codec` must be a valid pointer.
580 #[cfg(feature = "AudioComponent")]
581 pub fn AudioCodecUninitialize(in_codec: AudioCodec) -> OSStatus;
582}
583
584extern "C-unwind" {
585 /// Append as much of the given data in inInputData to the codec's input buffer as possible
586 /// and return in ioInputDataByteSize the amount of data used.
587 ///
588 /// The inPacketDescription argument is an array of AudioStreamPacketDescription
589 /// structs that describes the packet layout. The number of elements in this array
590 /// is indicated on input by ioNumberPackets. On return, this number indicates the number
591 /// of packets consumed.
592 ///
593 /// Note also in this case that it is an error to supply less than a full packet
594 /// of data at a time.
595 ///
596 ///
597 /// Parameter `inCodec`: An AudioCodec instance
598 ///
599 /// Parameter `inInputData`: A const pointer to the input data
600 ///
601 /// Parameter `ioInputDataByteSize`: The size in bytes of the input data in inInputData on input,
602 /// the number of bytes consumed on output
603 ///
604 /// Parameter `ioNumberPackets`: The number of packets
605 ///
606 /// Parameter `inPacketDescription`: The packet description pointer
607 ///
608 ///
609 /// Returns: The OSStatus value
610 ///
611 /// # Safety
612 ///
613 /// - `in_codec` must be a valid pointer.
614 /// - `in_input_data` must be a valid pointer.
615 /// - `io_input_data_byte_size` must be a valid pointer.
616 /// - `io_number_packets` must be a valid pointer.
617 /// - `in_packet_description` must be a valid pointer or null.
618 #[cfg(all(feature = "AudioComponent", feature = "objc2-core-audio-types"))]
619 pub fn AudioCodecAppendInputData(
620 in_codec: AudioCodec,
621 in_input_data: NonNull<c_void>,
622 io_input_data_byte_size: NonNull<u32>,
623 io_number_packets: NonNull<u32>,
624 in_packet_description: *const AudioStreamPacketDescription,
625 ) -> OSStatus;
626}
627
628extern "C-unwind" {
629 /// Produce as many output packets as requested and the amount of input data
630 /// allows for. The outStatus argument returns information about the codec's
631 /// status to allow for proper data management. See the constants above for
632 /// the possible values that can be returned.
633 ///
634 /// The outPacketDescription argument is an array of AudioStreamPacketDescription
635 /// structs that describes the packet layout returned in outOutputData. This
636 /// argument is optional. Pass NULL if this information is not to be returned.
637 /// Note that this information is only provided when the output format isn't
638 /// linear PCM.
639 ///
640 /// Note that decoders will always only produce linear PCM data in multiples of
641 /// the number frames in a packet of the encoded format (as returned by
642 /// kAudioCodecPropertyPacketFrameSize). Encoders will consume this many frames
643 /// of linear PCM data to produce a packet of their format.
644 ///
645 ///
646 /// Parameter `inCodec`: The AudioCodec instance
647 ///
648 /// Parameter `outOutputData`: Pointer to the output data buffer
649 ///
650 /// Parameter `ioOutputDataByteSize`: A pointer to the size
651 ///
652 /// Parameter `ioNumberPackets`: number of input/output packets
653 ///
654 /// Returns: The OSStatus value
655 ///
656 /// # Safety
657 ///
658 /// - `in_codec` must be a valid pointer.
659 /// - `out_output_data` must be a valid pointer.
660 /// - `io_output_data_byte_size` must be a valid pointer.
661 /// - `io_number_packets` must be a valid pointer.
662 /// - `out_packet_description` must be a valid pointer or null.
663 /// - `out_status` must be a valid pointer.
664 #[cfg(all(feature = "AudioComponent", feature = "objc2-core-audio-types"))]
665 pub fn AudioCodecProduceOutputPackets(
666 in_codec: AudioCodec,
667 out_output_data: NonNull<c_void>,
668 io_output_data_byte_size: NonNull<u32>,
669 io_number_packets: NonNull<u32>,
670 out_packet_description: *mut AudioStreamPacketDescription,
671 out_status: NonNull<u32>,
672 ) -> OSStatus;
673}
674
675extern "C-unwind" {
676 /// # Safety
677 ///
678 /// - `in_codec` must be a valid pointer.
679 /// - `in_buffer_list` must be a valid pointer.
680 /// - `io_number_packets` must be a valid pointer.
681 /// - `in_packet_description` must be a valid pointer or null.
682 /// - `out_bytes_consumed` must be a valid pointer.
683 #[cfg(all(feature = "AudioComponent", feature = "objc2-core-audio-types"))]
684 pub fn AudioCodecAppendInputBufferList(
685 in_codec: AudioCodec,
686 in_buffer_list: NonNull<AudioBufferList>,
687 io_number_packets: NonNull<u32>,
688 in_packet_description: *const AudioStreamPacketDescription,
689 out_bytes_consumed: NonNull<u32>,
690 ) -> OSStatus;
691}
692
693extern "C-unwind" {
694 /// # Safety
695 ///
696 /// - `in_codec` must be a valid pointer.
697 /// - `io_buffer_list` must be a valid pointer.
698 /// - `io_number_packets` must be a valid pointer.
699 /// - `out_packet_description` must be a valid pointer or null.
700 /// - `out_status` must be a valid pointer.
701 #[cfg(all(feature = "AudioComponent", feature = "objc2-core-audio-types"))]
702 pub fn AudioCodecProduceOutputBufferList(
703 in_codec: AudioCodec,
704 io_buffer_list: NonNull<AudioBufferList>,
705 io_number_packets: NonNull<u32>,
706 out_packet_description: *mut AudioStreamPacketDescription,
707 out_status: NonNull<u32>,
708 ) -> OSStatus;
709}
710
711extern "C-unwind" {
712 /// Flushes all the data in the codec and clears the input buffer. Note that
713 /// the formats, and magic cookie will be retained so they won't need to be
714 /// set up again to decode the same data.
715 ///
716 ///
717 /// Parameter `inCodec`: The audio codec descriptor
718 ///
719 ///
720 /// Returns: the OSStatus value
721 ///
722 /// # Safety
723 ///
724 /// `in_codec` must be a valid pointer.
725 #[cfg(feature = "AudioComponent")]
726 pub fn AudioCodecReset(in_codec: AudioCodec) -> OSStatus;
727}
728
729/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/audiocodecgetpropertyinfoproc?language=objc)
730pub type AudioCodecGetPropertyInfoProc = Option<
731 unsafe extern "C-unwind" fn(
732 NonNull<c_void>,
733 AudioCodecPropertyID,
734 *mut u32,
735 *mut Boolean,
736 ) -> OSStatus,
737>;
738
739/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/audiocodecgetpropertyproc?language=objc)
740pub type AudioCodecGetPropertyProc = Option<
741 unsafe extern "C-unwind" fn(
742 NonNull<c_void>,
743 AudioCodecPropertyID,
744 NonNull<u32>,
745 NonNull<c_void>,
746 ) -> OSStatus,
747>;
748
749/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/audiocodecsetpropertyproc?language=objc)
750pub type AudioCodecSetPropertyProc = Option<
751 unsafe extern "C-unwind" fn(
752 NonNull<c_void>,
753 AudioCodecPropertyID,
754 u32,
755 NonNull<c_void>,
756 ) -> OSStatus,
757>;
758
759/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/audiocodecinitializeproc?language=objc)
760#[cfg(feature = "objc2-core-audio-types")]
761pub type AudioCodecInitializeProc = Option<
762 unsafe extern "C-unwind" fn(
763 NonNull<c_void>,
764 *const AudioStreamBasicDescription,
765 *const AudioStreamBasicDescription,
766 *const c_void,
767 u32,
768 ) -> OSStatus,
769>;
770
771/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/audiocodecuninitializeproc?language=objc)
772pub type AudioCodecUninitializeProc =
773 Option<unsafe extern "C-unwind" fn(NonNull<c_void>) -> OSStatus>;
774
775/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/audiocodecappendinputdataproc?language=objc)
776#[cfg(feature = "objc2-core-audio-types")]
777pub type AudioCodecAppendInputDataProc = Option<
778 unsafe extern "C-unwind" fn(
779 NonNull<c_void>,
780 NonNull<c_void>,
781 NonNull<u32>,
782 NonNull<u32>,
783 *const AudioStreamPacketDescription,
784 ) -> OSStatus,
785>;
786
787/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/audiocodecproduceoutputpacketsproc?language=objc)
788#[cfg(feature = "objc2-core-audio-types")]
789pub type AudioCodecProduceOutputPacketsProc = Option<
790 unsafe extern "C-unwind" fn(
791 NonNull<c_void>,
792 NonNull<c_void>,
793 NonNull<u32>,
794 NonNull<u32>,
795 *mut AudioStreamPacketDescription,
796 NonNull<u32>,
797 ) -> OSStatus,
798>;
799
800/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/audiocodecresetproc?language=objc)
801pub type AudioCodecResetProc = Option<unsafe extern "C-unwind" fn(NonNull<c_void>) -> OSStatus>;
802
803/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/audiocodecappendinputbufferlistproc?language=objc)
804#[cfg(feature = "objc2-core-audio-types")]
805pub type AudioCodecAppendInputBufferListProc = Option<
806 unsafe extern "C-unwind" fn(
807 NonNull<c_void>,
808 NonNull<AudioBufferList>,
809 NonNull<u32>,
810 *const AudioStreamPacketDescription,
811 NonNull<u32>,
812 ) -> OSStatus,
813>;
814
815/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/audiocodecproduceoutputbufferlistproc?language=objc)
816#[cfg(feature = "objc2-core-audio-types")]
817pub type AudioCodecProduceOutputBufferListProc = Option<
818 unsafe extern "C-unwind" fn(
819 NonNull<c_void>,
820 NonNull<AudioBufferList>,
821 NonNull<u32>,
822 *mut AudioStreamPacketDescription,
823 NonNull<u32>,
824 ) -> OSStatus,
825>;
826
827/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyminimumdelaymode?language=objc)
828pub const kAudioCodecPropertyMinimumDelayMode: AudioCodecPropertyID = 0x6d64656c;
829
830/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertynamecfstring?language=objc)
831pub const kAudioCodecPropertyNameCFString: AudioCodecPropertyID = 0x6c6e616d;
832/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertymanufacturercfstring?language=objc)
833pub const kAudioCodecPropertyManufacturerCFString: AudioCodecPropertyID = 0x6c6d616b;
834/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyformatcfstring?language=objc)
835pub const kAudioCodecPropertyFormatCFString: AudioCodecPropertyID = 0x6c666f72;
836
837/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyrequirespacketdescription?language=objc)
838pub const kAudioCodecPropertyRequiresPacketDescription: AudioCodecPropertyID = 0x70616b64;
839/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyavailablebitrates?language=objc)
840pub const kAudioCodecPropertyAvailableBitRates: AudioCodecPropertyID = 0x62727423;
841/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecextendfrequencies?language=objc)
842pub const kAudioCodecExtendFrequencies: AudioCodecPropertyID = 0x61636566;
843/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecuserecommendedsamplerate?language=objc)
844pub const kAudioCodecUseRecommendedSampleRate: AudioCodecPropertyID = 0x75727372;
845/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecoutputprecedence?language=objc)
846pub const kAudioCodecOutputPrecedence: AudioCodecPropertyID = 0x6f707072;
847/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecbitrateformat?language=objc)
848pub const kAudioCodecBitRateFormat: AudioCodecPropertyID = kAudioCodecPropertyBitRateControlMode;
849/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecdoessamplerateconversion?language=objc)
850pub const kAudioCodecDoesSampleRateConversion: AudioCodecPropertyID =
851 kAudioCodecPropertyDoesSampleRateConversion;
852/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecinputformatsforoutputformat?language=objc)
853pub const kAudioCodecInputFormatsForOutputFormat: AudioCodecPropertyID =
854 kAudioCodecPropertyInputFormatsForOutputFormat;
855/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecoutputformatsforinputformat?language=objc)
856pub const kAudioCodecOutputFormatsForInputFormat: AudioCodecPropertyID =
857 kAudioCodecPropertyOutputFormatsForInputFormat;
858/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyinputchannellayout?language=objc)
859pub const kAudioCodecPropertyInputChannelLayout: AudioCodecPropertyID =
860 kAudioCodecPropertyCurrentInputChannelLayout;
861/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyoutputchannellayout?language=objc)
862pub const kAudioCodecPropertyOutputChannelLayout: AudioCodecPropertyID =
863 kAudioCodecPropertyCurrentOutputChannelLayout;
864/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyavailableinputchannellayouts?language=objc)
865pub const kAudioCodecPropertyAvailableInputChannelLayouts: AudioCodecPropertyID =
866 kAudioCodecPropertyAvailableInputChannelLayoutTags;
867/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyavailableoutputchannellayouts?language=objc)
868pub const kAudioCodecPropertyAvailableOutputChannelLayouts: AudioCodecPropertyID =
869 kAudioCodecPropertyAvailableOutputChannelLayoutTags;
870/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecpropertyzeroframespadded?language=objc)
871pub const kAudioCodecPropertyZeroFramesPadded: AudioCodecPropertyID =
872 kAudioCodecPropertyPaddedZeros;
873
874/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecbitrateformat_cbr?language=objc)
875pub const kAudioCodecBitRateFormat_CBR: u32 = kAudioCodecBitRateControlMode_Constant;
876/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecbitrateformat_abr?language=objc)
877pub const kAudioCodecBitRateFormat_ABR: u32 = kAudioCodecBitRateControlMode_LongTermAverage;
878/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecbitrateformat_vbr?language=objc)
879pub const kAudioCodecBitRateFormat_VBR: u32 = kAudioCodecBitRateControlMode_VariableConstrained;
880
881/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecoutputprecedencenone?language=objc)
882pub const kAudioCodecOutputPrecedenceNone: u32 = 0;
883/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecoutputprecedencebitrate?language=objc)
884pub const kAudioCodecOutputPrecedenceBitRate: u32 = 1;
885/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/kaudiocodecoutputprecedencesamplerate?language=objc)
886pub const kAudioCodecOutputPrecedenceSampleRate: u32 = 2;
887
888/// renamed to AudioCodecMagicCookieInfo
889///
890/// See also [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/magiccookieinfo?language=objc)
891#[deprecated]
892pub type MagicCookieInfo = AudioCodecMagicCookieInfo;
893
894/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/khintbasic?language=objc)
895pub const kHintBasic: u32 = 0;
896/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/khintadvanced?language=objc)
897pub const kHintAdvanced: u32 = 1;
898/// [Apple's documentation](https://developer.apple.com/documentation/audiotoolbox/khinthidden?language=objc)
899pub const kHintHidden: u32 = 2;