1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
/* automatically generated by rust-bindgen */

pub const true_ : u32 = 1 ; pub const false_ : u32 = 0 ; pub const __bool_true_false_are_defined : u32 = 1 ; pub const FRAME_NUM_PARAM_SET : i32 = -1 ; pub const FRAME_NUM_IDR : u32 = 0 ; pub const DEBLOCKING_OFFSET : u32 = 6 ; pub const DEBLOCKING_OFFSET_MINUS : i32 = -6 ; pub const MAX_TEMPORAL_LAYER_NUM : u32 = 4 ; pub const MAX_SPATIAL_LAYER_NUM : u32 = 4 ; pub const MAX_QUALITY_LAYER_NUM : u32 = 4 ; pub const MAX_LAYER_NUM_OF_FRAME : u32 = 128 ; pub const MAX_NAL_UNITS_IN_LAYER : u32 = 128 ; pub const MAX_RTP_PAYLOAD_LEN : u32 = 1000 ; pub const AVERAGE_RTP_PAYLOAD_LEN : u32 = 800 ; pub const SAVED_NALUNIT_NUM_TMP : u32 = 21 ; pub const MAX_SLICES_NUM_TMP : u32 = 35 ; pub const AUTO_REF_PIC_COUNT : i32 = -1 ; pub const UNSPECIFIED_BIT_RATE : u32 = 0 ; pub const OPENH264_MAJOR : u32 = 1 ; pub const OPENH264_MINOR : u32 = 7 ; pub const OPENH264_REVISION : u32 = 0 ; pub const OPENH264_RESERVED : u32 = 1703 ; 
 /// < rgb color formats 
 pub const videoFormatRGB : EVideoFormatType = 1 ; pub const videoFormatRGBA : EVideoFormatType = 2 ; pub const videoFormatRGB555 : EVideoFormatType = 3 ; pub const videoFormatRGB565 : EVideoFormatType = 4 ; pub const videoFormatBGR : EVideoFormatType = 5 ; pub const videoFormatBGRA : EVideoFormatType = 6 ; pub const videoFormatABGR : EVideoFormatType = 7 ; pub const videoFormatARGB : EVideoFormatType = 8 ; 
 /// < yuv color formats 
 pub const videoFormatYUY2 : EVideoFormatType = 20 ; pub const videoFormatYVYU : EVideoFormatType = 21 ; pub const videoFormatUYVY : EVideoFormatType = 22 ; 
 /// < the same as IYUV 
 pub const videoFormatI420 : EVideoFormatType = 23 ; pub const videoFormatYV12 : EVideoFormatType = 24 ; 
 /// < only used in SVC decoder testbed 
 pub const videoFormatInternal : EVideoFormatType = 25 ; 
 /// < new format for output by DXVA decoding 
 pub const videoFormatNV12 : EVideoFormatType = 26 ; pub const videoFormatVFlip : EVideoFormatType = 2147483648 ; 
 /// @brief Enumerate the type of video format 
 pub type EVideoFormatType = u32 ; 
 /// < encoder not ready or parameters are invalidate 
 pub const videoFrameTypeInvalid : EVideoFrameType = 0 ; 
 /// < IDR frame in H.264 
 pub const videoFrameTypeIDR : EVideoFrameType = 1 ; 
 /// < I frame type 
 pub const videoFrameTypeI : EVideoFrameType = 2 ; 
 /// < P frame type 
 pub const videoFrameTypeP : EVideoFrameType = 3 ; 
 /// < skip the frame based encoder kernel 
 pub const videoFrameTypeSkip : EVideoFrameType = 4 ; 
 /// < a frame where I and P slices are mixing, not supported yet 
 pub const videoFrameTypeIPMixed : EVideoFrameType = 5 ; 
 /// @brief Enumerate  video frame type 
 pub type EVideoFrameType = u32 ; 
 /// < successful 
 pub const cmResultSuccess : CM_RETURN = 0 ; 
 /// < parameters are invalid 
 pub const cmInitParaError : CM_RETURN = 1 ; pub const cmUnknownReason : CM_RETURN = 2 ; 
 /// < malloc a memory error 
 pub const cmMallocMemeError : CM_RETURN = 3 ; 
 /// < initial action is expected 
 pub const cmInitExpected : CM_RETURN = 4 ; pub const cmUnsupportedData : CM_RETURN = 5 ; 
 /// @brief Enumerate  return type 
 pub type CM_RETURN = u32 ; pub const NAL_UNKNOWN : ENalUnitType = 0 ; pub const NAL_SLICE : ENalUnitType = 1 ; pub const NAL_SLICE_DPA : ENalUnitType = 2 ; pub const NAL_SLICE_DPB : ENalUnitType = 3 ; pub const NAL_SLICE_DPC : ENalUnitType = 4 ; 
 /// < ref_idc != 0 
 pub const NAL_SLICE_IDR : ENalUnitType = 5 ; 
 /// < ref_idc == 0 
 pub const NAL_SEI : ENalUnitType = 6 ; pub const NAL_SPS : ENalUnitType = 7 ; pub const NAL_PPS : ENalUnitType = 8 ; 
 /// @brief Enumulate the nal unit type 
 pub type ENalUnitType = u32 ; pub const NAL_PRIORITY_DISPOSABLE : ENalPriority = 0 ; pub const NAL_PRIORITY_LOW : ENalPriority = 1 ; pub const NAL_PRIORITY_HIGH : ENalPriority = 2 ; pub const NAL_PRIORITY_HIGHEST : ENalPriority = 3 ; 
 /// @brief NRI: eNalRefIdc 
 pub type ENalPriority = u32 ; pub const DEBLOCKING_IDC_0 : _bindgen_ty_1 = 0 ; pub const DEBLOCKING_IDC_1 : _bindgen_ty_1 = 1 ; pub const DEBLOCKING_IDC_2 : _bindgen_ty_1 = 2 ; 
 /// @brief eDeblockingIdc 
 pub type _bindgen_ty_1 = u32 ; pub type ERR_TOOL = :: std :: os :: raw :: c_ushort ; 
 /// < NONE Error Tools 
 pub const ET_NONE : _bindgen_ty_2 = 0 ; 
 /// < IP Scalable 
 pub const ET_IP_SCALE : _bindgen_ty_2 = 1 ; 
 /// < Flexible Macroblock Ordering 
 pub const ET_FMO : _bindgen_ty_2 = 2 ; 
 /// < Intra Refresh in predifined 2% MB 
 pub const ET_IR_R1 : _bindgen_ty_2 = 4 ; 
 /// < Intra Refresh in predifined 5% MB 
 pub const ET_IR_R2 : _bindgen_ty_2 = 8 ; 
 /// < Intra Refresh in predifined 10% MB 
 pub const ET_IR_R3 : _bindgen_ty_2 = 16 ; 
 /// < Forward Error Correction in 50% redundency mode 
 pub const ET_FEC_HALF : _bindgen_ty_2 = 32 ; 
 /// < Forward Error Correction in 100% redundency mode 
 pub const ET_FEC_FULL : _bindgen_ty_2 = 64 ; 
 /// < Reference Frame Selection 
 pub const ET_RFS : _bindgen_ty_2 = 128 ; 
 /// @brief to do 
 pub type _bindgen_ty_2 = u32 ; 
 /// @brief Information of coded Slice(=NAL)(s) 
 # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct SliceInformation { 
 /// < base buffer of coded slice(s) 
 pub pBufferOfSlices : * mut :: std :: os :: raw :: c_uchar , 
 /// < number of coded slices 
 pub iCodedSliceCount : :: std :: os :: raw :: c_int , 
 /// < array of slices length accordingly by number of slice 
 pub pLengthOfSlices : * mut :: std :: os :: raw :: c_uint , 
 /// < FEC type[0, 50%FEC, 100%FEC] 
 pub iFecType : :: std :: os :: raw :: c_int , 
 /// < index of slice in frame [FMO: 0,..,uiSliceCount-1; No FMO: 0] 
 pub uiSliceIdx : :: std :: os :: raw :: c_uchar , 
 /// < count number of slice in frame [FMO: 2-8; No FMO: 1] 
 pub uiSliceCount : :: std :: os :: raw :: c_uchar , 
 /// < index of frame[-1, .., idr_interval-1] 
 pub iFrameIndex : :: std :: os :: raw :: c_char , 
 /// < NRI, priority level of slice(NAL) 
 pub uiNalRefIdc : :: std :: os :: raw :: c_uchar , 
 /// < NAL type 
 pub uiNalType : :: std :: os :: raw :: c_uchar , 
 /// < whether final NAL is involved in buffer of coded slices, flag used in Pause feature in T27 
 pub uiContainingFinalNal : :: std :: os :: raw :: c_uchar , } # [ test ] fn bindgen_test_layout_SliceInformation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < SliceInformation > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( SliceInformation ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < SliceInformation > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( SliceInformation ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SliceInformation > ( ) ) ) . pBufferOfSlices as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( SliceInformation ) , "::" , stringify ! ( pBufferOfSlices ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SliceInformation > ( ) ) ) . iCodedSliceCount as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( SliceInformation ) , "::" , stringify ! ( iCodedSliceCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SliceInformation > ( ) ) ) . pLengthOfSlices as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( SliceInformation ) , "::" , stringify ! ( pLengthOfSlices ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SliceInformation > ( ) ) ) . iFecType as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( SliceInformation ) , "::" , stringify ! ( iFecType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SliceInformation > ( ) ) ) . uiSliceIdx as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( SliceInformation ) , "::" , stringify ! ( uiSliceIdx ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SliceInformation > ( ) ) ) . uiSliceCount as * const _ as usize } , 29usize , concat ! ( "Offset of field: " , stringify ! ( SliceInformation ) , "::" , stringify ! ( uiSliceCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SliceInformation > ( ) ) ) . iFrameIndex as * const _ as usize } , 30usize , concat ! ( "Offset of field: " , stringify ! ( SliceInformation ) , "::" , stringify ! ( iFrameIndex ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SliceInformation > ( ) ) ) . uiNalRefIdc as * const _ as usize } , 31usize , concat ! ( "Offset of field: " , stringify ! ( SliceInformation ) , "::" , stringify ! ( uiNalRefIdc ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SliceInformation > ( ) ) ) . uiNalType as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( SliceInformation ) , "::" , stringify ! ( uiNalType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SliceInformation > ( ) ) ) . uiContainingFinalNal as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( SliceInformation ) , "::" , stringify ! ( uiContainingFinalNal ) ) ) ; } impl Default for SliceInformation { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } pub type SliceInfo = SliceInformation ; pub type PSliceInfo = * mut SliceInformation ; 
 /// @brief thresholds of the initial, maximal and minimal rate 
 # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone ) ] pub struct SRateThresholds { 
 /// < frame width 
 pub iWidth : :: std :: os :: raw :: c_int , 
 /// < frame height 
 pub iHeight : :: std :: os :: raw :: c_int , 
 /// < threshold of initial rate 
 pub iThresholdOfInitRate : :: std :: os :: raw :: c_int , 
 /// < threshold of maximal rate 
 pub iThresholdOfMaxRate : :: std :: os :: raw :: c_int , 
 /// < threshold of minimal rate 
 pub iThresholdOfMinRate : :: std :: os :: raw :: c_int , 
 /// < min frame rate min 
 pub iMinThresholdFrameRate : :: std :: os :: raw :: c_int , 
 /// < skip to frame rate min 
 pub iSkipFrameRate : :: std :: os :: raw :: c_int , 
 /// < how many frames to skip 
 pub iSkipFrameStep : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_SRateThresholds ( ) { assert_eq ! ( :: std :: mem :: size_of :: < SRateThresholds > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( SRateThresholds ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < SRateThresholds > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( SRateThresholds ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SRateThresholds > ( ) ) ) . iWidth as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( SRateThresholds ) , "::" , stringify ! ( iWidth ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SRateThresholds > ( ) ) ) . iHeight as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( SRateThresholds ) , "::" , stringify ! ( iHeight ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SRateThresholds > ( ) ) ) . iThresholdOfInitRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( SRateThresholds ) , "::" , stringify ! ( iThresholdOfInitRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SRateThresholds > ( ) ) ) . iThresholdOfMaxRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( SRateThresholds ) , "::" , stringify ! ( iThresholdOfMaxRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SRateThresholds > ( ) ) ) . iThresholdOfMinRate as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( SRateThresholds ) , "::" , stringify ! ( iThresholdOfMinRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SRateThresholds > ( ) ) ) . iMinThresholdFrameRate as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( SRateThresholds ) , "::" , stringify ! ( iMinThresholdFrameRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SRateThresholds > ( ) ) ) . iSkipFrameRate as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( SRateThresholds ) , "::" , stringify ! ( iSkipFrameRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SRateThresholds > ( ) ) ) . iSkipFrameStep as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( SRateThresholds ) , "::" , stringify ! ( iSkipFrameStep ) ) ) ; } pub type PRateThresholds = * mut SRateThresholds ; 
 /// @brief  Structure for decoder memery 
 # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone ) ] pub struct TagSysMemBuffer { 
 /// < width of decoded pic for display 
 pub iWidth : :: std :: os :: raw :: c_int , 
 /// < height of decoded pic for display 
 pub iHeight : :: std :: os :: raw :: c_int , 
 /// < type is "EVideoFormatType" 
 pub iFormat : :: std :: os :: raw :: c_int , 
 /// < stride of 2 component 
 pub iStride : [ :: std :: os :: raw :: c_int ; 2usize ] , } # [ test ] fn bindgen_test_layout_TagSysMemBuffer ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TagSysMemBuffer > ( ) , 20usize , concat ! ( "Size of: " , stringify ! ( TagSysMemBuffer ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TagSysMemBuffer > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( TagSysMemBuffer ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagSysMemBuffer > ( ) ) ) . iWidth as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TagSysMemBuffer ) , "::" , stringify ! ( iWidth ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagSysMemBuffer > ( ) ) ) . iHeight as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TagSysMemBuffer ) , "::" , stringify ! ( iHeight ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagSysMemBuffer > ( ) ) ) . iFormat as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TagSysMemBuffer ) , "::" , stringify ! ( iFormat ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagSysMemBuffer > ( ) ) ) . iStride as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TagSysMemBuffer ) , "::" , stringify ! ( iStride ) ) ) ; } pub type SSysMEMBuffer = TagSysMemBuffer ; 
 /// @brief  Buffer info 
 # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct TagBufferInfo { 
 /// < 0: one frame data is not ready; 1: one frame data is ready 
 pub iBufferStatus : :: std :: os :: raw :: c_int , 
 /// < input BS timestamp 
 pub uiInBsTimeStamp : :: std :: os :: raw :: c_ulonglong , 
 /// < output YUV timestamp, when bufferstatus is 1 
 pub uiOutYuvTimeStamp : :: std :: os :: raw :: c_ulonglong , 
 /// <  output buffer info 
 pub UsrData : TagBufferInfo__bindgen_ty_1 , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union TagBufferInfo__bindgen_ty_1 { 
 /// <  memory info for one picture 
 pub sSystemBuffer : SSysMEMBuffer , _bindgen_union_align : [ u32 ; 5usize ] , } # [ test ] fn bindgen_test_layout_TagBufferInfo__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TagBufferInfo__bindgen_ty_1 > ( ) , 20usize , concat ! ( "Size of: " , stringify ! ( TagBufferInfo__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TagBufferInfo__bindgen_ty_1 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( TagBufferInfo__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagBufferInfo__bindgen_ty_1 > ( ) ) ) . sSystemBuffer as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TagBufferInfo__bindgen_ty_1 ) , "::" , stringify ! ( sSystemBuffer ) ) ) ; } impl Default for TagBufferInfo__bindgen_ty_1 { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } # [ test ] fn bindgen_test_layout_TagBufferInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TagBufferInfo > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( TagBufferInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TagBufferInfo > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( TagBufferInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagBufferInfo > ( ) ) ) . iBufferStatus as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TagBufferInfo ) , "::" , stringify ! ( iBufferStatus ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagBufferInfo > ( ) ) ) . uiInBsTimeStamp as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TagBufferInfo ) , "::" , stringify ! ( uiInBsTimeStamp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagBufferInfo > ( ) ) ) . uiOutYuvTimeStamp as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TagBufferInfo ) , "::" , stringify ! ( uiOutYuvTimeStamp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagBufferInfo > ( ) ) ) . UsrData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TagBufferInfo ) , "::" , stringify ! ( UsrData ) ) ) ; } impl Default for TagBufferInfo { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } pub type SBufferInfo = TagBufferInfo ; extern "C" { # [ link_name = "\u{1}kiKeyNumMultiple" ] pub static mut kiKeyNumMultiple : [ :: std :: os :: raw :: c_char ; 6usize ] ; } 
 /// @brief Struct of OpenH264 version
/// /
/// ///
/// /// E.g. SDK version is 1.2.0.0, major version number is 1, minor version number is 2, and revision number is 0. 
 # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone ) ] pub struct _tagVersion { 
 /// < The major version number 
 pub uMajor : :: std :: os :: raw :: c_uint , 
 /// < The minor version number 
 pub uMinor : :: std :: os :: raw :: c_uint , 
 /// < The revision number 
 pub uRevision : :: std :: os :: raw :: c_uint , 
 /// < The reserved number, it should be 0. 
 pub uReserved : :: std :: os :: raw :: c_uint , } # [ test ] fn bindgen_test_layout__tagVersion ( ) { assert_eq ! ( :: std :: mem :: size_of :: < _tagVersion > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( _tagVersion ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < _tagVersion > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( _tagVersion ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _tagVersion > ( ) ) ) . uMajor as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( _tagVersion ) , "::" , stringify ! ( uMajor ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _tagVersion > ( ) ) ) . uMinor as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( _tagVersion ) , "::" , stringify ! ( uMinor ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _tagVersion > ( ) ) ) . uRevision as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( _tagVersion ) , "::" , stringify ! ( uRevision ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _tagVersion > ( ) ) ) . uReserved as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( _tagVersion ) , "::" , stringify ! ( uReserved ) ) ) ; } pub type OpenH264Version = _tagVersion ; 
 /// < bit stream error-free 
 pub const dsErrorFree : DECODING_STATE = 0 ; 
 /// < need more throughput to generate a frame output, 
 pub const dsFramePending : DECODING_STATE = 1 ; 
 /// < layer lost at reference frame with temporal id 0 
 pub const dsRefLost : DECODING_STATE = 2 ; 
 /// < error bitstreams(maybe broken internal frame) the decoder cared 
 pub const dsBitstreamError : DECODING_STATE = 4 ; 
 /// < dependented layer is ever lost 
 pub const dsDepLayerLost : DECODING_STATE = 8 ; 
 /// < no parameter set NALs involved 
 pub const dsNoParamSets : DECODING_STATE = 16 ; 
 /// < current data error concealed specified 
 pub const dsDataErrorConcealed : DECODING_STATE = 32 ; 
 /// < invalid argument specified 
 pub const dsInvalidArgument : DECODING_STATE = 4096 ; 
 /// < initializing operation is expected 
 pub const dsInitialOptExpected : DECODING_STATE = 8192 ; 
 /// < out of memory due to new request 
 pub const dsOutOfMemory : DECODING_STATE = 16384 ; 
 /// < actual picture size exceeds size of dst pBuffer feed in decoder, so need expand its size 
 pub const dsDstBufNeedExpan : DECODING_STATE = 32768 ; 
 /// @brief Decoding status 
 pub type DECODING_STATE = u32 ; pub const ENCODER_OPTION_DATAFORMAT : ENCODER_OPTION = 0 ; 
 /// < IDR period,0/-1 means no Intra period (only the first frame); lager than 0 means the desired IDR period, must be multiple of (2^temporal_layer) 
 pub const ENCODER_OPTION_IDR_INTERVAL : ENCODER_OPTION = 1 ; 
 /// < structure of Base Param 
 pub const ENCODER_OPTION_SVC_ENCODE_PARAM_BASE : ENCODER_OPTION = 2 ; 
 /// < structure of Extension Param 
 pub const ENCODER_OPTION_SVC_ENCODE_PARAM_EXT : ENCODER_OPTION = 3 ; 
 /// < maximal input frame rate, current supported range: MAX_FRAME_RATE = 30,MIN_FRAME_RATE = 1 
 pub const ENCODER_OPTION_FRAME_RATE : ENCODER_OPTION = 4 ; pub const ENCODER_OPTION_BITRATE : ENCODER_OPTION = 5 ; pub const ENCODER_OPTION_MAX_BITRATE : ENCODER_OPTION = 6 ; pub const ENCODER_OPTION_INTER_SPATIAL_PRED : ENCODER_OPTION = 7 ; pub const ENCODER_OPTION_RC_MODE : ENCODER_OPTION = 8 ; pub const ENCODER_OPTION_RC_FRAME_SKIP : ENCODER_OPTION = 9 ; 
 /// < 0:disable padding;1:padding 
 pub const ENCODER_PADDING_PADDING : ENCODER_OPTION = 10 ; 
 /// < assgin the profile for each layer 
 pub const ENCODER_OPTION_PROFILE : ENCODER_OPTION = 11 ; 
 /// < assgin the level for each layer 
 pub const ENCODER_OPTION_LEVEL : ENCODER_OPTION = 12 ; 
 /// < the number of refererence frame 
 pub const ENCODER_OPTION_NUMBER_REF : ENCODER_OPTION = 13 ; 
 /// < the delivery info which is a feedback from app level 
 pub const ENCODER_OPTION_DELIVERY_STATUS : ENCODER_OPTION = 14 ; pub const ENCODER_LTR_RECOVERY_REQUEST : ENCODER_OPTION = 15 ; pub const ENCODER_LTR_MARKING_FEEDBACK : ENCODER_OPTION = 16 ; pub const ENCODER_LTR_MARKING_PERIOD : ENCODER_OPTION = 17 ; 
 /// < 0:disable LTR;larger than 0 enable LTR; LTR number is fixed to be 2 in current encoder 
 pub const ENCODER_OPTION_LTR : ENCODER_OPTION = 18 ; pub const ENCODER_OPTION_COMPLEXITY : ENCODER_OPTION = 19 ; 
 /// < enable SSEI: true--enable ssei; false--disable ssei 
 pub const ENCODER_OPTION_ENABLE_SSEI : ENCODER_OPTION = 20 ; 
 /// < enable prefix: true--enable prefix; false--disable prefix 
 pub const ENCODER_OPTION_ENABLE_PREFIX_NAL_ADDING : ENCODER_OPTION = 21 ; 
 /// < different stategy in adjust ID in SPS/PPS: 0- constant ID, 1-additional ID, 6-mapping and additional 
 pub const ENCODER_OPTION_SPS_PPS_ID_STRATEGY : ENCODER_OPTION = 22 ; pub const ENCODER_OPTION_CURRENT_PATH : ENCODER_OPTION = 23 ; 
 /// < dump layer reconstruct frame to a specified file 
 pub const ENCODER_OPTION_DUMP_FILE : ENCODER_OPTION = 24 ; 
 /// < trace info based on the trace level 
 pub const ENCODER_OPTION_TRACE_LEVEL : ENCODER_OPTION = 25 ; 
 /// < a void (*)(void* context, int level, const char* message) function which receives log messages 
 pub const ENCODER_OPTION_TRACE_CALLBACK : ENCODER_OPTION = 26 ; 
 /// < context info of trace callback 
 pub const ENCODER_OPTION_TRACE_CALLBACK_CONTEXT : ENCODER_OPTION = 27 ; 
 /// < read only 
 pub const ENCODER_OPTION_GET_STATISTICS : ENCODER_OPTION = 28 ; 
 /// < log interval in millisecond 
 pub const ENCODER_OPTION_STATISTICS_LOG_INTERVAL : ENCODER_OPTION = 29 ; 
 /// < advanced algorithmetic settings 
 pub const ENCODER_OPTION_IS_LOSSLESS_LINK : ENCODER_OPTION = 30 ; 
 /// < bit vary percentage 
 pub const ENCODER_OPTION_BITS_VARY_PERCENTAGE : ENCODER_OPTION = 31 ; 
 /// @brief Option types introduced in SVC encoder application 
 pub type ENCODER_OPTION = u32 ; 
 /// < end of stream flag 
 pub const DECODER_OPTION_END_OF_STREAM : DECODER_OPTION = 1 ; 
 /// < feedback whether or not have VCL NAL in current AU for application layer 
 pub const DECODER_OPTION_VCL_NAL : DECODER_OPTION = 2 ; 
 /// < feedback temporal id for application layer 
 pub const DECODER_OPTION_TEMPORAL_ID : DECODER_OPTION = 3 ; 
 /// < feedback current decoded frame number 
 pub const DECODER_OPTION_FRAME_NUM : DECODER_OPTION = 4 ; 
 /// < feedback current frame belong to which IDR period 
 pub const DECODER_OPTION_IDR_PIC_ID : DECODER_OPTION = 5 ; 
 /// < feedback wether current frame mark a LTR 
 pub const DECODER_OPTION_LTR_MARKING_FLAG : DECODER_OPTION = 6 ; 
 /// < feedback frame num marked by current Frame 
 pub const DECODER_OPTION_LTR_MARKED_FRAME_NUM : DECODER_OPTION = 7 ; 
 /// < indicate decoder error concealment method 
 pub const DECODER_OPTION_ERROR_CON_IDC : DECODER_OPTION = 8 ; pub const DECODER_OPTION_TRACE_LEVEL : DECODER_OPTION = 9 ; 
 /// < a void (*)(void* context, int level, const char* message) function which receives log messages 
 pub const DECODER_OPTION_TRACE_CALLBACK : DECODER_OPTION = 10 ; 
 /// < context info of trace callbac 
 pub const DECODER_OPTION_TRACE_CALLBACK_CONTEXT : DECODER_OPTION = 11 ; 
 /// < feedback decoder statistics 
 pub const DECODER_OPTION_GET_STATISTICS : DECODER_OPTION = 12 ; 
 /// < feedback decoder Sample Aspect Ratio info in Vui 
 pub const DECODER_OPTION_GET_SAR_INFO : DECODER_OPTION = 13 ; 
 /// < get current AU profile info, only is used in GetOption 
 pub const DECODER_OPTION_PROFILE : DECODER_OPTION = 14 ; 
 /// < get current AU level info,only is used in GetOption 
 pub const DECODER_OPTION_LEVEL : DECODER_OPTION = 15 ; 
 /// < set log output interval 
 pub const DECODER_OPTION_STATISTICS_LOG_INTERVAL : DECODER_OPTION = 16 ; 
 /// @brief Option types introduced in decoder application 
 pub type DECODER_OPTION = u32 ; pub const ERROR_CON_DISABLE : ERROR_CON_IDC = 0 ; pub const ERROR_CON_FRAME_COPY : ERROR_CON_IDC = 1 ; pub const ERROR_CON_SLICE_COPY : ERROR_CON_IDC = 2 ; pub const ERROR_CON_FRAME_COPY_CROSS_IDR : ERROR_CON_IDC = 3 ; pub const ERROR_CON_SLICE_COPY_CROSS_IDR : ERROR_CON_IDC = 4 ; pub const ERROR_CON_SLICE_COPY_CROSS_IDR_FREEZE_RES_CHANGE : ERROR_CON_IDC = 5 ; pub const ERROR_CON_SLICE_MV_COPY_CROSS_IDR : ERROR_CON_IDC = 6 ; pub const ERROR_CON_SLICE_MV_COPY_CROSS_IDR_FREEZE_RES_CHANGE : ERROR_CON_IDC = 7 ; 
 /// @brief Enumerate the type of error concealment methods 
 pub type ERROR_CON_IDC = u32 ; pub const FEEDBACK_NON_VCL_NAL : FEEDBACK_VCL_NAL_IN_AU = 0 ; pub const FEEDBACK_VCL_NAL : FEEDBACK_VCL_NAL_IN_AU = 1 ; pub const FEEDBACK_UNKNOWN_NAL : FEEDBACK_VCL_NAL_IN_AU = 2 ; 
 /// @brief Feedback that whether or not have VCL NAL in current AU 
 pub type FEEDBACK_VCL_NAL_IN_AU = u32 ; pub const NON_VIDEO_CODING_LAYER : LAYER_TYPE = 0 ; pub const VIDEO_CODING_LAYER : LAYER_TYPE = 1 ; 
 /// @brief Type of layer being encoded 
 pub type LAYER_TYPE = u32 ; pub const SPATIAL_LAYER_0 : LAYER_NUM = 0 ; pub const SPATIAL_LAYER_1 : LAYER_NUM = 1 ; pub const SPATIAL_LAYER_2 : LAYER_NUM = 2 ; pub const SPATIAL_LAYER_3 : LAYER_NUM = 3 ; pub const SPATIAL_LAYER_ALL : LAYER_NUM = 4 ; 
 /// @brief Spatial layer num 
 pub type LAYER_NUM = u32 ; pub const VIDEO_BITSTREAM_AVC : VIDEO_BITSTREAM_TYPE = 0 ; pub const VIDEO_BITSTREAM_SVC : VIDEO_BITSTREAM_TYPE = 1 ; pub const VIDEO_BITSTREAM_DEFAULT : VIDEO_BITSTREAM_TYPE = 1 ; 
 /// @brief Enumerate the type of video bitstream which is provided to decoder 
 pub type VIDEO_BITSTREAM_TYPE = u32 ; pub const NO_RECOVERY_REQUSET : KEY_FRAME_REQUEST_TYPE = 0 ; pub const LTR_RECOVERY_REQUEST : KEY_FRAME_REQUEST_TYPE = 1 ; pub const IDR_RECOVERY_REQUEST : KEY_FRAME_REQUEST_TYPE = 2 ; pub const NO_LTR_MARKING_FEEDBACK : KEY_FRAME_REQUEST_TYPE = 3 ; pub const LTR_MARKING_SUCCESS : KEY_FRAME_REQUEST_TYPE = 4 ; pub const LTR_MARKING_FAILED : KEY_FRAME_REQUEST_TYPE = 5 ; 
 /// @brief Enumerate the type of key frame request 
 pub type KEY_FRAME_REQUEST_TYPE = u32 ; 
 /// @brief Structure for LTR recover request 
 # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone ) ] pub struct SLTRRecoverRequest { 
 /// < IDR request or LTR recovery request 
 pub uiFeedbackType : :: std :: os :: raw :: c_uint , 
 /// < distinguish request from different IDR 
 pub uiIDRPicId : :: std :: os :: raw :: c_uint , pub iLastCorrectFrameNum : :: std :: os :: raw :: c_int , 
 /// < specify current decoder frame_num. 
 pub iCurrentFrameNum : :: std :: os :: raw :: c_int , pub iLayerId : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_SLTRRecoverRequest ( ) { assert_eq ! ( :: std :: mem :: size_of :: < SLTRRecoverRequest > ( ) , 20usize , concat ! ( "Size of: " , stringify ! ( SLTRRecoverRequest ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < SLTRRecoverRequest > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( SLTRRecoverRequest ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SLTRRecoverRequest > ( ) ) ) . uiFeedbackType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( SLTRRecoverRequest ) , "::" , stringify ! ( uiFeedbackType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SLTRRecoverRequest > ( ) ) ) . uiIDRPicId as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( SLTRRecoverRequest ) , "::" , stringify ! ( uiIDRPicId ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SLTRRecoverRequest > ( ) ) ) . iLastCorrectFrameNum as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( SLTRRecoverRequest ) , "::" , stringify ! ( iLastCorrectFrameNum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SLTRRecoverRequest > ( ) ) ) . iCurrentFrameNum as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( SLTRRecoverRequest ) , "::" , stringify ! ( iCurrentFrameNum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SLTRRecoverRequest > ( ) ) ) . iLayerId as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( SLTRRecoverRequest ) , "::" , stringify ! ( iLayerId ) ) ) ; } 
 /// @brief Structure for LTR marking feedback 
 # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone ) ] pub struct SLTRMarkingFeedback { 
 /// < mark failed or successful 
 pub uiFeedbackType : :: std :: os :: raw :: c_uint , 
 /// < distinguish request from different IDR 
 pub uiIDRPicId : :: std :: os :: raw :: c_uint , 
 /// < specify current decoder frame_num 
 pub iLTRFrameNum : :: std :: os :: raw :: c_int , pub iLayerId : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_SLTRMarkingFeedback ( ) { assert_eq ! ( :: std :: mem :: size_of :: < SLTRMarkingFeedback > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( SLTRMarkingFeedback ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < SLTRMarkingFeedback > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( SLTRMarkingFeedback ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SLTRMarkingFeedback > ( ) ) ) . uiFeedbackType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( SLTRMarkingFeedback ) , "::" , stringify ! ( uiFeedbackType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SLTRMarkingFeedback > ( ) ) ) . uiIDRPicId as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( SLTRMarkingFeedback ) , "::" , stringify ! ( uiIDRPicId ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SLTRMarkingFeedback > ( ) ) ) . iLTRFrameNum as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( SLTRMarkingFeedback ) , "::" , stringify ! ( iLTRFrameNum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SLTRMarkingFeedback > ( ) ) ) . iLayerId as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( SLTRMarkingFeedback ) , "::" , stringify ! ( iLayerId ) ) ) ; } 
 /// @brief Structure for LTR configuration 
 # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone ) ] pub struct SLTRConfig { 
 /// < 1: on, 0: off 
 pub bEnableLongTermReference : bool , 
 /// < TODO: not supported to set it arbitrary yet 
 pub iLTRRefNum : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_SLTRConfig ( ) { assert_eq ! ( :: std :: mem :: size_of :: < SLTRConfig > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( SLTRConfig ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < SLTRConfig > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( SLTRConfig ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SLTRConfig > ( ) ) ) . bEnableLongTermReference as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( SLTRConfig ) , "::" , stringify ! ( bEnableLongTermReference ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SLTRConfig > ( ) ) ) . iLTRRefNum as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( SLTRConfig ) , "::" , stringify ! ( iLTRRefNum ) ) ) ; } 
 /// < quality mode 
 pub const RC_QUALITY_MODE : RC_MODES = 0 ; 
 /// < bitrate mode 
 pub const RC_BITRATE_MODE : RC_MODES = 1 ; 
 /// < no bitrate control,only using buffer status,adjust the video quality 
 pub const RC_BUFFERBASED_MODE : RC_MODES = 2 ; pub const RC_TIMESTAMP_MODE : RC_MODES = 3 ; 
 /// < this is in-building RC MODE, WILL BE DELETED after algorithm tuning! 
 pub const RC_BITRATE_MODE_POST_SKIP : RC_MODES = 4 ; 
 /// < rate control off mode 
 pub const RC_OFF_MODE : RC_MODES = -1 ; 
 /// @brief Enumerate the type of rate control mode 
 pub type RC_MODES = i32 ; pub const PRO_UNKNOWN : EProfileIdc = 0 ; pub const PRO_BASELINE : EProfileIdc = 66 ; pub const PRO_MAIN : EProfileIdc = 77 ; pub const PRO_EXTENDED : EProfileIdc = 88 ; pub const PRO_HIGH : EProfileIdc = 100 ; pub const PRO_HIGH10 : EProfileIdc = 110 ; pub const PRO_HIGH422 : EProfileIdc = 122 ; pub const PRO_HIGH444 : EProfileIdc = 144 ; pub const PRO_CAVLC444 : EProfileIdc = 244 ; pub const PRO_SCALABLE_BASELINE : EProfileIdc = 83 ; pub const PRO_SCALABLE_HIGH : EProfileIdc = 86 ; 
 /// @brief Enumerate the type of profile id 
 pub type EProfileIdc = u32 ; pub const LEVEL_UNKNOWN : ELevelIdc = 0 ; pub const LEVEL_1_0 : ELevelIdc = 10 ; pub const LEVEL_1_B : ELevelIdc = 9 ; pub const LEVEL_1_1 : ELevelIdc = 11 ; pub const LEVEL_1_2 : ELevelIdc = 12 ; pub const LEVEL_1_3 : ELevelIdc = 13 ; pub const LEVEL_2_0 : ELevelIdc = 20 ; pub const LEVEL_2_1 : ELevelIdc = 21 ; pub const LEVEL_2_2 : ELevelIdc = 22 ; pub const LEVEL_3_0 : ELevelIdc = 30 ; pub const LEVEL_3_1 : ELevelIdc = 31 ; pub const LEVEL_3_2 : ELevelIdc = 32 ; pub const LEVEL_4_0 : ELevelIdc = 40 ; pub const LEVEL_4_1 : ELevelIdc = 41 ; pub const LEVEL_4_2 : ELevelIdc = 42 ; pub const LEVEL_5_0 : ELevelIdc = 50 ; pub const LEVEL_5_1 : ELevelIdc = 51 ; pub const LEVEL_5_2 : ELevelIdc = 52 ; 
 /// @brief Enumerate the type of level id 
 pub type ELevelIdc = u32 ; 
 /// < quiet mode 
 pub const WELS_LOG_QUIET : _bindgen_ty_3 = 0 ; 
 /// < error log iLevel 
 pub const WELS_LOG_ERROR : _bindgen_ty_3 = 1 ; 
 /// < Warning log iLevel 
 pub const WELS_LOG_WARNING : _bindgen_ty_3 = 2 ; 
 /// < information log iLevel 
 pub const WELS_LOG_INFO : _bindgen_ty_3 = 4 ; 
 /// < debug log, critical algo log 
 pub const WELS_LOG_DEBUG : _bindgen_ty_3 = 8 ; 
 /// < per packet/frame log 
 pub const WELS_LOG_DETAIL : _bindgen_ty_3 = 16 ; 
 /// < resversed log iLevel 
 pub const WELS_LOG_RESV : _bindgen_ty_3 = 32 ; pub const WELS_LOG_LEVEL_COUNT : _bindgen_ty_3 = 6 ; 
 /// < default log iLevel in Wels codec 
 pub const WELS_LOG_DEFAULT : _bindgen_ty_3 = 2 ; 
 /// @brief Enumerate the type of wels log 
 pub type _bindgen_ty_3 = u32 ; 
 /// < | SliceNum==1 
 pub const SM_SINGLE_SLICE : SliceModeEnum = 0 ; 
 /// < | according to SliceNum        | enabled dynamic slicing for multi-thread 
 pub const SM_FIXEDSLCNUM_SLICE : SliceModeEnum = 1 ; 
 /// < | according to SlicesAssign    | need input of MB numbers each slice. In addition, if other constraint in SSliceArgument is presented, need to follow the constraints. Typically if MB num and slice size are both constrained, re-encoding may be involved. 
 pub const SM_RASTER_SLICE : SliceModeEnum = 2 ; 
 /// < | according to SliceSize       | slicing according to size, the slicing will be dynamic(have no idea about slice_nums until encoding current frame) 
 pub const SM_SIZELIMITED_SLICE : SliceModeEnum = 3 ; pub const SM_RESERVED : SliceModeEnum = 4 ; 
 /// @brief Enumerate the type of slice mode 
 pub type SliceModeEnum = u32 ; 
 /// @brief Structure for slice argument 
 # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct SSliceArgument { 
 /// < by default, uiSliceMode will be SM_SINGLE_SLICE 
 pub uiSliceMode : SliceModeEnum , 
 /// < only used when uiSliceMode=1, when uiSliceNum=0 means auto design it with cpu core number 
 pub uiSliceNum : :: std :: os :: raw :: c_uint , 
 /// < only used when uiSliceMode=2; when =0 means setting one MB row a slice 
 pub uiSliceMbNum : [ :: std :: os :: raw :: c_uint ; 35usize ] , 
 /// < now only used when uiSliceMode=4 
 pub uiSliceSizeConstraint : :: std :: os :: raw :: c_uint , } # [ test ] fn bindgen_test_layout_SSliceArgument ( ) { assert_eq ! ( :: std :: mem :: size_of :: < SSliceArgument > ( ) , 152usize , concat ! ( "Size of: " , stringify ! ( SSliceArgument ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < SSliceArgument > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( SSliceArgument ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SSliceArgument > ( ) ) ) . uiSliceMode as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( SSliceArgument ) , "::" , stringify ! ( uiSliceMode ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SSliceArgument > ( ) ) ) . uiSliceNum as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( SSliceArgument ) , "::" , stringify ! ( uiSliceNum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SSliceArgument > ( ) ) ) . uiSliceMbNum as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( SSliceArgument ) , "::" , stringify ! ( uiSliceMbNum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SSliceArgument > ( ) ) ) . uiSliceSizeConstraint as * const _ as usize } , 148usize , concat ! ( "Offset of field: " , stringify ! ( SSliceArgument ) , "::" , stringify ! ( uiSliceSizeConstraint ) ) ) ; } impl Default for SSliceArgument { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } pub const VF_COMPONENT : EVideoFormatSPS = 0 ; pub const VF_PAL : EVideoFormatSPS = 1 ; pub const VF_NTSC : EVideoFormatSPS = 2 ; pub const VF_SECAM : EVideoFormatSPS = 3 ; pub const VF_MAC : EVideoFormatSPS = 4 ; pub const VF_UNDEF : EVideoFormatSPS = 5 ; pub const VF_NUM_ENUM : EVideoFormatSPS = 6 ; 
 /// @brief Enumerate the type of video format 
 pub type EVideoFormatSPS = u32 ; pub const CP_RESERVED0 : EColorPrimaries = 0 ; pub const CP_BT709 : EColorPrimaries = 1 ; pub const CP_UNDEF : EColorPrimaries = 2 ; pub const CP_RESERVED3 : EColorPrimaries = 3 ; pub const CP_BT470M : EColorPrimaries = 4 ; pub const CP_BT470BG : EColorPrimaries = 5 ; pub const CP_SMPTE170M : EColorPrimaries = 6 ; pub const CP_SMPTE240M : EColorPrimaries = 7 ; pub const CP_FILM : EColorPrimaries = 8 ; pub const CP_BT2020 : EColorPrimaries = 9 ; pub const CP_NUM_ENUM : EColorPrimaries = 10 ; 
 /// @brief Enumerate the type of color primaries 
 pub type EColorPrimaries = u32 ; pub const TRC_RESERVED0 : ETransferCharacteristics = 0 ; pub const TRC_BT709 : ETransferCharacteristics = 1 ; pub const TRC_UNDEF : ETransferCharacteristics = 2 ; pub const TRC_RESERVED3 : ETransferCharacteristics = 3 ; pub const TRC_BT470M : ETransferCharacteristics = 4 ; pub const TRC_BT470BG : ETransferCharacteristics = 5 ; pub const TRC_SMPTE170M : ETransferCharacteristics = 6 ; pub const TRC_SMPTE240M : ETransferCharacteristics = 7 ; pub const TRC_LINEAR : ETransferCharacteristics = 8 ; pub const TRC_LOG100 : ETransferCharacteristics = 9 ; pub const TRC_LOG316 : ETransferCharacteristics = 10 ; pub const TRC_IEC61966_2_4 : ETransferCharacteristics = 11 ; pub const TRC_BT1361E : ETransferCharacteristics = 12 ; pub const TRC_IEC61966_2_1 : ETransferCharacteristics = 13 ; pub const TRC_BT2020_10 : ETransferCharacteristics = 14 ; pub const TRC_BT2020_12 : ETransferCharacteristics = 15 ; pub const TRC_NUM_ENUM : ETransferCharacteristics = 16 ; 
 /// @brief Enumerate the type of transfer characteristics 
 pub type ETransferCharacteristics = u32 ; pub const CM_GBR : EColorMatrix = 0 ; pub const CM_BT709 : EColorMatrix = 1 ; pub const CM_UNDEF : EColorMatrix = 2 ; pub const CM_RESERVED3 : EColorMatrix = 3 ; pub const CM_FCC : EColorMatrix = 4 ; pub const CM_BT470BG : EColorMatrix = 5 ; pub const CM_SMPTE170M : EColorMatrix = 6 ; pub const CM_SMPTE240M : EColorMatrix = 7 ; pub const CM_YCGCO : EColorMatrix = 8 ; pub const CM_BT2020NC : EColorMatrix = 9 ; pub const CM_BT2020C : EColorMatrix = 10 ; pub const CM_NUM_ENUM : EColorMatrix = 11 ; 
 /// @brief Enumerate the type of color matrix 
 pub type EColorMatrix = u32 ; pub const ASP_UNSPECIFIED : ESampleAspectRatio = 0 ; pub const ASP_1x1 : ESampleAspectRatio = 1 ; pub const ASP_12x11 : ESampleAspectRatio = 2 ; pub const ASP_10x11 : ESampleAspectRatio = 3 ; pub const ASP_16x11 : ESampleAspectRatio = 4 ; pub const ASP_40x33 : ESampleAspectRatio = 5 ; pub const ASP_24x11 : ESampleAspectRatio = 6 ; pub const ASP_20x11 : ESampleAspectRatio = 7 ; pub const ASP_32x11 : ESampleAspectRatio = 8 ; pub const ASP_80x33 : ESampleAspectRatio = 9 ; pub const ASP_18x11 : ESampleAspectRatio = 10 ; pub const ASP_15x11 : ESampleAspectRatio = 11 ; pub const ASP_64x33 : ESampleAspectRatio = 12 ; pub const ASP_160x99 : ESampleAspectRatio = 13 ; pub const ASP_EXT_SAR : ESampleAspectRatio = 255 ; 
 /// @brief Enumerate the type of sample aspect ratio 
 pub type ESampleAspectRatio = u32 ; 
 /// @brief  Structure for spatial layer configuration 
 # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct SSpatialLayerConfig { 
 /// < width of picture in luminance samples of a layer 
 pub iVideoWidth : :: std :: os :: raw :: c_int , 
 /// < height of picture in luminance samples of a layer 
 pub iVideoHeight : :: std :: os :: raw :: c_int , 
 /// < frame rate specified for a layer 
 pub fFrameRate : f32 , 
 /// < target bitrate for a spatial layer, in unit of bps 
 pub iSpatialBitrate : :: std :: os :: raw :: c_int , 
 /// < maximum  bitrate for a spatial layer, in unit of bps 
 pub iMaxSpatialBitrate : :: std :: os :: raw :: c_int , 
 /// < value of profile IDC (PRO_UNKNOWN for auto-detection) 
 pub uiProfileIdc : EProfileIdc , 
 /// < value of profile IDC (0 for auto-detection) 
 pub uiLevelIdc : ELevelIdc , 
 /// < value of level IDC (0 for auto-detection) 
 pub iDLayerQp : :: std :: os :: raw :: c_int , pub sSliceArgument : SSliceArgument , pub bVideoSignalTypePresent : bool , pub uiVideoFormat : :: std :: os :: raw :: c_uchar , pub bFullRange : bool , pub bColorDescriptionPresent : bool , pub uiColorPrimaries : :: std :: os :: raw :: c_uchar , pub uiTransferCharacteristics : :: std :: os :: raw :: c_uchar , pub uiColorMatrix : :: std :: os :: raw :: c_uchar , 
 /// < aspect ratio present in VUI 
 pub bAspectRatioPresent : bool , 
 /// < aspect ratio idc 
 pub eAspectRatio : ESampleAspectRatio , 
 /// < use if aspect ratio idc == 255 
 pub sAspectRatioExtWidth : :: std :: os :: raw :: c_ushort , 
 /// < use if aspect ratio idc == 255 
 pub sAspectRatioExtHeight : :: std :: os :: raw :: c_ushort , } # [ test ] fn bindgen_test_layout_SSpatialLayerConfig ( ) { assert_eq ! ( :: std :: mem :: size_of :: < SSpatialLayerConfig > ( ) , 200usize , concat ! ( "Size of: " , stringify ! ( SSpatialLayerConfig ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < SSpatialLayerConfig > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( SSpatialLayerConfig ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SSpatialLayerConfig > ( ) ) ) . iVideoWidth as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( SSpatialLayerConfig ) , "::" , stringify ! ( iVideoWidth ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SSpatialLayerConfig > ( ) ) ) . iVideoHeight as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( SSpatialLayerConfig ) , "::" , stringify ! ( iVideoHeight ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SSpatialLayerConfig > ( ) ) ) . fFrameRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( SSpatialLayerConfig ) , "::" , stringify ! ( fFrameRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SSpatialLayerConfig > ( ) ) ) . iSpatialBitrate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( SSpatialLayerConfig ) , "::" , stringify ! ( iSpatialBitrate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SSpatialLayerConfig > ( ) ) ) . iMaxSpatialBitrate as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( SSpatialLayerConfig ) , "::" , stringify ! ( iMaxSpatialBitrate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SSpatialLayerConfig > ( ) ) ) . uiProfileIdc as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( SSpatialLayerConfig ) , "::" , stringify ! ( uiProfileIdc ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SSpatialLayerConfig > ( ) ) ) . uiLevelIdc as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( SSpatialLayerConfig ) , "::" , stringify ! ( uiLevelIdc ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SSpatialLayerConfig > ( ) ) ) . iDLayerQp as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( SSpatialLayerConfig ) , "::" , stringify ! ( iDLayerQp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SSpatialLayerConfig > ( ) ) ) . sSliceArgument as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( SSpatialLayerConfig ) , "::" , stringify ! ( sSliceArgument ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SSpatialLayerConfig > ( ) ) ) . bVideoSignalTypePresent as * const _ as usize } , 184usize , concat ! ( "Offset of field: " , stringify ! ( SSpatialLayerConfig ) , "::" , stringify ! ( bVideoSignalTypePresent ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SSpatialLayerConfig > ( ) ) ) . uiVideoFormat as * const _ as usize } , 185usize , concat ! ( "Offset of field: " , stringify ! ( SSpatialLayerConfig ) , "::" , stringify ! ( uiVideoFormat ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SSpatialLayerConfig > ( ) ) ) . bFullRange as * const _ as usize } , 186usize , concat ! ( "Offset of field: " , stringify ! ( SSpatialLayerConfig ) , "::" , stringify ! ( bFullRange ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SSpatialLayerConfig > ( ) ) ) . bColorDescriptionPresent as * const _ as usize } , 187usize , concat ! ( "Offset of field: " , stringify ! ( SSpatialLayerConfig ) , "::" , stringify ! ( bColorDescriptionPresent ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SSpatialLayerConfig > ( ) ) ) . uiColorPrimaries as * const _ as usize } , 188usize , concat ! ( "Offset of field: " , stringify ! ( SSpatialLayerConfig ) , "::" , stringify ! ( uiColorPrimaries ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SSpatialLayerConfig > ( ) ) ) . uiTransferCharacteristics as * const _ as usize } , 189usize , concat ! ( "Offset of field: " , stringify ! ( SSpatialLayerConfig ) , "::" , stringify ! ( uiTransferCharacteristics ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SSpatialLayerConfig > ( ) ) ) . uiColorMatrix as * const _ as usize } , 190usize , concat ! ( "Offset of field: " , stringify ! ( SSpatialLayerConfig ) , "::" , stringify ! ( uiColorMatrix ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SSpatialLayerConfig > ( ) ) ) . bAspectRatioPresent as * const _ as usize } , 191usize , concat ! ( "Offset of field: " , stringify ! ( SSpatialLayerConfig ) , "::" , stringify ! ( bAspectRatioPresent ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SSpatialLayerConfig > ( ) ) ) . eAspectRatio as * const _ as usize } , 192usize , concat ! ( "Offset of field: " , stringify ! ( SSpatialLayerConfig ) , "::" , stringify ! ( eAspectRatio ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SSpatialLayerConfig > ( ) ) ) . sAspectRatioExtWidth as * const _ as usize } , 196usize , concat ! ( "Offset of field: " , stringify ! ( SSpatialLayerConfig ) , "::" , stringify ! ( sAspectRatioExtWidth ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SSpatialLayerConfig > ( ) ) ) . sAspectRatioExtHeight as * const _ as usize } , 198usize , concat ! ( "Offset of field: " , stringify ! ( SSpatialLayerConfig ) , "::" , stringify ! ( sAspectRatioExtHeight ) ) ) ; } impl Default for SSpatialLayerConfig { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } 
 /// < camera video for real-time communication 
 pub const CAMERA_VIDEO_REAL_TIME : EUsageType = 0 ; 
 /// < screen content signal 
 pub const SCREEN_CONTENT_REAL_TIME : EUsageType = 1 ; pub const CAMERA_VIDEO_NON_REAL_TIME : EUsageType = 2 ; 
 /// @brief Encoder usage type 
 pub type EUsageType = u32 ; 
 /// < the lowest compleixty,the fastest speed, 
 pub const LOW_COMPLEXITY : ECOMPLEXITY_MODE = 0 ; 
 /// < medium complexity, medium speed,medium quality 
 pub const MEDIUM_COMPLEXITY : ECOMPLEXITY_MODE = 1 ; 
 /// < high complexity, lowest speed, high quality 
 pub const HIGH_COMPLEXITY : ECOMPLEXITY_MODE = 2 ; 
 /// @brief Enumulate the complexity mode 
 pub type ECOMPLEXITY_MODE = u32 ; 
 /// < constant id in SPS/PPS 
 pub const CONSTANT_ID : EParameterSetStrategy = 0 ; 
 /// < SPS/PPS id increases at each IDR 
 pub const INCREASING_ID : EParameterSetStrategy = 1 ; 
 /// < using SPS in the existing list if possible 
 pub const SPS_LISTING : EParameterSetStrategy = 2 ; pub const SPS_LISTING_AND_PPS_INCREASING : EParameterSetStrategy = 3 ; pub const SPS_PPS_LISTING : EParameterSetStrategy = 6 ; 
 /// @brief Enumulate for the stategy of SPS/PPS strategy 
 pub type EParameterSetStrategy = u32 ; 
 /// @brief SVC Encoding Parameters 
 # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TagEncParamBase { 
 /// < application type;1.CAMERA_VIDEO_REAL_TIME:camera video signal; 2.SCREEN_CONTENT_REAL_TIME:screen content signal; 
 pub iUsageType : EUsageType , 
 /// < width of picture in luminance samples (the maximum of all layers if multiple spatial layers presents) 
 pub iPicWidth : :: std :: os :: raw :: c_int , 
 /// < height of picture in luminance samples((the maximum of all layers if multiple spatial layers presents) 
 pub iPicHeight : :: std :: os :: raw :: c_int , 
 /// < target bitrate desired, in unit of bps 
 pub iTargetBitrate : :: std :: os :: raw :: c_int , 
 /// < rate control mode 
 pub iRCMode : RC_MODES , 
 /// < maximal input frame rate 
 pub fMaxFrameRate : f32 , } # [ test ] fn bindgen_test_layout_TagEncParamBase ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TagEncParamBase > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( TagEncParamBase ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TagEncParamBase > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( TagEncParamBase ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamBase > ( ) ) ) . iUsageType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamBase ) , "::" , stringify ! ( iUsageType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamBase > ( ) ) ) . iPicWidth as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamBase ) , "::" , stringify ! ( iPicWidth ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamBase > ( ) ) ) . iPicHeight as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamBase ) , "::" , stringify ! ( iPicHeight ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamBase > ( ) ) ) . iTargetBitrate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamBase ) , "::" , stringify ! ( iTargetBitrate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamBase > ( ) ) ) . iRCMode as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamBase ) , "::" , stringify ! ( iRCMode ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamBase > ( ) ) ) . fMaxFrameRate as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamBase ) , "::" , stringify ! ( fMaxFrameRate ) ) ) ; } impl Default for TagEncParamBase { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } pub type SEncParamBase = TagEncParamBase ; pub type PEncParamBase = * mut TagEncParamBase ; 
 /// @brief SVC Encoding Parameters extention 
 # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct TagEncParamExt { 
 /// < application type;1.CAMERA_VIDEO_REAL_TIME:camera video signal;2.SCREEN_CONTENT_REAL_TIME:screen content signal; 
 pub iUsageType : EUsageType , 
 /// < width of picture in luminance samples (the maximum of all layers if multiple spatial layers presents) 
 pub iPicWidth : :: std :: os :: raw :: c_int , 
 /// < height of picture in luminance samples((the maximum of all layers if multiple spatial layers presents) 
 pub iPicHeight : :: std :: os :: raw :: c_int , 
 /// < target bitrate desired, in unit of bps 
 pub iTargetBitrate : :: std :: os :: raw :: c_int , 
 /// < rate control mode 
 pub iRCMode : RC_MODES , 
 /// < maximal input frame rate 
 pub fMaxFrameRate : f32 , 
 /// < temporal layer number, max temporal layer = 4 
 pub iTemporalLayerNum : :: std :: os :: raw :: c_int , 
 /// < spatial layer number,1<= iSpatialLayerNum <= MAX_SPATIAL_LAYER_NUM, MAX_SPATIAL_LAYER_NUM = 4 
 pub iSpatialLayerNum : :: std :: os :: raw :: c_int , pub sSpatialLayers : [ SSpatialLayerConfig ; 4usize ] , pub iComplexityMode : ECOMPLEXITY_MODE , 
 /// < period of Intra frame 
 pub uiIntraPeriod : :: std :: os :: raw :: c_uint , 
 /// < number of reference frame used 
 pub iNumRefFrame : :: std :: os :: raw :: c_int , 
 /// < different stategy in adjust ID in SPS/PPS: 0- constant ID, 1-additional ID, 6-mapping and additional 
 pub eSpsPpsIdStrategy : EParameterSetStrategy , 
 /// < false:not use Prefix NAL; true: use Prefix NAL 
 pub bPrefixNalAddingCtrl : bool , 
 /// < false:not use SSEI; true: use SSEI -- TODO: planning to remove the interface of SSEI 
 pub bEnableSSEI : bool , 
 /// < (when encoding more than 1 spatial layer) false: use SVC syntax for higher layers; true: use Simulcast AVC 
 pub bSimulcastAVC : bool , 
 /// < 0:disable padding;1:padding 
 pub iPaddingFlag : :: std :: os :: raw :: c_int , 
 /// < 0:CAVLC  1:CABAC. 
 pub iEntropyCodingModeFlag : :: std :: os :: raw :: c_int , 
 /// < False: don't skip frame even if VBV buffer overflow.True: allow skipping frames to keep the bitrate within limits 
 pub bEnableFrameSkip : bool , 
 /// < the maximum bitrate, in unit of bps, set it to UNSPECIFIED_BIT_RATE if not needed 
 pub iMaxBitrate : :: std :: os :: raw :: c_int , 
 /// < the maximum QP encoder supports 
 pub iMaxQp : :: std :: os :: raw :: c_int , 
 /// < the minmum QP encoder supports 
 pub iMinQp : :: std :: os :: raw :: c_int , 
 /// < the maximum NAL size.  This value should be not 0 for dynamic slice mode 
 pub uiMaxNalSize : :: std :: os :: raw :: c_uint , 
 /// < 1: on, 0: off 
 pub bEnableLongTermReference : bool , 
 /// < the number of LTR(long term reference),TODO: not supported to set it arbitrary yet 
 pub iLTRRefNum : :: std :: os :: raw :: c_int , 
 /// < the LTR marked period that is used in feedback. 
 pub iLtrMarkPeriod : :: std :: os :: raw :: c_uint , 
 /// < 1 # 0: auto(dynamic imp. internal encoder); 1: multiple threads imp. disabled; lager than 1: count number of threads; 
 pub iMultipleThreadIdc : :: std :: os :: raw :: c_ushort , 
 /// < only used when uiSliceMode=1 or 3, will change slicing of a picture during the run-time of multi-thread encoding, so the result of each run may be different 
 pub bUseLoadBalancing : bool , 
 /// < 0: on, 1: off, 2: on except for slice boundaries 
 pub iLoopFilterDisableIdc : :: std :: os :: raw :: c_int , 
 /// < AlphaOffset: valid range [-6, 6], default 0 
 pub iLoopFilterAlphaC0Offset : :: std :: os :: raw :: c_int , 
 /// < BetaOffset: valid range [-6, 6], default 0 
 pub iLoopFilterBetaOffset : :: std :: os :: raw :: c_int , 
 /// < denoise control 
 pub bEnableDenoise : bool , 
 /// < background detection control //VAA_BACKGROUND_DETECTION //BGD cmd 
 pub bEnableBackgroundDetection : bool , 
 /// < adaptive quantization control 
 pub bEnableAdaptiveQuant : bool , 
 /// < enable frame cropping flag: TRUE always in application 
 pub bEnableFrameCroppingFlag : bool , pub bEnableSceneChangeDetect : bool , 
 /// <  LTR advanced setting 
 pub bIsLosslessLink : bool , } # [ test ] fn bindgen_test_layout_TagEncParamExt ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TagEncParamExt > ( ) , 916usize , concat ! ( "Size of: " , stringify ! ( TagEncParamExt ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TagEncParamExt > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( TagEncParamExt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . iUsageType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( iUsageType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . iPicWidth as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( iPicWidth ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . iPicHeight as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( iPicHeight ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . iTargetBitrate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( iTargetBitrate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . iRCMode as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( iRCMode ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . fMaxFrameRate as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( fMaxFrameRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . iTemporalLayerNum as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( iTemporalLayerNum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . iSpatialLayerNum as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( iSpatialLayerNum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . sSpatialLayers as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( sSpatialLayers ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . iComplexityMode as * const _ as usize } , 832usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( iComplexityMode ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . uiIntraPeriod as * const _ as usize } , 836usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( uiIntraPeriod ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . iNumRefFrame as * const _ as usize } , 840usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( iNumRefFrame ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . eSpsPpsIdStrategy as * const _ as usize } , 844usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( eSpsPpsIdStrategy ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . bPrefixNalAddingCtrl as * const _ as usize } , 848usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( bPrefixNalAddingCtrl ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . bEnableSSEI as * const _ as usize } , 849usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( bEnableSSEI ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . bSimulcastAVC as * const _ as usize } , 850usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( bSimulcastAVC ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . iPaddingFlag as * const _ as usize } , 852usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( iPaddingFlag ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . iEntropyCodingModeFlag as * const _ as usize } , 856usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( iEntropyCodingModeFlag ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . bEnableFrameSkip as * const _ as usize } , 860usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( bEnableFrameSkip ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . iMaxBitrate as * const _ as usize } , 864usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( iMaxBitrate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . iMaxQp as * const _ as usize } , 868usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( iMaxQp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . iMinQp as * const _ as usize } , 872usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( iMinQp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . uiMaxNalSize as * const _ as usize } , 876usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( uiMaxNalSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . bEnableLongTermReference as * const _ as usize } , 880usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( bEnableLongTermReference ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . iLTRRefNum as * const _ as usize } , 884usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( iLTRRefNum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . iLtrMarkPeriod as * const _ as usize } , 888usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( iLtrMarkPeriod ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . iMultipleThreadIdc as * const _ as usize } , 892usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( iMultipleThreadIdc ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . bUseLoadBalancing as * const _ as usize } , 894usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( bUseLoadBalancing ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . iLoopFilterDisableIdc as * const _ as usize } , 896usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( iLoopFilterDisableIdc ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . iLoopFilterAlphaC0Offset as * const _ as usize } , 900usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( iLoopFilterAlphaC0Offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . iLoopFilterBetaOffset as * const _ as usize } , 904usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( iLoopFilterBetaOffset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . bEnableDenoise as * const _ as usize } , 908usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( bEnableDenoise ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . bEnableBackgroundDetection as * const _ as usize } , 909usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( bEnableBackgroundDetection ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . bEnableAdaptiveQuant as * const _ as usize } , 910usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( bEnableAdaptiveQuant ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . bEnableFrameCroppingFlag as * const _ as usize } , 911usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( bEnableFrameCroppingFlag ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . bEnableSceneChangeDetect as * const _ as usize } , 912usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( bEnableSceneChangeDetect ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagEncParamExt > ( ) ) ) . bIsLosslessLink as * const _ as usize } , 913usize , concat ! ( "Offset of field: " , stringify ! ( TagEncParamExt ) , "::" , stringify ! ( bIsLosslessLink ) ) ) ; } impl Default for TagEncParamExt { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } pub type SEncParamExt = TagEncParamExt ; 
 /// @brief Define a new struct to show the property of video bitstream. 
 # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct SVideoProperty { 
 /// < size of the struct 
 pub size : :: std :: os :: raw :: c_uint , 
 /// < video stream type (AVC/SVC) 
 pub eVideoBsType : VIDEO_BITSTREAM_TYPE , } # [ test ] fn bindgen_test_layout_SVideoProperty ( ) { assert_eq ! ( :: std :: mem :: size_of :: < SVideoProperty > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( SVideoProperty ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < SVideoProperty > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( SVideoProperty ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SVideoProperty > ( ) ) ) . size as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( SVideoProperty ) , "::" , stringify ! ( size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SVideoProperty > ( ) ) ) . eVideoBsType as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( SVideoProperty ) , "::" , stringify ! ( eVideoBsType ) ) ) ; } impl Default for SVideoProperty { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } 
 /// @brief SVC Decoding Parameters, reserved here and potential applicable in the future 
 # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TagSVCDecodingParam { 
 /// < file name of reconstructed frame used for PSNR calculation based debug 
 pub pFileNameRestructed : * mut :: std :: os :: raw :: c_char , 
 /// < CPU load 
 pub uiCpuLoad : :: std :: os :: raw :: c_uint , 
 /// < setting target dq layer id 
 pub uiTargetDqLayer : :: std :: os :: raw :: c_uchar , 
 /// < whether active error concealment feature in decoder 
 pub eEcActiveIdc : ERROR_CON_IDC , 
 /// < decoder for parse only, no reconstruction. When it is true, SPS/PPS size should not exceed SPS_PPS_BS_SIZE (128). Otherwise, it will return error info 
 pub bParseOnly : bool , 
 /// < video stream property 
 pub sVideoProperty : SVideoProperty , } # [ test ] fn bindgen_test_layout_TagSVCDecodingParam ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TagSVCDecodingParam > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( TagSVCDecodingParam ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TagSVCDecodingParam > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( TagSVCDecodingParam ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagSVCDecodingParam > ( ) ) ) . pFileNameRestructed as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TagSVCDecodingParam ) , "::" , stringify ! ( pFileNameRestructed ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagSVCDecodingParam > ( ) ) ) . uiCpuLoad as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TagSVCDecodingParam ) , "::" , stringify ! ( uiCpuLoad ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagSVCDecodingParam > ( ) ) ) . uiTargetDqLayer as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TagSVCDecodingParam ) , "::" , stringify ! ( uiTargetDqLayer ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagSVCDecodingParam > ( ) ) ) . eEcActiveIdc as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TagSVCDecodingParam ) , "::" , stringify ! ( eEcActiveIdc ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagSVCDecodingParam > ( ) ) ) . bParseOnly as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TagSVCDecodingParam ) , "::" , stringify ! ( bParseOnly ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagSVCDecodingParam > ( ) ) ) . sVideoProperty as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TagSVCDecodingParam ) , "::" , stringify ! ( sVideoProperty ) ) ) ; } impl Default for TagSVCDecodingParam { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } pub type SDecodingParam = TagSVCDecodingParam ; pub type PDecodingParam = * mut TagSVCDecodingParam ; 
 /// @brief Bitstream inforamtion of a layer being encoded 
 # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct SLayerBSInfo { pub uiTemporalId : :: std :: os :: raw :: c_uchar , pub uiSpatialId : :: std :: os :: raw :: c_uchar , pub uiQualityId : :: std :: os :: raw :: c_uchar , pub eFrameType : EVideoFrameType , pub uiLayerType : :: std :: os :: raw :: c_uchar , 
 /// < refer to D.2.11 Sub-sequence information SEI message semantics 
 pub iSubSeqId : :: std :: os :: raw :: c_int , 
 /// < count number of NAL coded already 
 pub iNalCount : :: std :: os :: raw :: c_int , 
 /// < length of NAL size in byte from 0 to iNalCount-1 
 pub pNalLengthInByte : * mut :: std :: os :: raw :: c_int , 
 /// < buffer of bitstream contained 
 pub pBsBuf : * mut :: std :: os :: raw :: c_uchar , } # [ test ] fn bindgen_test_layout_SLayerBSInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < SLayerBSInfo > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( SLayerBSInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < SLayerBSInfo > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( SLayerBSInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SLayerBSInfo > ( ) ) ) . uiTemporalId as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( SLayerBSInfo ) , "::" , stringify ! ( uiTemporalId ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SLayerBSInfo > ( ) ) ) . uiSpatialId as * const _ as usize } , 1usize , concat ! ( "Offset of field: " , stringify ! ( SLayerBSInfo ) , "::" , stringify ! ( uiSpatialId ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SLayerBSInfo > ( ) ) ) . uiQualityId as * const _ as usize } , 2usize , concat ! ( "Offset of field: " , stringify ! ( SLayerBSInfo ) , "::" , stringify ! ( uiQualityId ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SLayerBSInfo > ( ) ) ) . eFrameType as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( SLayerBSInfo ) , "::" , stringify ! ( eFrameType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SLayerBSInfo > ( ) ) ) . uiLayerType as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( SLayerBSInfo ) , "::" , stringify ! ( uiLayerType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SLayerBSInfo > ( ) ) ) . iSubSeqId as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( SLayerBSInfo ) , "::" , stringify ! ( iSubSeqId ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SLayerBSInfo > ( ) ) ) . iNalCount as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( SLayerBSInfo ) , "::" , stringify ! ( iNalCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SLayerBSInfo > ( ) ) ) . pNalLengthInByte as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( SLayerBSInfo ) , "::" , stringify ! ( pNalLengthInByte ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SLayerBSInfo > ( ) ) ) . pBsBuf as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( SLayerBSInfo ) , "::" , stringify ! ( pBsBuf ) ) ) ; } impl Default for SLayerBSInfo { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } pub type PLayerBSInfo = * mut SLayerBSInfo ; 
 /// @brief Frame bit stream info 
 # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct SFrameBSInfo { pub iLayerNum : :: std :: os :: raw :: c_int , pub sLayerInfo : [ SLayerBSInfo ; 128usize ] , pub eFrameType : EVideoFrameType , pub iFrameSizeInBytes : :: std :: os :: raw :: c_int , pub uiTimeStamp : :: std :: os :: raw :: c_longlong , } # [ test ] fn bindgen_test_layout_SFrameBSInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < SFrameBSInfo > ( ) , 5144usize , concat ! ( "Size of: " , stringify ! ( SFrameBSInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < SFrameBSInfo > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( SFrameBSInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SFrameBSInfo > ( ) ) ) . iLayerNum as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( SFrameBSInfo ) , "::" , stringify ! ( iLayerNum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SFrameBSInfo > ( ) ) ) . sLayerInfo as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( SFrameBSInfo ) , "::" , stringify ! ( sLayerInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SFrameBSInfo > ( ) ) ) . eFrameType as * const _ as usize } , 5128usize , concat ! ( "Offset of field: " , stringify ! ( SFrameBSInfo ) , "::" , stringify ! ( eFrameType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SFrameBSInfo > ( ) ) ) . iFrameSizeInBytes as * const _ as usize } , 5132usize , concat ! ( "Offset of field: " , stringify ! ( SFrameBSInfo ) , "::" , stringify ! ( iFrameSizeInBytes ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SFrameBSInfo > ( ) ) ) . uiTimeStamp as * const _ as usize } , 5136usize , concat ! ( "Offset of field: " , stringify ! ( SFrameBSInfo ) , "::" , stringify ! ( uiTimeStamp ) ) ) ; } impl Default for SFrameBSInfo { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } pub type PFrameBSInfo = * mut SFrameBSInfo ; 
 /// @brief Structure for source picture 
 # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct Source_Picture_s { 
 /// < color space type 
 pub iColorFormat : :: std :: os :: raw :: c_int , 
 /// < stride for each plane pData 
 pub iStride : [ :: std :: os :: raw :: c_int ; 4usize ] , 
 /// < plane pData 
 pub pData : [ * mut :: std :: os :: raw :: c_uchar ; 4usize ] , 
 /// < luma picture width in x coordinate 
 pub iPicWidth : :: std :: os :: raw :: c_int , 
 /// < luma picture height in y coordinate 
 pub iPicHeight : :: std :: os :: raw :: c_int , 
 /// < timestamp of the source picture, unit: millisecond 
 pub uiTimeStamp : :: std :: os :: raw :: c_longlong , } # [ test ] fn bindgen_test_layout_Source_Picture_s ( ) { assert_eq ! ( :: std :: mem :: size_of :: < Source_Picture_s > ( ) , 72usize , concat ! ( "Size of: " , stringify ! ( Source_Picture_s ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < Source_Picture_s > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( Source_Picture_s ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < Source_Picture_s > ( ) ) ) . iColorFormat as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( Source_Picture_s ) , "::" , stringify ! ( iColorFormat ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < Source_Picture_s > ( ) ) ) . iStride as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( Source_Picture_s ) , "::" , stringify ! ( iStride ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < Source_Picture_s > ( ) ) ) . pData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( Source_Picture_s ) , "::" , stringify ! ( pData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < Source_Picture_s > ( ) ) ) . iPicWidth as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( Source_Picture_s ) , "::" , stringify ! ( iPicWidth ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < Source_Picture_s > ( ) ) ) . iPicHeight as * const _ as usize } , 60usize , concat ! ( "Offset of field: " , stringify ! ( Source_Picture_s ) , "::" , stringify ! ( iPicHeight ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < Source_Picture_s > ( ) ) ) . uiTimeStamp as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( Source_Picture_s ) , "::" , stringify ! ( uiTimeStamp ) ) ) ; } impl Default for Source_Picture_s { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } pub type SSourcePicture = Source_Picture_s ; 
 /// @brief Structure for bit rate info 
 # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TagBitrateInfo { pub iLayer : LAYER_NUM , 
 /// < the maximum bitrate 
 pub iBitrate : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TagBitrateInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TagBitrateInfo > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( TagBitrateInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TagBitrateInfo > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( TagBitrateInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagBitrateInfo > ( ) ) ) . iLayer as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TagBitrateInfo ) , "::" , stringify ! ( iLayer ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagBitrateInfo > ( ) ) ) . iBitrate as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TagBitrateInfo ) , "::" , stringify ! ( iBitrate ) ) ) ; } impl Default for TagBitrateInfo { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } pub type SBitrateInfo = TagBitrateInfo ; 
 /// @brief Structure for dump layer info 
 # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TagDumpLayer { pub iLayer : :: std :: os :: raw :: c_int , pub pFileName : * mut :: std :: os :: raw :: c_char , } # [ test ] fn bindgen_test_layout_TagDumpLayer ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TagDumpLayer > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( TagDumpLayer ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TagDumpLayer > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( TagDumpLayer ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagDumpLayer > ( ) ) ) . iLayer as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TagDumpLayer ) , "::" , stringify ! ( iLayer ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagDumpLayer > ( ) ) ) . pFileName as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TagDumpLayer ) , "::" , stringify ! ( pFileName ) ) ) ; } impl Default for TagDumpLayer { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } pub type SDumpLayer = TagDumpLayer ; 
 /// @brief Structure for profile info in layer
/// 
 # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TagProfileInfo { pub iLayer : :: std :: os :: raw :: c_int , 
 /// < the profile info 
 pub uiProfileIdc : EProfileIdc , } # [ test ] fn bindgen_test_layout_TagProfileInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TagProfileInfo > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( TagProfileInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TagProfileInfo > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( TagProfileInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagProfileInfo > ( ) ) ) . iLayer as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TagProfileInfo ) , "::" , stringify ! ( iLayer ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagProfileInfo > ( ) ) ) . uiProfileIdc as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TagProfileInfo ) , "::" , stringify ! ( uiProfileIdc ) ) ) ; } impl Default for TagProfileInfo { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } pub type SProfileInfo = TagProfileInfo ; 
 /// @brief  Structure for level info in layer
/// 
 # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TagLevelInfo { pub iLayer : :: std :: os :: raw :: c_int , 
 /// < the level info 
 pub uiLevelIdc : ELevelIdc , } # [ test ] fn bindgen_test_layout_TagLevelInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TagLevelInfo > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( TagLevelInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TagLevelInfo > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( TagLevelInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagLevelInfo > ( ) ) ) . iLayer as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TagLevelInfo ) , "::" , stringify ! ( iLayer ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagLevelInfo > ( ) ) ) . uiLevelIdc as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TagLevelInfo ) , "::" , stringify ! ( uiLevelIdc ) ) ) ; } impl Default for TagLevelInfo { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } pub type SLevelInfo = TagLevelInfo ; 
 /// @brief Structure for dilivery status
/// 
 # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone ) ] pub struct TagDeliveryStatus { 
 /// < 0: the previous frame isn't delivered,1: the previous frame is delivered 
 pub bDeliveryFlag : bool , 
 /// < the frame type that is dropped; reserved 
 pub iDropFrameType : :: std :: os :: raw :: c_int , 
 /// < the frame size that is dropped; reserved 
 pub iDropFrameSize : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TagDeliveryStatus ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TagDeliveryStatus > ( ) , 12usize , concat ! ( "Size of: " , stringify ! ( TagDeliveryStatus ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TagDeliveryStatus > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( TagDeliveryStatus ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagDeliveryStatus > ( ) ) ) . bDeliveryFlag as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TagDeliveryStatus ) , "::" , stringify ! ( bDeliveryFlag ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagDeliveryStatus > ( ) ) ) . iDropFrameType as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TagDeliveryStatus ) , "::" , stringify ! ( iDropFrameType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagDeliveryStatus > ( ) ) ) . iDropFrameSize as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TagDeliveryStatus ) , "::" , stringify ! ( iDropFrameSize ) ) ) ; } pub type SDeliveryStatus = TagDeliveryStatus ; 
 /// @brief The capability of decoder, for SDP negotiation 
 # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone ) ] pub struct TagDecoderCapability { 
 /// < profile_idc 
 pub iProfileIdc : :: std :: os :: raw :: c_int , 
 /// < profile-iop 
 pub iProfileIop : :: std :: os :: raw :: c_int , 
 /// < level_idc 
 pub iLevelIdc : :: std :: os :: raw :: c_int , 
 /// < max-mbps 
 pub iMaxMbps : :: std :: os :: raw :: c_int , 
 /// < max-fs 
 pub iMaxFs : :: std :: os :: raw :: c_int , 
 /// < max-cpb 
 pub iMaxCpb : :: std :: os :: raw :: c_int , 
 /// < max-dpb 
 pub iMaxDpb : :: std :: os :: raw :: c_int , 
 /// < max-br 
 pub iMaxBr : :: std :: os :: raw :: c_int , 
 /// < redundant-pic-cap 
 pub bRedPicCap : bool , } # [ test ] fn bindgen_test_layout_TagDecoderCapability ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TagDecoderCapability > ( ) , 36usize , concat ! ( "Size of: " , stringify ! ( TagDecoderCapability ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TagDecoderCapability > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( TagDecoderCapability ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagDecoderCapability > ( ) ) ) . iProfileIdc as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TagDecoderCapability ) , "::" , stringify ! ( iProfileIdc ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagDecoderCapability > ( ) ) ) . iProfileIop as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TagDecoderCapability ) , "::" , stringify ! ( iProfileIop ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagDecoderCapability > ( ) ) ) . iLevelIdc as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TagDecoderCapability ) , "::" , stringify ! ( iLevelIdc ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagDecoderCapability > ( ) ) ) . iMaxMbps as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TagDecoderCapability ) , "::" , stringify ! ( iMaxMbps ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagDecoderCapability > ( ) ) ) . iMaxFs as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TagDecoderCapability ) , "::" , stringify ! ( iMaxFs ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagDecoderCapability > ( ) ) ) . iMaxCpb as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TagDecoderCapability ) , "::" , stringify ! ( iMaxCpb ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagDecoderCapability > ( ) ) ) . iMaxDpb as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TagDecoderCapability ) , "::" , stringify ! ( iMaxDpb ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagDecoderCapability > ( ) ) ) . iMaxBr as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TagDecoderCapability ) , "::" , stringify ! ( iMaxBr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagDecoderCapability > ( ) ) ) . bRedPicCap as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TagDecoderCapability ) , "::" , stringify ! ( bRedPicCap ) ) ) ; } pub type SDecoderCapability = TagDecoderCapability ; 
 /// @brief Structure for parse only output 
 # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TagParserBsInfo { 
 /// < total NAL number in current AU 
 pub iNalNum : :: std :: os :: raw :: c_int , 
 /// < each nal length 
 pub pNalLenInByte : * mut :: std :: os :: raw :: c_int , 
 /// < outputted dst buffer for parsed bitstream 
 pub pDstBuff : * mut :: std :: os :: raw :: c_uchar , 
 /// < required SPS width info 
 pub iSpsWidthInPixel : :: std :: os :: raw :: c_int , 
 /// < required SPS height info 
 pub iSpsHeightInPixel : :: std :: os :: raw :: c_int , 
 /// < input BS timestamp 
 pub uiInBsTimeStamp : :: std :: os :: raw :: c_ulonglong , 
 /// < output BS timestamp 
 pub uiOutBsTimeStamp : :: std :: os :: raw :: c_ulonglong , } # [ test ] fn bindgen_test_layout_TagParserBsInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TagParserBsInfo > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( TagParserBsInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TagParserBsInfo > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( TagParserBsInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagParserBsInfo > ( ) ) ) . iNalNum as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TagParserBsInfo ) , "::" , stringify ! ( iNalNum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagParserBsInfo > ( ) ) ) . pNalLenInByte as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TagParserBsInfo ) , "::" , stringify ! ( pNalLenInByte ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagParserBsInfo > ( ) ) ) . pDstBuff as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TagParserBsInfo ) , "::" , stringify ! ( pDstBuff ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagParserBsInfo > ( ) ) ) . iSpsWidthInPixel as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TagParserBsInfo ) , "::" , stringify ! ( iSpsWidthInPixel ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagParserBsInfo > ( ) ) ) . iSpsHeightInPixel as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TagParserBsInfo ) , "::" , stringify ! ( iSpsHeightInPixel ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagParserBsInfo > ( ) ) ) . uiInBsTimeStamp as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TagParserBsInfo ) , "::" , stringify ! ( uiInBsTimeStamp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagParserBsInfo > ( ) ) ) . uiOutBsTimeStamp as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TagParserBsInfo ) , "::" , stringify ! ( uiOutBsTimeStamp ) ) ) ; } impl Default for TagParserBsInfo { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } pub type SParserBsInfo = TagParserBsInfo ; pub type PParserBsInfo = * mut TagParserBsInfo ; 
 /// @brief Structure for encoder statistics 
 # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone ) ] pub struct TagVideoEncoderStatistics { 
 /// < the width of encoded frame 
 pub uiWidth : :: std :: os :: raw :: c_uint , 
 /// < the height of encoded frame 
 pub uiHeight : :: std :: os :: raw :: c_uint , 
 /// < average_Encoding_Time 
 pub fAverageFrameSpeedInMs : f32 , 
 /// < the average frame rate in, calculate since encoding starts, supposed that the input timestamp is in unit of ms 
 pub fAverageFrameRate : f32 , 
 /// < the frame rate in, in the last second, supposed that the input timestamp is in unit of ms (? useful for checking BR, but is it easy to calculate? 
 pub fLatestFrameRate : f32 , 
 /// < sendrate in Bits per second, calculated within the set time-window 
 pub uiBitRate : :: std :: os :: raw :: c_uint , 
 /// < the average QP of last encoded frame 
 pub uiAverageFrameQP : :: std :: os :: raw :: c_uint , 
 /// < number of frames 
 pub uiInputFrameCount : :: std :: os :: raw :: c_uint , 
 /// < number of frames 
 pub uiSkippedFrameCount : :: std :: os :: raw :: c_uint , 
 /// < uiResolutionChangeTimes 
 pub uiResolutionChangeTimes : :: std :: os :: raw :: c_uint , 
 /// < number of IDR requests 
 pub uiIDRReqNum : :: std :: os :: raw :: c_uint , 
 /// < number of actual IDRs sent 
 pub uiIDRSentNum : :: std :: os :: raw :: c_uint , 
 /// < number of LTR sent/marked 
 pub uiLTRSentNum : :: std :: os :: raw :: c_uint , 
 /// < Timestamp of updating the statistics 
 pub iStatisticsTs : :: std :: os :: raw :: c_longlong , } # [ test ] fn bindgen_test_layout_TagVideoEncoderStatistics ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TagVideoEncoderStatistics > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( TagVideoEncoderStatistics ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TagVideoEncoderStatistics > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( TagVideoEncoderStatistics ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoEncoderStatistics > ( ) ) ) . uiWidth as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoEncoderStatistics ) , "::" , stringify ! ( uiWidth ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoEncoderStatistics > ( ) ) ) . uiHeight as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoEncoderStatistics ) , "::" , stringify ! ( uiHeight ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoEncoderStatistics > ( ) ) ) . fAverageFrameSpeedInMs as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoEncoderStatistics ) , "::" , stringify ! ( fAverageFrameSpeedInMs ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoEncoderStatistics > ( ) ) ) . fAverageFrameRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoEncoderStatistics ) , "::" , stringify ! ( fAverageFrameRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoEncoderStatistics > ( ) ) ) . fLatestFrameRate as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoEncoderStatistics ) , "::" , stringify ! ( fLatestFrameRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoEncoderStatistics > ( ) ) ) . uiBitRate as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoEncoderStatistics ) , "::" , stringify ! ( uiBitRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoEncoderStatistics > ( ) ) ) . uiAverageFrameQP as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoEncoderStatistics ) , "::" , stringify ! ( uiAverageFrameQP ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoEncoderStatistics > ( ) ) ) . uiInputFrameCount as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoEncoderStatistics ) , "::" , stringify ! ( uiInputFrameCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoEncoderStatistics > ( ) ) ) . uiSkippedFrameCount as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoEncoderStatistics ) , "::" , stringify ! ( uiSkippedFrameCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoEncoderStatistics > ( ) ) ) . uiResolutionChangeTimes as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoEncoderStatistics ) , "::" , stringify ! ( uiResolutionChangeTimes ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoEncoderStatistics > ( ) ) ) . uiIDRReqNum as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoEncoderStatistics ) , "::" , stringify ! ( uiIDRReqNum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoEncoderStatistics > ( ) ) ) . uiIDRSentNum as * const _ as usize } , 44usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoEncoderStatistics ) , "::" , stringify ! ( uiIDRSentNum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoEncoderStatistics > ( ) ) ) . uiLTRSentNum as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoEncoderStatistics ) , "::" , stringify ! ( uiLTRSentNum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoEncoderStatistics > ( ) ) ) . iStatisticsTs as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoEncoderStatistics ) , "::" , stringify ! ( iStatisticsTs ) ) ) ; } pub type SEncoderStatistics = TagVideoEncoderStatistics ; 
 /// @brief  Structure for decoder statistics 
 # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone ) ] pub struct TagVideoDecoderStatistics { 
 /// < the width of encode/decode frame 
 pub uiWidth : :: std :: os :: raw :: c_uint , 
 /// < the height of encode/decode frame 
 pub uiHeight : :: std :: os :: raw :: c_uint , 
 /// < average_Decoding_Time 
 pub fAverageFrameSpeedInMs : f32 , 
 /// < actual average_Decoding_Time, including freezing pictures 
 pub fActualAverageFrameSpeedInMs : f32 , 
 /// < number of frames 
 pub uiDecodedFrameCount : :: std :: os :: raw :: c_uint , 
 /// < uiResolutionChangeTimes 
 pub uiResolutionChangeTimes : :: std :: os :: raw :: c_uint , 
 /// < number of correct IDR received 
 pub uiIDRCorrectNum : :: std :: os :: raw :: c_uint , 
 /// < when EC is on, the average ratio of total EC areas, can be an indicator of reconstruction quality 
 pub uiAvgEcRatio : :: std :: os :: raw :: c_uint , 
 /// < when EC is on, the rough average ratio of propogate EC areas, can be an indicator of reconstruction quality 
 pub uiAvgEcPropRatio : :: std :: os :: raw :: c_uint , 
 /// < number of actual unintegrity IDR or not received but eced 
 pub uiEcIDRNum : :: std :: os :: raw :: c_uint , 
 /// < 
 pub uiEcFrameNum : :: std :: os :: raw :: c_uint , 
 /// < number of whole lost IDR 
 pub uiIDRLostNum : :: std :: os :: raw :: c_uint , 
 /// < number of freezing IDR with error (partly received), under resolution change 
 pub uiFreezingIDRNum : :: std :: os :: raw :: c_uint , 
 /// < number of freezing non-IDR with error 
 pub uiFreezingNonIDRNum : :: std :: os :: raw :: c_uint , 
 /// < average luma QP. default: -1, no correct frame outputted 
 pub iAvgLumaQp : :: std :: os :: raw :: c_int , 
 /// < number of Sps Invalid report 
 pub iSpsReportErrorNum : :: std :: os :: raw :: c_int , 
 /// < number of SubSps Invalid report 
 pub iSubSpsReportErrorNum : :: std :: os :: raw :: c_int , 
 /// < number of Pps Invalid report 
 pub iPpsReportErrorNum : :: std :: os :: raw :: c_int , 
 /// < number of Sps NoExist Nal 
 pub iSpsNoExistNalNum : :: std :: os :: raw :: c_int , 
 /// < number of SubSps NoExist Nal 
 pub iSubSpsNoExistNalNum : :: std :: os :: raw :: c_int , 
 /// < number of Pps NoExist Nal 
 pub iPpsNoExistNalNum : :: std :: os :: raw :: c_int , 
 /// < Profile idc in syntax 
 pub uiProfile : :: std :: os :: raw :: c_uint , 
 /// < level idc according to Annex A-1 
 pub uiLevel : :: std :: os :: raw :: c_uint , 
 /// < current active SPS id 
 pub iCurrentActiveSpsId : :: std :: os :: raw :: c_int , 
 /// < current active PPS id 
 pub iCurrentActivePpsId : :: std :: os :: raw :: c_int , 
 /// < frame interval of statistics log 
 pub iStatisticsLogInterval : :: std :: os :: raw :: c_uint , } # [ test ] fn bindgen_test_layout_TagVideoDecoderStatistics ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TagVideoDecoderStatistics > ( ) , 104usize , concat ! ( "Size of: " , stringify ! ( TagVideoDecoderStatistics ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TagVideoDecoderStatistics > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( TagVideoDecoderStatistics ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoDecoderStatistics > ( ) ) ) . uiWidth as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoDecoderStatistics ) , "::" , stringify ! ( uiWidth ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoDecoderStatistics > ( ) ) ) . uiHeight as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoDecoderStatistics ) , "::" , stringify ! ( uiHeight ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoDecoderStatistics > ( ) ) ) . fAverageFrameSpeedInMs as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoDecoderStatistics ) , "::" , stringify ! ( fAverageFrameSpeedInMs ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoDecoderStatistics > ( ) ) ) . fActualAverageFrameSpeedInMs as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoDecoderStatistics ) , "::" , stringify ! ( fActualAverageFrameSpeedInMs ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoDecoderStatistics > ( ) ) ) . uiDecodedFrameCount as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoDecoderStatistics ) , "::" , stringify ! ( uiDecodedFrameCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoDecoderStatistics > ( ) ) ) . uiResolutionChangeTimes as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoDecoderStatistics ) , "::" , stringify ! ( uiResolutionChangeTimes ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoDecoderStatistics > ( ) ) ) . uiIDRCorrectNum as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoDecoderStatistics ) , "::" , stringify ! ( uiIDRCorrectNum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoDecoderStatistics > ( ) ) ) . uiAvgEcRatio as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoDecoderStatistics ) , "::" , stringify ! ( uiAvgEcRatio ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoDecoderStatistics > ( ) ) ) . uiAvgEcPropRatio as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoDecoderStatistics ) , "::" , stringify ! ( uiAvgEcPropRatio ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoDecoderStatistics > ( ) ) ) . uiEcIDRNum as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoDecoderStatistics ) , "::" , stringify ! ( uiEcIDRNum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoDecoderStatistics > ( ) ) ) . uiEcFrameNum as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoDecoderStatistics ) , "::" , stringify ! ( uiEcFrameNum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoDecoderStatistics > ( ) ) ) . uiIDRLostNum as * const _ as usize } , 44usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoDecoderStatistics ) , "::" , stringify ! ( uiIDRLostNum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoDecoderStatistics > ( ) ) ) . uiFreezingIDRNum as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoDecoderStatistics ) , "::" , stringify ! ( uiFreezingIDRNum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoDecoderStatistics > ( ) ) ) . uiFreezingNonIDRNum as * const _ as usize } , 52usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoDecoderStatistics ) , "::" , stringify ! ( uiFreezingNonIDRNum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoDecoderStatistics > ( ) ) ) . iAvgLumaQp as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoDecoderStatistics ) , "::" , stringify ! ( iAvgLumaQp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoDecoderStatistics > ( ) ) ) . iSpsReportErrorNum as * const _ as usize } , 60usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoDecoderStatistics ) , "::" , stringify ! ( iSpsReportErrorNum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoDecoderStatistics > ( ) ) ) . iSubSpsReportErrorNum as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoDecoderStatistics ) , "::" , stringify ! ( iSubSpsReportErrorNum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoDecoderStatistics > ( ) ) ) . iPpsReportErrorNum as * const _ as usize } , 68usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoDecoderStatistics ) , "::" , stringify ! ( iPpsReportErrorNum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoDecoderStatistics > ( ) ) ) . iSpsNoExistNalNum as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoDecoderStatistics ) , "::" , stringify ! ( iSpsNoExistNalNum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoDecoderStatistics > ( ) ) ) . iSubSpsNoExistNalNum as * const _ as usize } , 76usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoDecoderStatistics ) , "::" , stringify ! ( iSubSpsNoExistNalNum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoDecoderStatistics > ( ) ) ) . iPpsNoExistNalNum as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoDecoderStatistics ) , "::" , stringify ! ( iPpsNoExistNalNum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoDecoderStatistics > ( ) ) ) . uiProfile as * const _ as usize } , 84usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoDecoderStatistics ) , "::" , stringify ! ( uiProfile ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoDecoderStatistics > ( ) ) ) . uiLevel as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoDecoderStatistics ) , "::" , stringify ! ( uiLevel ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoDecoderStatistics > ( ) ) ) . iCurrentActiveSpsId as * const _ as usize } , 92usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoDecoderStatistics ) , "::" , stringify ! ( iCurrentActiveSpsId ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoDecoderStatistics > ( ) ) ) . iCurrentActivePpsId as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoDecoderStatistics ) , "::" , stringify ! ( iCurrentActivePpsId ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVideoDecoderStatistics > ( ) ) ) . iStatisticsLogInterval as * const _ as usize } , 100usize , concat ! ( "Offset of field: " , stringify ! ( TagVideoDecoderStatistics ) , "::" , stringify ! ( iStatisticsLogInterval ) ) ) ; } pub type SDecoderStatistics = TagVideoDecoderStatistics ; 
 /// @brief Structure for sample aspect ratio (SAR) info in VUI 
 # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone ) ] pub struct TagVuiSarInfo { 
 /// < SAR width 
 pub uiSarWidth : :: std :: os :: raw :: c_uint , 
 /// < SAR height 
 pub uiSarHeight : :: std :: os :: raw :: c_uint , 
 /// < SAR overscan flag 
 pub bOverscanAppropriateFlag : bool , } # [ test ] fn bindgen_test_layout_TagVuiSarInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TagVuiSarInfo > ( ) , 12usize , concat ! ( "Size of: " , stringify ! ( TagVuiSarInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TagVuiSarInfo > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( TagVuiSarInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVuiSarInfo > ( ) ) ) . uiSarWidth as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TagVuiSarInfo ) , "::" , stringify ! ( uiSarWidth ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVuiSarInfo > ( ) ) ) . uiSarHeight as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TagVuiSarInfo ) , "::" , stringify ! ( uiSarHeight ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TagVuiSarInfo > ( ) ) ) . bOverscanAppropriateFlag as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TagVuiSarInfo ) , "::" , stringify ! ( bOverscanAppropriateFlag ) ) ) ; } pub type SVuiSarInfo = TagVuiSarInfo ; pub type PVuiSarInfo = * mut TagVuiSarInfo ; pub type ISVCEncoder = * const ISVCEncoderVtbl ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ISVCEncoderVtbl { pub Initialize : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut ISVCEncoder , pParam : * const SEncParamBase ) -> :: std :: os :: raw :: c_int > , pub InitializeExt : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut ISVCEncoder , pParam : * const SEncParamExt ) -> :: std :: os :: raw :: c_int > , pub GetDefaultParams : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut ISVCEncoder , pParam : * mut SEncParamExt ) -> :: std :: os :: raw :: c_int > , pub Uninitialize : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut ISVCEncoder ) -> :: std :: os :: raw :: c_int > , pub EncodeFrame : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut ISVCEncoder , kpSrcPic : * const SSourcePicture , pBsInfo : * mut SFrameBSInfo ) -> :: std :: os :: raw :: c_int > , pub EncodeParameterSets : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut ISVCEncoder , pBsInfo : * mut SFrameBSInfo ) -> :: std :: os :: raw :: c_int > , pub ForceIntraFrame : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut ISVCEncoder , bIDR : bool ) -> :: std :: os :: raw :: c_int > , pub SetOption : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut ISVCEncoder , eOptionId : ENCODER_OPTION , pOption : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int > , pub GetOption : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut ISVCEncoder , eOptionId : ENCODER_OPTION , pOption : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int > , } # [ test ] fn bindgen_test_layout_ISVCEncoderVtbl ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ISVCEncoderVtbl > ( ) , 72usize , concat ! ( "Size of: " , stringify ! ( ISVCEncoderVtbl ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ISVCEncoderVtbl > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ISVCEncoderVtbl ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ISVCEncoderVtbl > ( ) ) ) . Initialize as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ISVCEncoderVtbl ) , "::" , stringify ! ( Initialize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ISVCEncoderVtbl > ( ) ) ) . InitializeExt as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ISVCEncoderVtbl ) , "::" , stringify ! ( InitializeExt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ISVCEncoderVtbl > ( ) ) ) . GetDefaultParams as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ISVCEncoderVtbl ) , "::" , stringify ! ( GetDefaultParams ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ISVCEncoderVtbl > ( ) ) ) . Uninitialize as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( ISVCEncoderVtbl ) , "::" , stringify ! ( Uninitialize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ISVCEncoderVtbl > ( ) ) ) . EncodeFrame as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( ISVCEncoderVtbl ) , "::" , stringify ! ( EncodeFrame ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ISVCEncoderVtbl > ( ) ) ) . EncodeParameterSets as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( ISVCEncoderVtbl ) , "::" , stringify ! ( EncodeParameterSets ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ISVCEncoderVtbl > ( ) ) ) . ForceIntraFrame as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( ISVCEncoderVtbl ) , "::" , stringify ! ( ForceIntraFrame ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ISVCEncoderVtbl > ( ) ) ) . SetOption as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( ISVCEncoderVtbl ) , "::" , stringify ! ( SetOption ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ISVCEncoderVtbl > ( ) ) ) . GetOption as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( ISVCEncoderVtbl ) , "::" , stringify ! ( GetOption ) ) ) ; } impl Default for ISVCEncoderVtbl { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } pub type ISVCDecoder = * const ISVCDecoderVtbl ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ISVCDecoderVtbl { pub Initialize : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut ISVCDecoder , pParam : * const SDecodingParam ) -> :: std :: os :: raw :: c_long > , pub Uninitialize : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut ISVCDecoder ) -> :: std :: os :: raw :: c_long > , pub DecodeFrame : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut ISVCDecoder , pSrc : * const :: std :: os :: raw :: c_uchar , iSrcLen : :: std :: os :: raw :: c_int , ppDst : * mut * mut :: std :: os :: raw :: c_uchar , pStride : * mut :: std :: os :: raw :: c_int , iWidth : * mut :: std :: os :: raw :: c_int , iHeight : * mut :: std :: os :: raw :: c_int ) -> DECODING_STATE > , pub DecodeFrameNoDelay : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut ISVCDecoder , pSrc : * const :: std :: os :: raw :: c_uchar , iSrcLen : :: std :: os :: raw :: c_int , ppDst : * mut * mut :: std :: os :: raw :: c_uchar , pDstInfo : * mut SBufferInfo ) -> DECODING_STATE > , pub DecodeFrame2 : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut ISVCDecoder , pSrc : * const :: std :: os :: raw :: c_uchar , iSrcLen : :: std :: os :: raw :: c_int , ppDst : * mut * mut :: std :: os :: raw :: c_uchar , pDstInfo : * mut SBufferInfo ) -> DECODING_STATE > , pub DecodeParser : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut ISVCDecoder , pSrc : * const :: std :: os :: raw :: c_uchar , iSrcLen : :: std :: os :: raw :: c_int , pDstInfo : * mut SParserBsInfo ) -> DECODING_STATE > , pub DecodeFrameEx : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut ISVCDecoder , pSrc : * const :: std :: os :: raw :: c_uchar , iSrcLen : :: std :: os :: raw :: c_int , pDst : * mut :: std :: os :: raw :: c_uchar , iDstStride : :: std :: os :: raw :: c_int , iDstLen : * mut :: std :: os :: raw :: c_int , iWidth : * mut :: std :: os :: raw :: c_int , iHeight : * mut :: std :: os :: raw :: c_int , iColorFormat : * mut :: std :: os :: raw :: c_int ) -> DECODING_STATE > , pub SetOption : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut ISVCDecoder , eOptionId : DECODER_OPTION , pOption : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_long > , pub GetOption : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut ISVCDecoder , eOptionId : DECODER_OPTION , pOption : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_long > , } # [ test ] fn bindgen_test_layout_ISVCDecoderVtbl ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ISVCDecoderVtbl > ( ) , 72usize , concat ! ( "Size of: " , stringify ! ( ISVCDecoderVtbl ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ISVCDecoderVtbl > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ISVCDecoderVtbl ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ISVCDecoderVtbl > ( ) ) ) . Initialize as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ISVCDecoderVtbl ) , "::" , stringify ! ( Initialize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ISVCDecoderVtbl > ( ) ) ) . Uninitialize as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ISVCDecoderVtbl ) , "::" , stringify ! ( Uninitialize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ISVCDecoderVtbl > ( ) ) ) . DecodeFrame as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ISVCDecoderVtbl ) , "::" , stringify ! ( DecodeFrame ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ISVCDecoderVtbl > ( ) ) ) . DecodeFrameNoDelay as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( ISVCDecoderVtbl ) , "::" , stringify ! ( DecodeFrameNoDelay ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ISVCDecoderVtbl > ( ) ) ) . DecodeFrame2 as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( ISVCDecoderVtbl ) , "::" , stringify ! ( DecodeFrame2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ISVCDecoderVtbl > ( ) ) ) . DecodeParser as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( ISVCDecoderVtbl ) , "::" , stringify ! ( DecodeParser ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ISVCDecoderVtbl > ( ) ) ) . DecodeFrameEx as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( ISVCDecoderVtbl ) , "::" , stringify ! ( DecodeFrameEx ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ISVCDecoderVtbl > ( ) ) ) . SetOption as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( ISVCDecoderVtbl ) , "::" , stringify ! ( SetOption ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ISVCDecoderVtbl > ( ) ) ) . GetOption as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( ISVCDecoderVtbl ) , "::" , stringify ! ( GetOption ) ) ) ; } impl Default for ISVCDecoderVtbl { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } pub type WelsTraceCallback = :: std :: option :: Option < unsafe extern "C" fn ( ctx : * mut :: std :: os :: raw :: c_void , level : :: std :: os :: raw :: c_int , string : * const :: std :: os :: raw :: c_char ) > ; extern "C" { 
 /// @brief   Create encoder
/// @param   ppEncoder encoder
/// @return  0 - success; otherwise - failed; 
 pub fn WelsCreateSVCEncoder ( ppEncoder : * mut * mut ISVCEncoder ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// @brief   Destroy encoder
/// @param   pEncoder encoder
/// @return  void 
 pub fn WelsDestroySVCEncoder ( pEncoder : * mut ISVCEncoder ) ; } extern "C" { 
 /// @brief   Get the capability of decoder
/// @param   pDecCapability  decoder capability
/// @return  0 - success; otherwise - failed; 
 pub fn WelsGetDecoderCapability ( pDecCapability : * mut SDecoderCapability ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// @brief   Create decoder
/// @param   ppDecoder decoder
/// @return  0 - success; otherwise - failed; 
 pub fn WelsCreateDecoder ( ppDecoder : * mut * mut ISVCDecoder ) -> :: std :: os :: raw :: c_long ; } extern "C" { 
 /// @brief   Destroy decoder
/// @param   pDecoder  decoder
/// @return  void 
 pub fn WelsDestroyDecoder ( pDecoder : * mut ISVCDecoder ) ; } extern "C" { 
 /// @brief   Get codec version
/// Note, old versions of Mingw (GCC < 4.7) are buggy and use an
/// incorrect/different ABI for calling this function, making it
/// incompatible with MSVC builds.
/// @return  The linked codec version 
 pub fn WelsGetCodecVersion ( ) -> OpenH264Version ; } extern "C" { 
 /// @brief   Get codec version
/// @param   pVersion  struct to fill in with the version 
 pub fn WelsGetCodecVersionEx ( pVersion : * mut OpenH264Version ) ; } extern "C" { # [ link_name = "\u{1}g_stCodecVersion" ] pub static mut g_stCodecVersion : OpenH264Version ; } extern "C" { # [ link_name = "\u{1}g_strCodecVer" ] pub static mut g_strCodecVer : * const :: std :: os :: raw :: c_char ; }