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
/* automatically generated by rust-bindgen */

pub const true_ : :: std :: os :: raw :: c_uint = 1 ; pub const false_ : :: std :: os :: raw :: c_uint = 0 ; pub const __bool_true_false_are_defined : :: std :: os :: raw :: c_uint = 1 ; pub const FRAME_NUM_PARAM_SET : :: std :: os :: raw :: c_int = -1 ; pub const FRAME_NUM_IDR : :: std :: os :: raw :: c_uint = 0 ; pub const DEBLOCKING_OFFSET : :: std :: os :: raw :: c_uint = 6 ; pub const DEBLOCKING_OFFSET_MINUS : :: std :: os :: raw :: c_int = -6 ; pub const MAX_TEMPORAL_LAYER_NUM : :: std :: os :: raw :: c_uint = 4 ; pub const MAX_SPATIAL_LAYER_NUM : :: std :: os :: raw :: c_uint = 4 ; pub const MAX_QUALITY_LAYER_NUM : :: std :: os :: raw :: c_uint = 4 ; pub const MAX_LAYER_NUM_OF_FRAME : :: std :: os :: raw :: c_uint = 128 ; pub const MAX_NAL_UNITS_IN_LAYER : :: std :: os :: raw :: c_uint = 128 ; pub const MAX_RTP_PAYLOAD_LEN : :: std :: os :: raw :: c_uint = 1000 ; pub const AVERAGE_RTP_PAYLOAD_LEN : :: std :: os :: raw :: c_uint = 800 ; pub const SAVED_NALUNIT_NUM_TMP : :: std :: os :: raw :: c_uint = 21 ; pub const MAX_SLICES_NUM_TMP : :: std :: os :: raw :: c_uint = 35 ; pub const AUTO_REF_PIC_COUNT : :: std :: os :: raw :: c_int = -1 ; pub const UNSPECIFIED_BIT_RATE : :: std :: os :: raw :: c_uint = 0 ; pub const OPENH264_MAJOR : :: std :: os :: raw :: c_uint = 1 ; pub const OPENH264_MINOR : :: std :: os :: raw :: c_uint = 7 ; pub const OPENH264_REVISION : :: std :: os :: raw :: c_uint = 0 ; pub const OPENH264_RESERVED : :: std :: os :: raw :: c_uint = 1703 ; 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 ; pub const videoFormatYUY2 : EVideoFormatType = 20 ; pub const videoFormatYVYU : EVideoFormatType = 21 ; pub const videoFormatUYVY : EVideoFormatType = 22 ; pub const videoFormatI420 : EVideoFormatType = 23 ; pub const videoFormatYV12 : EVideoFormatType = 24 ; pub const videoFormatInternal : EVideoFormatType = 25 ; pub const videoFormatNV12 : EVideoFormatType = 26 ; pub const videoFormatVFlip : EVideoFormatType = 2147483648 ; pub type EVideoFormatType = u32 ; pub const videoFrameTypeInvalid : EVideoFrameType = 0 ; pub const videoFrameTypeIDR : EVideoFrameType = 1 ; pub const videoFrameTypeI : EVideoFrameType = 2 ; pub const videoFrameTypeP : EVideoFrameType = 3 ; pub const videoFrameTypeSkip : EVideoFrameType = 4 ; pub const videoFrameTypeIPMixed : EVideoFrameType = 5 ; pub type EVideoFrameType = u32 ; pub const cmResultSuccess : CM_RETURN = 0 ; pub const cmInitParaError : CM_RETURN = 1 ; pub const cmUnknownReason : CM_RETURN = 2 ; pub const cmMallocMemeError : CM_RETURN = 3 ; pub const cmInitExpected : CM_RETURN = 4 ; pub const cmUnsupportedData : CM_RETURN = 5 ; 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 ; pub const NAL_SLICE_IDR : ENalUnitType = 5 ; pub const NAL_SEI : ENalUnitType = 6 ; pub const NAL_SPS : ENalUnitType = 7 ; pub const NAL_PPS : ENalUnitType = 8 ; 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 ; 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 ; pub type _bindgen_ty_1 = u32 ; pub type ERR_TOOL = :: std :: os :: raw :: c_ushort ; pub const ET_NONE : _bindgen_ty_2 = 0 ; pub const ET_IP_SCALE : _bindgen_ty_2 = 1 ; pub const ET_FMO : _bindgen_ty_2 = 2 ; pub const ET_IR_R1 : _bindgen_ty_2 = 4 ; pub const ET_IR_R2 : _bindgen_ty_2 = 8 ; pub const ET_IR_R3 : _bindgen_ty_2 = 16 ; pub const ET_FEC_HALF : _bindgen_ty_2 = 32 ; pub const ET_FEC_FULL : _bindgen_ty_2 = 64 ; pub const ET_RFS : _bindgen_ty_2 = 128 ; 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 ; pub const dsErrorFree : DECODING_STATE = 0 ; pub const dsFramePending : DECODING_STATE = 1 ; pub const dsRefLost : DECODING_STATE = 2 ; pub const dsBitstreamError : DECODING_STATE = 4 ; pub const dsDepLayerLost : DECODING_STATE = 8 ; pub const dsNoParamSets : DECODING_STATE = 16 ; pub const dsDataErrorConcealed : DECODING_STATE = 32 ; pub const dsInvalidArgument : DECODING_STATE = 4096 ; pub const dsInitialOptExpected : DECODING_STATE = 8192 ; pub const dsOutOfMemory : DECODING_STATE = 16384 ; pub const dsDstBufNeedExpan : DECODING_STATE = 32768 ; pub type DECODING_STATE = u32 ; pub const ENCODER_OPTION_DATAFORMAT : ENCODER_OPTION = 0 ; pub const ENCODER_OPTION_IDR_INTERVAL : ENCODER_OPTION = 1 ; pub const ENCODER_OPTION_SVC_ENCODE_PARAM_BASE : ENCODER_OPTION = 2 ; pub const ENCODER_OPTION_SVC_ENCODE_PARAM_EXT : ENCODER_OPTION = 3 ; 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 ; pub const ENCODER_PADDING_PADDING : ENCODER_OPTION = 10 ; pub const ENCODER_OPTION_PROFILE : ENCODER_OPTION = 11 ; pub const ENCODER_OPTION_LEVEL : ENCODER_OPTION = 12 ; pub const ENCODER_OPTION_NUMBER_REF : ENCODER_OPTION = 13 ; 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 ; pub const ENCODER_OPTION_LTR : ENCODER_OPTION = 18 ; pub const ENCODER_OPTION_COMPLEXITY : ENCODER_OPTION = 19 ; pub const ENCODER_OPTION_ENABLE_SSEI : ENCODER_OPTION = 20 ; pub const ENCODER_OPTION_ENABLE_PREFIX_NAL_ADDING : ENCODER_OPTION = 21 ; pub const ENCODER_OPTION_SPS_PPS_ID_STRATEGY : ENCODER_OPTION = 22 ; pub const ENCODER_OPTION_CURRENT_PATH : ENCODER_OPTION = 23 ; pub const ENCODER_OPTION_DUMP_FILE : ENCODER_OPTION = 24 ; pub const ENCODER_OPTION_TRACE_LEVEL : ENCODER_OPTION = 25 ; pub const ENCODER_OPTION_TRACE_CALLBACK : ENCODER_OPTION = 26 ; pub const ENCODER_OPTION_TRACE_CALLBACK_CONTEXT : ENCODER_OPTION = 27 ; pub const ENCODER_OPTION_GET_STATISTICS : ENCODER_OPTION = 28 ; pub const ENCODER_OPTION_STATISTICS_LOG_INTERVAL : ENCODER_OPTION = 29 ; pub const ENCODER_OPTION_IS_LOSSLESS_LINK : ENCODER_OPTION = 30 ; pub const ENCODER_OPTION_BITS_VARY_PERCENTAGE : ENCODER_OPTION = 31 ; pub type ENCODER_OPTION = u32 ; pub const DECODER_OPTION_END_OF_STREAM : DECODER_OPTION = 1 ; pub const DECODER_OPTION_VCL_NAL : DECODER_OPTION = 2 ; pub const DECODER_OPTION_TEMPORAL_ID : DECODER_OPTION = 3 ; pub const DECODER_OPTION_FRAME_NUM : DECODER_OPTION = 4 ; pub const DECODER_OPTION_IDR_PIC_ID : DECODER_OPTION = 5 ; pub const DECODER_OPTION_LTR_MARKING_FLAG : DECODER_OPTION = 6 ; pub const DECODER_OPTION_LTR_MARKED_FRAME_NUM : DECODER_OPTION = 7 ; pub const DECODER_OPTION_ERROR_CON_IDC : DECODER_OPTION = 8 ; pub const DECODER_OPTION_TRACE_LEVEL : DECODER_OPTION = 9 ; pub const DECODER_OPTION_TRACE_CALLBACK : DECODER_OPTION = 10 ; pub const DECODER_OPTION_TRACE_CALLBACK_CONTEXT : DECODER_OPTION = 11 ; pub const DECODER_OPTION_GET_STATISTICS : DECODER_OPTION = 12 ; pub const DECODER_OPTION_GET_SAR_INFO : DECODER_OPTION = 13 ; pub const DECODER_OPTION_PROFILE : DECODER_OPTION = 14 ; pub const DECODER_OPTION_LEVEL : DECODER_OPTION = 15 ; pub const DECODER_OPTION_STATISTICS_LOG_INTERVAL : DECODER_OPTION = 16 ; 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 ; 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 ; 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 ; 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 ; 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 ; 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 ; 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 ) ) ) ; } pub const RC_QUALITY_MODE : RC_MODES = 0 ; pub const RC_BITRATE_MODE : RC_MODES = 1 ; pub const RC_BUFFERBASED_MODE : RC_MODES = 2 ; pub const RC_TIMESTAMP_MODE : RC_MODES = 3 ; pub const RC_BITRATE_MODE_POST_SKIP : RC_MODES = 4 ; pub const RC_OFF_MODE : RC_MODES = -1 ; 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 ; 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 ; pub type ELevelIdc = u32 ; pub const WELS_LOG_QUIET : _bindgen_ty_3 = 0 ; pub const WELS_LOG_ERROR : _bindgen_ty_3 = 1 ; pub const WELS_LOG_WARNING : _bindgen_ty_3 = 2 ; pub const WELS_LOG_INFO : _bindgen_ty_3 = 4 ; pub const WELS_LOG_DEBUG : _bindgen_ty_3 = 8 ; pub const WELS_LOG_DETAIL : _bindgen_ty_3 = 16 ; pub const WELS_LOG_RESV : _bindgen_ty_3 = 32 ; pub const WELS_LOG_LEVEL_COUNT : _bindgen_ty_3 = 6 ; pub const WELS_LOG_DEFAULT : _bindgen_ty_3 = 2 ; pub type _bindgen_ty_3 = u32 ; pub const SM_SINGLE_SLICE : SliceModeEnum = 0 ; pub const SM_FIXEDSLCNUM_SLICE : SliceModeEnum = 1 ; pub const SM_RASTER_SLICE : SliceModeEnum = 2 ; pub const SM_SIZELIMITED_SLICE : SliceModeEnum = 3 ; pub const SM_RESERVED : SliceModeEnum = 4 ; 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 ; 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 ; 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 ; 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 ; 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 ; 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 ( ) } } } pub const CAMERA_VIDEO_REAL_TIME : EUsageType = 0 ; pub const SCREEN_CONTENT_REAL_TIME : EUsageType = 1 ; pub const CAMERA_VIDEO_NON_REAL_TIME : EUsageType = 2 ; pub type EUsageType = u32 ; pub const LOW_COMPLEXITY : ECOMPLEXITY_MODE = 0 ; pub const MEDIUM_COMPLEXITY : ECOMPLEXITY_MODE = 1 ; pub const HIGH_COMPLEXITY : ECOMPLEXITY_MODE = 2 ; pub type ECOMPLEXITY_MODE = u32 ; pub const CONSTANT_ID : EParameterSetStrategy = 0 ; pub const INCREASING_ID : EParameterSetStrategy = 1 ; pub const SPS_LISTING : EParameterSetStrategy = 2 ; pub const SPS_LISTING_AND_PPS_INCREASING : EParameterSetStrategy = 3 ; pub const SPS_PPS_LISTING : EParameterSetStrategy = 6 ; 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 ; }