1pub const SHORT_BITS: u32 = 16;
4pub const CHAR_BITS: u32 = 8;
5pub const __DARWIN_ONLY_64_BIT_INO_T: u32 = 0;
6pub const __DARWIN_ONLY_VERS_1050: u32 = 0;
7pub const __DARWIN_ONLY_UNIX_CONFORMANCE: u32 = 1;
8pub const __DARWIN_UNIX03: u32 = 1;
9pub const __DARWIN_64_BIT_INO_T: u32 = 1;
10pub const __DARWIN_VERS_1050: u32 = 1;
11pub const __DARWIN_NON_CANCELABLE: u32 = 0;
12pub const __DARWIN_SUF_64_BIT_INO_T: &'static [u8; 9usize] = b"$INODE64\0";
13pub const __DARWIN_SUF_1050: &'static [u8; 6usize] = b"$1050\0";
14pub const __DARWIN_SUF_EXTSN: &'static [u8; 14usize] = b"$DARWIN_EXTSN\0";
15pub const __DARWIN_C_ANSI: u32 = 4096;
16pub const __DARWIN_C_FULL: u32 = 900000;
17pub const __DARWIN_C_LEVEL: u32 = 900000;
18pub const __STDC_WANT_LIB_EXT1__: u32 = 1;
19pub const __DARWIN_NO_LONG_LONG: u32 = 0;
20pub const _DARWIN_FEATURE_64_BIT_INODE: u32 = 1;
21pub const _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE: u32 = 1;
22pub const _DARWIN_FEATURE_UNIX_CONFORMANCE: u32 = 3;
23pub const WAV_BITS: u32 = 16;
24pub const SAMPLE_BITS: u32 = 16;
25pub const ALIGNMENT_DEFAULT: u32 = 8;
26pub const ALIGNMENT_EXTRES: u32 = 8;
27pub const M_PI: f64 = 3.141592653589793;
28pub const FDK_EXITCODE_OK: u32 = 0;
29pub const FDK_EXITCODE_USAGE: u32 = 64;
30pub const FDK_EXITCODE_DATAERROR: u32 = 65;
31pub const FDK_EXITCODE_NOINPUT: u32 = 66;
32pub const FDK_EXITCODE_UNAVAILABLE: u32 = 69;
33pub const FDK_EXITCODE_SOFTWARE: u32 = 70;
34pub const FDK_EXITCODE_CANTCREATE: u32 = 73;
35pub const FDK_EXITCODE_IOERROR: u32 = 74;
36pub const FDK_MAX_OVERLAYS: u32 = 8;
37pub const AC_ER_VCB11: u32 = 1;
38pub const AC_ER_RVLC: u32 = 2;
39pub const AC_ER_HCR: u32 = 4;
40pub const AC_SCALABLE: u32 = 8;
41pub const AC_ELD: u32 = 16;
42pub const AC_LD: u32 = 32;
43pub const AC_ER: u32 = 64;
44pub const AC_BSAC: u32 = 128;
45pub const AC_USAC: u32 = 256;
46pub const AC_RSV603DA: u32 = 512;
47pub const AC_HDAAC: u32 = 1024;
48pub const AC_RSVD50: u32 = 16384;
49pub const AC_SBR_PRESENT: u32 = 32768;
50pub const AC_SBRCRC: u32 = 65536;
51pub const AC_PS_PRESENT: u32 = 131072;
52pub const AC_MPS_PRESENT: u32 = 262144;
53pub const AC_DRM: u32 = 524288;
54pub const AC_INDEP: u32 = 1048576;
55pub const AC_MPEGD_RES: u32 = 2097152;
56pub const AC_SAOC_PRESENT: u32 = 4194304;
57pub const AC_DAB: u32 = 8388608;
58pub const AC_ELD_DOWNSCALE: u32 = 16777216;
59pub const AC_LD_MPS: u32 = 33554432;
60pub const AC_DRC_PRESENT: u32 = 67108864;
61pub const AC_USAC_SCFGI3: u32 = 134217728;
62pub const AC_CM_DET_CFG_CHANGE: u32 = 1;
63pub const AC_CM_ALLOC_MEM: u32 = 2;
64pub const AC_EL_USAC_TW: u32 = 1;
65pub const AC_EL_USAC_NOISE: u32 = 2;
66pub const AC_EL_USAC_ITES: u32 = 4;
67pub const AC_EL_USAC_PVC: u32 = 8;
68pub const AC_EL_USAC_MPS212: u32 = 16;
69pub const AC_EL_USAC_LFE: u32 = 32;
70pub const AC_EL_USAC_CP_POSSIBLE: u32 = 64;
71pub const AC_EL_ENHANCED_NOISE: u32 = 128;
72pub const AC_EL_IGF_AFTER_TNS: u32 = 256;
73pub const AC_EL_IGF_INDEP_TILING: u32 = 512;
74pub const AC_EL_IGF_USE_ENF: u32 = 1024;
75pub const AC_EL_FULLBANDLPD: u32 = 2048;
76pub const AC_EL_LPDSTEREOIDX: u32 = 4096;
77pub const AC_EL_LFE: u32 = 8192;
78pub const CC_MPEG_ID: u32 = 1048576;
79pub const CC_IS_BASELAYER: u32 = 2097152;
80pub const CC_PROTECTION: u32 = 4194304;
81pub const CC_SBR: u32 = 8388608;
82pub const CC_SBRCRC: u32 = 65536;
83pub const CC_SAC: u32 = 131072;
84pub const CC_RVLC: u32 = 16777216;
85pub const CC_VCB11: u32 = 33554432;
86pub const CC_HCR: u32 = 67108864;
87pub const CC_PSEUDO_SURROUND: u32 = 134217728;
88pub const CC_USAC_NOISE: u32 = 268435456;
89pub const CC_USAC_TW: u32 = 536870912;
90pub const CC_USAC_HBE: u32 = 1073741824;
91pub const USAC_ID_BIT: u32 = 16;
92pub const EXT_ID_BITS: u32 = 4;
93pub const CAPF_AAC_LC: u32 = 1;
94pub const CAPF_ER_AAC_LD: u32 = 2;
95pub const CAPF_ER_AAC_SCAL: u32 = 4;
96pub const CAPF_ER_AAC_LC: u32 = 8;
97pub const CAPF_AAC_480: u32 = 16;
98pub const CAPF_AAC_512: u32 = 32;
99pub const CAPF_AAC_960: u32 = 64;
100pub const CAPF_AAC_1024: u32 = 128;
101pub const CAPF_AAC_HCR: u32 = 256;
102pub const CAPF_AAC_VCB11: u32 = 512;
103pub const CAPF_AAC_RVLC: u32 = 1024;
104pub const CAPF_AAC_MPEG4: u32 = 2048;
105pub const CAPF_AAC_DRC: u32 = 4096;
106pub const CAPF_AAC_CONCEALMENT: u32 = 8192;
107pub const CAPF_AAC_DRM_BSFORMAT: u32 = 16384;
108pub const CAPF_ER_AAC_ELD: u32 = 32768;
109pub const CAPF_ER_AAC_BSAC: u32 = 65536;
110pub const CAPF_AAC_ELD_DOWNSCALE: u32 = 262144;
111pub const CAPF_AAC_USAC_LP: u32 = 1048576;
112pub const CAPF_AAC_USAC: u32 = 2097152;
113pub const CAPF_ER_AAC_ELDV2: u32 = 8388608;
114pub const CAPF_AAC_UNIDRC: u32 = 16777216;
115pub const CAPF_ADTS: u32 = 1;
116pub const CAPF_ADIF: u32 = 2;
117pub const CAPF_LATM: u32 = 4;
118pub const CAPF_LOAS: u32 = 8;
119pub const CAPF_RAWPACKETS: u32 = 16;
120pub const CAPF_DRM: u32 = 32;
121pub const CAPF_RSVD50: u32 = 64;
122pub const CAPF_SBR_LP: u32 = 1;
123pub const CAPF_SBR_HQ: u32 = 2;
124pub const CAPF_SBR_DRM_BS: u32 = 4;
125pub const CAPF_SBR_CONCEALMENT: u32 = 8;
126pub const CAPF_SBR_DRC: u32 = 16;
127pub const CAPF_SBR_PS_MPEG: u32 = 32;
128pub const CAPF_SBR_PS_DRM: u32 = 64;
129pub const CAPF_SBR_ELD_DOWNSCALE: u32 = 128;
130pub const CAPF_SBR_HBEHQ: u32 = 256;
131pub const CAPF_DMX_BLIND: u32 = 1;
132pub const CAPF_DMX_PCE: u32 = 2;
133pub const CAPF_DMX_ARIB: u32 = 4;
134pub const CAPF_DMX_DVB: u32 = 8;
135pub const CAPF_DMX_CH_EXP: u32 = 16;
136pub const CAPF_DMX_6_CH: u32 = 32;
137pub const CAPF_DMX_8_CH: u32 = 64;
138pub const CAPF_DMX_24_CH: u32 = 128;
139pub const CAPF_LIMITER: u32 = 8192;
140pub const CAPF_MPS_STD: u32 = 1;
141pub const CAPF_MPS_LD: u32 = 2;
142pub const CAPF_MPS_USAC: u32 = 4;
143pub const CAPF_MPS_HQ: u32 = 16;
144pub const CAPF_MPS_LP: u32 = 32;
145pub const CAPF_MPS_BLIND: u32 = 64;
146pub const CAPF_MPS_BINAURAL: u32 = 128;
147pub const CAPF_MPS_2CH_OUT: u32 = 256;
148pub const CAPF_MPS_6CH_OUT: u32 = 512;
149pub const CAPF_MPS_8CH_OUT: u32 = 1024;
150pub const CAPF_MPS_1CH_IN: u32 = 4096;
151pub const CAPF_MPS_2CH_IN: u32 = 8192;
152pub const CAPF_MPS_6CH_IN: u32 = 16384;
153pub const AACDEC_CONCEAL: u32 = 1;
154pub const AACDEC_FLUSH: u32 = 2;
155pub const AACDEC_INTR: u32 = 4;
156pub const AACDEC_CLRHIST: u32 = 8;
157pub type size_t = ::std::os::raw::c_ulong;
158pub type wchar_t = ::std::os::raw::c_int;
159pub type max_align_t = u128;
160#[doc = " \\var SCHAR"]
161#[doc = " Data type representing at least 1 byte signed integer on all supported"]
162#[doc = " platforms."]
163#[doc = " Data type representing at least 1 byte unsigned integer on all"]
164#[doc = " supported platforms."]
165#[doc = " Data type representing at least 4 byte signed integer on all supported"]
166#[doc = " platforms."]
167#[doc = " Data type representing at least 4 byte unsigned integer on all"]
168#[doc = " supported platforms."]
169#[doc = " Data type representing 4 byte signed integer on all supported"]
170#[doc = " platforms."]
171#[doc = " Data type representing 4 byte unsigned integer on all supported"]
172#[doc = " platforms."]
173#[doc = " Data type representing 2 byte signed integer on all supported"]
174#[doc = " platforms."]
175#[doc = " Data type representing 2 byte unsigned integer on all supported"]
176#[doc = " platforms."]
177#[doc = " Data type representing 8 byte signed integer on all supported"]
178#[doc = " platforms."]
179#[doc = " Data type representing 8 byte unsigned integer on all supported"]
180#[doc = " platforms."]
181#[doc = " Number of bits the data type short represents. sizeof() is not suited"]
182#[doc = " to get this info, because a byte is not always defined as 8 bits."]
183#[doc = " Number of bits the data type char represents. sizeof() is not suited"]
184#[doc = " to get this info, because a byte is not always defined as 8 bits."]
185#[doc = " Data type representing the width of input and output PCM samples."]
186pub type INT = ::std::os::raw::c_int;
187pub type UINT = ::std::os::raw::c_uint;
188pub type SHORT = ::std::os::raw::c_short;
189pub type USHORT = ::std::os::raw::c_ushort;
190pub type SCHAR = ::std::os::raw::c_schar;
191pub type UCHAR = ::std::os::raw::c_uchar;
192pub type INT64 = ::std::os::raw::c_longlong;
193pub type UINT64 = ::std::os::raw::c_ulonglong;
194extern "C" {
195 pub fn __assert_rtn(
196 arg1: *const ::std::os::raw::c_char,
197 arg2: *const ::std::os::raw::c_char,
198 arg3: ::std::os::raw::c_int,
199 arg4: *const ::std::os::raw::c_char,
200 );
201}
202pub type INT_PCM = SHORT;
203pub const MEMORY_SECTION_SECT_DATA_L1: MEMORY_SECTION = 8192;
204pub const MEMORY_SECTION_SECT_DATA_L2: MEMORY_SECTION = 8193;
205pub const MEMORY_SECTION_SECT_DATA_L1_A: MEMORY_SECTION = 8194;
206pub const MEMORY_SECTION_SECT_DATA_L1_B: MEMORY_SECTION = 8195;
207pub const MEMORY_SECTION_SECT_CONSTDATA_L1: MEMORY_SECTION = 8196;
208pub const MEMORY_SECTION_SECT_DATA_EXTERN: MEMORY_SECTION = 16384;
209pub const MEMORY_SECTION_SECT_CONSTDATA_EXTERN: MEMORY_SECTION = 16385;
210#[doc = " Identifiers for various memory locations. They are used along with memory"]
211#[doc = " allocation functions like FDKcalloc_L() to specify the requested memory's"]
212#[doc = " location."]
213pub type MEMORY_SECTION = u32;
214extern "C" {
215 pub fn FDKprintf(szFmt: *const ::std::os::raw::c_char, ...);
216}
217extern "C" {
218 pub fn FDKprintfErr(szFmt: *const ::std::os::raw::c_char, ...);
219}
220extern "C" {
221 #[doc = " Wrapper for <stdio.h>'s getchar()."]
222 pub fn FDKgetchar() -> ::std::os::raw::c_int;
223}
224extern "C" {
225 pub fn FDKfprintf(
226 stream: *mut ::std::os::raw::c_void,
227 format: *const ::std::os::raw::c_char,
228 ...
229 ) -> INT;
230}
231extern "C" {
232 pub fn FDKsprintf(
233 str: *mut ::std::os::raw::c_char,
234 format: *const ::std::os::raw::c_char,
235 ...
236 ) -> INT;
237}
238extern "C" {
239 pub fn FDKstrchr(s: *mut ::std::os::raw::c_char, c: INT) -> *mut ::std::os::raw::c_char;
240}
241extern "C" {
242 pub fn FDKstrstr(
243 haystack: *const ::std::os::raw::c_char,
244 needle: *const ::std::os::raw::c_char,
245 ) -> *const ::std::os::raw::c_char;
246}
247extern "C" {
248 pub fn FDKstrcpy(
249 dest: *mut ::std::os::raw::c_char,
250 src: *const ::std::os::raw::c_char,
251 ) -> *mut ::std::os::raw::c_char;
252}
253extern "C" {
254 pub fn FDKstrncpy(
255 dest: *mut ::std::os::raw::c_char,
256 src: *const ::std::os::raw::c_char,
257 n: UINT,
258 ) -> *mut ::std::os::raw::c_char;
259}
260extern "C" {
261 pub fn FDKcalloc(n: UINT, size: UINT) -> *mut ::std::os::raw::c_void;
262}
263extern "C" {
264 pub fn FDKmalloc(size: UINT) -> *mut ::std::os::raw::c_void;
265}
266extern "C" {
267 pub fn FDKfree(ptr: *mut ::std::os::raw::c_void);
268}
269extern "C" {
270 #[doc = " Allocate and clear an aligned memory area. Use FDKafree() instead of"]
271 #[doc = " FDKfree() for these memory areas."]
272 #[doc = ""]
273 #[doc = " \\param size Size of requested memory in bytes."]
274 #[doc = " \\param alignment Alignment of requested memory in bytes."]
275 #[doc = " \\return Pointer to allocated memory."]
276 pub fn FDKaalloc(size: UINT, alignment: UINT) -> *mut ::std::os::raw::c_void;
277}
278extern "C" {
279 #[doc = " Free an aligned memory area."]
280 #[doc = ""]
281 #[doc = " \\param ptr Pointer to be freed."]
282 pub fn FDKafree(ptr: *mut ::std::os::raw::c_void);
283}
284extern "C" {
285 #[doc = " Allocate memory in a specific memory section."]
286 #[doc = " Requests can be made for internal or external memory. If internal memory is"]
287 #[doc = " requested, FDKcalloc_L() first tries to use L1 memory, which sizes are"]
288 #[doc = " defined by ::DATA_L1_A_SIZE and ::DATA_L1_B_SIZE. If no L1 memory is"]
289 #[doc = " available, then FDKcalloc_L() tries to use L2 memory. If that fails as well,"]
290 #[doc = " the requested memory is allocated at an extern location using the fallback"]
291 #[doc = " FDKcalloc()."]
292 #[doc = ""]
293 #[doc = " \\param n See MSDN documentation on calloc()."]
294 #[doc = " \\param size See MSDN documentation on calloc()."]
295 #[doc = " \\param s Memory section."]
296 #[doc = " \\return See MSDN documentation on calloc()."]
297 pub fn FDKcalloc_L(n: UINT, size: UINT, s: MEMORY_SECTION) -> *mut ::std::os::raw::c_void;
298}
299extern "C" {
300 #[doc = " Allocate aligned memory in a specific memory section."]
301 #[doc = " See FDKcalloc_L() description for details - same applies here."]
302 pub fn FDKaalloc_L(
303 size: UINT,
304 alignment: UINT,
305 s: MEMORY_SECTION,
306 ) -> *mut ::std::os::raw::c_void;
307}
308extern "C" {
309 #[doc = " Free memory that was allocated in a specific memory section."]
310 pub fn FDKfree_L(ptr: *mut ::std::os::raw::c_void);
311}
312extern "C" {
313 #[doc = " Free aligned memory that was allocated in a specific memory section."]
314 pub fn FDKafree_L(ptr: *mut ::std::os::raw::c_void);
315}
316extern "C" {
317 #[doc = " Copy memory. Source and destination memory must not overlap."]
318 #[doc = " Either use implementation from a Standard Library, or, if no Standard Library"]
319 #[doc = " is available, a generic implementation."]
320 #[doc = " The define ::USE_BUILTIN_MEM_FUNCTIONS in genericStds.cpp controls what to"]
321 #[doc = " use. The function arguments correspond to the standard memcpy(). Please see"]
322 #[doc = " MSDN documentation for details on how to use it."]
323 pub fn FDKmemcpy(
324 dst: *mut ::std::os::raw::c_void,
325 src: *const ::std::os::raw::c_void,
326 size: UINT,
327 );
328}
329extern "C" {
330 #[doc = " Copy memory. Source and destination memory are allowed to overlap."]
331 #[doc = " Either use implementation from a Standard Library, or, if no Standard Library"]
332 #[doc = " is available, a generic implementation."]
333 #[doc = " The define ::USE_BUILTIN_MEM_FUNCTIONS in genericStds.cpp controls what to"]
334 #[doc = " use. The function arguments correspond to the standard memmove(). Please see"]
335 #[doc = " MSDN documentation for details on how to use it."]
336 pub fn FDKmemmove(
337 dst: *mut ::std::os::raw::c_void,
338 src: *const ::std::os::raw::c_void,
339 size: UINT,
340 );
341}
342extern "C" {
343 #[doc = " Clear memory."]
344 #[doc = " Either use implementation from a Standard Library, or, if no Standard Library"]
345 #[doc = " is available, a generic implementation."]
346 #[doc = " The define ::USE_BUILTIN_MEM_FUNCTIONS in genericStds.cpp controls what to"]
347 #[doc = " use. The function arguments correspond to the standard memclear(). Please see"]
348 #[doc = " MSDN documentation for details on how to use it."]
349 pub fn FDKmemclear(memPtr: *mut ::std::os::raw::c_void, size: UINT);
350}
351extern "C" {
352 #[doc = " Fill memory with values."]
353 #[doc = " The function arguments correspond to the standard memset(). Please see MSDN"]
354 #[doc = " documentation for details on how to use it."]
355 pub fn FDKmemset(memPtr: *mut ::std::os::raw::c_void, value: INT, size: UINT);
356}
357extern "C" {
358 pub fn FDKmemcmp(
359 s1: *const ::std::os::raw::c_void,
360 s2: *const ::std::os::raw::c_void,
361 size: UINT,
362 ) -> INT;
363}
364extern "C" {
365 pub fn FDKstrcmp(s1: *const ::std::os::raw::c_char, s2: *const ::std::os::raw::c_char) -> INT;
366}
367extern "C" {
368 pub fn FDKstrncmp(
369 s1: *const ::std::os::raw::c_char,
370 s2: *const ::std::os::raw::c_char,
371 size: UINT,
372 ) -> INT;
373}
374extern "C" {
375 pub fn FDKstrlen(s: *const ::std::os::raw::c_char) -> UINT;
376}
377extern "C" {
378 #[doc = " Check platform for endianess."]
379 #[doc = ""]
380 #[doc = " \\return 1 if platform is little endian, non-1 if platform is big endian."]
381 pub fn IS_LITTLE_ENDIAN() -> ::std::os::raw::c_int;
382}
383extern "C" {
384 #[doc = " Convert input value to little endian format."]
385 #[doc = ""]
386 #[doc = " \\param val Value to be converted. It may be in both big or little endian."]
387 #[doc = " \\return Value in little endian format."]
388 pub fn TO_LITTLE_ENDIAN(val: UINT) -> UINT;
389}
390#[doc = " \\fn FDKFILE *FDKfopen(const char *filename, const char *mode);"]
391#[doc = " Standard fopen() wrapper."]
392#[doc = " \\fn INT FDKfclose(FDKFILE *FP);"]
393#[doc = " Standard fclose() wrapper."]
394#[doc = " \\fn INT FDKfseek(FDKFILE *FP, LONG OFFSET, int WHENCE);"]
395#[doc = " Standard fseek() wrapper."]
396#[doc = " \\fn INT FDKftell(FDKFILE *FP);"]
397#[doc = " Standard ftell() wrapper."]
398#[doc = " \\fn INT FDKfflush(FDKFILE *fp);"]
399#[doc = " Standard fflush() wrapper."]
400#[doc = " \\fn UINT FDKfwrite(const void *ptrf, INT size, UINT nmemb, FDKFILE *fp);"]
401#[doc = " Standard fwrite() wrapper."]
402#[doc = " \\fn UINT FDKfread(void *dst, INT size, UINT nmemb, FDKFILE *fp);"]
403#[doc = " Standard fread() wrapper."]
404pub type FDKFILE = ::std::os::raw::c_void;
405extern "C" {
406 pub static FDKSEEK_SET: INT;
407}
408extern "C" {
409 pub static FDKSEEK_CUR: INT;
410}
411extern "C" {
412 pub static FDKSEEK_END: INT;
413}
414extern "C" {
415 pub fn FDKfopen(
416 filename: *const ::std::os::raw::c_char,
417 mode: *const ::std::os::raw::c_char,
418 ) -> *mut FDKFILE;
419}
420extern "C" {
421 pub fn FDKfclose(FP: *mut FDKFILE) -> INT;
422}
423extern "C" {
424 pub fn FDKfseek(FP: *mut FDKFILE, OFFSET: INT, WHENCE: ::std::os::raw::c_int) -> INT;
425}
426extern "C" {
427 pub fn FDKftell(FP: *mut FDKFILE) -> INT;
428}
429extern "C" {
430 pub fn FDKfflush(fp: *mut FDKFILE) -> INT;
431}
432extern "C" {
433 pub fn FDKfwrite(
434 ptrf: *const ::std::os::raw::c_void,
435 size: INT,
436 nmemb: UINT,
437 fp: *mut FDKFILE,
438 ) -> UINT;
439}
440extern "C" {
441 pub fn FDKfread(
442 dst: *mut ::std::os::raw::c_void,
443 size: INT,
444 nmemb: UINT,
445 fp: *mut FDKFILE,
446 ) -> UINT;
447}
448extern "C" {
449 pub fn FDKfgets(
450 dst: *mut ::std::os::raw::c_void,
451 size: INT,
452 fp: *mut FDKFILE,
453 ) -> *mut ::std::os::raw::c_char;
454}
455extern "C" {
456 pub fn FDKrewind(fp: *mut FDKFILE);
457}
458extern "C" {
459 pub fn FDKfeof(fp: *mut FDKFILE) -> INT;
460}
461extern "C" {
462 #[doc = " \\brief Write each member in little endian order. Convert automatically"]
463 #[doc = " to host endianess."]
464 #[doc = " \\param ptrf Pointer to memory where to read data from."]
465 #[doc = " \\param size Size of each item to be written."]
466 #[doc = " \\param nmemb Number of items to be written."]
467 #[doc = " \\param fp File pointer of type FDKFILE."]
468 #[doc = " \\return Number of items read on success and fread() error on failure."]
469 pub fn FDKfwrite_EL(
470 ptrf: *const ::std::os::raw::c_void,
471 size: INT,
472 nmemb: UINT,
473 fp: *mut FDKFILE,
474 ) -> UINT;
475}
476extern "C" {
477 #[doc = " \\brief Read variable of size \"size\" as little endian. Convert"]
478 #[doc = " automatically to host endianess. 4-byte alignment is enforced for 24 bit"]
479 #[doc = " data, at 32 bit full scale."]
480 #[doc = " \\param dst Pointer to memory where to store data into."]
481 #[doc = " \\param size Size of each item to be read."]
482 #[doc = " \\param nmemb Number of items to be read."]
483 #[doc = " \\param fp File pointer of type FDKFILE."]
484 #[doc = " \\return Number of items read on success and fread() error on failure."]
485 pub fn FDKfread_EL(
486 dst: *mut ::std::os::raw::c_void,
487 size: INT,
488 nmemb: UINT,
489 fp: *mut FDKFILE,
490 ) -> UINT;
491}
492extern "C" {
493 #[doc = " \\brief Print FDK software disclaimer."]
494 pub fn FDKprintDisclaimer();
495}
496#[doc = " \\brief Contains information needed for a single channel map."]
497#[repr(C)]
498#[derive(Debug, Copy, Clone)]
499pub struct CHANNEL_MAP_INFO {
500 #[doc = "< Actual channel mapping for one single configuration."]
501 pub pChannelMap: *const UCHAR,
502 #[doc = "< The number of channels for the channel map which is"]
503 #[doc = "the maximum used channel index+1."]
504 pub numChannels: UCHAR,
505}
506#[test]
507fn bindgen_test_layout_CHANNEL_MAP_INFO() {
508 assert_eq!(
509 ::std::mem::size_of::<CHANNEL_MAP_INFO>(),
510 16usize,
511 concat!("Size of: ", stringify!(CHANNEL_MAP_INFO))
512 );
513 assert_eq!(
514 ::std::mem::align_of::<CHANNEL_MAP_INFO>(),
515 8usize,
516 concat!("Alignment of ", stringify!(CHANNEL_MAP_INFO))
517 );
518 assert_eq!(
519 unsafe { &(*(::std::ptr::null::<CHANNEL_MAP_INFO>())).pChannelMap as *const _ as usize },
520 0usize,
521 concat!(
522 "Offset of field: ",
523 stringify!(CHANNEL_MAP_INFO),
524 "::",
525 stringify!(pChannelMap)
526 )
527 );
528 assert_eq!(
529 unsafe { &(*(::std::ptr::null::<CHANNEL_MAP_INFO>())).numChannels as *const _ as usize },
530 8usize,
531 concat!(
532 "Offset of field: ",
533 stringify!(CHANNEL_MAP_INFO),
534 "::",
535 stringify!(numChannels)
536 )
537 );
538}
539#[doc = " \\brief This is the main data struct. It contains the mapping for all"]
540#[doc = " channel configurations such as administration information."]
541#[doc = ""]
542#[doc = " CAUTION: Do not access this structure directly from a algorithm specific"]
543#[doc = " library. Always use one of the API access functions below!"]
544#[repr(C)]
545#[derive(Debug, Copy, Clone)]
546pub struct FDK_channelMapDescr {
547 #[doc = "< Table of channel maps."]
548 pub pMapInfoTab: *const CHANNEL_MAP_INFO,
549 #[doc = "< Length of the channel map table array."]
550 pub mapInfoTabLen: UINT,
551 #[doc = "< Flag that defines whether the specified mapping shall"]
552 #[doc = "be applied (value: 0) or the input just gets passed"]
553 #[doc = "through (MPEG mapping)."]
554 pub fPassThrough: UINT,
555}
556#[test]
557fn bindgen_test_layout_FDK_channelMapDescr() {
558 assert_eq!(
559 ::std::mem::size_of::<FDK_channelMapDescr>(),
560 16usize,
561 concat!("Size of: ", stringify!(FDK_channelMapDescr))
562 );
563 assert_eq!(
564 ::std::mem::align_of::<FDK_channelMapDescr>(),
565 8usize,
566 concat!("Alignment of ", stringify!(FDK_channelMapDescr))
567 );
568 assert_eq!(
569 unsafe { &(*(::std::ptr::null::<FDK_channelMapDescr>())).pMapInfoTab as *const _ as usize },
570 0usize,
571 concat!(
572 "Offset of field: ",
573 stringify!(FDK_channelMapDescr),
574 "::",
575 stringify!(pMapInfoTab)
576 )
577 );
578 assert_eq!(
579 unsafe {
580 &(*(::std::ptr::null::<FDK_channelMapDescr>())).mapInfoTabLen as *const _ as usize
581 },
582 8usize,
583 concat!(
584 "Offset of field: ",
585 stringify!(FDK_channelMapDescr),
586 "::",
587 stringify!(mapInfoTabLen)
588 )
589 );
590 assert_eq!(
591 unsafe {
592 &(*(::std::ptr::null::<FDK_channelMapDescr>())).fPassThrough as *const _ as usize
593 },
594 12usize,
595 concat!(
596 "Offset of field: ",
597 stringify!(FDK_channelMapDescr),
598 "::",
599 stringify!(fPassThrough)
600 )
601 );
602}
603extern "C" {
604 #[doc = " \\brief Initialize a given channel map descriptor."]
605 #[doc = ""]
606 #[doc = " \\param pMapDescr Pointer to a channel map descriptor to be initialized."]
607 #[doc = " \\param pMapInfoTab Table of channel maps to initizalize the descriptor"]
608 #[doc = "with."]
609 #[doc = " If a NULL pointer is given a default table for"]
610 #[doc = "WAV-like mapping will be used."]
611 #[doc = " \\param mapInfoTabLen Length of the channel map table array (pMapInfoTab)."]
612 #[doc = "If a zero length is given a default table for WAV-like mapping will be used."]
613 #[doc = " \\param fPassThrough If the flag is set the reordering (given by"]
614 #[doc = "pMapInfoTab) will be bypassed."]
615 pub fn FDK_chMapDescr_init(
616 pMapDescr: *mut FDK_channelMapDescr,
617 pMapInfoTab: *const CHANNEL_MAP_INFO,
618 mapInfoTabLen: UINT,
619 fPassThrough: UINT,
620 );
621}
622extern "C" {
623 #[doc = " \\brief Change the channel reordering state of a given channel map"]
624 #[doc = " descriptor."]
625 #[doc = ""]
626 #[doc = " \\param pMapDescr Pointer to a (initialized) channel map descriptor."]
627 #[doc = " \\param fPassThrough If the flag is set the reordering (given by"]
628 #[doc = " pMapInfoTab) will be bypassed."]
629 #[doc = " \\return Value unequal to zero if set operation was not"]
630 #[doc = " successful. And zero on success."]
631 pub fn FDK_chMapDescr_setPassThrough(
632 pMapDescr: *mut FDK_channelMapDescr,
633 fPassThrough: UINT,
634 ) -> ::std::os::raw::c_int;
635}
636extern "C" {
637 #[doc = " \\brief Get the mapping value for a specific channel and map index."]
638 #[doc = ""]
639 #[doc = " \\param pMapDescr Pointer to channel map descriptor."]
640 #[doc = " \\param chIdx Channel index."]
641 #[doc = " \\param mapIdx Mapping index (corresponding to the channel configuration"]
642 #[doc = " index)."]
643 #[doc = " \\return Mapping value."]
644 pub fn FDK_chMapDescr_getMapValue(
645 pMapDescr: *const FDK_channelMapDescr,
646 chIdx: UCHAR,
647 mapIdx: UINT,
648 ) -> UCHAR;
649}
650extern "C" {
651 #[doc = " \\brief Evaluate whether channel map descriptor is reasonable or not."]
652 #[doc = ""]
653 #[doc = " \\param pMapDescr Pointer to channel map descriptor."]
654 #[doc = " \\return Value unequal to zero if descriptor is valid, otherwise"]
655 #[doc = " zero."]
656 pub fn FDK_chMapDescr_isValid(pMapDescr: *const FDK_channelMapDescr) -> ::std::os::raw::c_int;
657}
658#[doc = "< Unknown format."]
659pub const FILE_FORMAT_FF_UNKNOWN: FILE_FORMAT = -1;
660#[doc = "< No container, bit stream data conveyed \"as is\"."]
661pub const FILE_FORMAT_FF_RAW: FILE_FORMAT = 0;
662#[doc = "< 3GPP file format."]
663pub const FILE_FORMAT_FF_MP4_3GPP: FILE_FORMAT = 3;
664#[doc = "< MPEG-4 File format."]
665pub const FILE_FORMAT_FF_MP4_MP4F: FILE_FORMAT = 4;
666#[doc = "< Proprietary raw packet file."]
667pub const FILE_FORMAT_FF_RAWPACKETS: FILE_FORMAT = 5;
668#[doc = " File format identifiers."]
669pub type FILE_FORMAT = i32;
670#[doc = "< Unknown format."]
671pub const TRANSPORT_TYPE_TT_UNKNOWN: TRANSPORT_TYPE = -1;
672#[doc = "< \"as is\" access units (packet based since there is"]
673#[doc = "obviously no sync layer)"]
674pub const TRANSPORT_TYPE_TT_MP4_RAW: TRANSPORT_TYPE = 0;
675#[doc = "< ADIF bitstream format."]
676pub const TRANSPORT_TYPE_TT_MP4_ADIF: TRANSPORT_TYPE = 1;
677#[doc = "< ADTS bitstream format."]
678pub const TRANSPORT_TYPE_TT_MP4_ADTS: TRANSPORT_TYPE = 2;
679#[doc = "< Audio Mux Elements with muxConfigPresent = 1"]
680pub const TRANSPORT_TYPE_TT_MP4_LATM_MCP1: TRANSPORT_TYPE = 6;
681#[doc = "< Audio Mux Elements with muxConfigPresent = 0, out"]
682#[doc = "of band StreamMuxConfig"]
683pub const TRANSPORT_TYPE_TT_MP4_LATM_MCP0: TRANSPORT_TYPE = 7;
684#[doc = "< Audio Sync Stream."]
685pub const TRANSPORT_TYPE_TT_MP4_LOAS: TRANSPORT_TYPE = 10;
686#[doc = "< Digital Radio Mondial (DRM30/DRM+) bitstream format."]
687pub const TRANSPORT_TYPE_TT_DRM: TRANSPORT_TYPE = 12;
688#[doc = " Transport type identifiers."]
689pub type TRANSPORT_TYPE = i32;
690pub const AUDIO_OBJECT_TYPE_AOT_NONE: AUDIO_OBJECT_TYPE = -1;
691pub const AUDIO_OBJECT_TYPE_AOT_NULL_OBJECT: AUDIO_OBJECT_TYPE = 0;
692#[doc = "< Main profile"]
693pub const AUDIO_OBJECT_TYPE_AOT_AAC_MAIN: AUDIO_OBJECT_TYPE = 1;
694#[doc = "< Low Complexity object"]
695pub const AUDIO_OBJECT_TYPE_AOT_AAC_LC: AUDIO_OBJECT_TYPE = 2;
696pub const AUDIO_OBJECT_TYPE_AOT_AAC_SSR: AUDIO_OBJECT_TYPE = 3;
697pub const AUDIO_OBJECT_TYPE_AOT_AAC_LTP: AUDIO_OBJECT_TYPE = 4;
698pub const AUDIO_OBJECT_TYPE_AOT_SBR: AUDIO_OBJECT_TYPE = 5;
699pub const AUDIO_OBJECT_TYPE_AOT_AAC_SCAL: AUDIO_OBJECT_TYPE = 6;
700pub const AUDIO_OBJECT_TYPE_AOT_TWIN_VQ: AUDIO_OBJECT_TYPE = 7;
701pub const AUDIO_OBJECT_TYPE_AOT_CELP: AUDIO_OBJECT_TYPE = 8;
702pub const AUDIO_OBJECT_TYPE_AOT_HVXC: AUDIO_OBJECT_TYPE = 9;
703#[doc = "< (reserved)"]
704pub const AUDIO_OBJECT_TYPE_AOT_RSVD_10: AUDIO_OBJECT_TYPE = 10;
705#[doc = "< (reserved)"]
706pub const AUDIO_OBJECT_TYPE_AOT_RSVD_11: AUDIO_OBJECT_TYPE = 11;
707#[doc = "< TTSI Object"]
708pub const AUDIO_OBJECT_TYPE_AOT_TTSI: AUDIO_OBJECT_TYPE = 12;
709#[doc = "< Main Synthetic object"]
710pub const AUDIO_OBJECT_TYPE_AOT_MAIN_SYNTH: AUDIO_OBJECT_TYPE = 13;
711#[doc = "< Wavetable Synthesis object"]
712pub const AUDIO_OBJECT_TYPE_AOT_WAV_TAB_SYNTH: AUDIO_OBJECT_TYPE = 14;
713#[doc = "< General MIDI object"]
714pub const AUDIO_OBJECT_TYPE_AOT_GEN_MIDI: AUDIO_OBJECT_TYPE = 15;
715#[doc = "< Algorithmic Synthesis and Audio FX object"]
716pub const AUDIO_OBJECT_TYPE_AOT_ALG_SYNTH_AUD_FX: AUDIO_OBJECT_TYPE = 16;
717#[doc = "< Error Resilient(ER) AAC Low Complexity"]
718pub const AUDIO_OBJECT_TYPE_AOT_ER_AAC_LC: AUDIO_OBJECT_TYPE = 17;
719#[doc = "< (reserved)"]
720pub const AUDIO_OBJECT_TYPE_AOT_RSVD_18: AUDIO_OBJECT_TYPE = 18;
721#[doc = "< Error Resilient(ER) AAC LTP object"]
722pub const AUDIO_OBJECT_TYPE_AOT_ER_AAC_LTP: AUDIO_OBJECT_TYPE = 19;
723#[doc = "< Error Resilient(ER) AAC Scalable object"]
724pub const AUDIO_OBJECT_TYPE_AOT_ER_AAC_SCAL: AUDIO_OBJECT_TYPE = 20;
725#[doc = "< Error Resilient(ER) TwinVQ object"]
726pub const AUDIO_OBJECT_TYPE_AOT_ER_TWIN_VQ: AUDIO_OBJECT_TYPE = 21;
727#[doc = "< Error Resilient(ER) BSAC object"]
728pub const AUDIO_OBJECT_TYPE_AOT_ER_BSAC: AUDIO_OBJECT_TYPE = 22;
729#[doc = "< Error Resilient(ER) AAC LowDelay object"]
730pub const AUDIO_OBJECT_TYPE_AOT_ER_AAC_LD: AUDIO_OBJECT_TYPE = 23;
731#[doc = "< Error Resilient(ER) CELP object"]
732pub const AUDIO_OBJECT_TYPE_AOT_ER_CELP: AUDIO_OBJECT_TYPE = 24;
733#[doc = "< Error Resilient(ER) HVXC object"]
734pub const AUDIO_OBJECT_TYPE_AOT_ER_HVXC: AUDIO_OBJECT_TYPE = 25;
735#[doc = "< Error Resilient(ER) HILN object"]
736pub const AUDIO_OBJECT_TYPE_AOT_ER_HILN: AUDIO_OBJECT_TYPE = 26;
737#[doc = "< Error Resilient(ER) Parametric object"]
738pub const AUDIO_OBJECT_TYPE_AOT_ER_PARA: AUDIO_OBJECT_TYPE = 27;
739#[doc = "< might become SSC"]
740pub const AUDIO_OBJECT_TYPE_AOT_RSVD_28: AUDIO_OBJECT_TYPE = 28;
741#[doc = "< PS, Parametric Stereo (includes SBR)"]
742pub const AUDIO_OBJECT_TYPE_AOT_PS: AUDIO_OBJECT_TYPE = 29;
743#[doc = "< MPEG Surround"]
744pub const AUDIO_OBJECT_TYPE_AOT_MPEGS: AUDIO_OBJECT_TYPE = 30;
745#[doc = "< Signal AOT uses more than 5 bits"]
746pub const AUDIO_OBJECT_TYPE_AOT_ESCAPE: AUDIO_OBJECT_TYPE = 31;
747#[doc = "< MPEG-Layer1 in mp4"]
748pub const AUDIO_OBJECT_TYPE_AOT_MP3ONMP4_L1: AUDIO_OBJECT_TYPE = 32;
749#[doc = "< MPEG-Layer2 in mp4"]
750pub const AUDIO_OBJECT_TYPE_AOT_MP3ONMP4_L2: AUDIO_OBJECT_TYPE = 33;
751#[doc = "< MPEG-Layer3 in mp4"]
752pub const AUDIO_OBJECT_TYPE_AOT_MP3ONMP4_L3: AUDIO_OBJECT_TYPE = 34;
753#[doc = "< might become DST"]
754pub const AUDIO_OBJECT_TYPE_AOT_RSVD_35: AUDIO_OBJECT_TYPE = 35;
755#[doc = "< might become ALS"]
756pub const AUDIO_OBJECT_TYPE_AOT_RSVD_36: AUDIO_OBJECT_TYPE = 36;
757#[doc = "< AAC + SLS"]
758pub const AUDIO_OBJECT_TYPE_AOT_AAC_SLS: AUDIO_OBJECT_TYPE = 37;
759#[doc = "< SLS"]
760pub const AUDIO_OBJECT_TYPE_AOT_SLS: AUDIO_OBJECT_TYPE = 38;
761#[doc = "< AAC Enhanced Low Delay"]
762pub const AUDIO_OBJECT_TYPE_AOT_ER_AAC_ELD: AUDIO_OBJECT_TYPE = 39;
763#[doc = "< USAC"]
764pub const AUDIO_OBJECT_TYPE_AOT_USAC: AUDIO_OBJECT_TYPE = 42;
765#[doc = "< SAOC"]
766pub const AUDIO_OBJECT_TYPE_AOT_SAOC: AUDIO_OBJECT_TYPE = 43;
767#[doc = "< Low Delay MPEG Surround"]
768pub const AUDIO_OBJECT_TYPE_AOT_LD_MPEGS: AUDIO_OBJECT_TYPE = 44;
769#[doc = "< Virtual AOT MP2 Low Complexity profile"]
770pub const AUDIO_OBJECT_TYPE_AOT_MP2_AAC_LC: AUDIO_OBJECT_TYPE = 129;
771#[doc = "< Virtual AOT MP2 Low Complexity Profile with SBR"]
772pub const AUDIO_OBJECT_TYPE_AOT_MP2_SBR: AUDIO_OBJECT_TYPE = 132;
773#[doc = "< Virtual AOT for DRM (ER-AAC-SCAL without SBR)"]
774pub const AUDIO_OBJECT_TYPE_AOT_DRM_AAC: AUDIO_OBJECT_TYPE = 143;
775#[doc = "< Virtual AOT for DRM (ER-AAC-SCAL with SBR)"]
776pub const AUDIO_OBJECT_TYPE_AOT_DRM_SBR: AUDIO_OBJECT_TYPE = 144;
777pub const AUDIO_OBJECT_TYPE_AOT_DRM_MPEG_PS: AUDIO_OBJECT_TYPE = 145;
778pub const AUDIO_OBJECT_TYPE_AOT_DRM_SURROUND: AUDIO_OBJECT_TYPE = 146;
779#[doc = "< Virtual AOT for DRM with USAC"]
780pub const AUDIO_OBJECT_TYPE_AOT_DRM_USAC: AUDIO_OBJECT_TYPE = 147;
781#[doc = " Audio Object Type definitions."]
782pub type AUDIO_OBJECT_TYPE = i32;
783pub const CHANNEL_MODE_MODE_INVALID: CHANNEL_MODE = -1;
784pub const CHANNEL_MODE_MODE_UNKNOWN: CHANNEL_MODE = 0;
785#[doc = "< C"]
786pub const CHANNEL_MODE_MODE_1: CHANNEL_MODE = 1;
787#[doc = "< L+R"]
788pub const CHANNEL_MODE_MODE_2: CHANNEL_MODE = 2;
789#[doc = "< C, L+R"]
790pub const CHANNEL_MODE_MODE_1_2: CHANNEL_MODE = 3;
791#[doc = "< C, L+R, Rear"]
792pub const CHANNEL_MODE_MODE_1_2_1: CHANNEL_MODE = 4;
793#[doc = "< C, L+R, LS+RS"]
794pub const CHANNEL_MODE_MODE_1_2_2: CHANNEL_MODE = 5;
795#[doc = "< C, L+R, LS+RS, LFE"]
796pub const CHANNEL_MODE_MODE_1_2_2_1: CHANNEL_MODE = 6;
797#[doc = "< C, LC+RC, L+R, LS+RS, LFE"]
798pub const CHANNEL_MODE_MODE_1_2_2_2_1: CHANNEL_MODE = 7;
799#[doc = "< C, L+R, LS+RS, Crear, LFE"]
800pub const CHANNEL_MODE_MODE_6_1: CHANNEL_MODE = 11;
801#[doc = "< C, L+R, LS+RS, Lrear+Rrear, LFE"]
802pub const CHANNEL_MODE_MODE_7_1_BACK: CHANNEL_MODE = 12;
803#[doc = "< C, L+R, LS+RS, LFE, Ltop+Rtop"]
804pub const CHANNEL_MODE_MODE_7_1_TOP_FRONT: CHANNEL_MODE = 14;
805#[doc = "< C, L+R, LS+RS, Lrear+Rrear, LFE"]
806pub const CHANNEL_MODE_MODE_7_1_REAR_SURROUND: CHANNEL_MODE = 33;
807#[doc = "< C, LC+RC, L+R, LS+RS, LFE"]
808pub const CHANNEL_MODE_MODE_7_1_FRONT_CENTER: CHANNEL_MODE = 34;
809#[doc = "< 212 configuration, used in ELDv2"]
810pub const CHANNEL_MODE_MODE_212: CHANNEL_MODE = 128;
811#[doc = " Channel Mode ( 1-7 equals MPEG channel configurations, others are"]
812#[doc = " arbitrary)."]
813pub type CHANNEL_MODE = i32;
814pub const AUDIO_CHANNEL_TYPE_ACT_NONE: AUDIO_CHANNEL_TYPE = 0;
815#[doc = "< Front speaker position (at normal height)"]
816pub const AUDIO_CHANNEL_TYPE_ACT_FRONT: AUDIO_CHANNEL_TYPE = 1;
817#[doc = "< Side speaker position (at normal height)"]
818pub const AUDIO_CHANNEL_TYPE_ACT_SIDE: AUDIO_CHANNEL_TYPE = 2;
819#[doc = "< Back speaker position (at normal height)"]
820pub const AUDIO_CHANNEL_TYPE_ACT_BACK: AUDIO_CHANNEL_TYPE = 3;
821#[doc = "< Low frequency effect speaker postion (front)"]
822pub const AUDIO_CHANNEL_TYPE_ACT_LFE: AUDIO_CHANNEL_TYPE = 4;
823pub const AUDIO_CHANNEL_TYPE_ACT_TOP: AUDIO_CHANNEL_TYPE = 16;
824#[doc = "< Top front speaker = (ACT_FRONT|ACT_TOP)"]
825pub const AUDIO_CHANNEL_TYPE_ACT_FRONT_TOP: AUDIO_CHANNEL_TYPE = 17;
826#[doc = "< Top side speaker = (ACT_SIDE |ACT_TOP)"]
827pub const AUDIO_CHANNEL_TYPE_ACT_SIDE_TOP: AUDIO_CHANNEL_TYPE = 18;
828#[doc = "< Top back speaker = (ACT_BACK |ACT_TOP)"]
829pub const AUDIO_CHANNEL_TYPE_ACT_BACK_TOP: AUDIO_CHANNEL_TYPE = 19;
830pub const AUDIO_CHANNEL_TYPE_ACT_BOTTOM: AUDIO_CHANNEL_TYPE = 32;
831#[doc = "< Bottom front speaker = (ACT_FRONT|ACT_BOTTOM)"]
832pub const AUDIO_CHANNEL_TYPE_ACT_FRONT_BOTTOM: AUDIO_CHANNEL_TYPE = 33;
833#[doc = "< Bottom side speaker = (ACT_SIDE |ACT_BOTTOM)"]
834pub const AUDIO_CHANNEL_TYPE_ACT_SIDE_BOTTOM: AUDIO_CHANNEL_TYPE = 34;
835#[doc = "< Bottom back speaker = (ACT_BACK |ACT_BOTTOM)"]
836pub const AUDIO_CHANNEL_TYPE_ACT_BACK_BOTTOM: AUDIO_CHANNEL_TYPE = 35;
837#[doc = " Speaker description tags."]
838#[doc = " Do not change the enumeration values unless it keeps the following"]
839#[doc = " segmentation:"]
840#[doc = " - Bit 0-3: Horizontal postion (0: none, 1: front, 2: side, 3: back, 4: lfe)"]
841#[doc = " - Bit 4-7: Vertical position (0: normal, 1: top, 2: bottom)"]
842pub type AUDIO_CHANNEL_TYPE = u32;
843pub const SBR_PS_SIGNALING_SIG_UNKNOWN: SBR_PS_SIGNALING = -1;
844pub const SBR_PS_SIGNALING_SIG_IMPLICIT: SBR_PS_SIGNALING = 0;
845pub const SBR_PS_SIGNALING_SIG_EXPLICIT_BW_COMPATIBLE: SBR_PS_SIGNALING = 1;
846pub const SBR_PS_SIGNALING_SIG_EXPLICIT_HIERARCHICAL: SBR_PS_SIGNALING = 2;
847pub type SBR_PS_SIGNALING = i32;
848#[doc = " Generic audio coder configuration structure."]
849#[repr(C)]
850#[derive(Copy, Clone)]
851pub struct CODER_CONFIG {
852 #[doc = "< Audio Object Type (AOT)."]
853 pub aot: AUDIO_OBJECT_TYPE,
854 #[doc = "< Extension Audio Object Type (SBR)."]
855 pub extAOT: AUDIO_OBJECT_TYPE,
856 #[doc = "< Channel mode."]
857 pub channelMode: CHANNEL_MODE,
858 #[doc = "< Use channel config zero + pce although a"]
859 #[doc = "standard channel config could be signaled."]
860 pub channelConfigZero: UCHAR,
861 #[doc = "< Sampling rate."]
862 pub samplingRate: INT,
863 #[doc = "< Extended samplerate (SBR)."]
864 pub extSamplingRate: INT,
865 #[doc = "< Downscale sampling rate (ELD downscaled mode)"]
866 pub downscaleSamplingRate: INT,
867 #[doc = "< Average bitrate."]
868 pub bitRate: INT,
869 #[doc = "< Number of PCM samples per codec frame and audio"]
870 #[doc = "channel."]
871 pub samplesPerFrame: ::std::os::raw::c_int,
872 #[doc = "< Number of audio channels."]
873 pub noChannels: ::std::os::raw::c_int,
874 pub bitsFrame: ::std::os::raw::c_int,
875 #[doc = "< Amount of encoder subframes. 1 means no subframing."]
876 pub nSubFrames: ::std::os::raw::c_int,
877 #[doc = "< The number of the sub-frames which are grouped and"]
878 #[doc = "transmitted in a super-frame (BSAC)."]
879 pub BSACnumOfSubFrame: ::std::os::raw::c_int,
880 #[doc = "< The average length of the large-step layers in bytes"]
881 #[doc = "(BSAC)."]
882 pub BSAClayerLength: ::std::os::raw::c_int,
883 #[doc = "< flags"]
884 pub flags: UINT,
885 #[doc = "< Matrix mixdown index to put into PCE. Default value"]
886 #[doc = "0 means no mixdown coefficient, valid values are 1-4"]
887 #[doc = "which correspond to matrix_mixdown_idx 0-3."]
888 pub matrixMixdownA: UCHAR,
889 #[doc = "< Frame period for sending in band configuration"]
890 #[doc = "buffers in the transport layer."]
891 pub headerPeriod: UCHAR,
892 #[doc = "< USAC MPS stereo mode"]
893 pub stereoConfigIndex: UCHAR,
894 #[doc = "< USAC SBR mode"]
895 pub sbrMode: UCHAR,
896 #[doc = "< 0: implicit signaling, 1: backwards"]
897 #[doc = "compatible explicit signaling, 2:"]
898 #[doc = "hierarcical explicit signaling"]
899 pub sbrSignaling: SBR_PS_SIGNALING,
900 #[doc = "< raw codec specific config as bit stream"]
901 pub rawConfig: [UCHAR; 64usize],
902 #[doc = "< Size of rawConfig in bits"]
903 pub rawConfigBits: ::std::os::raw::c_int,
904 pub sbrPresent: UCHAR,
905 pub psPresent: UCHAR,
906}
907#[test]
908fn bindgen_test_layout_CODER_CONFIG() {
909 assert_eq!(
910 ::std::mem::size_of::<CODER_CONFIG>(),
911 140usize,
912 concat!("Size of: ", stringify!(CODER_CONFIG))
913 );
914 assert_eq!(
915 ::std::mem::align_of::<CODER_CONFIG>(),
916 4usize,
917 concat!("Alignment of ", stringify!(CODER_CONFIG))
918 );
919 assert_eq!(
920 unsafe { &(*(::std::ptr::null::<CODER_CONFIG>())).aot as *const _ as usize },
921 0usize,
922 concat!(
923 "Offset of field: ",
924 stringify!(CODER_CONFIG),
925 "::",
926 stringify!(aot)
927 )
928 );
929 assert_eq!(
930 unsafe { &(*(::std::ptr::null::<CODER_CONFIG>())).extAOT as *const _ as usize },
931 4usize,
932 concat!(
933 "Offset of field: ",
934 stringify!(CODER_CONFIG),
935 "::",
936 stringify!(extAOT)
937 )
938 );
939 assert_eq!(
940 unsafe { &(*(::std::ptr::null::<CODER_CONFIG>())).channelMode as *const _ as usize },
941 8usize,
942 concat!(
943 "Offset of field: ",
944 stringify!(CODER_CONFIG),
945 "::",
946 stringify!(channelMode)
947 )
948 );
949 assert_eq!(
950 unsafe { &(*(::std::ptr::null::<CODER_CONFIG>())).channelConfigZero as *const _ as usize },
951 12usize,
952 concat!(
953 "Offset of field: ",
954 stringify!(CODER_CONFIG),
955 "::",
956 stringify!(channelConfigZero)
957 )
958 );
959 assert_eq!(
960 unsafe { &(*(::std::ptr::null::<CODER_CONFIG>())).samplingRate as *const _ as usize },
961 16usize,
962 concat!(
963 "Offset of field: ",
964 stringify!(CODER_CONFIG),
965 "::",
966 stringify!(samplingRate)
967 )
968 );
969 assert_eq!(
970 unsafe { &(*(::std::ptr::null::<CODER_CONFIG>())).extSamplingRate as *const _ as usize },
971 20usize,
972 concat!(
973 "Offset of field: ",
974 stringify!(CODER_CONFIG),
975 "::",
976 stringify!(extSamplingRate)
977 )
978 );
979 assert_eq!(
980 unsafe {
981 &(*(::std::ptr::null::<CODER_CONFIG>())).downscaleSamplingRate as *const _ as usize
982 },
983 24usize,
984 concat!(
985 "Offset of field: ",
986 stringify!(CODER_CONFIG),
987 "::",
988 stringify!(downscaleSamplingRate)
989 )
990 );
991 assert_eq!(
992 unsafe { &(*(::std::ptr::null::<CODER_CONFIG>())).bitRate as *const _ as usize },
993 28usize,
994 concat!(
995 "Offset of field: ",
996 stringify!(CODER_CONFIG),
997 "::",
998 stringify!(bitRate)
999 )
1000 );
1001 assert_eq!(
1002 unsafe { &(*(::std::ptr::null::<CODER_CONFIG>())).samplesPerFrame as *const _ as usize },
1003 32usize,
1004 concat!(
1005 "Offset of field: ",
1006 stringify!(CODER_CONFIG),
1007 "::",
1008 stringify!(samplesPerFrame)
1009 )
1010 );
1011 assert_eq!(
1012 unsafe { &(*(::std::ptr::null::<CODER_CONFIG>())).noChannels as *const _ as usize },
1013 36usize,
1014 concat!(
1015 "Offset of field: ",
1016 stringify!(CODER_CONFIG),
1017 "::",
1018 stringify!(noChannels)
1019 )
1020 );
1021 assert_eq!(
1022 unsafe { &(*(::std::ptr::null::<CODER_CONFIG>())).bitsFrame as *const _ as usize },
1023 40usize,
1024 concat!(
1025 "Offset of field: ",
1026 stringify!(CODER_CONFIG),
1027 "::",
1028 stringify!(bitsFrame)
1029 )
1030 );
1031 assert_eq!(
1032 unsafe { &(*(::std::ptr::null::<CODER_CONFIG>())).nSubFrames as *const _ as usize },
1033 44usize,
1034 concat!(
1035 "Offset of field: ",
1036 stringify!(CODER_CONFIG),
1037 "::",
1038 stringify!(nSubFrames)
1039 )
1040 );
1041 assert_eq!(
1042 unsafe { &(*(::std::ptr::null::<CODER_CONFIG>())).BSACnumOfSubFrame as *const _ as usize },
1043 48usize,
1044 concat!(
1045 "Offset of field: ",
1046 stringify!(CODER_CONFIG),
1047 "::",
1048 stringify!(BSACnumOfSubFrame)
1049 )
1050 );
1051 assert_eq!(
1052 unsafe { &(*(::std::ptr::null::<CODER_CONFIG>())).BSAClayerLength as *const _ as usize },
1053 52usize,
1054 concat!(
1055 "Offset of field: ",
1056 stringify!(CODER_CONFIG),
1057 "::",
1058 stringify!(BSAClayerLength)
1059 )
1060 );
1061 assert_eq!(
1062 unsafe { &(*(::std::ptr::null::<CODER_CONFIG>())).flags as *const _ as usize },
1063 56usize,
1064 concat!(
1065 "Offset of field: ",
1066 stringify!(CODER_CONFIG),
1067 "::",
1068 stringify!(flags)
1069 )
1070 );
1071 assert_eq!(
1072 unsafe { &(*(::std::ptr::null::<CODER_CONFIG>())).matrixMixdownA as *const _ as usize },
1073 60usize,
1074 concat!(
1075 "Offset of field: ",
1076 stringify!(CODER_CONFIG),
1077 "::",
1078 stringify!(matrixMixdownA)
1079 )
1080 );
1081 assert_eq!(
1082 unsafe { &(*(::std::ptr::null::<CODER_CONFIG>())).headerPeriod as *const _ as usize },
1083 61usize,
1084 concat!(
1085 "Offset of field: ",
1086 stringify!(CODER_CONFIG),
1087 "::",
1088 stringify!(headerPeriod)
1089 )
1090 );
1091 assert_eq!(
1092 unsafe { &(*(::std::ptr::null::<CODER_CONFIG>())).stereoConfigIndex as *const _ as usize },
1093 62usize,
1094 concat!(
1095 "Offset of field: ",
1096 stringify!(CODER_CONFIG),
1097 "::",
1098 stringify!(stereoConfigIndex)
1099 )
1100 );
1101 assert_eq!(
1102 unsafe { &(*(::std::ptr::null::<CODER_CONFIG>())).sbrMode as *const _ as usize },
1103 63usize,
1104 concat!(
1105 "Offset of field: ",
1106 stringify!(CODER_CONFIG),
1107 "::",
1108 stringify!(sbrMode)
1109 )
1110 );
1111 assert_eq!(
1112 unsafe { &(*(::std::ptr::null::<CODER_CONFIG>())).sbrSignaling as *const _ as usize },
1113 64usize,
1114 concat!(
1115 "Offset of field: ",
1116 stringify!(CODER_CONFIG),
1117 "::",
1118 stringify!(sbrSignaling)
1119 )
1120 );
1121 assert_eq!(
1122 unsafe { &(*(::std::ptr::null::<CODER_CONFIG>())).rawConfig as *const _ as usize },
1123 68usize,
1124 concat!(
1125 "Offset of field: ",
1126 stringify!(CODER_CONFIG),
1127 "::",
1128 stringify!(rawConfig)
1129 )
1130 );
1131 assert_eq!(
1132 unsafe { &(*(::std::ptr::null::<CODER_CONFIG>())).rawConfigBits as *const _ as usize },
1133 132usize,
1134 concat!(
1135 "Offset of field: ",
1136 stringify!(CODER_CONFIG),
1137 "::",
1138 stringify!(rawConfigBits)
1139 )
1140 );
1141 assert_eq!(
1142 unsafe { &(*(::std::ptr::null::<CODER_CONFIG>())).sbrPresent as *const _ as usize },
1143 136usize,
1144 concat!(
1145 "Offset of field: ",
1146 stringify!(CODER_CONFIG),
1147 "::",
1148 stringify!(sbrPresent)
1149 )
1150 );
1151 assert_eq!(
1152 unsafe { &(*(::std::ptr::null::<CODER_CONFIG>())).psPresent as *const _ as usize },
1153 137usize,
1154 concat!(
1155 "Offset of field: ",
1156 stringify!(CODER_CONFIG),
1157 "::",
1158 stringify!(psPresent)
1159 )
1160 );
1161}
1162#[doc = "< Invalid Element helper ID."]
1163pub const MP4_ELEMENT_ID_ID_NONE: MP4_ELEMENT_ID = -1;
1164#[doc = "< Single Channel Element."]
1165pub const MP4_ELEMENT_ID_ID_SCE: MP4_ELEMENT_ID = 0;
1166#[doc = "< Channel Pair Element."]
1167pub const MP4_ELEMENT_ID_ID_CPE: MP4_ELEMENT_ID = 1;
1168#[doc = "< Coupling Channel Element."]
1169pub const MP4_ELEMENT_ID_ID_CCE: MP4_ELEMENT_ID = 2;
1170#[doc = "< LFE Channel Element."]
1171pub const MP4_ELEMENT_ID_ID_LFE: MP4_ELEMENT_ID = 3;
1172#[doc = "< Currently one Data Stream Element for ancillary data is"]
1173#[doc = "supported."]
1174pub const MP4_ELEMENT_ID_ID_DSE: MP4_ELEMENT_ID = 4;
1175#[doc = "< Program Config Element."]
1176pub const MP4_ELEMENT_ID_ID_PCE: MP4_ELEMENT_ID = 5;
1177#[doc = "< Fill Element."]
1178pub const MP4_ELEMENT_ID_ID_FIL: MP4_ELEMENT_ID = 6;
1179#[doc = "< Arnie (End Element = Terminator)."]
1180pub const MP4_ELEMENT_ID_ID_END: MP4_ELEMENT_ID = 7;
1181#[doc = "< Extension Payload (ER only)."]
1182pub const MP4_ELEMENT_ID_ID_EXT: MP4_ELEMENT_ID = 8;
1183#[doc = "< AAC scalable element (ER only)."]
1184pub const MP4_ELEMENT_ID_ID_SCAL: MP4_ELEMENT_ID = 9;
1185#[doc = "< Single Channel Element."]
1186pub const MP4_ELEMENT_ID_ID_USAC_SCE: MP4_ELEMENT_ID = 16;
1187#[doc = "< Channel Pair Element."]
1188pub const MP4_ELEMENT_ID_ID_USAC_CPE: MP4_ELEMENT_ID = 17;
1189#[doc = "< LFE Channel Element."]
1190pub const MP4_ELEMENT_ID_ID_USAC_LFE: MP4_ELEMENT_ID = 18;
1191#[doc = "< Extension Element."]
1192pub const MP4_ELEMENT_ID_ID_USAC_EXT: MP4_ELEMENT_ID = 19;
1193#[doc = "< Arnie (End Element = Terminator)."]
1194pub const MP4_ELEMENT_ID_ID_USAC_END: MP4_ELEMENT_ID = 20;
1195pub const MP4_ELEMENT_ID_ID_LAST: MP4_ELEMENT_ID = 21;
1196#[doc = " MP4 Element IDs."]
1197pub type MP4_ELEMENT_ID = i32;
1198pub const CONFIG_EXT_ID_ID_CONFIG_EXT_FILL: CONFIG_EXT_ID = 0;
1199pub const CONFIG_EXT_ID_ID_CONFIG_EXT_DOWNMIX: CONFIG_EXT_ID = 1;
1200pub const CONFIG_EXT_ID_ID_CONFIG_EXT_LOUDNESS_INFO: CONFIG_EXT_ID = 2;
1201pub const CONFIG_EXT_ID_ID_CONFIG_EXT_AUDIOSCENE_INFO: CONFIG_EXT_ID = 3;
1202pub const CONFIG_EXT_ID_ID_CONFIG_EXT_HOA_MATRIX: CONFIG_EXT_ID = 4;
1203pub const CONFIG_EXT_ID_ID_CONFIG_EXT_SIG_GROUP_INFO: CONFIG_EXT_ID = 6;
1204pub type CONFIG_EXT_ID = u32;
1205pub const EXT_PAYLOAD_TYPE_EXT_FIL: EXT_PAYLOAD_TYPE = 0;
1206pub const EXT_PAYLOAD_TYPE_EXT_FILL_DATA: EXT_PAYLOAD_TYPE = 1;
1207pub const EXT_PAYLOAD_TYPE_EXT_DATA_ELEMENT: EXT_PAYLOAD_TYPE = 2;
1208pub const EXT_PAYLOAD_TYPE_EXT_DATA_LENGTH: EXT_PAYLOAD_TYPE = 3;
1209pub const EXT_PAYLOAD_TYPE_EXT_UNI_DRC: EXT_PAYLOAD_TYPE = 4;
1210pub const EXT_PAYLOAD_TYPE_EXT_LDSAC_DATA: EXT_PAYLOAD_TYPE = 9;
1211pub const EXT_PAYLOAD_TYPE_EXT_SAOC_DATA: EXT_PAYLOAD_TYPE = 10;
1212pub const EXT_PAYLOAD_TYPE_EXT_DYNAMIC_RANGE: EXT_PAYLOAD_TYPE = 11;
1213pub const EXT_PAYLOAD_TYPE_EXT_SAC_DATA: EXT_PAYLOAD_TYPE = 12;
1214pub const EXT_PAYLOAD_TYPE_EXT_SBR_DATA: EXT_PAYLOAD_TYPE = 13;
1215pub const EXT_PAYLOAD_TYPE_EXT_SBR_DATA_CRC: EXT_PAYLOAD_TYPE = 14;
1216#[doc = " Extension payload types."]
1217pub type EXT_PAYLOAD_TYPE = u32;
1218pub const USAC_EXT_ELEMENT_TYPE_ID_EXT_ELE_FILL: USAC_EXT_ELEMENT_TYPE = 0;
1219pub const USAC_EXT_ELEMENT_TYPE_ID_EXT_ELE_MPEGS: USAC_EXT_ELEMENT_TYPE = 1;
1220pub const USAC_EXT_ELEMENT_TYPE_ID_EXT_ELE_SAOC: USAC_EXT_ELEMENT_TYPE = 2;
1221pub const USAC_EXT_ELEMENT_TYPE_ID_EXT_ELE_AUDIOPREROLL: USAC_EXT_ELEMENT_TYPE = 3;
1222pub const USAC_EXT_ELEMENT_TYPE_ID_EXT_ELE_UNI_DRC: USAC_EXT_ELEMENT_TYPE = 4;
1223pub const USAC_EXT_ELEMENT_TYPE_ID_EXT_ELE_OBJ_METADATA: USAC_EXT_ELEMENT_TYPE = 5;
1224pub const USAC_EXT_ELEMENT_TYPE_ID_EXT_ELE_SAOC_3D: USAC_EXT_ELEMENT_TYPE = 6;
1225pub const USAC_EXT_ELEMENT_TYPE_ID_EXT_ELE_HOA: USAC_EXT_ELEMENT_TYPE = 7;
1226pub const USAC_EXT_ELEMENT_TYPE_ID_EXT_ELE_FMT_CNVRTR: USAC_EXT_ELEMENT_TYPE = 8;
1227pub const USAC_EXT_ELEMENT_TYPE_ID_EXT_ELE_MCT: USAC_EXT_ELEMENT_TYPE = 9;
1228pub const USAC_EXT_ELEMENT_TYPE_ID_EXT_ELE_ENHANCED_OBJ_METADATA: USAC_EXT_ELEMENT_TYPE = 13;
1229pub const USAC_EXT_ELEMENT_TYPE_ID_EXT_ELE_VR_METADATA: USAC_EXT_ELEMENT_TYPE = 129;
1230pub const USAC_EXT_ELEMENT_TYPE_ID_EXT_ELE_UNKNOWN: USAC_EXT_ELEMENT_TYPE = 255;
1231#[doc = " MPEG-D USAC & RSVD60 3D audio Extension Element Types."]
1232pub type USAC_EXT_ELEMENT_TYPE = u32;
1233pub const TP_CONFIG_TYPE_TC_NOTHING: TP_CONFIG_TYPE = 0;
1234pub const TP_CONFIG_TYPE_TC_RAW_ADTS: TP_CONFIG_TYPE = 2;
1235pub const TP_CONFIG_TYPE_TC_RAW_LATM_MCP1: TP_CONFIG_TYPE = 6;
1236pub const TP_CONFIG_TYPE_TC_RAW_SDC: TP_CONFIG_TYPE = 21;
1237#[doc = " Proprietary raw packet file configuration data type identifier."]
1238pub type TP_CONFIG_TYPE = u32;
1239pub const FDK_MODULE_ID_FDK_NONE: FDK_MODULE_ID = 0;
1240pub const FDK_MODULE_ID_FDK_TOOLS: FDK_MODULE_ID = 1;
1241pub const FDK_MODULE_ID_FDK_SYSLIB: FDK_MODULE_ID = 2;
1242pub const FDK_MODULE_ID_FDK_AACDEC: FDK_MODULE_ID = 3;
1243pub const FDK_MODULE_ID_FDK_AACENC: FDK_MODULE_ID = 4;
1244pub const FDK_MODULE_ID_FDK_SBRDEC: FDK_MODULE_ID = 5;
1245pub const FDK_MODULE_ID_FDK_SBRENC: FDK_MODULE_ID = 6;
1246pub const FDK_MODULE_ID_FDK_TPDEC: FDK_MODULE_ID = 7;
1247pub const FDK_MODULE_ID_FDK_TPENC: FDK_MODULE_ID = 8;
1248pub const FDK_MODULE_ID_FDK_MPSDEC: FDK_MODULE_ID = 9;
1249pub const FDK_MODULE_ID_FDK_MPEGFILEREAD: FDK_MODULE_ID = 10;
1250pub const FDK_MODULE_ID_FDK_MPEGFILEWRITE: FDK_MODULE_ID = 11;
1251pub const FDK_MODULE_ID_FDK_PCMDMX: FDK_MODULE_ID = 31;
1252pub const FDK_MODULE_ID_FDK_MPSENC: FDK_MODULE_ID = 34;
1253pub const FDK_MODULE_ID_FDK_TDLIMIT: FDK_MODULE_ID = 35;
1254pub const FDK_MODULE_ID_FDK_UNIDRCDEC: FDK_MODULE_ID = 38;
1255pub const FDK_MODULE_ID_FDK_MODULE_LAST: FDK_MODULE_ID = 39;
1256pub type FDK_MODULE_ID = u32;
1257#[doc = " Library information."]
1258#[repr(C)]
1259#[derive(Debug, Copy, Clone)]
1260pub struct LIB_INFO {
1261 pub title: *const ::std::os::raw::c_char,
1262 pub build_date: *const ::std::os::raw::c_char,
1263 pub build_time: *const ::std::os::raw::c_char,
1264 pub module_id: FDK_MODULE_ID,
1265 pub version: INT,
1266 pub flags: UINT,
1267 pub versionStr: [::std::os::raw::c_char; 32usize],
1268}
1269#[test]
1270fn bindgen_test_layout_LIB_INFO() {
1271 assert_eq!(
1272 ::std::mem::size_of::<LIB_INFO>(),
1273 72usize,
1274 concat!("Size of: ", stringify!(LIB_INFO))
1275 );
1276 assert_eq!(
1277 ::std::mem::align_of::<LIB_INFO>(),
1278 8usize,
1279 concat!("Alignment of ", stringify!(LIB_INFO))
1280 );
1281 assert_eq!(
1282 unsafe { &(*(::std::ptr::null::<LIB_INFO>())).title as *const _ as usize },
1283 0usize,
1284 concat!(
1285 "Offset of field: ",
1286 stringify!(LIB_INFO),
1287 "::",
1288 stringify!(title)
1289 )
1290 );
1291 assert_eq!(
1292 unsafe { &(*(::std::ptr::null::<LIB_INFO>())).build_date as *const _ as usize },
1293 8usize,
1294 concat!(
1295 "Offset of field: ",
1296 stringify!(LIB_INFO),
1297 "::",
1298 stringify!(build_date)
1299 )
1300 );
1301 assert_eq!(
1302 unsafe { &(*(::std::ptr::null::<LIB_INFO>())).build_time as *const _ as usize },
1303 16usize,
1304 concat!(
1305 "Offset of field: ",
1306 stringify!(LIB_INFO),
1307 "::",
1308 stringify!(build_time)
1309 )
1310 );
1311 assert_eq!(
1312 unsafe { &(*(::std::ptr::null::<LIB_INFO>())).module_id as *const _ as usize },
1313 24usize,
1314 concat!(
1315 "Offset of field: ",
1316 stringify!(LIB_INFO),
1317 "::",
1318 stringify!(module_id)
1319 )
1320 );
1321 assert_eq!(
1322 unsafe { &(*(::std::ptr::null::<LIB_INFO>())).version as *const _ as usize },
1323 28usize,
1324 concat!(
1325 "Offset of field: ",
1326 stringify!(LIB_INFO),
1327 "::",
1328 stringify!(version)
1329 )
1330 );
1331 assert_eq!(
1332 unsafe { &(*(::std::ptr::null::<LIB_INFO>())).flags as *const _ as usize },
1333 32usize,
1334 concat!(
1335 "Offset of field: ",
1336 stringify!(LIB_INFO),
1337 "::",
1338 stringify!(flags)
1339 )
1340 );
1341 assert_eq!(
1342 unsafe { &(*(::std::ptr::null::<LIB_INFO>())).versionStr as *const _ as usize },
1343 36usize,
1344 concat!(
1345 "Offset of field: ",
1346 stringify!(LIB_INFO),
1347 "::",
1348 stringify!(versionStr)
1349 )
1350 );
1351}
1352#[doc = " I/O buffer descriptor."]
1353#[repr(C)]
1354#[derive(Debug, Copy, Clone)]
1355pub struct FDK_bufDescr {
1356 #[doc = "< Pointer to an array containing buffer base addresses."]
1357 #[doc = "Set to NULL for buffer requirement info."]
1358 pub ppBase: *mut *mut ::std::os::raw::c_void,
1359 #[doc = "< Pointer to an array containing the number of elements"]
1360 #[doc = "that can be placed in the specific buffer."]
1361 pub pBufSize: *mut UINT,
1362 #[doc = "< Pointer to an array containing the element size for each"]
1363 #[doc = "buffer in bytes. That is mostly the number returned by the"]
1364 #[doc = "sizeof() operator for the data type used for the specific"]
1365 #[doc = "buffer."]
1366 pub pEleSize: *mut UINT,
1367 #[doc = "< Pointer to an array of bit fields containing a description"]
1368 #[doc = "for each buffer. See XXX below for more details."]
1369 pub pBufType: *mut UINT,
1370 #[doc = "< Total number of buffers."]
1371 pub numBufs: UINT,
1372}
1373#[test]
1374fn bindgen_test_layout_FDK_bufDescr() {
1375 assert_eq!(
1376 ::std::mem::size_of::<FDK_bufDescr>(),
1377 40usize,
1378 concat!("Size of: ", stringify!(FDK_bufDescr))
1379 );
1380 assert_eq!(
1381 ::std::mem::align_of::<FDK_bufDescr>(),
1382 8usize,
1383 concat!("Alignment of ", stringify!(FDK_bufDescr))
1384 );
1385 assert_eq!(
1386 unsafe { &(*(::std::ptr::null::<FDK_bufDescr>())).ppBase as *const _ as usize },
1387 0usize,
1388 concat!(
1389 "Offset of field: ",
1390 stringify!(FDK_bufDescr),
1391 "::",
1392 stringify!(ppBase)
1393 )
1394 );
1395 assert_eq!(
1396 unsafe { &(*(::std::ptr::null::<FDK_bufDescr>())).pBufSize as *const _ as usize },
1397 8usize,
1398 concat!(
1399 "Offset of field: ",
1400 stringify!(FDK_bufDescr),
1401 "::",
1402 stringify!(pBufSize)
1403 )
1404 );
1405 assert_eq!(
1406 unsafe { &(*(::std::ptr::null::<FDK_bufDescr>())).pEleSize as *const _ as usize },
1407 16usize,
1408 concat!(
1409 "Offset of field: ",
1410 stringify!(FDK_bufDescr),
1411 "::",
1412 stringify!(pEleSize)
1413 )
1414 );
1415 assert_eq!(
1416 unsafe { &(*(::std::ptr::null::<FDK_bufDescr>())).pBufType as *const _ as usize },
1417 24usize,
1418 concat!(
1419 "Offset of field: ",
1420 stringify!(FDK_bufDescr),
1421 "::",
1422 stringify!(pBufType)
1423 )
1424 );
1425 assert_eq!(
1426 unsafe { &(*(::std::ptr::null::<FDK_bufDescr>())).numBufs as *const _ as usize },
1427 32usize,
1428 concat!(
1429 "Offset of field: ",
1430 stringify!(FDK_bufDescr),
1431 "::",
1432 stringify!(numBufs)
1433 )
1434 );
1435}
1436#[doc = "< No error happened. All fine."]
1437pub const AACENC_ERROR_AACENC_OK: AACENC_ERROR = 0;
1438pub const AACENC_ERROR_AACENC_INVALID_HANDLE: AACENC_ERROR = 32;
1439#[doc = "< Memory allocation failed."]
1440pub const AACENC_ERROR_AACENC_MEMORY_ERROR: AACENC_ERROR = 33;
1441#[doc = "< Parameter not available."]
1442pub const AACENC_ERROR_AACENC_UNSUPPORTED_PARAMETER: AACENC_ERROR = 34;
1443#[doc = "< Configuration not provided."]
1444pub const AACENC_ERROR_AACENC_INVALID_CONFIG: AACENC_ERROR = 35;
1445#[doc = "< General initialization error."]
1446pub const AACENC_ERROR_AACENC_INIT_ERROR: AACENC_ERROR = 64;
1447#[doc = "< AAC library initialization error."]
1448pub const AACENC_ERROR_AACENC_INIT_AAC_ERROR: AACENC_ERROR = 65;
1449#[doc = "< SBR library initialization error."]
1450pub const AACENC_ERROR_AACENC_INIT_SBR_ERROR: AACENC_ERROR = 66;
1451#[doc = "< Transport library initialization error."]
1452pub const AACENC_ERROR_AACENC_INIT_TP_ERROR: AACENC_ERROR = 67;
1453pub const AACENC_ERROR_AACENC_INIT_META_ERROR: AACENC_ERROR = 68;
1454#[doc = "< MPS library initialization error."]
1455pub const AACENC_ERROR_AACENC_INIT_MPS_ERROR: AACENC_ERROR = 69;
1456#[doc = "< The encoding process was interrupted by an"]
1457#[doc = "unexpected error."]
1458pub const AACENC_ERROR_AACENC_ENCODE_ERROR: AACENC_ERROR = 96;
1459#[doc = "< End of file reached."]
1460pub const AACENC_ERROR_AACENC_ENCODE_EOF: AACENC_ERROR = 128;
1461#[doc = " AAC encoder error codes."]
1462pub type AACENC_ERROR = u32;
1463#[doc = "< Audio input buffer, interleaved INT_PCM samples."]
1464pub const AACENC_BufferIdentifier_IN_AUDIO_DATA: AACENC_BufferIdentifier = 0;
1465#[doc = "< Ancillary data to be embedded into bitstream."]
1466pub const AACENC_BufferIdentifier_IN_ANCILLRY_DATA: AACENC_BufferIdentifier = 1;
1467#[doc = "< Setup structure for embedding meta data."]
1468pub const AACENC_BufferIdentifier_IN_METADATA_SETUP: AACENC_BufferIdentifier = 2;
1469#[doc = "< Buffer holds bitstream output data."]
1470pub const AACENC_BufferIdentifier_OUT_BITSTREAM_DATA: AACENC_BufferIdentifier = 3;
1471pub const AACENC_BufferIdentifier_OUT_AU_SIZES: AACENC_BufferIdentifier = 4;
1472#[doc = " AAC encoder buffer descriptors identifier."]
1473#[doc = " This identifier are used within buffer descriptors"]
1474#[doc = " AACENC_BufDesc::bufferIdentifiers."]
1475pub type AACENC_BufferIdentifier = u32;
1476#[repr(C)]
1477#[derive(Debug, Copy, Clone)]
1478pub struct AACENCODER {
1479 _unused: [u8; 0],
1480}
1481#[doc = " AAC encoder handle."]
1482pub type HANDLE_AACENCODER = *mut AACENCODER;
1483#[doc = " Provides some info about the encoder configuration."]
1484#[repr(C)]
1485#[derive(Copy, Clone)]
1486pub struct AACENC_InfoStruct {
1487 #[doc = "< Maximum number of encoder bitstream bytes within one"]
1488 #[doc = "frame. Size depends on maximum number of supported"]
1489 #[doc = "channels in encoder instance. For superframing (as"]
1490 #[doc = "used for example in DAB+), size has to be a multiple"]
1491 #[doc = "accordingly."]
1492 pub maxOutBufBytes: UINT,
1493 #[doc = "< Maximum number of ancillary data bytes which can be"]
1494 #[doc = "inserted into bitstream within one frame."]
1495 pub maxAncBytes: UINT,
1496 #[doc = "< Internal input buffer fill level in samples per"]
1497 #[doc = "channel. This parameter will automatically be cleared"]
1498 #[doc = "if samplingrate or channel(Mode/Order) changes."]
1499 pub inBufFillLevel: UINT,
1500 #[doc = "< Number of input channels expected in encoding"]
1501 #[doc = "process."]
1502 pub inputChannels: UINT,
1503 #[doc = "< Amount of input audio samples consumed each frame per"]
1504 #[doc = "channel, depending on audio object type configuration."]
1505 pub frameLength: UINT,
1506 #[doc = "< Codec delay in PCM samples/channel. Depends on framelength"]
1507 #[doc = "and AOT. Does not include framing delay for filling up encoder"]
1508 #[doc = "PCM input buffer."]
1509 pub nDelay: UINT,
1510 #[doc = "< Codec delay in PCM samples/channel, w/o delay caused by"]
1511 #[doc = "the decoder SBR module. This delay is needed to correctly"]
1512 #[doc = "write edit lists for gapless playback. The decoder may not"]
1513 #[doc = "know how much delay is introdcued by SBR, since it may not"]
1514 #[doc = "know if SBR is active at all (implicit signaling),"]
1515 #[doc = "therefore the deocder must take into account any delay"]
1516 #[doc = "caused by the SBR module."]
1517 pub nDelayCore: UINT,
1518 #[doc = "< Configuration buffer in binary format as an"]
1519 #[doc = "AudioSpecificConfig or StreamMuxConfig according to the"]
1520 #[doc = "selected transport type."]
1521 pub confBuf: [UCHAR; 64usize],
1522 #[doc = "< Number of valid bytes in confBuf."]
1523 pub confSize: UINT,
1524}
1525#[test]
1526fn bindgen_test_layout_AACENC_InfoStruct() {
1527 assert_eq!(
1528 ::std::mem::size_of::<AACENC_InfoStruct>(),
1529 96usize,
1530 concat!("Size of: ", stringify!(AACENC_InfoStruct))
1531 );
1532 assert_eq!(
1533 ::std::mem::align_of::<AACENC_InfoStruct>(),
1534 4usize,
1535 concat!("Alignment of ", stringify!(AACENC_InfoStruct))
1536 );
1537 assert_eq!(
1538 unsafe {
1539 &(*(::std::ptr::null::<AACENC_InfoStruct>())).maxOutBufBytes as *const _ as usize
1540 },
1541 0usize,
1542 concat!(
1543 "Offset of field: ",
1544 stringify!(AACENC_InfoStruct),
1545 "::",
1546 stringify!(maxOutBufBytes)
1547 )
1548 );
1549 assert_eq!(
1550 unsafe { &(*(::std::ptr::null::<AACENC_InfoStruct>())).maxAncBytes as *const _ as usize },
1551 4usize,
1552 concat!(
1553 "Offset of field: ",
1554 stringify!(AACENC_InfoStruct),
1555 "::",
1556 stringify!(maxAncBytes)
1557 )
1558 );
1559 assert_eq!(
1560 unsafe {
1561 &(*(::std::ptr::null::<AACENC_InfoStruct>())).inBufFillLevel as *const _ as usize
1562 },
1563 8usize,
1564 concat!(
1565 "Offset of field: ",
1566 stringify!(AACENC_InfoStruct),
1567 "::",
1568 stringify!(inBufFillLevel)
1569 )
1570 );
1571 assert_eq!(
1572 unsafe { &(*(::std::ptr::null::<AACENC_InfoStruct>())).inputChannels as *const _ as usize },
1573 12usize,
1574 concat!(
1575 "Offset of field: ",
1576 stringify!(AACENC_InfoStruct),
1577 "::",
1578 stringify!(inputChannels)
1579 )
1580 );
1581 assert_eq!(
1582 unsafe { &(*(::std::ptr::null::<AACENC_InfoStruct>())).frameLength as *const _ as usize },
1583 16usize,
1584 concat!(
1585 "Offset of field: ",
1586 stringify!(AACENC_InfoStruct),
1587 "::",
1588 stringify!(frameLength)
1589 )
1590 );
1591 assert_eq!(
1592 unsafe { &(*(::std::ptr::null::<AACENC_InfoStruct>())).nDelay as *const _ as usize },
1593 20usize,
1594 concat!(
1595 "Offset of field: ",
1596 stringify!(AACENC_InfoStruct),
1597 "::",
1598 stringify!(nDelay)
1599 )
1600 );
1601 assert_eq!(
1602 unsafe { &(*(::std::ptr::null::<AACENC_InfoStruct>())).nDelayCore as *const _ as usize },
1603 24usize,
1604 concat!(
1605 "Offset of field: ",
1606 stringify!(AACENC_InfoStruct),
1607 "::",
1608 stringify!(nDelayCore)
1609 )
1610 );
1611 assert_eq!(
1612 unsafe { &(*(::std::ptr::null::<AACENC_InfoStruct>())).confBuf as *const _ as usize },
1613 28usize,
1614 concat!(
1615 "Offset of field: ",
1616 stringify!(AACENC_InfoStruct),
1617 "::",
1618 stringify!(confBuf)
1619 )
1620 );
1621 assert_eq!(
1622 unsafe { &(*(::std::ptr::null::<AACENC_InfoStruct>())).confSize as *const _ as usize },
1623 92usize,
1624 concat!(
1625 "Offset of field: ",
1626 stringify!(AACENC_InfoStruct),
1627 "::",
1628 stringify!(confSize)
1629 )
1630 );
1631}
1632#[doc = " Describes the input and output buffers for an aacEncEncode() call."]
1633#[repr(C)]
1634#[derive(Debug, Copy, Clone)]
1635pub struct AACENC_BufDesc {
1636 #[doc = "< Number of buffers."]
1637 pub numBufs: INT,
1638 #[doc = "< Pointer to vector containing buffer addresses."]
1639 pub bufs: *mut *mut ::std::os::raw::c_void,
1640 #[doc = "< Identifier of each buffer element. See"]
1641 #[doc = "::AACENC_BufferIdentifier."]
1642 pub bufferIdentifiers: *mut INT,
1643 #[doc = "< Size of each buffer in 8-bit bytes."]
1644 pub bufSizes: *mut INT,
1645 #[doc = "< Size of each buffer element in bytes."]
1646 pub bufElSizes: *mut INT,
1647}
1648#[test]
1649fn bindgen_test_layout_AACENC_BufDesc() {
1650 assert_eq!(
1651 ::std::mem::size_of::<AACENC_BufDesc>(),
1652 40usize,
1653 concat!("Size of: ", stringify!(AACENC_BufDesc))
1654 );
1655 assert_eq!(
1656 ::std::mem::align_of::<AACENC_BufDesc>(),
1657 8usize,
1658 concat!("Alignment of ", stringify!(AACENC_BufDesc))
1659 );
1660 assert_eq!(
1661 unsafe { &(*(::std::ptr::null::<AACENC_BufDesc>())).numBufs as *const _ as usize },
1662 0usize,
1663 concat!(
1664 "Offset of field: ",
1665 stringify!(AACENC_BufDesc),
1666 "::",
1667 stringify!(numBufs)
1668 )
1669 );
1670 assert_eq!(
1671 unsafe { &(*(::std::ptr::null::<AACENC_BufDesc>())).bufs as *const _ as usize },
1672 8usize,
1673 concat!(
1674 "Offset of field: ",
1675 stringify!(AACENC_BufDesc),
1676 "::",
1677 stringify!(bufs)
1678 )
1679 );
1680 assert_eq!(
1681 unsafe {
1682 &(*(::std::ptr::null::<AACENC_BufDesc>())).bufferIdentifiers as *const _ as usize
1683 },
1684 16usize,
1685 concat!(
1686 "Offset of field: ",
1687 stringify!(AACENC_BufDesc),
1688 "::",
1689 stringify!(bufferIdentifiers)
1690 )
1691 );
1692 assert_eq!(
1693 unsafe { &(*(::std::ptr::null::<AACENC_BufDesc>())).bufSizes as *const _ as usize },
1694 24usize,
1695 concat!(
1696 "Offset of field: ",
1697 stringify!(AACENC_BufDesc),
1698 "::",
1699 stringify!(bufSizes)
1700 )
1701 );
1702 assert_eq!(
1703 unsafe { &(*(::std::ptr::null::<AACENC_BufDesc>())).bufElSizes as *const _ as usize },
1704 32usize,
1705 concat!(
1706 "Offset of field: ",
1707 stringify!(AACENC_BufDesc),
1708 "::",
1709 stringify!(bufElSizes)
1710 )
1711 );
1712}
1713#[doc = " Defines the input arguments for an aacEncEncode() call."]
1714#[repr(C)]
1715#[derive(Debug, Copy, Clone)]
1716pub struct AACENC_InArgs {
1717 #[doc = "< Number of valid input audio samples (multiple of input"]
1718 #[doc = "channels)."]
1719 pub numInSamples: INT,
1720 #[doc = "< Number of ancillary data bytes to be encoded."]
1721 pub numAncBytes: INT,
1722}
1723#[test]
1724fn bindgen_test_layout_AACENC_InArgs() {
1725 assert_eq!(
1726 ::std::mem::size_of::<AACENC_InArgs>(),
1727 8usize,
1728 concat!("Size of: ", stringify!(AACENC_InArgs))
1729 );
1730 assert_eq!(
1731 ::std::mem::align_of::<AACENC_InArgs>(),
1732 4usize,
1733 concat!("Alignment of ", stringify!(AACENC_InArgs))
1734 );
1735 assert_eq!(
1736 unsafe { &(*(::std::ptr::null::<AACENC_InArgs>())).numInSamples as *const _ as usize },
1737 0usize,
1738 concat!(
1739 "Offset of field: ",
1740 stringify!(AACENC_InArgs),
1741 "::",
1742 stringify!(numInSamples)
1743 )
1744 );
1745 assert_eq!(
1746 unsafe { &(*(::std::ptr::null::<AACENC_InArgs>())).numAncBytes as *const _ as usize },
1747 4usize,
1748 concat!(
1749 "Offset of field: ",
1750 stringify!(AACENC_InArgs),
1751 "::",
1752 stringify!(numAncBytes)
1753 )
1754 );
1755}
1756#[doc = " Defines the output arguments for an aacEncEncode() call."]
1757#[repr(C)]
1758#[derive(Debug, Copy, Clone)]
1759pub struct AACENC_OutArgs {
1760 #[doc = "< Number of valid bitstream bytes generated during"]
1761 #[doc = "aacEncEncode()."]
1762 pub numOutBytes: INT,
1763 #[doc = "< Number of input audio samples consumed by the encoder."]
1764 pub numInSamples: INT,
1765 #[doc = "< Number of ancillary data bytes consumed by the encoder."]
1766 pub numAncBytes: INT,
1767 #[doc = "< State of the bit reservoir in bits."]
1768 pub bitResState: INT,
1769}
1770#[test]
1771fn bindgen_test_layout_AACENC_OutArgs() {
1772 assert_eq!(
1773 ::std::mem::size_of::<AACENC_OutArgs>(),
1774 16usize,
1775 concat!("Size of: ", stringify!(AACENC_OutArgs))
1776 );
1777 assert_eq!(
1778 ::std::mem::align_of::<AACENC_OutArgs>(),
1779 4usize,
1780 concat!("Alignment of ", stringify!(AACENC_OutArgs))
1781 );
1782 assert_eq!(
1783 unsafe { &(*(::std::ptr::null::<AACENC_OutArgs>())).numOutBytes as *const _ as usize },
1784 0usize,
1785 concat!(
1786 "Offset of field: ",
1787 stringify!(AACENC_OutArgs),
1788 "::",
1789 stringify!(numOutBytes)
1790 )
1791 );
1792 assert_eq!(
1793 unsafe { &(*(::std::ptr::null::<AACENC_OutArgs>())).numInSamples as *const _ as usize },
1794 4usize,
1795 concat!(
1796 "Offset of field: ",
1797 stringify!(AACENC_OutArgs),
1798 "::",
1799 stringify!(numInSamples)
1800 )
1801 );
1802 assert_eq!(
1803 unsafe { &(*(::std::ptr::null::<AACENC_OutArgs>())).numAncBytes as *const _ as usize },
1804 8usize,
1805 concat!(
1806 "Offset of field: ",
1807 stringify!(AACENC_OutArgs),
1808 "::",
1809 stringify!(numAncBytes)
1810 )
1811 );
1812 assert_eq!(
1813 unsafe { &(*(::std::ptr::null::<AACENC_OutArgs>())).bitResState as *const _ as usize },
1814 12usize,
1815 concat!(
1816 "Offset of field: ",
1817 stringify!(AACENC_OutArgs),
1818 "::",
1819 stringify!(bitResState)
1820 )
1821 );
1822}
1823#[doc = "< None."]
1824pub const AACENC_METADATA_DRC_PROFILE_AACENC_METADATA_DRC_NONE: AACENC_METADATA_DRC_PROFILE = 0;
1825#[doc = "< Film standard."]
1826pub const AACENC_METADATA_DRC_PROFILE_AACENC_METADATA_DRC_FILMSTANDARD:
1827 AACENC_METADATA_DRC_PROFILE = 1;
1828#[doc = "< Film light."]
1829pub const AACENC_METADATA_DRC_PROFILE_AACENC_METADATA_DRC_FILMLIGHT: AACENC_METADATA_DRC_PROFILE =
1830 2;
1831#[doc = "< Music standard."]
1832pub const AACENC_METADATA_DRC_PROFILE_AACENC_METADATA_DRC_MUSICSTANDARD:
1833 AACENC_METADATA_DRC_PROFILE = 3;
1834#[doc = "< Music light."]
1835pub const AACENC_METADATA_DRC_PROFILE_AACENC_METADATA_DRC_MUSICLIGHT: AACENC_METADATA_DRC_PROFILE =
1836 4;
1837#[doc = "< Speech."]
1838pub const AACENC_METADATA_DRC_PROFILE_AACENC_METADATA_DRC_SPEECH: AACENC_METADATA_DRC_PROFILE = 5;
1839pub const AACENC_METADATA_DRC_PROFILE_AACENC_METADATA_DRC_NOT_PRESENT: AACENC_METADATA_DRC_PROFILE =
1840 256;
1841#[doc = " Meta Data Compression Profiles."]
1842pub type AACENC_METADATA_DRC_PROFILE = u32;
1843#[doc = " Meta Data setup structure."]
1844#[repr(C)]
1845#[derive(Debug, Copy, Clone)]
1846pub struct AACENC_MetaData {
1847 #[doc = "< MPEG DRC compression profile. See"]
1848 #[doc = "::AACENC_METADATA_DRC_PROFILE."]
1849 pub drc_profile: AACENC_METADATA_DRC_PROFILE,
1850 #[doc = "< ETSI heavy compression profile. See"]
1851 #[doc = "::AACENC_METADATA_DRC_PROFILE."]
1852 pub comp_profile: AACENC_METADATA_DRC_PROFILE,
1853 #[doc = "< Used to define expected level to:"]
1854 #[doc = "Scaled with 16 bit. x*2^16."]
1855 pub drc_TargetRefLevel: INT,
1856 #[doc = "< Adjust limiter to avoid overload."]
1857 #[doc = "Scaled with 16 bit. x*2^16."]
1858 pub comp_TargetRefLevel: INT,
1859 #[doc = "< Flag, if prog_ref_level is present"]
1860 pub prog_ref_level_present: INT,
1861 #[doc = "< Programme Reference Level = Dialogue Level:"]
1862 #[doc = "-31.75dB .. 0 dB ; stepsize: 0.25dB"]
1863 #[doc = "Scaled with 16 bit. x*2^16."]
1864 pub prog_ref_level: INT,
1865 #[doc = "< Flag, if dmx-idx should be written in"]
1866 #[doc = "programme config element"]
1867 pub PCE_mixdown_idx_present: UCHAR,
1868 #[doc = "< Flag, if dmx-lvl should be written in"]
1869 #[doc = "ETSI-ancData"]
1870 pub ETSI_DmxLvl_present: UCHAR,
1871 #[doc = "< Center downmix level (0...7, according to table)"]
1872 pub centerMixLevel: SCHAR,
1873 #[doc = "< Surround downmix level (0...7, according to"]
1874 #[doc = "table)"]
1875 pub surroundMixLevel: SCHAR,
1876 #[doc = "< Indication for Dolby Surround Encoding Mode."]
1877 #[doc = "- 0: Dolby Surround mode not indicated"]
1878 #[doc = "- 1: 2-ch audio part is not Dolby surround encoded"]
1879 #[doc = "- 2: 2-ch audio part is Dolby surround encoded"]
1880 pub dolbySurroundMode: UCHAR,
1881 #[doc = "< Indicatin for DRC Presentation Mode."]
1882 #[doc = "- 0: Presentation mode not inticated"]
1883 #[doc = "- 1: Presentation mode 1"]
1884 #[doc = "- 2: Presentation mode 2"]
1885 pub drcPresentationMode: UCHAR,
1886 pub ExtMetaData: AACENC_MetaData__bindgen_ty_1,
1887}
1888#[repr(C)]
1889#[derive(Debug, Copy, Clone)]
1890pub struct AACENC_MetaData__bindgen_ty_1 {
1891 pub extAncDataEnable: UCHAR,
1892 pub extDownmixLevelEnable: UCHAR,
1893 pub extDownmixLevel_A: UCHAR,
1894 pub extDownmixLevel_B: UCHAR,
1895 pub dmxGainEnable: UCHAR,
1896 pub dmxGain5: INT,
1897 pub dmxGain2: INT,
1898 pub lfeDmxEnable: UCHAR,
1899 pub lfeDmxLevel: UCHAR,
1900}
1901#[test]
1902fn bindgen_test_layout_AACENC_MetaData__bindgen_ty_1() {
1903 assert_eq!(
1904 ::std::mem::size_of::<AACENC_MetaData__bindgen_ty_1>(),
1905 20usize,
1906 concat!("Size of: ", stringify!(AACENC_MetaData__bindgen_ty_1))
1907 );
1908 assert_eq!(
1909 ::std::mem::align_of::<AACENC_MetaData__bindgen_ty_1>(),
1910 4usize,
1911 concat!("Alignment of ", stringify!(AACENC_MetaData__bindgen_ty_1))
1912 );
1913 assert_eq!(
1914 unsafe {
1915 &(*(::std::ptr::null::<AACENC_MetaData__bindgen_ty_1>())).extAncDataEnable as *const _
1916 as usize
1917 },
1918 0usize,
1919 concat!(
1920 "Offset of field: ",
1921 stringify!(AACENC_MetaData__bindgen_ty_1),
1922 "::",
1923 stringify!(extAncDataEnable)
1924 )
1925 );
1926 assert_eq!(
1927 unsafe {
1928 &(*(::std::ptr::null::<AACENC_MetaData__bindgen_ty_1>())).extDownmixLevelEnable
1929 as *const _ as usize
1930 },
1931 1usize,
1932 concat!(
1933 "Offset of field: ",
1934 stringify!(AACENC_MetaData__bindgen_ty_1),
1935 "::",
1936 stringify!(extDownmixLevelEnable)
1937 )
1938 );
1939 assert_eq!(
1940 unsafe {
1941 &(*(::std::ptr::null::<AACENC_MetaData__bindgen_ty_1>())).extDownmixLevel_A as *const _
1942 as usize
1943 },
1944 2usize,
1945 concat!(
1946 "Offset of field: ",
1947 stringify!(AACENC_MetaData__bindgen_ty_1),
1948 "::",
1949 stringify!(extDownmixLevel_A)
1950 )
1951 );
1952 assert_eq!(
1953 unsafe {
1954 &(*(::std::ptr::null::<AACENC_MetaData__bindgen_ty_1>())).extDownmixLevel_B as *const _
1955 as usize
1956 },
1957 3usize,
1958 concat!(
1959 "Offset of field: ",
1960 stringify!(AACENC_MetaData__bindgen_ty_1),
1961 "::",
1962 stringify!(extDownmixLevel_B)
1963 )
1964 );
1965 assert_eq!(
1966 unsafe {
1967 &(*(::std::ptr::null::<AACENC_MetaData__bindgen_ty_1>())).dmxGainEnable as *const _
1968 as usize
1969 },
1970 4usize,
1971 concat!(
1972 "Offset of field: ",
1973 stringify!(AACENC_MetaData__bindgen_ty_1),
1974 "::",
1975 stringify!(dmxGainEnable)
1976 )
1977 );
1978 assert_eq!(
1979 unsafe {
1980 &(*(::std::ptr::null::<AACENC_MetaData__bindgen_ty_1>())).dmxGain5 as *const _ as usize
1981 },
1982 8usize,
1983 concat!(
1984 "Offset of field: ",
1985 stringify!(AACENC_MetaData__bindgen_ty_1),
1986 "::",
1987 stringify!(dmxGain5)
1988 )
1989 );
1990 assert_eq!(
1991 unsafe {
1992 &(*(::std::ptr::null::<AACENC_MetaData__bindgen_ty_1>())).dmxGain2 as *const _ as usize
1993 },
1994 12usize,
1995 concat!(
1996 "Offset of field: ",
1997 stringify!(AACENC_MetaData__bindgen_ty_1),
1998 "::",
1999 stringify!(dmxGain2)
2000 )
2001 );
2002 assert_eq!(
2003 unsafe {
2004 &(*(::std::ptr::null::<AACENC_MetaData__bindgen_ty_1>())).lfeDmxEnable as *const _
2005 as usize
2006 },
2007 16usize,
2008 concat!(
2009 "Offset of field: ",
2010 stringify!(AACENC_MetaData__bindgen_ty_1),
2011 "::",
2012 stringify!(lfeDmxEnable)
2013 )
2014 );
2015 assert_eq!(
2016 unsafe {
2017 &(*(::std::ptr::null::<AACENC_MetaData__bindgen_ty_1>())).lfeDmxLevel as *const _
2018 as usize
2019 },
2020 17usize,
2021 concat!(
2022 "Offset of field: ",
2023 stringify!(AACENC_MetaData__bindgen_ty_1),
2024 "::",
2025 stringify!(lfeDmxLevel)
2026 )
2027 );
2028}
2029#[test]
2030fn bindgen_test_layout_AACENC_MetaData() {
2031 assert_eq!(
2032 ::std::mem::size_of::<AACENC_MetaData>(),
2033 52usize,
2034 concat!("Size of: ", stringify!(AACENC_MetaData))
2035 );
2036 assert_eq!(
2037 ::std::mem::align_of::<AACENC_MetaData>(),
2038 4usize,
2039 concat!("Alignment of ", stringify!(AACENC_MetaData))
2040 );
2041 assert_eq!(
2042 unsafe { &(*(::std::ptr::null::<AACENC_MetaData>())).drc_profile as *const _ as usize },
2043 0usize,
2044 concat!(
2045 "Offset of field: ",
2046 stringify!(AACENC_MetaData),
2047 "::",
2048 stringify!(drc_profile)
2049 )
2050 );
2051 assert_eq!(
2052 unsafe { &(*(::std::ptr::null::<AACENC_MetaData>())).comp_profile as *const _ as usize },
2053 4usize,
2054 concat!(
2055 "Offset of field: ",
2056 stringify!(AACENC_MetaData),
2057 "::",
2058 stringify!(comp_profile)
2059 )
2060 );
2061 assert_eq!(
2062 unsafe {
2063 &(*(::std::ptr::null::<AACENC_MetaData>())).drc_TargetRefLevel as *const _ as usize
2064 },
2065 8usize,
2066 concat!(
2067 "Offset of field: ",
2068 stringify!(AACENC_MetaData),
2069 "::",
2070 stringify!(drc_TargetRefLevel)
2071 )
2072 );
2073 assert_eq!(
2074 unsafe {
2075 &(*(::std::ptr::null::<AACENC_MetaData>())).comp_TargetRefLevel as *const _ as usize
2076 },
2077 12usize,
2078 concat!(
2079 "Offset of field: ",
2080 stringify!(AACENC_MetaData),
2081 "::",
2082 stringify!(comp_TargetRefLevel)
2083 )
2084 );
2085 assert_eq!(
2086 unsafe {
2087 &(*(::std::ptr::null::<AACENC_MetaData>())).prog_ref_level_present as *const _ as usize
2088 },
2089 16usize,
2090 concat!(
2091 "Offset of field: ",
2092 stringify!(AACENC_MetaData),
2093 "::",
2094 stringify!(prog_ref_level_present)
2095 )
2096 );
2097 assert_eq!(
2098 unsafe { &(*(::std::ptr::null::<AACENC_MetaData>())).prog_ref_level as *const _ as usize },
2099 20usize,
2100 concat!(
2101 "Offset of field: ",
2102 stringify!(AACENC_MetaData),
2103 "::",
2104 stringify!(prog_ref_level)
2105 )
2106 );
2107 assert_eq!(
2108 unsafe {
2109 &(*(::std::ptr::null::<AACENC_MetaData>())).PCE_mixdown_idx_present as *const _ as usize
2110 },
2111 24usize,
2112 concat!(
2113 "Offset of field: ",
2114 stringify!(AACENC_MetaData),
2115 "::",
2116 stringify!(PCE_mixdown_idx_present)
2117 )
2118 );
2119 assert_eq!(
2120 unsafe {
2121 &(*(::std::ptr::null::<AACENC_MetaData>())).ETSI_DmxLvl_present as *const _ as usize
2122 },
2123 25usize,
2124 concat!(
2125 "Offset of field: ",
2126 stringify!(AACENC_MetaData),
2127 "::",
2128 stringify!(ETSI_DmxLvl_present)
2129 )
2130 );
2131 assert_eq!(
2132 unsafe { &(*(::std::ptr::null::<AACENC_MetaData>())).centerMixLevel as *const _ as usize },
2133 26usize,
2134 concat!(
2135 "Offset of field: ",
2136 stringify!(AACENC_MetaData),
2137 "::",
2138 stringify!(centerMixLevel)
2139 )
2140 );
2141 assert_eq!(
2142 unsafe {
2143 &(*(::std::ptr::null::<AACENC_MetaData>())).surroundMixLevel as *const _ as usize
2144 },
2145 27usize,
2146 concat!(
2147 "Offset of field: ",
2148 stringify!(AACENC_MetaData),
2149 "::",
2150 stringify!(surroundMixLevel)
2151 )
2152 );
2153 assert_eq!(
2154 unsafe {
2155 &(*(::std::ptr::null::<AACENC_MetaData>())).dolbySurroundMode as *const _ as usize
2156 },
2157 28usize,
2158 concat!(
2159 "Offset of field: ",
2160 stringify!(AACENC_MetaData),
2161 "::",
2162 stringify!(dolbySurroundMode)
2163 )
2164 );
2165 assert_eq!(
2166 unsafe {
2167 &(*(::std::ptr::null::<AACENC_MetaData>())).drcPresentationMode as *const _ as usize
2168 },
2169 29usize,
2170 concat!(
2171 "Offset of field: ",
2172 stringify!(AACENC_MetaData),
2173 "::",
2174 stringify!(drcPresentationMode)
2175 )
2176 );
2177 assert_eq!(
2178 unsafe { &(*(::std::ptr::null::<AACENC_MetaData>())).ExtMetaData as *const _ as usize },
2179 32usize,
2180 concat!(
2181 "Offset of field: ",
2182 stringify!(AACENC_MetaData),
2183 "::",
2184 stringify!(ExtMetaData)
2185 )
2186 );
2187}
2188#[doc = "< Do not trigger initialization."]
2189pub const AACENC_CTRLFLAGS_AACENC_INIT_NONE: AACENC_CTRLFLAGS = 0;
2190pub const AACENC_CTRLFLAGS_AACENC_INIT_CONFIG: AACENC_CTRLFLAGS = 1;
2191#[doc = "< Reset all encoder modules history buffer."]
2192pub const AACENC_CTRLFLAGS_AACENC_INIT_STATES: AACENC_CTRLFLAGS = 2;
2193pub const AACENC_CTRLFLAGS_AACENC_INIT_TRANSPORT: AACENC_CTRLFLAGS = 4096;
2194pub const AACENC_CTRLFLAGS_AACENC_RESET_INBUFFER: AACENC_CTRLFLAGS = 8192;
2195#[doc = "< Initialize all."]
2196pub const AACENC_CTRLFLAGS_AACENC_INIT_ALL: AACENC_CTRLFLAGS = 65535;
2197#[doc = " AAC encoder control flags."]
2198#[doc = ""]
2199#[doc = " In interaction with the ::AACENC_CONTROL_STATE parameter it is possible to"]
2200#[doc = " get information about the internal initialization process. It is also"]
2201#[doc = " possible to overwrite the internal state from extern when necessary."]
2202pub type AACENC_CTRLFLAGS = u32;
2203pub const AACENC_PARAM_AACENC_AOT: AACENC_PARAM = 256;
2204#[doc = "< Total encoder bitrate. This parameter is"]
2205#[doc = "mandatory and interacts with ::AACENC_BITRATEMODE."]
2206#[doc = "- CBR: Bitrate in bits/second."]
2207#[doc = "- VBR: Variable bitrate. Bitrate argument will"]
2208#[doc = "be ignored. See \\ref suppBitrates for details."]
2209pub const AACENC_PARAM_AACENC_BITRATE: AACENC_PARAM = 257;
2210#[doc = "< Bitrate mode. Configuration can be different"]
2211#[doc = "kind of bitrate configurations:"]
2212#[doc = "- 0: Constant bitrate, use bitrate according"]
2213#[doc = "to ::AACENC_BITRATE. (default) Within none"]
2214#[doc = "LD/ELD ::AUDIO_OBJECT_TYPE, the CBR mode makes"]
2215#[doc = "use of full allowed bitreservoir. In contrast,"]
2216#[doc = "at Low-Delay ::AUDIO_OBJECT_TYPE the"]
2217#[doc = "bitreservoir is kept very small."]
2218#[doc = "- 1: Variable bitrate mode, \\ref vbrmode"]
2219#[doc = "\"very low bitrate\"."]
2220#[doc = "- 2: Variable bitrate mode, \\ref vbrmode"]
2221#[doc = "\"low bitrate\"."]
2222#[doc = "- 3: Variable bitrate mode, \\ref vbrmode"]
2223#[doc = "\"medium bitrate\"."]
2224#[doc = "- 4: Variable bitrate mode, \\ref vbrmode"]
2225#[doc = "\"high bitrate\"."]
2226#[doc = "- 5: Variable bitrate mode, \\ref vbrmode"]
2227#[doc = "\"very high bitrate\"."]
2228pub const AACENC_PARAM_AACENC_BITRATEMODE: AACENC_PARAM = 258;
2229#[doc = "< Audio input data sampling rate. Encoder"]
2230#[doc = "supports following sampling rates: 8000, 11025,"]
2231#[doc = "12000, 16000, 22050, 24000, 32000, 44100,"]
2232#[doc = "48000, 64000, 88200, 96000"]
2233pub const AACENC_PARAM_AACENC_SAMPLERATE: AACENC_PARAM = 259;
2234#[doc = "< Configure SBR independently of the chosen Audio"]
2235#[doc = "Object Type ::AUDIO_OBJECT_TYPE. This parameter"]
2236#[doc = "is for ELD audio object type only."]
2237#[doc = "- -1: Use ELD SBR auto configurator (default)."]
2238#[doc = "- 0: Disable Spectral Band Replication."]
2239#[doc = "- 1: Enable Spectral Band Replication."]
2240pub const AACENC_PARAM_AACENC_SBR_MODE: AACENC_PARAM = 260;
2241pub const AACENC_PARAM_AACENC_GRANULE_LENGTH: AACENC_PARAM = 261;
2242#[doc = "< Set explicit channel mode. Channel mode must"]
2243#[doc = "match with number of input channels."]
2244#[doc = "- 1-7, 11,12,14 and 33,34: MPEG channel"]
2245#[doc = "modes supported, see ::CHANNEL_MODE in"]
2246#[doc = "FDK_audio.h."]
2247pub const AACENC_PARAM_AACENC_CHANNELMODE: AACENC_PARAM = 262;
2248pub const AACENC_PARAM_AACENC_CHANNELORDER: AACENC_PARAM = 263;
2249pub const AACENC_PARAM_AACENC_SBR_RATIO: AACENC_PARAM = 264;
2250pub const AACENC_PARAM_AACENC_AFTERBURNER: AACENC_PARAM = 512;
2251#[doc = "< Core encoder audio bandwidth:"]
2252#[doc = "- 0: Determine audio bandwidth internally"]
2253#[doc = "(default, see chapter \\ref BEHAVIOUR_BANDWIDTH)."]
2254#[doc = "- 1 to fs/2: Audio bandwidth in Hertz. Limited"]
2255#[doc = "to 20kHz max. Not usable if SBR is active. This"]
2256#[doc = "setting is for experts only, better do not touch"]
2257#[doc = "this value to avoid degraded audio quality."]
2258pub const AACENC_PARAM_AACENC_BANDWIDTH: AACENC_PARAM = 515;
2259pub const AACENC_PARAM_AACENC_PEAK_BITRATE: AACENC_PARAM = 519;
2260#[doc = "< Transport type to be used. See ::TRANSPORT_TYPE"]
2261#[doc = "in FDK_audio.h. Following types can be configured"]
2262#[doc = "in encoder library:"]
2263#[doc = "- 0: raw access units"]
2264#[doc = "- 1: ADIF bitstream format"]
2265#[doc = "- 2: ADTS bitstream format"]
2266#[doc = "- 6: Audio Mux Elements (LATM) with"]
2267#[doc = "muxConfigPresent = 1"]
2268#[doc = "- 7: Audio Mux Elements (LATM) with"]
2269#[doc = "muxConfigPresent = 0, out of band StreamMuxConfig"]
2270#[doc = "- 10: Audio Sync Stream (LOAS)"]
2271pub const AACENC_PARAM_AACENC_TRANSMUX: AACENC_PARAM = 768;
2272pub const AACENC_PARAM_AACENC_HEADER_PERIOD: AACENC_PARAM = 769;
2273pub const AACENC_PARAM_AACENC_SIGNALING_MODE: AACENC_PARAM = 770;
2274pub const AACENC_PARAM_AACENC_TPSUBFRAMES: AACENC_PARAM = 771;
2275pub const AACENC_PARAM_AACENC_AUDIOMUXVER: AACENC_PARAM = 772;
2276#[doc = "< Configure protection in transport layer:"]
2277#[doc = "- 0: No protection. (default)"]
2278#[doc = "- 1: CRC active for ADTS transport format."]
2279pub const AACENC_PARAM_AACENC_PROTECTION: AACENC_PARAM = 774;
2280pub const AACENC_PARAM_AACENC_ANCILLARY_BITRATE: AACENC_PARAM = 1280;
2281#[doc = "< Configure Meta Data. See ::AACENC_MetaData"]
2282#[doc = "for further details:"]
2283#[doc = "- 0: Do not embed any metadata."]
2284#[doc = "- 1: Embed dynamic_range_info metadata."]
2285#[doc = "- 2: Embed dynamic_range_info and"]
2286#[doc = "ancillary_data metadata."]
2287#[doc = "- 3: Embed ancillary_data metadata."]
2288pub const AACENC_PARAM_AACENC_METADATA_MODE: AACENC_PARAM = 1536;
2289pub const AACENC_PARAM_AACENC_CONTROL_STATE: AACENC_PARAM = 65280;
2290#[doc = "< ------"]
2291pub const AACENC_PARAM_AACENC_NONE: AACENC_PARAM = 65535;
2292#[doc = " \\brief AAC encoder setting parameters."]
2293#[doc = ""]
2294#[doc = " Use aacEncoder_SetParam() function to configure, or use aacEncoder_GetParam()"]
2295#[doc = " function to read the internal status of the following parameters."]
2296pub type AACENC_PARAM = u32;
2297extern "C" {
2298 #[doc = " \\brief Open an instance of the encoder."]
2299 #[doc = ""]
2300 #[doc = " Allocate memory for an encoder instance with a functional range denoted by"]
2301 #[doc = " the function parameters. Preinitialize encoder instance with default"]
2302 #[doc = " configuration."]
2303 #[doc = ""]
2304 #[doc = " \\param phAacEncoder A pointer to an encoder handle. Initialized on return."]
2305 #[doc = " \\param encModules Specify encoder modules to be supported in this encoder"]
2306 #[doc = " instance:"]
2307 #[doc = " - 0x0: Allocate memory for all available encoder"]
2308 #[doc = " modules."]
2309 #[doc = " - else: Select memory allocation regarding encoder"]
2310 #[doc = " modules. Following flags are possible and can be combined."]
2311 #[doc = " - 0x01: AAC module."]
2312 #[doc = " - 0x02: SBR module."]
2313 #[doc = " - 0x04: PS module."]
2314 #[doc = " - 0x08: MPS module."]
2315 #[doc = " - 0x10: Metadata module."]
2316 #[doc = " - example: (0x01|0x02|0x04|0x08|0x10) allocates"]
2317 #[doc = " all modules and is equivalent to default configuration denotet by 0x0."]
2318 #[doc = " \\param maxChannels Number of channels to be allocated. This parameter can"]
2319 #[doc = " be used in different ways:"]
2320 #[doc = " - 0: Allocate maximum number of AAC and SBR channels as"]
2321 #[doc = " supported by the library."]
2322 #[doc = " - nChannels: Use same maximum number of channels for"]
2323 #[doc = " allocating memory in AAC and SBR module."]
2324 #[doc = " - nChannels | (nSbrCh<<8): Number of SBR channels can be"]
2325 #[doc = " different to AAC channels to save data memory."]
2326 #[doc = ""]
2327 #[doc = " \\return"]
2328 #[doc = " - AACENC_OK, on succes."]
2329 #[doc = " - AACENC_INVALID_HANDLE, AACENC_MEMORY_ERROR, AACENC_INVALID_CONFIG,"]
2330 #[doc = " on failure."]
2331 pub fn aacEncOpen(
2332 phAacEncoder: *mut HANDLE_AACENCODER,
2333 encModules: UINT,
2334 maxChannels: UINT,
2335 ) -> AACENC_ERROR;
2336}
2337extern "C" {
2338 #[doc = " \\brief Close the encoder instance."]
2339 #[doc = ""]
2340 #[doc = " Deallocate encoder instance and free whole memory."]
2341 #[doc = ""]
2342 #[doc = " \\param phAacEncoder Pointer to the encoder handle to be deallocated."]
2343 #[doc = ""]
2344 #[doc = " \\return"]
2345 #[doc = " - AACENC_OK, on success."]
2346 #[doc = " - AACENC_INVALID_HANDLE, on failure."]
2347 pub fn aacEncClose(phAacEncoder: *mut HANDLE_AACENCODER) -> AACENC_ERROR;
2348}
2349extern "C" {
2350 #[doc = " \\brief Encode audio data."]
2351 #[doc = ""]
2352 #[doc = " This function is mainly for encoding audio data. In addition the function can"]
2353 #[doc = " be used for an encoder (re)configuration process."]
2354 #[doc = " - PCM input data will be retrieved from external input buffer until the fill"]
2355 #[doc = " level allows encoding a single frame. This functionality allows an external"]
2356 #[doc = " buffer with reduced size in comparison to the AAC or HE-AAC audio frame"]
2357 #[doc = " length."]
2358 #[doc = " - If the value of the input samples argument is zero, just internal"]
2359 #[doc = " reinitialization will be applied if it is requested."]
2360 #[doc = " - At the end of a file the flushing process can be triggerd via setting the"]
2361 #[doc = " value of the input samples argument to -1. The encoder delay lines are fully"]
2362 #[doc = " flushed when the encoder returns no valid bitstream data"]
2363 #[doc = " AACENC_OutArgs::numOutBytes. Furthermore the end of file is signaled by the"]
2364 #[doc = " return value AACENC_ENCODE_EOF."]
2365 #[doc = " - If an error occured in the previous frame or any of the encoder parameters"]
2366 #[doc = " changed, an internal reinitialization process will be applied before encoding"]
2367 #[doc = " the incoming audio samples."]
2368 #[doc = " - The function can also be used for an independent reconfiguration process"]
2369 #[doc = " without encoding. The first parameter has to be a valid encoder handle and"]
2370 #[doc = " all other parameters can be set to NULL."]
2371 #[doc = " - If the size of the external bitbuffer in outBufDesc is not sufficient for"]
2372 #[doc = " writing the whole bitstream, an internal error will be the return value and a"]
2373 #[doc = " reconfiguration will be triggered."]
2374 #[doc = ""]
2375 #[doc = " \\param hAacEncoder A valid AAC encoder handle."]
2376 #[doc = " \\param inBufDesc Input buffer descriptor, see AACENC_BufDesc:"]
2377 #[doc = " - At least one input buffer with audio data is"]
2378 #[doc = " expected."]
2379 #[doc = " - Optionally a second input buffer with"]
2380 #[doc = " ancillary data can be fed."]
2381 #[doc = " \\param outBufDesc Output buffer descriptor, see AACENC_BufDesc:"]
2382 #[doc = " - Provide one output buffer for the encoded"]
2383 #[doc = " bitstream."]
2384 #[doc = " \\param inargs Input arguments, see AACENC_InArgs."]
2385 #[doc = " \\param outargs Output arguments, AACENC_OutArgs."]
2386 #[doc = ""]
2387 #[doc = " \\return"]
2388 #[doc = " - AACENC_OK, on success."]
2389 #[doc = " - AACENC_INVALID_HANDLE, AACENC_ENCODE_ERROR, on failure in encoding"]
2390 #[doc = " process."]
2391 #[doc = " - AACENC_INVALID_CONFIG, AACENC_INIT_ERROR, AACENC_INIT_AAC_ERROR,"]
2392 #[doc = " AACENC_INIT_SBR_ERROR, AACENC_INIT_TP_ERROR, AACENC_INIT_META_ERROR,"]
2393 #[doc = " AACENC_INIT_MPS_ERROR, on failure in encoder initialization."]
2394 #[doc = " - AACENC_UNSUPPORTED_PARAMETER, on incorrect input or output buffer"]
2395 #[doc = " descriptor initialization."]
2396 #[doc = " - AACENC_ENCODE_EOF, when flushing fully concluded."]
2397 pub fn aacEncEncode(
2398 hAacEncoder: HANDLE_AACENCODER,
2399 inBufDesc: *const AACENC_BufDesc,
2400 outBufDesc: *const AACENC_BufDesc,
2401 inargs: *const AACENC_InArgs,
2402 outargs: *mut AACENC_OutArgs,
2403 ) -> AACENC_ERROR;
2404}
2405extern "C" {
2406 #[doc = " \\brief Acquire info about present encoder instance."]
2407 #[doc = ""]
2408 #[doc = " This function retrieves information of the encoder configuration. In addition"]
2409 #[doc = " to informative internal states, a configuration data block of the current"]
2410 #[doc = " encoder settings will be returned. The format is either Audio Specific Config"]
2411 #[doc = " in case of Raw Packets transport format or StreamMuxConfig in case of"]
2412 #[doc = " LOAS/LATM transport format. The configuration data block is binary coded as"]
2413 #[doc = " specified in ISO/IEC 14496-3 (MPEG-4 audio), to be used directly for MPEG-4"]
2414 #[doc = " File Format or RFC3016 or RFC3640 applications."]
2415 #[doc = ""]
2416 #[doc = " \\param hAacEncoder A valid AAC encoder handle."]
2417 #[doc = " \\param pInfo Pointer to AACENC_InfoStruct. Filled on return."]
2418 #[doc = ""]
2419 #[doc = " \\return"]
2420 #[doc = " - AACENC_OK, on succes."]
2421 #[doc = " - AACENC_INIT_ERROR, on failure."]
2422 pub fn aacEncInfo(
2423 hAacEncoder: HANDLE_AACENCODER,
2424 pInfo: *mut AACENC_InfoStruct,
2425 ) -> AACENC_ERROR;
2426}
2427extern "C" {
2428 #[doc = " \\brief Set one single AAC encoder parameter."]
2429 #[doc = ""]
2430 #[doc = " This function allows configuration of all encoder parameters specified in"]
2431 #[doc = " ::AACENC_PARAM. Each parameter must be set with a separate function call. An"]
2432 #[doc = " internal validation of the configuration value range will be done and an"]
2433 #[doc = " internal reconfiguration will be signaled. The actual configuration adoption"]
2434 #[doc = " is part of the subsequent aacEncEncode() call."]
2435 #[doc = ""]
2436 #[doc = " \\param hAacEncoder A valid AAC encoder handle."]
2437 #[doc = " \\param param Parameter to be set. See ::AACENC_PARAM."]
2438 #[doc = " \\param value Parameter value. See parameter description in"]
2439 #[doc = " ::AACENC_PARAM."]
2440 #[doc = ""]
2441 #[doc = " \\return"]
2442 #[doc = " - AACENC_OK, on success."]
2443 #[doc = " - AACENC_INVALID_HANDLE, AACENC_UNSUPPORTED_PARAMETER,"]
2444 #[doc = " AACENC_INVALID_CONFIG, on failure."]
2445 pub fn aacEncoder_SetParam(
2446 hAacEncoder: HANDLE_AACENCODER,
2447 param: AACENC_PARAM,
2448 value: UINT,
2449 ) -> AACENC_ERROR;
2450}
2451extern "C" {
2452 #[doc = " \\brief Get one single AAC encoder parameter."]
2453 #[doc = ""]
2454 #[doc = " This function is the complement to aacEncoder_SetParam(). After encoder"]
2455 #[doc = " reinitialization with user defined settings, the internal status can be"]
2456 #[doc = " obtained of each parameter, specified with ::AACENC_PARAM."]
2457 #[doc = ""]
2458 #[doc = " \\param hAacEncoder A valid AAC encoder handle."]
2459 #[doc = " \\param param Parameter to be returned. See ::AACENC_PARAM."]
2460 #[doc = ""]
2461 #[doc = " \\return Internal configuration value of specifed parameter ::AACENC_PARAM."]
2462 pub fn aacEncoder_GetParam(hAacEncoder: HANDLE_AACENCODER, param: AACENC_PARAM) -> UINT;
2463}
2464extern "C" {
2465 #[doc = " \\brief Get information about encoder library build."]
2466 #[doc = ""]
2467 #[doc = " Fill a given LIB_INFO structure with library version information."]
2468 #[doc = ""]
2469 #[doc = " \\param info Pointer to an allocated LIB_INFO struct."]
2470 #[doc = ""]
2471 #[doc = " \\return"]
2472 #[doc = " - AACENC_OK, on success."]
2473 #[doc = " - AACENC_INVALID_HANDLE, AACENC_INIT_ERROR, on failure."]
2474 pub fn aacEncGetLibInfo(info: *mut LIB_INFO) -> AACENC_ERROR;
2475}
2476pub const AAC_DECODER_ERROR_AAC_DEC_OK: AAC_DECODER_ERROR = 0;
2477pub const AAC_DECODER_ERROR_AAC_DEC_OUT_OF_MEMORY: AAC_DECODER_ERROR = 2;
2478pub const AAC_DECODER_ERROR_AAC_DEC_UNKNOWN: AAC_DECODER_ERROR = 5;
2479pub const AAC_DECODER_ERROR_aac_dec_sync_error_start: AAC_DECODER_ERROR = 4096;
2480#[doc = "< The transport decoder had"]
2481#[doc = "synchronization problems. Do not"]
2482#[doc = "exit decoding. Just feed new"]
2483#[doc = "bitstream data."]
2484pub const AAC_DECODER_ERROR_AAC_DEC_TRANSPORT_SYNC_ERROR: AAC_DECODER_ERROR = 4097;
2485#[doc = "< The input buffer ran out of bits."]
2486pub const AAC_DECODER_ERROR_AAC_DEC_NOT_ENOUGH_BITS: AAC_DECODER_ERROR = 4098;
2487pub const AAC_DECODER_ERROR_aac_dec_sync_error_end: AAC_DECODER_ERROR = 8191;
2488pub const AAC_DECODER_ERROR_aac_dec_init_error_start: AAC_DECODER_ERROR = 8192;
2489pub const AAC_DECODER_ERROR_AAC_DEC_INVALID_HANDLE: AAC_DECODER_ERROR = 8193;
2490pub const AAC_DECODER_ERROR_AAC_DEC_UNSUPPORTED_AOT: AAC_DECODER_ERROR = 8194;
2491pub const AAC_DECODER_ERROR_AAC_DEC_UNSUPPORTED_FORMAT: AAC_DECODER_ERROR = 8195;
2492pub const AAC_DECODER_ERROR_AAC_DEC_UNSUPPORTED_ER_FORMAT: AAC_DECODER_ERROR = 8196;
2493pub const AAC_DECODER_ERROR_AAC_DEC_UNSUPPORTED_EPCONFIG: AAC_DECODER_ERROR = 8197;
2494pub const AAC_DECODER_ERROR_AAC_DEC_UNSUPPORTED_MULTILAYER: AAC_DECODER_ERROR = 8198;
2495pub const AAC_DECODER_ERROR_AAC_DEC_UNSUPPORTED_CHANNELCONFIG: AAC_DECODER_ERROR = 8199;
2496#[doc = "< The sample rate specified in"]
2497#[doc = "the configuration is not"]
2498#[doc = "supported."]
2499pub const AAC_DECODER_ERROR_AAC_DEC_UNSUPPORTED_SAMPLINGRATE: AAC_DECODER_ERROR = 8200;
2500pub const AAC_DECODER_ERROR_AAC_DEC_INVALID_SBR_CONFIG: AAC_DECODER_ERROR = 8201;
2501#[doc = "< The parameter could not be set. Either"]
2502#[doc = "the value was out of range or the"]
2503#[doc = "parameter does not exist."]
2504pub const AAC_DECODER_ERROR_AAC_DEC_SET_PARAM_FAIL: AAC_DECODER_ERROR = 8202;
2505#[doc = "< The decoder needs to be restarted,"]
2506#[doc = "since the required configuration change"]
2507#[doc = "cannot be performed."]
2508pub const AAC_DECODER_ERROR_AAC_DEC_NEED_TO_RESTART: AAC_DECODER_ERROR = 8203;
2509pub const AAC_DECODER_ERROR_AAC_DEC_OUTPUT_BUFFER_TOO_SMALL: AAC_DECODER_ERROR = 8204;
2510pub const AAC_DECODER_ERROR_aac_dec_init_error_end: AAC_DECODER_ERROR = 12287;
2511pub const AAC_DECODER_ERROR_aac_dec_decode_error_start: AAC_DECODER_ERROR = 16384;
2512pub const AAC_DECODER_ERROR_AAC_DEC_TRANSPORT_ERROR: AAC_DECODER_ERROR = 16385;
2513#[doc = "< Error while parsing the bitstream. Most"]
2514#[doc = "probably it is corrupted, or the system"]
2515#[doc = "crashed."]
2516pub const AAC_DECODER_ERROR_AAC_DEC_PARSE_ERROR: AAC_DECODER_ERROR = 16386;
2517pub const AAC_DECODER_ERROR_AAC_DEC_UNSUPPORTED_EXTENSION_PAYLOAD: AAC_DECODER_ERROR = 16387;
2518#[doc = "< The parsed bitstream value is out of"]
2519#[doc = "range. Most probably the bitstream is"]
2520#[doc = "corrupt, or the system crashed."]
2521pub const AAC_DECODER_ERROR_AAC_DEC_DECODE_FRAME_ERROR: AAC_DECODER_ERROR = 16388;
2522#[doc = "< The embedded CRC did not match."]
2523pub const AAC_DECODER_ERROR_AAC_DEC_CRC_ERROR: AAC_DECODER_ERROR = 16389;
2524#[doc = "< An invalid codebook was signaled."]
2525#[doc = "Most probably the bitstream is corrupt,"]
2526#[doc = "or the system crashed."]
2527pub const AAC_DECODER_ERROR_AAC_DEC_INVALID_CODE_BOOK: AAC_DECODER_ERROR = 16390;
2528pub const AAC_DECODER_ERROR_AAC_DEC_UNSUPPORTED_PREDICTION: AAC_DECODER_ERROR = 16391;
2529#[doc = "< A CCE element was found which is not"]
2530#[doc = "supported. Most probably the bitstream is"]
2531#[doc = "corrupt, or has a wrong format."]
2532pub const AAC_DECODER_ERROR_AAC_DEC_UNSUPPORTED_CCE: AAC_DECODER_ERROR = 16392;
2533#[doc = "< A LFE element was found which is not"]
2534#[doc = "supported. Most probably the bitstream is"]
2535#[doc = "corrupt, or has a wrong format."]
2536pub const AAC_DECODER_ERROR_AAC_DEC_UNSUPPORTED_LFE: AAC_DECODER_ERROR = 16393;
2537pub const AAC_DECODER_ERROR_AAC_DEC_UNSUPPORTED_GAIN_CONTROL_DATA: AAC_DECODER_ERROR = 16394;
2538pub const AAC_DECODER_ERROR_AAC_DEC_UNSUPPORTED_SBA: AAC_DECODER_ERROR = 16395;
2539#[doc = "< Error while reading TNS data. Most"]
2540#[doc = "probably the bitstream is corrupt or the"]
2541#[doc = "system crashed."]
2542pub const AAC_DECODER_ERROR_AAC_DEC_TNS_READ_ERROR: AAC_DECODER_ERROR = 16396;
2543pub const AAC_DECODER_ERROR_AAC_DEC_RVLC_ERROR: AAC_DECODER_ERROR = 16397;
2544pub const AAC_DECODER_ERROR_aac_dec_decode_error_end: AAC_DECODER_ERROR = 20479;
2545pub const AAC_DECODER_ERROR_aac_dec_anc_data_error_start: AAC_DECODER_ERROR = 32768;
2546pub const AAC_DECODER_ERROR_AAC_DEC_ANC_DATA_ERROR: AAC_DECODER_ERROR = 32769;
2547#[doc = "< The registered ancillary data"]
2548#[doc = "buffer is too small to receive the"]
2549#[doc = "parsed data."]
2550pub const AAC_DECODER_ERROR_AAC_DEC_TOO_SMALL_ANC_BUFFER: AAC_DECODER_ERROR = 32770;
2551#[doc = "< More than the allowed number of"]
2552#[doc = "ancillary data elements should be"]
2553#[doc = "written to buffer."]
2554pub const AAC_DECODER_ERROR_AAC_DEC_TOO_MANY_ANC_ELEMENTS: AAC_DECODER_ERROR = 32771;
2555pub const AAC_DECODER_ERROR_aac_dec_anc_data_error_end: AAC_DECODER_ERROR = 36863;
2556#[doc = " \\brief AAC decoder error codes."]
2557pub type AAC_DECODER_ERROR = u32;
2558pub const AAC_MD_PROFILE_AAC_MD_PROFILE_MPEG_STANDARD: AAC_MD_PROFILE = 0;
2559pub const AAC_MD_PROFILE_AAC_MD_PROFILE_MPEG_LEGACY: AAC_MD_PROFILE = 1;
2560pub const AAC_MD_PROFILE_AAC_MD_PROFILE_MPEG_LEGACY_PRIO: AAC_MD_PROFILE = 2;
2561pub const AAC_MD_PROFILE_AAC_MD_PROFILE_ARIB_JAPAN: AAC_MD_PROFILE = 3;
2562#[doc = " \\enum AAC_MD_PROFILE"]
2563#[doc = " \\brief The available metadata profiles which are mostly related to downmixing. The values define the arguments"]
2564#[doc = " for the use with parameter ::AAC_METADATA_PROFILE."]
2565pub type AAC_MD_PROFILE = u32;
2566#[doc = "< DRC parameter handling"]
2567#[doc = "disabled, all parameters are"]
2568#[doc = "applied as requested."]
2569pub const AAC_DRC_DEFAULT_PRESENTATION_MODE_OPTIONS_AAC_DRC_PARAMETER_HANDLING_DISABLED:
2570 AAC_DRC_DEFAULT_PRESENTATION_MODE_OPTIONS = -1;
2571pub const AAC_DRC_DEFAULT_PRESENTATION_MODE_OPTIONS_AAC_DRC_PARAMETER_HANDLING_ENABLED:
2572 AAC_DRC_DEFAULT_PRESENTATION_MODE_OPTIONS = 0;
2573pub const AAC_DRC_DEFAULT_PRESENTATION_MODE_OPTIONS_AAC_DRC_PRESENTATION_MODE_1_DEFAULT:
2574 AAC_DRC_DEFAULT_PRESENTATION_MODE_OPTIONS = 1;
2575pub const AAC_DRC_DEFAULT_PRESENTATION_MODE_OPTIONS_AAC_DRC_PRESENTATION_MODE_2_DEFAULT:
2576 AAC_DRC_DEFAULT_PRESENTATION_MODE_OPTIONS = 2;
2577#[doc = " \\enum AAC_DRC_DEFAULT_PRESENTATION_MODE_OPTIONS"]
2578#[doc = " \\brief Options for handling of DRC parameters, if presentation mode is not indicated in bitstream"]
2579pub type AAC_DRC_DEFAULT_PRESENTATION_MODE_OPTIONS = i32;
2580pub const AACDEC_PARAM_AAC_PCM_DUAL_CHANNEL_OUTPUT_MODE: AACDEC_PARAM = 2;
2581pub const AACDEC_PARAM_AAC_PCM_OUTPUT_CHANNEL_MAPPING: AACDEC_PARAM = 3;
2582pub const AACDEC_PARAM_AAC_PCM_LIMITER_ENABLE: AACDEC_PARAM = 4;
2583#[doc = "< Signal level limiting attack time"]
2584#[doc = "in ms. Default configuration is 15"]
2585#[doc = "ms. Adjustable range from 1 ms to 15"]
2586#[doc = "ms."]
2587pub const AACDEC_PARAM_AAC_PCM_LIMITER_ATTACK_TIME: AACDEC_PARAM = 5;
2588#[doc = "< Signal level limiting release time"]
2589#[doc = "in ms. Default configuration is 50"]
2590#[doc = "ms. Adjustable time must be larger"]
2591#[doc = "than 0 ms."]
2592pub const AACDEC_PARAM_AAC_PCM_LIMITER_RELEAS_TIME: AACDEC_PARAM = 6;
2593pub const AACDEC_PARAM_AAC_PCM_MIN_OUTPUT_CHANNELS: AACDEC_PARAM = 17;
2594pub const AACDEC_PARAM_AAC_PCM_MAX_OUTPUT_CHANNELS: AACDEC_PARAM = 18;
2595pub const AACDEC_PARAM_AAC_METADATA_PROFILE: AACDEC_PARAM = 32;
2596#[doc = "< Defines the time in ms after which all"]
2597#[doc = "the bitstream associated meta-data (DRC,"]
2598#[doc = "downmix coefficients, ...) will be reset"]
2599#[doc = "to default if no update has been"]
2600#[doc = "received. Negative values disable the"]
2601#[doc = "feature."]
2602pub const AACDEC_PARAM_AAC_METADATA_EXPIRY_TIME: AACDEC_PARAM = 33;
2603#[doc = "< Error concealment: Processing method. \\n"]
2604#[doc = "0: Spectral muting. \\n"]
2605#[doc = "1: Noise substitution (see ::CONCEAL_NOISE)."]
2606#[doc = "\\n 2: Energy interpolation (adds additional"]
2607#[doc = "signal delay of one frame, see"]
2608#[doc = "::CONCEAL_INTER. only some AOTs are"]
2609#[doc = "supported). \\n"]
2610pub const AACDEC_PARAM_AAC_CONCEAL_METHOD: AACDEC_PARAM = 256;
2611pub const AACDEC_PARAM_AAC_DRC_BOOST_FACTOR: AACDEC_PARAM = 512;
2612#[doc = "< MPEG-4 / MPEG-D DRC: Scaling factor"]
2613#[doc = "for attenuating gain values. Same as"]
2614#[doc = "::AAC_DRC_BOOST_FACTOR but for"]
2615#[doc = "attenuating DRC factors."]
2616pub const AACDEC_PARAM_AAC_DRC_ATTENUATION_FACTOR: AACDEC_PARAM = 513;
2617pub const AACDEC_PARAM_AAC_DRC_REFERENCE_LEVEL: AACDEC_PARAM = 514;
2618pub const AACDEC_PARAM_AAC_DRC_HEAVY_COMPRESSION: AACDEC_PARAM = 515;
2619pub const AACDEC_PARAM_AAC_DRC_DEFAULT_PRESENTATION_MODE: AACDEC_PARAM = 516;
2620pub const AACDEC_PARAM_AAC_DRC_ENC_TARGET_LEVEL: AACDEC_PARAM = 517;
2621#[doc = "< MPEG-D DRC: Request a DRC effect type for"]
2622#[doc = "selection of a DRC set.\\n Supported indices"]
2623#[doc = "are:\\n -1: DRC off. Completely disables"]
2624#[doc = "MPEG-D DRC.\\n 0: None (default). Disables"]
2625#[doc = "MPEG-D DRC, but automatically enables DRC"]
2626#[doc = "if necessary to prevent clipping.\\n 1: Late"]
2627#[doc = "night\\n 2: Noisy environment\\n 3: Limited"]
2628#[doc = "playback range\\n 4: Low playback level\\n 5:"]
2629#[doc = "Dialog enhancement\\n 6: General"]
2630#[doc = "compression. Used for generally enabling"]
2631#[doc = "MPEG-D DRC without particular request.\\n"]
2632pub const AACDEC_PARAM_AAC_UNIDRC_SET_EFFECT: AACDEC_PARAM = 518;
2633pub const AACDEC_PARAM_AAC_UNIDRC_ALBUM_MODE: AACDEC_PARAM = 519;
2634#[doc = "< Quadrature Mirror Filter (QMF) Bank processing"]
2635#[doc = "mode. \\n -1: Use internal default. Implies MPEG"]
2636#[doc = "Surround partially complex accordingly. \\n 0:"]
2637#[doc = "Use complex QMF data mode. \\n 1: Use real (low"]
2638#[doc = "power) QMF data mode. \\n"]
2639pub const AACDEC_PARAM_AAC_QMF_LOWPOWER: AACDEC_PARAM = 768;
2640pub const AACDEC_PARAM_AAC_TPDEC_CLEAR_BUFFER: AACDEC_PARAM = 1539;
2641#[doc = " \\brief AAC decoder setting parameters"]
2642pub type AACDEC_PARAM = u32;
2643#[doc = " \\brief This structure gives information about the currently decoded audio"]
2644#[doc = " data. All fields are read-only."]
2645#[repr(C)]
2646#[derive(Debug, Copy, Clone)]
2647pub struct CStreamInfo {
2648 #[doc = "< The sample rate in Hz of the decoded PCM audio signal."]
2649 pub sampleRate: INT,
2650 #[doc = "< The frame size of the decoded PCM audio signal. \\n"]
2651 #[doc = "Typically this is: \\n"]
2652 #[doc = "1024 or 960 for AAC-LC \\n"]
2653 #[doc = "2048 or 1920 for HE-AAC (v2) \\n"]
2654 #[doc = "512 or 480 for AAC-LD and AAC-ELD \\n"]
2655 #[doc = "768, 1024, 2048 or 4096 for USAC"]
2656 pub frameSize: INT,
2657 #[doc = "< The number of output audio channels before the rendering"]
2658 #[doc = "module, i.e. the original channel configuration."]
2659 pub numChannels: INT,
2660 #[doc = "< Audio channel type of each output audio channel."]
2661 pub pChannelType: *mut AUDIO_CHANNEL_TYPE,
2662 #[doc = "< Audio channel index for each output audio"]
2663 #[doc = "channel. See ISO/IEC 13818-7:2005(E), 8.5.3.2"]
2664 #[doc = "Explicit channel mapping using a"]
2665 #[doc = "program_config_element()"]
2666 pub pChannelIndices: *mut UCHAR,
2667 #[doc = "< Sampling rate in Hz without SBR (from configuration"]
2668 #[doc = "info) divided by a (ELD) downscale factor if present."]
2669 pub aacSampleRate: INT,
2670 #[doc = "< MPEG-2 profile (from file header) (-1: not applicable (e. g."]
2671 #[doc = "MPEG-4))."]
2672 pub profile: INT,
2673 #[doc = "< Audio Object Type (from ASC): is set to the appropriate value"]
2674 #[doc = "for MPEG-2 bitstreams (e. g. 2 for AAC-LC)."]
2675 pub aot: AUDIO_OBJECT_TYPE,
2676 #[doc = "< Channel configuration (0: PCE defined, 1: mono, 2:"]
2677 #[doc = "stereo, ..."]
2678 pub channelConfig: INT,
2679 #[doc = "< Instantaneous bit rate."]
2680 pub bitRate: INT,
2681 #[doc = "< Samples per frame for the AAC core (from ASC)"]
2682 #[doc = "divided by a (ELD) downscale factor if present. \\n"]
2683 #[doc = "Typically this is (with a downscale factor of 1):"]
2684 #[doc = "\\n 1024 or 960 for AAC-LC \\n 512 or 480 for"]
2685 #[doc = "AAC-LD and AAC-ELD"]
2686 pub aacSamplesPerFrame: INT,
2687 #[doc = "< The number of audio channels after AAC core"]
2688 #[doc = "processing (before PS or MPS processing). CAUTION: This"]
2689 #[doc = "are not the final number of output channels!"]
2690 pub aacNumChannels: INT,
2691 #[doc = "< Extension Audio Object Type (from ASC)"]
2692 pub extAot: AUDIO_OBJECT_TYPE,
2693 #[doc = "< Extension sampling rate in Hz (from ASC) divided by"]
2694 #[doc = "a (ELD) downscale factor if present."]
2695 pub extSamplingRate: INT,
2696 #[doc = "< The number of samples the output is additionally"]
2697 #[doc = "delayed by.the decoder."]
2698 pub outputDelay: UINT,
2699 #[doc = "< Copy of internal flags. Only to be written by the decoder,"]
2700 #[doc = "and only to be read externally."]
2701 pub flags: UINT,
2702 #[doc = "< epConfig level (from ASC): only level 0 supported, -1"]
2703 #[doc = "means no ER (e. g. AOT=2, MPEG-2 AAC, etc.)"]
2704 pub epConfig: SCHAR,
2705 #[doc = "< This integer will reflect the estimated amount of"]
2706 #[doc = "lost access units in case aacDecoder_DecodeFrame()"]
2707 #[doc = "returns AAC_DEC_TRANSPORT_SYNC_ERROR. It will be"]
2708 #[doc = "< 0 if the estimation failed."]
2709 pub numLostAccessUnits: INT,
2710 #[doc = "< This is the number of total bytes that have passed"]
2711 #[doc = "through the decoder."]
2712 pub numTotalBytes: INT64,
2713 #[doc = "< This is the number of total bytes that were considered"]
2714 #[doc = "with errors from numTotalBytes."]
2715 pub numBadBytes: INT64,
2716 #[doc = "< This is the number of total access units that"]
2717 #[doc = "have passed through the decoder."]
2718 pub numTotalAccessUnits: INT64,
2719 #[doc = "< This is the number of total access units that"]
2720 #[doc = "were considered with errors from numTotalBytes."]
2721 pub numBadAccessUnits: INT64,
2722 #[doc = "< DRC program reference level. Defines the reference"]
2723 #[doc = "level below full-scale. It is quantized in steps of"]
2724 #[doc = "0.25dB. The valid values range from 0 (0 dBFS) to 127"]
2725 #[doc = "(-31.75 dBFS). It is used to reflect the average"]
2726 #[doc = "loudness of the audio in LKFS according to ITU-R BS"]
2727 #[doc = "1770. If no level has been found in the bitstream the"]
2728 #[doc = "value is -1."]
2729 pub drcProgRefLev: SCHAR,
2730 #[doc = "< DRC presentation mode. According to ETSI TS 101 154,"]
2731 #[doc = "this field indicates whether light (MPEG-4 Dynamic Range"]
2732 #[doc = "Control tool) or heavy compression (DVB heavy"]
2733 #[doc = "compression) dynamic range control shall take priority"]
2734 #[doc = "on the outputs. For details, see ETSI TS 101 154, table"]
2735 #[doc = "C.33. Possible values are: \\n -1: No corresponding"]
2736 #[doc = "metadata found in the bitstream \\n 0: DRC presentation"]
2737 #[doc = "mode not indicated \\n 1: DRC presentation mode 1 \\n 2:"]
2738 #[doc = "DRC presentation mode 2 \\n 3: Reserved"]
2739 pub drcPresMode: SCHAR,
2740}
2741#[test]
2742fn bindgen_test_layout_CStreamInfo() {
2743 assert_eq!(
2744 ::std::mem::size_of::<CStreamInfo>(),
2745 128usize,
2746 concat!("Size of: ", stringify!(CStreamInfo))
2747 );
2748 assert_eq!(
2749 ::std::mem::align_of::<CStreamInfo>(),
2750 8usize,
2751 concat!("Alignment of ", stringify!(CStreamInfo))
2752 );
2753 assert_eq!(
2754 unsafe { &(*(::std::ptr::null::<CStreamInfo>())).sampleRate as *const _ as usize },
2755 0usize,
2756 concat!(
2757 "Offset of field: ",
2758 stringify!(CStreamInfo),
2759 "::",
2760 stringify!(sampleRate)
2761 )
2762 );
2763 assert_eq!(
2764 unsafe { &(*(::std::ptr::null::<CStreamInfo>())).frameSize as *const _ as usize },
2765 4usize,
2766 concat!(
2767 "Offset of field: ",
2768 stringify!(CStreamInfo),
2769 "::",
2770 stringify!(frameSize)
2771 )
2772 );
2773 assert_eq!(
2774 unsafe { &(*(::std::ptr::null::<CStreamInfo>())).numChannels as *const _ as usize },
2775 8usize,
2776 concat!(
2777 "Offset of field: ",
2778 stringify!(CStreamInfo),
2779 "::",
2780 stringify!(numChannels)
2781 )
2782 );
2783 assert_eq!(
2784 unsafe { &(*(::std::ptr::null::<CStreamInfo>())).pChannelType as *const _ as usize },
2785 16usize,
2786 concat!(
2787 "Offset of field: ",
2788 stringify!(CStreamInfo),
2789 "::",
2790 stringify!(pChannelType)
2791 )
2792 );
2793 assert_eq!(
2794 unsafe { &(*(::std::ptr::null::<CStreamInfo>())).pChannelIndices as *const _ as usize },
2795 24usize,
2796 concat!(
2797 "Offset of field: ",
2798 stringify!(CStreamInfo),
2799 "::",
2800 stringify!(pChannelIndices)
2801 )
2802 );
2803 assert_eq!(
2804 unsafe { &(*(::std::ptr::null::<CStreamInfo>())).aacSampleRate as *const _ as usize },
2805 32usize,
2806 concat!(
2807 "Offset of field: ",
2808 stringify!(CStreamInfo),
2809 "::",
2810 stringify!(aacSampleRate)
2811 )
2812 );
2813 assert_eq!(
2814 unsafe { &(*(::std::ptr::null::<CStreamInfo>())).profile as *const _ as usize },
2815 36usize,
2816 concat!(
2817 "Offset of field: ",
2818 stringify!(CStreamInfo),
2819 "::",
2820 stringify!(profile)
2821 )
2822 );
2823 assert_eq!(
2824 unsafe { &(*(::std::ptr::null::<CStreamInfo>())).aot as *const _ as usize },
2825 40usize,
2826 concat!(
2827 "Offset of field: ",
2828 stringify!(CStreamInfo),
2829 "::",
2830 stringify!(aot)
2831 )
2832 );
2833 assert_eq!(
2834 unsafe { &(*(::std::ptr::null::<CStreamInfo>())).channelConfig as *const _ as usize },
2835 44usize,
2836 concat!(
2837 "Offset of field: ",
2838 stringify!(CStreamInfo),
2839 "::",
2840 stringify!(channelConfig)
2841 )
2842 );
2843 assert_eq!(
2844 unsafe { &(*(::std::ptr::null::<CStreamInfo>())).bitRate as *const _ as usize },
2845 48usize,
2846 concat!(
2847 "Offset of field: ",
2848 stringify!(CStreamInfo),
2849 "::",
2850 stringify!(bitRate)
2851 )
2852 );
2853 assert_eq!(
2854 unsafe { &(*(::std::ptr::null::<CStreamInfo>())).aacSamplesPerFrame as *const _ as usize },
2855 52usize,
2856 concat!(
2857 "Offset of field: ",
2858 stringify!(CStreamInfo),
2859 "::",
2860 stringify!(aacSamplesPerFrame)
2861 )
2862 );
2863 assert_eq!(
2864 unsafe { &(*(::std::ptr::null::<CStreamInfo>())).aacNumChannels as *const _ as usize },
2865 56usize,
2866 concat!(
2867 "Offset of field: ",
2868 stringify!(CStreamInfo),
2869 "::",
2870 stringify!(aacNumChannels)
2871 )
2872 );
2873 assert_eq!(
2874 unsafe { &(*(::std::ptr::null::<CStreamInfo>())).extAot as *const _ as usize },
2875 60usize,
2876 concat!(
2877 "Offset of field: ",
2878 stringify!(CStreamInfo),
2879 "::",
2880 stringify!(extAot)
2881 )
2882 );
2883 assert_eq!(
2884 unsafe { &(*(::std::ptr::null::<CStreamInfo>())).extSamplingRate as *const _ as usize },
2885 64usize,
2886 concat!(
2887 "Offset of field: ",
2888 stringify!(CStreamInfo),
2889 "::",
2890 stringify!(extSamplingRate)
2891 )
2892 );
2893 assert_eq!(
2894 unsafe { &(*(::std::ptr::null::<CStreamInfo>())).outputDelay as *const _ as usize },
2895 68usize,
2896 concat!(
2897 "Offset of field: ",
2898 stringify!(CStreamInfo),
2899 "::",
2900 stringify!(outputDelay)
2901 )
2902 );
2903 assert_eq!(
2904 unsafe { &(*(::std::ptr::null::<CStreamInfo>())).flags as *const _ as usize },
2905 72usize,
2906 concat!(
2907 "Offset of field: ",
2908 stringify!(CStreamInfo),
2909 "::",
2910 stringify!(flags)
2911 )
2912 );
2913 assert_eq!(
2914 unsafe { &(*(::std::ptr::null::<CStreamInfo>())).epConfig as *const _ as usize },
2915 76usize,
2916 concat!(
2917 "Offset of field: ",
2918 stringify!(CStreamInfo),
2919 "::",
2920 stringify!(epConfig)
2921 )
2922 );
2923 assert_eq!(
2924 unsafe { &(*(::std::ptr::null::<CStreamInfo>())).numLostAccessUnits as *const _ as usize },
2925 80usize,
2926 concat!(
2927 "Offset of field: ",
2928 stringify!(CStreamInfo),
2929 "::",
2930 stringify!(numLostAccessUnits)
2931 )
2932 );
2933 assert_eq!(
2934 unsafe { &(*(::std::ptr::null::<CStreamInfo>())).numTotalBytes as *const _ as usize },
2935 88usize,
2936 concat!(
2937 "Offset of field: ",
2938 stringify!(CStreamInfo),
2939 "::",
2940 stringify!(numTotalBytes)
2941 )
2942 );
2943 assert_eq!(
2944 unsafe { &(*(::std::ptr::null::<CStreamInfo>())).numBadBytes as *const _ as usize },
2945 96usize,
2946 concat!(
2947 "Offset of field: ",
2948 stringify!(CStreamInfo),
2949 "::",
2950 stringify!(numBadBytes)
2951 )
2952 );
2953 assert_eq!(
2954 unsafe { &(*(::std::ptr::null::<CStreamInfo>())).numTotalAccessUnits as *const _ as usize },
2955 104usize,
2956 concat!(
2957 "Offset of field: ",
2958 stringify!(CStreamInfo),
2959 "::",
2960 stringify!(numTotalAccessUnits)
2961 )
2962 );
2963 assert_eq!(
2964 unsafe { &(*(::std::ptr::null::<CStreamInfo>())).numBadAccessUnits as *const _ as usize },
2965 112usize,
2966 concat!(
2967 "Offset of field: ",
2968 stringify!(CStreamInfo),
2969 "::",
2970 stringify!(numBadAccessUnits)
2971 )
2972 );
2973 assert_eq!(
2974 unsafe { &(*(::std::ptr::null::<CStreamInfo>())).drcProgRefLev as *const _ as usize },
2975 120usize,
2976 concat!(
2977 "Offset of field: ",
2978 stringify!(CStreamInfo),
2979 "::",
2980 stringify!(drcProgRefLev)
2981 )
2982 );
2983 assert_eq!(
2984 unsafe { &(*(::std::ptr::null::<CStreamInfo>())).drcPresMode as *const _ as usize },
2985 121usize,
2986 concat!(
2987 "Offset of field: ",
2988 stringify!(CStreamInfo),
2989 "::",
2990 stringify!(drcPresMode)
2991 )
2992 );
2993}
2994#[repr(C)]
2995#[derive(Debug, Copy, Clone)]
2996pub struct AAC_DECODER_INSTANCE {
2997 _unused: [u8; 0],
2998}
2999pub type HANDLE_AACDECODER = *mut AAC_DECODER_INSTANCE;
3000extern "C" {
3001 #[doc = " \\brief Initialize ancillary data buffer."]
3002 #[doc = ""]
3003 #[doc = " \\param self AAC decoder handle."]
3004 #[doc = " \\param buffer Pointer to (external) ancillary data buffer."]
3005 #[doc = " \\param size Size of the buffer pointed to by buffer."]
3006 #[doc = " \\return Error code."]
3007 pub fn aacDecoder_AncDataInit(
3008 self_: HANDLE_AACDECODER,
3009 buffer: *mut UCHAR,
3010 size: ::std::os::raw::c_int,
3011 ) -> AAC_DECODER_ERROR;
3012}
3013extern "C" {
3014 #[doc = " \\brief Get one ancillary data element."]
3015 #[doc = ""]
3016 #[doc = " \\param self AAC decoder handle."]
3017 #[doc = " \\param index Index of the ancillary data element to get."]
3018 #[doc = " \\param ptr Pointer to a buffer receiving a pointer to the requested"]
3019 #[doc = " ancillary data element."]
3020 #[doc = " \\param size Pointer to a buffer receiving the length of the requested"]
3021 #[doc = " ancillary data element."]
3022 #[doc = " \\return Error code."]
3023 pub fn aacDecoder_AncDataGet(
3024 self_: HANDLE_AACDECODER,
3025 index: ::std::os::raw::c_int,
3026 ptr: *mut *mut UCHAR,
3027 size: *mut ::std::os::raw::c_int,
3028 ) -> AAC_DECODER_ERROR;
3029}
3030extern "C" {
3031 #[doc = " \\brief Set one single decoder parameter."]
3032 #[doc = ""]
3033 #[doc = " \\param self AAC decoder handle."]
3034 #[doc = " \\param param Parameter to be set."]
3035 #[doc = " \\param value Parameter value."]
3036 #[doc = " \\return Error code."]
3037 pub fn aacDecoder_SetParam(
3038 self_: HANDLE_AACDECODER,
3039 param: AACDEC_PARAM,
3040 value: INT,
3041 ) -> AAC_DECODER_ERROR;
3042}
3043extern "C" {
3044 #[doc = " \\brief Get free bytes inside decoder internal buffer."]
3045 #[doc = " \\param self Handle of AAC decoder instance."]
3046 #[doc = " \\param pFreeBytes Pointer to variable receiving amount of free bytes inside"]
3047 #[doc = " decoder internal buffer."]
3048 #[doc = " \\return Error code."]
3049 pub fn aacDecoder_GetFreeBytes(
3050 self_: HANDLE_AACDECODER,
3051 pFreeBytes: *mut UINT,
3052 ) -> AAC_DECODER_ERROR;
3053}
3054extern "C" {
3055 #[doc = " \\brief Open an AAC decoder instance."]
3056 #[doc = " \\param transportFmt The transport type to be used."]
3057 #[doc = " \\param nrOfLayers Number of transport layers."]
3058 #[doc = " \\return AAC decoder handle."]
3059 pub fn aacDecoder_Open(transportFmt: TRANSPORT_TYPE, nrOfLayers: UINT) -> HANDLE_AACDECODER;
3060}
3061extern "C" {
3062 #[doc = " \\brief Explicitly configure the decoder by passing a raw AudioSpecificConfig"]
3063 #[doc = " (ASC) or a StreamMuxConfig (SMC), contained in a binary buffer. This is"]
3064 #[doc = " required for MPEG-4 and Raw Packets file format bitstreams as well as for"]
3065 #[doc = " LATM bitstreams with no in-band SMC. If the transport format is LATM with or"]
3066 #[doc = " without LOAS, configuration is assumed to be an SMC, for all other file"]
3067 #[doc = " formats an ASC."]
3068 #[doc = ""]
3069 #[doc = " \\param self AAC decoder handle."]
3070 #[doc = " \\param conf Pointer to an unsigned char buffer containing the binary"]
3071 #[doc = " configuration buffer (either ASC or SMC)."]
3072 #[doc = " \\param length Length of the configuration buffer in bytes."]
3073 #[doc = " \\return Error code."]
3074 pub fn aacDecoder_ConfigRaw(
3075 self_: HANDLE_AACDECODER,
3076 conf: *mut *mut UCHAR,
3077 length: *const UINT,
3078 ) -> AAC_DECODER_ERROR;
3079}
3080extern "C" {
3081 #[doc = " \\brief Submit raw ISO base media file format boxes to decoder for parsing"]
3082 #[doc = " (only some box types are recognized)."]
3083 #[doc = ""]
3084 #[doc = " \\param self AAC decoder handle."]
3085 #[doc = " \\param buffer Pointer to an unsigned char buffer containing the binary box"]
3086 #[doc = " data (including size and type, can be a sequence of multiple boxes)."]
3087 #[doc = " \\param length Length of the data in bytes."]
3088 #[doc = " \\return Error code."]
3089 pub fn aacDecoder_RawISOBMFFData(
3090 self_: HANDLE_AACDECODER,
3091 buffer: *mut UCHAR,
3092 length: UINT,
3093 ) -> AAC_DECODER_ERROR;
3094}
3095extern "C" {
3096 #[doc = " \\brief Fill AAC decoder's internal input buffer with bitstream data from the"]
3097 #[doc = " external input buffer. The function only copies such data as long as the"]
3098 #[doc = " decoder-internal input buffer is not full. So it grabs whatever it can from"]
3099 #[doc = " pBuffer and returns information (bytesValid) so that at a subsequent call of"]
3100 #[doc = " %aacDecoder_Fill(), the right position in pBuffer can be determined to grab"]
3101 #[doc = " the next data."]
3102 #[doc = ""]
3103 #[doc = " \\param self AAC decoder handle."]
3104 #[doc = " \\param pBuffer Pointer to external input buffer."]
3105 #[doc = " \\param bufferSize Size of external input buffer. This argument is required"]
3106 #[doc = " because decoder-internally we need the information to calculate the offset to"]
3107 #[doc = " pBuffer, where the next available data is, which is then"]
3108 #[doc = " fed into the decoder-internal buffer (as much as"]
3109 #[doc = " possible). Our example framework implementation fills the"]
3110 #[doc = " buffer at pBuffer again, once it contains no available valid bytes anymore"]
3111 #[doc = " (meaning bytesValid equal 0)."]
3112 #[doc = " \\param bytesValid Number of bitstream bytes in the external bitstream buffer"]
3113 #[doc = " that have not yet been copied into the decoder's internal bitstream buffer by"]
3114 #[doc = " calling this function. The value is updated according to"]
3115 #[doc = " the amount of newly copied bytes."]
3116 #[doc = " \\return Error code."]
3117 pub fn aacDecoder_Fill(
3118 self_: HANDLE_AACDECODER,
3119 pBuffer: *mut *mut UCHAR,
3120 bufferSize: *const UINT,
3121 bytesValid: *mut UINT,
3122 ) -> AAC_DECODER_ERROR;
3123}
3124extern "C" {
3125 #[doc = " \\brief Decode one audio frame"]
3126 #[doc = ""]
3127 #[doc = " \\param self AAC decoder handle."]
3128 #[doc = " \\param pTimeData Pointer to external output buffer where the decoded PCM"]
3129 #[doc = " samples will be stored into."]
3130 #[doc = " \\param timeDataSize Size of external output buffer."]
3131 #[doc = " \\param flags Bit field with flags for the decoder: \\n"]
3132 #[doc = " (flags & AACDEC_CONCEAL) == 1: Do concealment. \\n"]
3133 #[doc = " (flags & AACDEC_FLUSH) == 2: Discard input data. Flush"]
3134 #[doc = " filter banks (output delayed audio). \\n (flags & AACDEC_INTR) == 4: Input"]
3135 #[doc = " data is discontinuous. Resynchronize any internals as"]
3136 #[doc = " necessary. \\n (flags & AACDEC_CLRHIST) == 8: Clear all signal delay lines and"]
3137 #[doc = " history buffers."]
3138 #[doc = " \\return Error code."]
3139 pub fn aacDecoder_DecodeFrame(
3140 self_: HANDLE_AACDECODER,
3141 pTimeData: *mut INT_PCM,
3142 timeDataSize: INT,
3143 flags: UINT,
3144 ) -> AAC_DECODER_ERROR;
3145}
3146extern "C" {
3147 #[doc = " \\brief De-allocate all resources of an AAC decoder instance."]
3148 #[doc = ""]
3149 #[doc = " \\param self AAC decoder handle."]
3150 #[doc = " \\return void."]
3151 pub fn aacDecoder_Close(self_: HANDLE_AACDECODER);
3152}
3153extern "C" {
3154 #[doc = " \\brief Get CStreamInfo handle from decoder."]
3155 #[doc = ""]
3156 #[doc = " \\param self AAC decoder handle."]
3157 #[doc = " \\return Reference to requested CStreamInfo."]
3158 pub fn aacDecoder_GetStreamInfo(self_: HANDLE_AACDECODER) -> *mut CStreamInfo;
3159}
3160extern "C" {
3161 #[doc = " \\brief Get decoder library info."]
3162 #[doc = ""]
3163 #[doc = " \\param info Pointer to an allocated LIB_INFO structure."]
3164 #[doc = " \\return 0 on success."]
3165 pub fn aacDecoder_GetLibInfo(info: *mut LIB_INFO) -> INT;
3166}