premiere_sys/opt/rustwide/workdir/
bindings_macos.rs

1/* automatically generated by rust-bindgen 0.69.4 */
2
3pub const kPrMaxPath: u32 = 260;
4pub const kPrMaxName: u32 = 260;
5pub const kPrForceEnumToIntValue: u32 = 4294967295;
6pub const kPrSDKTimeSuite: &[u8; 20] = b"Premiere Time Suite\0";
7pub const kPrSDKTimeSuiteVersion: u32 = 1;
8pub const kPrSDKClipRenderSuite: &[u8; 27] = b"Premiere Clip Render Suite\0";
9pub const kPrSDKClipRenderSuiteVersion: u32 = 3;
10pub const kSPNoError: u32 = 0;
11pub const kSPOutOfMemoryError: u32 = 4294967148;
12pub const kSPBasicSuite: &[u8; 15] = b"SP Basic Suite\0";
13pub const kSPBasicSuiteVersion: u32 = 4;
14pub const PR_PISUITES_VERSION_1: u32 = 1;
15pub const PR_PISUITES_VERSION_2: u32 = 2;
16pub const PR_PISUITES_VERSION_3: u32 = 3;
17pub const PR_PISUITES_VERSION_4: u32 = 4;
18pub const PR_PISUITES_VERSION_5: u32 = 5;
19pub const PR_PISUITES_VERSION_6: u32 = 6;
20pub const PR_PISUITES_VERSION_7: u32 = 7;
21pub const PR_PISUITES_VERSION_8: u32 = 8;
22pub const PR_PISUITES_VERSION_9: u32 = 9;
23pub const PR_PISUITES_VERSION: u32 = 9;
24pub const kVideoFilterVersion: u32 = 12;
25pub const kPrSDKErrorSuite: &[u8; 21] = b"Premiere Error Suite\0";
26pub const kPrSDKErrorSuiteVersion1: u32 = 1;
27pub const kPrSDKErrorSuiteVersion2: u32 = 2;
28pub const kPrSDKErrorSuiteVersion3: u32 = 3;
29pub const kPrSDKErrorSuiteVersion: u32 = 3;
30pub const kPrSDKGPUDeviceSuite: &[u8; 27] = b"MediaCore GPU Device Suite\0";
31pub const kPrSDKGPUDeviceSuiteVersion: u32 = 2;
32pub const PrCUDAVersion: u32 = 9020;
33pub const PrOpenCLVersion: u32 = 1000;
34pub const kPrSDKAudioSuite: &[u8; 21] = b"Premiere Audio Suite\0";
35pub const kPrSDKAudioSuiteVersion: u32 = 1;
36pub const kMaxAudioChannelCount: u32 = 32;
37pub const kPrSDKPlayModuleDeviceControlSuite: &[u8; 38] =
38    b"Premiere Playmod Device Control Suite\0";
39pub const kPrSDKPlayModuleDeviceControlSuiteVersion: u32 = 1;
40pub const kPrSDKEndOfTimeline: u64 = 91445760000000000;
41pub const PrSDKGPUFilterInterfaceVersion1: u32 = 1;
42pub const PrSDKGPUFilterInterfaceVersion2: u32 = 2;
43pub const PrSDKGPUFilterInterfaceVersion: u32 = 2;
44pub const PrGPUFilterEntryPointName: &[u8; 16] = b"xGPUFilterEntry\0";
45pub const kPrSDKGPUImageProcessingSuite: &[u8; 37] = b"MediaCore GPU Image Processing Suite\0";
46pub const kPrSDKGPUImageProcessingSuiteVersion: u32 = 1;
47pub const kPrSDKMemoryManagerSuite: &[u8; 30] = b"Premiere Memory Manager Suite\0";
48pub const kPrSDKMemoryManagerSuiteVersion1: u32 = 1;
49pub const kPrSDKMemoryManagerSuiteVersion2: u32 = 2;
50pub const kPrSDKMemoryManagerSuiteVersion3: u32 = 3;
51pub const kPrSDKMemoryManagerSuiteVersion4: u32 = 4;
52pub const kPrSDKMemoryManagerSuiteVersion: u32 = 4;
53pub const kPrSDKPixelFormatSuite: &[u8; 28] = b"Premiere Pixel Format Suite\0";
54pub const kPrSDKPixelFormatSuiteVersion: u32 = 1;
55pub const kPrSDKPPixSuite: &[u8; 20] = b"Premiere PPix Suite\0";
56pub const kPrSDKPPixSuiteVersion: u32 = 1;
57pub const kPrSDKPPix2Suite: &[u8; 22] = b"Premiere PPix 2 Suite\0";
58pub const kPrSDKPPix2SuiteVersion1: u32 = 1;
59pub const kPrSDKPPix2SuiteVersion2: u32 = 2;
60pub const kPrSDKPPix2SuiteVersion3: u32 = 3;
61pub const kPrSDKPPix2SuiteVersion: u32 = 3;
62pub const kPrSRGBColorSpace: &[u8; 5] = b"sRGB\0";
63pub const kPrRec601525ColorSpace: &[u8; 14] = b"BT.601 (NTSC)\0";
64pub const kPrRec601625ColorSpace: &[u8; 13] = b"BT.601 (PAL)\0";
65pub const kPrRec709: &[u8; 7] = b"BT.709\0";
66pub const kPrRec709Scene: &[u8; 15] = b"BT.709 (Scene)\0";
67pub const kPrRec709RGB: &[u8; 11] = b"BT.709 RGB\0";
68pub const kPrRec709RGBScene: &[u8; 19] = b"BT.709 RGB (Scene)\0";
69pub const kPrOverranged709: &[u8; 16] = b"BT.709 RGB Full\0";
70pub const kPrOverranged709Scene: &[u8; 24] = b"BT.709 RGB Full (Scene)\0";
71pub const kPrOverranged709Display: &[u8; 26] = b"BT.709 RGB Full (Display)\0";
72pub const kPrRec2020: &[u8; 8] = b"BT.2020\0";
73pub const kPrRec2020Scene: &[u8; 16] = b"BT.2020 (Scene)\0";
74pub const kPrRec2020RGB: &[u8; 12] = b"BT.2020 RGB\0";
75pub const kPrRec2020RGBScene: &[u8; 20] = b"BT.2020 RGB (Scene)\0";
76pub const kPrOverranged2020: &[u8; 17] = b"BT.2020 RGB Full\0";
77pub const kPrOverranged2020Scene: &[u8; 25] = b"BT.2020 RGB Full (Scene)\0";
78pub const kPrOverranged2020Display: &[u8; 27] = b"BT.2020 RGB Full (Display)\0";
79pub const kPrRec2100HLG: &[u8; 12] = b"BT.2100 HLG\0";
80pub const kPrRec2100HLGScene: &[u8; 20] = b"BT.2100 HLG (Scene)\0";
81pub const kPrRec2100HLGRGB: &[u8; 16] = b"BT.2100 HLG RGB\0";
82pub const kPrRec2100HLGRGBScene: &[u8; 24] = b"BT.2100 HLG RGB (Scene)\0";
83pub const kPrOverranged2100HLG: &[u8; 21] = b"BT.2100 HLG RGB Full\0";
84pub const kPrOverranged2100HLGScene: &[u8; 29] = b"BT.2100 HLG RGB Full (Scene)\0";
85pub const kPrOverranged2100HLGDisplay: &[u8; 31] = b"BT.2100 HLG RGB Full (Display)\0";
86pub const kPrRec2100PQ: &[u8; 11] = b"BT.2100 PQ\0";
87pub const kPrRec2100PQScene: &[u8; 19] = b"BT.2100 PQ (Scene)\0";
88pub const kPrRec2100PQRGB: &[u8; 15] = b"BT.2100 PQ RGB\0";
89pub const kPrRec2100PQRGBScene: &[u8; 23] = b"BT.2100 PQ RGB (Scene)\0";
90pub const kPrOverranged2100PQ: &[u8; 20] = b"BT.2100 PQ RGB Full\0";
91pub const kPrOverranged2100PQScene: &[u8; 28] = b"BT.2100 PQ RGB Full (Scene)\0";
92pub const kPrOverranged2100PQDisplay: &[u8; 30] = b"BT.2100 PQ RGB Full (Display)\0";
93pub const kPrDCDMXYZ: &[u8; 12] = b"DCDM X'Y'Z'\0";
94pub const kPrSonySGamutSLog2: &[u8; 18] = b"Sony SGamut/SLog2\0";
95pub const kPrSony2020SLog3: &[u8; 14] = b"BT.2020/SLog3\0";
96pub const kPrSonySGamut3CineSLog3: &[u8; 24] = b"Sony SGamut3.Cine/SLog3\0";
97pub const kPrSonySGamut3SLog3: &[u8; 19] = b"Sony SGamut3/SLog3\0";
98pub const kPrWorkingColorSpace: &[u8; 20] = b"Working Color Space\0";
99pub const kPrSDKPPixCacheSuite: &[u8; 26] = b"Premiere PPix Cache Suite\0";
100pub const kPrSDKPPixCacheSuiteVersion1: u32 = 1;
101pub const kPrSDKPPixCacheSuiteVersion2: u32 = 2;
102pub const kPrSDKPPixCacheSuiteVersion3: u32 = 3;
103pub const kPrSDKPPixCacheSuiteVersion4: u32 = 4;
104pub const kPrSDKPPixCacheSuiteVersion5: u32 = 5;
105pub const kPrSDKPPixCacheSuiteVersion6: u32 = 6;
106pub const kPrSDKPPixCacheSuiteVersion7: u32 = 7;
107pub const kPrSDKPPixCacheSuiteVersion8: u32 = 8;
108pub const kPrSDKPPixCacheSuiteVersion: u32 = 8;
109pub const kPrSDKPPixCreator2Suite: &[u8; 30] = b"Premiere PPix Creator 2 Suite\0";
110pub const kPrSDKPPixCreator2SuiteVersion1: u32 = 1;
111pub const kPrSDKPPixCreator2SuiteVersion2: u32 = 2;
112pub const kPrSDKPPixCreator2SuiteVersion3: u32 = 3;
113pub const kPrSDKPPixCreator2SuiteVersion4: u32 = 4;
114pub const kPrSDKPPixCreator2SuiteVersion: u32 = 4;
115pub const kPrSDKPPixCreatorSuite: &[u8; 28] = b"Premiere PPix Creator Suite\0";
116pub const kPrSDKPPixCreatorSuiteVersion: u32 = 1;
117pub const kPrSDKSequenceInfoSuite: &[u8; 30] = b"MediaCore Sequence Info Suite\0";
118pub const kPrSDKSequenceInfoSuiteVersion: u32 = 6;
119pub const kPrSDK_StreamLabel_Stereoscopic_Left: &[u8; 23] = b"ADBE.Stereoscopic.Left\0";
120pub const kPrSDK_StreamLabel_Stereoscopic_Right: &[u8; 24] = b"ADBE.Stereoscopic.Right\0";
121pub const kPrSDKSequenceRenderSuite: &[u8; 32] = b"MediaCore Sequence Render Suite\0";
122pub const kPrSDKSequenceRenderSuiteVersion1: u32 = 1;
123pub const kPrSDKSequenceRenderSuiteVersion2: u32 = 2;
124pub const kPrSDKSequenceRenderSuiteVersion3: u32 = 3;
125pub const kPrSDKSequenceRenderSuiteVersion4: u32 = 4;
126pub const kPrSDKSequenceRenderSuiteVersion5: u32 = 5;
127pub const kPrSDKSequenceRenderSuiteVersion6: u32 = 6;
128pub const kPrSDKSequenceRenderSuiteVersion: u32 = 6;
129pub const kPrSDKSmartRenderingSuite: &[u8; 32] = b"MediaCore Smart Rendering Suite\0";
130pub const kPrSDKSmartRenderingSuiteVersion1: u32 = 1;
131pub const kPrSDKSmartRenderingSuiteVersion2: u32 = 2;
132pub const kPrSDKSmartRenderingSuiteVersion3: u32 = 3;
133pub const kPrSDKSmartRenderingSuiteVersion: u32 = 3;
134pub const kPrSDKStringSuite: &[u8; 22] = b"MediaCore StringSuite\0";
135pub const kPrSDKStringSuiteVersion: u32 = 1;
136pub const kPrSDKThreadedWorkSuite: &[u8; 29] = b"Premiere Threaded Work Suite\0";
137pub const kPrSDKThreadedWorkSuiteVersion2: u32 = 2;
138pub const kPrSDKThreadedWorkSuiteVersion3: u32 = 3;
139pub const kVideoSegmentProperty_Media_ClipID: &[u8; 18] = b"MediaNode::ClipID\0";
140pub const kVideoSegmentProperty_Media_ProxyClipID: &[u8; 23] = b"MediaNode::ProxyClipID\0";
141pub const kVideoSegmentProperty_Media_InstanceString: &[u8; 31] =
142    b"MediaNode::MediaInstanceString\0";
143pub const kVideoSegmentProperty_Media_ProxyInstanceString: &[u8; 36] =
144    b"MediaNode::ProxyMediaInstanceString\0";
145pub const kVideoSegmentProperty_Media_ImplementationID: &[u8; 28] =
146    b"MediaNode::ImplementationID\0";
147pub const kVideoSegmentProperty_Media_StreamGroup: &[u8; 28] = b"MediaNode::MediaStreamGroup\0";
148pub const kVideoSegmentProperty_Media_StreamLabel: &[u8; 28] = b"MediaNode::MediaStreamLabel\0";
149pub const kVideoSegmentProperty_Media_IsDraft: &[u8; 24] = b"MediaNode::MediaIsDraft\0";
150pub const kVideoSegmentProperty_Media_ModState: &[u8; 25] = b"MediaNode::MediaModState\0";
151pub const kVideoSegmentProperty_Media_IsOffline: &[u8; 26] = b"MediaNode::MediaIsOffline\0";
152pub const kVideoSegmentProperty_Media_IsPending: &[u8; 26] = b"MediaNode::MediaIsPending\0";
153pub const kVideoSegmentProperty_Media_CaptioningID: &[u8; 29] = b"MediaNode::MediaCaptioningID\0";
154pub const kVideoSegmentProperty_Media_StreamFrameRate: &[u8; 27] = b"MediaNode::StreamFrameRate\0";
155pub const kVideoSegmentProperty_Media_StreamAlphaType: &[u8; 27] = b"MediaNode::StreamAlphaType\0";
156pub const kVideoSegmentProperty_Media_StreamIgnoreAlpha: &[u8; 29] =
157    b"MediaNode::StreamIgnoreAlpha\0";
158pub const kVideoSegmentProperty_Media_StreamInvertAlpha: &[u8; 29] =
159    b"MediaNode::StreamInvertAlpha\0";
160pub const kVideoSegmentProperty_Media_StreamAlphaMatteColor: &[u8; 33] =
161    b"MediaNode::StreamAlphaMatteColor\0";
162pub const kVideoSegmentProperty_Media_StreamRemovePulldown: &[u8; 32] =
163    b"MediaNode::StreamRemovePulldown\0";
164pub const kVideoSegmentProperty_Media_StreamPixelAspectRatioNum: &[u8; 37] =
165    b"MediaNode::StreamPixelAspectRatioNum\0";
166pub const kVideoSegmentProperty_Media_StreamFrameWidth: &[u8; 28] =
167    b"MediaNode::StreamFrameWidth\0";
168pub const kVideoSegmentProperty_Media_StreamFrameHeight: &[u8; 29] =
169    b"MediaNode::StreamFrameHeight\0";
170pub const kVideoSegmentProperty_Media_StreamPixelAspectRatioDen: &[u8; 37] =
171    b"MediaNode::StreamPixelAspectRatioDen\0";
172pub const kVideoSegmentProperty_Media_StreamFieldType: &[u8; 27] = b"MediaNode::StreamFieldType\0";
173pub const kVideoSegmentProperty_Media_StreamOpaqueData: &[u8; 28] =
174    b"MediaNode::StreamOpaqueData\0";
175pub const kVideoSegmentProperty_Media_ProxyStreamOpaqueData: &[u8; 33] =
176    b"MediaNode::ProxyStreamOpaqueData\0";
177pub const kVideoSegmentProperty_Media_StreamPullDownCadence: &[u8; 33] =
178    b"MediaNode::StreamPullDownCadence\0";
179pub const kVideoSegmentProperty_Media_StreamFrameVidSubType: &[u8; 33] =
180    b"MediaNode::StreamFrameVidSubType\0";
181pub const kVideoSegmentProperty_Media_StreamIsContinuousTime: &[u8; 62] =
182    b"MediaNode::kVideoSegmentProperty_Media_StreamIsContinuousTime\0";
183pub const kVideoSegmentProperty_Media_StreamIsRollCrawl: &[u8; 29] =
184    b"MediaNode::StreamIsRollCrawl\0";
185pub const kVideoSegmentProperty_Media_RollCrawlDuration: &[u8; 29] =
186    b"MediaNode::RollCrawlDuration\0";
187pub const kVideoSegmentProperty_Media_ContentStart: &[u8; 24] = b"MediaNode::ContentStart\0";
188pub const kVideoSegmentProperty_Media_ContentEnd: &[u8; 22] = b"MediaNode::ContentEnd\0";
189pub const kVideoSegmentProperty_Media_StartTimecodeOffset: &[u8; 31] =
190    b"MediaNode::StartTimecodeOffset\0";
191pub const kVideoSegmentProperty_Media_ProxyStartTimecodeOffset: &[u8; 36] =
192    b"MediaNode::ProxyStartTimecodeOffset\0";
193pub const kVideoSegmentProperty_Media_NestedSequenceHash: &[u8; 30] =
194    b"MediaNode::NestedSequenceHash\0";
195pub const kVideoSegmentProperty_Media_SelectedMulticamTrackFromNestedSequence: &[u8; 33] =
196    b"MediaNode::SelectedMulticamTrack\0";
197pub const kVideoSegmentProperty_Media_MulticamCameraOrderFromNestedSequence: &[u8; 31] =
198    b"MediaNode::MulticamCameraOrder\0";
199pub const kVideoSegmentProperty_Media_MulticamCamerasPerPage: &[u8; 34] =
200    b"MediaNode::MulticamCamerasPerPage\0";
201pub const kVideoSegmentProperty_Media_MulticamCurrentPage: &[u8; 31] =
202    b"MediaNode::MulticamCurrentPage\0";
203pub const kVideoSegmentProperty_Media_SelectedMulticamTrackTimelineID: &[u8; 43] =
204    b"MediaNode::SelectedMulticamTrackTimelineID\0";
205pub const kVideoSegmentProperty_Media_NestedSequenceTimelineID: &[u8; 36] =
206    b"MediaNode::NestedSequenceTimelineID\0";
207pub const kVideoSegmentProperty_Media_TrackItemIsMuted: &[u8; 28] =
208    b"MediaNode::TrackItemIsMuted\0";
209pub const kVideoSegmentProperty_Media_ClipSpeed: &[u8; 21] = b"MediaNode::ClipSpeed\0";
210pub const kVideoSegmentProperty_Media_ClipBackwards: &[u8; 25] = b"MediaNode::ClipBackwards\0";
211pub const kVideoSegmentProperty_Media_StreamFrameBlend: &[u8; 28] =
212    b"MediaNode::StreamFrameBlend\0";
213pub const kVideoSegmentProperty_Media_StreamTimeInterpolationType: &[u8; 39] =
214    b"MediaNode::StreamTimeInterpolationType\0";
215pub const kVideoSegmentProperty_Media_ClipScaleToFrameSize: &[u8; 32] =
216    b"MediaNode::ClipScaleToFrameSize\0";
217pub const kVideoSegmentProperty_Media_ClipScaleToFramePolicy: &[u8; 34] =
218    b"MediaNode::ClipScaleToFramePolicy\0";
219pub const kVideoSegmentProperty_Media_StreamReverseFieldDominance: &[u8; 39] =
220    b"MediaNode::StreamReverseFieldDominance\0";
221pub const kVideoSegmentProperty_Media_DeinterlaceAlways: &[u8; 29] =
222    b"MediaNode::DeinterlaceAlways\0";
223pub const kVideoSegmentProperty_Media_RemoveFlicker: &[u8; 25] = b"MediaNode::RemoveFlicker\0";
224pub const kVideoSegmentProperty_Media_InterlaceConsecutiveFrames: &[u8; 38] =
225    b"MediaNode::InterlaceConsecutiveFrames\0";
226pub const kVideoSegmentProperty_Media_SequenceColorSpace: &[u8; 30] =
227    b"MediaNode::SequenceColorSpace\0";
228pub const kVideoSegmentProperty_Media_StreamColorSpace: &[u8; 28] =
229    b"MediaNode::StreamColorSpace\0";
230pub const kVideoSegmentProperty_Media_StreamInputLUTID: &[u8; 28] =
231    b"MediaNode::StreamInputLUTID\0";
232pub const kVideoSegmentProperty_Media_ScanlineOffsetToImproveVerticalCentering: &[u8; 52] =
233    b"MediaNode::ScanlineOffsetToImproveVerticalCentering\0";
234pub const kVideoSegmentProperty_Media_InPointMediaTimeAsTicks: &[u8; 35] =
235    b"MediaNode::InPointMediaTimeAsTicks\0";
236pub const kVideoSegmentProperty_Media_OutPointMediaTimeAsTicks: &[u8; 36] =
237    b"MediaNode::OutPointMediaTimeAsTicks\0";
238pub const kVideoSegmentProperty_Media_SequenceFieldType: &[u8; 29] =
239    b"MediaNode::SequenceFieldType\0";
240pub const kVideoSegmentProperty_Media_SequenceFrameRate: &[u8; 29] =
241    b"MediaNode::SequenceFrameRate\0";
242pub const kVideoSegmentProperty_Media_SequenceWidth: &[u8; 25] = b"MediaNode::SequenceWidth\0";
243pub const kVideoSegmentProperty_Media_SequenceHeight: &[u8; 26] = b"MediaNode::SequenceHeight\0";
244pub const kVideoSegmentProperty_Media_SequencePixelAspectRatioNum: &[u8; 39] =
245    b"MediaNode::SequencePixelAspectRatioNum\0";
246pub const kVideoSegmentProperty_Media_SequencePixelAspectRatioDen: &[u8; 39] =
247    b"MediaNode::SequencePixelAspectRatioDen\0";
248pub const kVideoSegmentProperty_Media_OrientationType: &[u8; 27] = b"MediaNode::OrientationType\0";
249pub const kVideoSegmentProperty_Media_OrientationTypeProxy: &[u8; 32] =
250    b"MediaNode::OrientationTypeProxy\0";
251pub const kVideoSegmentProperty_Clip_ClipSpeed: &[u8; 20] = b"ClipNode::ClipSpeed\0";
252pub const kVideoSegmentProperty_Clip_ClipBackwards: &[u8; 24] = b"ClipNode::ClipBackwards\0";
253pub const kVideoSegmentProperty_Clip_TimeRemapping: &[u8; 24] = b"ClipNode::TimeRemapping\0";
254pub const kVideoSegmentProperty_Clip_FrameHoldAtTime: &[u8; 26] = b"ClipNode::FrameHoldAtTime\0";
255pub const kVideoSegmentProperty_Clip_FrameHoldFilters: &[u8; 27] = b"ClipNode::FrameHoldFilters\0";
256pub const kVideoSegmentProperty_Clip_GrowingDuration: &[u8; 26] = b"ClipNode::GrowingDuration\0";
257pub const kVideoSegmentProperty_Clip_FrameHoldDeinterlace: &[u8; 31] =
258    b"ClipNode::FrameHoldDeinterlace\0";
259pub const kVideoSegmentProperty_Clip_TrackID: &[u8; 18] = b"ClipNode::TrackID\0";
260pub const kVideoSegmentProperty_Clip_TrackItemStartAsTicks: &[u8; 32] =
261    b"ClipNode::TrackItemStartAsTicks\0";
262pub const kVideoSegmentProperty_Clip_TrackItemEndAsTicks: &[u8; 30] =
263    b"ClipNode::TrackItemEndAsTicks\0";
264pub const kVideoSegmentProperty_Clip_EffectiveTrackItemStartAsTicks: &[u8; 41] =
265    b"ClipNode::EffectiveTrackItemStartAsTicks\0";
266pub const kVideoSegmentProperty_Clip_EffectiveTrackItemEndAsTicks: &[u8; 39] =
267    b"ClipNode::EffectiveTrackItemEndAsTicks\0";
268pub const kVideoSegmentProperty_Clip_AllowLinearCompositing: &[u8; 33] =
269    b"ClipNode::AllowLinearCompositing\0";
270pub const kVideoSegmentProperty_Clip_HasCaptions: &[u8; 22] = b"ClipNode::HasCaptions\0";
271pub const kVideoSegmentProperty_Clip_UntrimmedDuration: &[u8; 28] =
272    b"ClipNode::UntrimmedDuration\0";
273pub const kVideoSegmentProperty_Multicam_SelectedTrack: &[u8; 28] =
274    b"MulticamNode::SelectedTrack\0";
275pub const kVideoSegmentProperty_Multicam_CameraOrder: &[u8; 26] = b"MulticamNode::CameraOrder\0";
276pub const kVideoSegmentProperty_Multicam_CamerasPerPage: &[u8; 29] =
277    b"MulticamNode::CamerasPerPage\0";
278pub const kVideoSegmentProperty_Multicam_CurrentPage: &[u8; 26] = b"MulticamNode::CurrentPage\0";
279pub const kVideoSegmentProperty_Multicam_ShowProgram: &[u8; 26] = b"MulticamNode::ShowProgram\0";
280pub const kVideoSegmentProperty_Multicam_Recording: &[u8; 24] = b"MulticamNode::Recording\0";
281pub const kVideoSegmentProperty_Multicam_IsNonMultiCam: &[u8; 28] =
282    b"MulticamNode::IsNonMultiCam\0";
283pub const kVideoSegmentProperty_Multicam_UseTimeRemapping: &[u8; 31] =
284    b"MulticamNode::UseTimeRemapping\0";
285pub const kVideoSegmentProperty_SolidColor_Color: &[u8; 22] = b"SolidColorNode::Color\0";
286pub const kVideoSegmentProperty_Effect_FilterMatchName: &[u8; 28] =
287    b"EffectNode::FilterMatchName\0";
288pub const kVideoSegmentProperty_Effect_FilterOpaqueData: &[u8; 29] =
289    b"EffectNode::FilterOpaqueData\0";
290pub const kVideoSegmentProperty_Effect_FilterParams: &[u8; 25] = b"EffectNode::FilterParams\0";
291pub const kVideoSegmentProperty_Effect_EffectDuration: &[u8; 27] = b"EffectNode::EffectDuration\0";
292pub const kVideoSegmentProperty_Effect_RuntimeInstanceID: &[u8; 30] =
293    b"EffectNode::RuntimeInstanceID\0";
294pub const kVideoSegmentProperty_Effect_LayerInputHashes: &[u8; 29] =
295    b"EffectNode::LayerInputHashes\0";
296pub const kVideoSegmentProperty_Effect_StreamLabel: &[u8; 24] = b"EffectNode::StreamLabel\0";
297pub const kVideoSegmentProperty_Effect_ClipName: &[u8; 21] = b"EffectNode::ClipName\0";
298pub const kVideoSegmentProperty_Effect_MasterClipName: &[u8; 27] = b"EffectNode::MasterClipName\0";
299pub const kVideoSegmentProperty_Effect_FileName: &[u8; 21] = b"EffectNode::FileName\0";
300pub const kVideoSegmentProperty_Effect_SourceTrackClipNameHashes: &[u8; 38] =
301    b"EffectNode::SourceTrackClipNameHashes\0";
302pub const kVideoSegmentProperty_Transition_TransitionMatchName: &[u8; 36] =
303    b"TransitionNode::TransitionMatchName\0";
304pub const kVideoSegmentProperty_Transition_TransitionOpaqueData: &[u8; 37] =
305    b"TransitionNode::TransitionOpaqueData\0";
306pub const kVideoSegmentProperty_Transition_TransitionStartPosition: &[u8; 40] =
307    b"TransitionNode::TransitionStartPosition\0";
308pub const kVideoSegmentProperty_Transition_TransitionEndPosition: &[u8; 38] =
309    b"TransitionNode::TransitionEndPosition\0";
310pub const kVideoSegmentProperty_Transition_TransitionCenterPosition: &[u8; 41] =
311    b"TransitionNode::TransitionCenterPosition\0";
312pub const kVideoSegmentProperty_Transition_TransitionStartPercent: &[u8; 39] =
313    b"TransitionNode::TransitionStartPercent\0";
314pub const kVideoSegmentProperty_Transition_TransitionEndPercent: &[u8; 37] =
315    b"TransitionNode::TransitionEndPercent\0";
316pub const kVideoSegmentProperty_Transition_TransitionBorderWidth: &[u8; 38] =
317    b"TransitionNode::TransitionBorderWidth\0";
318pub const kVideoSegmentProperty_Transition_TransitionBorderColor: &[u8; 38] =
319    b"TransitionNode::TransitionBorderColor\0";
320pub const kVideoSegmentProperty_Transition_TransitionSwitchSources: &[u8; 40] =
321    b"TransitionNode::TransitionSwitchSources\0";
322pub const kVideoSegmentProperty_Transition_TransitionReverse: &[u8; 34] =
323    b"TransitionNode::TransitionReverse\0";
324pub const kVideoSegmentProperty_Transition_TransitionDirection: &[u8; 36] =
325    b"TransitionNode::TransitionDirection\0";
326pub const kVideoSegmentProperty_Transition_TransitionAntiAliasQuality: &[u8; 43] =
327    b"TransitionNode::TransitionAntiAliasQuality\0";
328pub const kVideoSegmentProperty_Transition_TransitionDuration: &[u8; 35] =
329    b"TransitionNode::TransitionDuration\0";
330pub const kVideoSegmentProperty_Transition_TransitionParams: &[u8; 33] =
331    b"TransitionNode::TransitionParams\0";
332pub const kVideoSegmentProperty_Transition_RuntimeInstanceID: &[u8; 34] =
333    b"TransitionNode::RuntimeInstanceID\0";
334pub const kVideoSegmentProperty_Adjustment_AdjustmentMediaIsOpaque: &[u8; 40] =
335    b"AdjustmentNode::AdjustmentMediaIsOpaque\0";
336pub const kVideoSegmentProperty_Adjustment_InvertAlpha: &[u8; 28] =
337    b"AdjustmentNode::InvertAlpha\0";
338pub const kPrSDKVideoSegmentSuite: &[u8; 30] = b"MediaCore Video Segment Suite\0";
339pub const kPrSDKVideoSegmentSuiteVersion4: u32 = 4;
340pub const kPrSDKVideoSegmentSuiteVersion5: u32 = 5;
341pub const kPrSDKVideoSegmentSuiteVersion6: u32 = 6;
342pub const kPrSDKVideoSegmentSuiteVersion7: u32 = 7;
343pub const kPrSDKVideoSegmentSuiteVersion8: u32 = 8;
344pub const kPrSDKVideoSegmentSuiteVersion9: u32 = 9;
345pub const kPrSDKVideoSegmentSuiteVersion: u32 = 9;
346pub const kVideoSegment_NodeType_Clip: &[u8; 23] = b"RenderableNodeClipImpl\0";
347pub const kVideoSegment_NodeType_Compositor: &[u8; 29] = b"RenderableNodeCompositorImpl\0";
348pub const kVideoSegment_NodeType_Disabled: &[u8; 27] = b"RenderableNodeDisabledImpl\0";
349pub const kVideoSegment_NodeType_Effect: &[u8; 25] = b"RenderableNodeEffectImpl\0";
350pub const kVideoSegment_NodeType_Transition: &[u8; 29] = b"RenderableNodeTransitionImpl\0";
351pub const kVideoSegment_NodeType_Media: &[u8; 24] = b"RenderableNodeMediaImpl\0";
352pub const kVideoSegment_NodeType_Preview: &[u8; 26] = b"RenderableNodePreviewImpl\0";
353pub const kVideoSegment_NodeType_SolidColor: &[u8; 29] = b"RenderableNodeSolidColorImpl\0";
354pub const kVideoSegment_NodeType_Multicam: &[u8; 27] = b"RenderableNodeMulticamImpl\0";
355pub const kVideoSegment_NodeType_Adjustment: &[u8; 30] = b"RenderableNode_AdjustmentImpl\0";
356pub const kVideoSegment_NodeType_AdjustmentEffect: &[u8; 36] =
357    b"RenderableNode_AdjustmentEffectImpl\0";
358pub const kPrSDKWindowSuite: &[u8; 22] = b"Premiere Window Suite\0";
359pub const kPrSDKWindowSuiteVersion: u32 = 1;
360pub const PF_Vers_BUILD_BITS: u32 = 511;
361pub const PF_Vers_BUILD_SHIFT: u32 = 0;
362pub const PF_Vers_STAGE_BITS: u32 = 3;
363pub const PF_Vers_STAGE_SHIFT: u32 = 9;
364pub const PF_Vers_BUGFIX_BITS: u32 = 15;
365pub const PF_Vers_BUGFIX_SHIFT: u32 = 11;
366pub const PF_Vers_SUBVERS_BITS: u32 = 15;
367pub const PF_Vers_SUBVERS_SHIFT: u32 = 15;
368pub const PF_Vers_VERS_BITS: u32 = 7;
369pub const PF_Vers_VERS_SHIFT: u32 = 19;
370pub const PF_Vers_VERS_HIGH_BITS: u32 = 15;
371pub const PF_Vers_VERS_HIGH_SHIFT: u32 = 26;
372pub const PF_Vers_VERS_LOW_SHIFT: u32 = 3;
373pub const PF_AE234_PLUG_IN_VERSION: u32 = 13;
374pub const PF_AE234_PLUG_IN_SUBVERS: u32 = 28;
375pub const PF_AE220_PLUG_IN_VERSION: u32 = 13;
376pub const PF_AE220_PLUG_IN_SUBVERS: u32 = 27;
377pub const PF_AE184_PLUG_IN_VERSION: u32 = 13;
378pub const PF_AE184_PLUG_IN_SUBVERS: u32 = 26;
379pub const PF_AE182_PLUG_IN_VERSION: u32 = 13;
380pub const PF_AE182_PLUG_IN_SUBVERS: u32 = 25;
381pub const PF_AE180_PLUG_IN_VERSION: u32 = 13;
382pub const PF_AE180_PLUG_IN_SUBVERS: u32 = 24;
383pub const PF_AE177_PLUG_IN_VERSION: u32 = 13;
384pub const PF_AE177_PLUG_IN_SUBVERS: u32 = 23;
385pub const PF_AE176_PLUG_IN_VERSION: u32 = 13;
386pub const PF_AE176_PLUG_IN_SUBVERS: u32 = 22;
387pub const PF_AE175_PLUG_IN_VERSION: u32 = 13;
388pub const PF_AE175_PLUG_IN_SUBVERS: u32 = 21;
389pub const PF_AE171_PLUG_IN_VERSION: u32 = 13;
390pub const PF_AE171_PLUG_IN_SUBVERS: u32 = 20;
391pub const PF_AE170_PLUG_IN_VERSION: u32 = 13;
392pub const PF_AE170_PLUG_IN_SUBVERS: u32 = 18;
393pub const PF_AE161_PLUG_IN_VERSION: u32 = 13;
394pub const PF_AE161_PLUG_IN_SUBVERS: u32 = 17;
395pub const PF_AE160_PLUG_IN_VERSION: u32 = 13;
396pub const PF_AE160_PLUG_IN_SUBVERS: u32 = 16;
397pub const PF_AE151_PLUG_IN_VERSION: u32 = 13;
398pub const PF_AE151_PLUG_IN_SUBVERS: u32 = 15;
399pub const PF_AE150_PLUG_IN_VERSION: u32 = 13;
400pub const PF_AE150_PLUG_IN_SUBVERS: u32 = 15;
401pub const PF_AE142_PLUG_IN_VERSION: u32 = 13;
402pub const PF_AE142_PLUG_IN_SUBVERS: u32 = 14;
403pub const PF_AE140_PLUG_IN_VERSION: u32 = 13;
404pub const PF_AE140_PLUG_IN_SUBVERS: u32 = 13;
405pub const PF_AE138_PLUG_IN_VERSION: u32 = 13;
406pub const PF_AE138_PLUG_IN_SUBVERS: u32 = 11;
407pub const PF_AE136_PLUG_IN_VERSION: u32 = 13;
408pub const PF_AE136_PLUG_IN_SUBVERS: u32 = 10;
409pub const PF_AE135_PLUG_IN_VERSION: u32 = 13;
410pub const PF_AE135_PLUG_IN_SUBVERS: u32 = 9;
411pub const PF_AE130_PLUG_IN_VERSION: u32 = 13;
412pub const PF_AE130_PLUG_IN_SUBVERS: u32 = 7;
413pub const PF_AE122_PLUG_IN_VERSION: u32 = 13;
414pub const PF_AE122_PLUG_IN_SUBVERS: u32 = 6;
415pub const PF_AE121_PLUG_IN_VERSION: u32 = 13;
416pub const PF_AE121_PLUG_IN_SUBVERS: u32 = 5;
417pub const PF_AE120_PLUG_IN_VERSION: u32 = 13;
418pub const PF_AE120_PLUG_IN_SUBVERS: u32 = 4;
419pub const PF_AE1101_PLUG_IN_VERSION: u32 = 13;
420pub const PF_AE1101_PLUG_IN_SUBVERS: u32 = 3;
421pub const PF_AE110_PLUG_IN_VERSION: u32 = 13;
422pub const PF_AE110_PLUG_IN_SUBVERS: u32 = 2;
423pub const PF_AE105_PLUG_IN_VERSION: u32 = 13;
424pub const PF_AE105_PLUG_IN_SUBVERS: u32 = 1;
425pub const PF_AE100_PLUG_IN_VERSION: u32 = 13;
426pub const PF_AE100_PLUG_IN_SUBVERS: u32 = 0;
427pub const PF_AE90_PLUG_IN_VERSION: u32 = 12;
428pub const PF_AE90_PLUG_IN_SUBVERS: u32 = 14;
429pub const PF_AE80_PLUG_IN_VERSION: u32 = 12;
430pub const PF_AE80_PLUG_IN_SUBVERS: u32 = 13;
431pub const PF_AE70_PLUG_IN_VERSION: u32 = 12;
432pub const PF_AE70_PLUG_IN_SUBVERS: u32 = 12;
433pub const PF_AE65_PLUG_IN_VERSION: u32 = 12;
434pub const PF_AE65_PLUG_IN_SUBVERS: u32 = 11;
435pub const PF_AE41_PLUG_IN_VERSION: u32 = 12;
436pub const PF_AE41_PLUG_IN_SUBVERS: u32 = 2;
437pub const PF_AE40_PLUG_IN_VERSION: u32 = 12;
438pub const PF_AE40_PLUG_IN_SUBVERS: u32 = 1;
439pub const PF_AE31_PLUG_IN_VERSION: u32 = 11;
440pub const PF_AE31_PLUG_IN_SUBVERS: u32 = 6;
441pub const PF_AE31_PLUG_IN_SUBVERS_STRICTIFY: u32 = 8;
442pub const PF_AE_PLUG_IN_VERSION: u32 = 13;
443pub const PF_AE_PLUG_IN_SUBVERS: u32 = 28;
444pub const PF_MAX_EFFECT_NAME_LEN: u32 = 31;
445pub const PF_MAX_EFFECT_CATEGORY_NAME_LEN: u32 = 31;
446pub const PF_MAX_EFFECT_PARAM_NAME_LEN: u32 = 31;
447pub const PF_MAX_PARAM_DESCRIPTION_LEN: u32 = 31;
448pub const PF_MAX_PARAM_VALUE_LEN: u32 = 31;
449pub const PF_MAX_EFFECT_MSG_LEN: u32 = 255;
450pub const PF_AE65_AND_EARLIER_MAX_NUM_EFFECT_PARAMS: u32 = 127;
451pub const PF_MAX_WORLD_WIDTH: u32 = 30000;
452pub const PF_MAX_WORLD_HEIGHT: u32 = 30000;
453pub const PF_FIRST_ERR: u32 = 512;
454pub const PF_Category_BLUR_AND_SHARPEN: &[u8; 15] = b"Blur & Sharpen\0";
455pub const PF_Category_CHANNEL: &[u8; 8] = b"Channel\0";
456pub const PF_Category_DISTORT: &[u8; 8] = b"Distort\0";
457pub const PF_Category_IMAGE_CONTROL: &[u8; 14] = b"Image Control\0";
458pub const PF_Category_KEYING: &[u8; 7] = b"Keying\0";
459pub const PF_Category_PERSPECTIVE: &[u8; 12] = b"Perspective\0";
460pub const PF_Category_STYLIZE: &[u8; 8] = b"Stylize\0";
461pub const PF_Category_TEXT: &[u8; 5] = b"Text\0";
462pub const PF_Category_VIDEO: &[u8; 6] = b"Video\0";
463pub const PF_Category_TRANSITION: &[u8; 11] = b"Transition\0";
464pub const PF_Category_AUDIO: &[u8; 6] = b"Audio\0";
465pub const PF_Category_OTHER: &[u8; 6] = b"Other\0";
466pub const PF_MAX_CHAN8: u32 = 255;
467pub const PF_HALF_CHAN8: u32 = 128;
468pub const PF_MAX_CHAN16: u32 = 32768;
469pub const PF_HALF_CHAN16: u32 = 16384;
470pub const PF_HUE_UNDEFINED: u32 = 2147483648;
471pub const PF_CHANNEL_NAME_LEN: u32 = 63;
472pub const PF_PI: f64 = 3.141592653589793;
473pub const PF_2PI: f64 = 6.283185307179586;
474pub const PF_HALF_PI: f64 = 1.5707963267948966;
475pub const PF_E: f64 = 2.718281828459045;
476pub const PF_SQRT2: f64 = 1.4142135623730951;
477pub const PF_RAD_PER_DEGREE: f64 = 0.017453292519943295;
478pub const PF_KernelFlag_2D: u32 = 0;
479pub const PF_KernelFlag_1D: u32 = 1;
480pub const PF_KernelFlag_UNNORMALIZED: u32 = 0;
481pub const PF_KernelFlag_NORMALIZED: u32 = 2;
482pub const PF_KernelFlag_CLAMP: u32 = 0;
483pub const PF_KernelFlag_NO_CLAMP: u32 = 4;
484pub const PF_KernelFlag_USE_LONG: u32 = 0;
485pub const PF_KernelFlag_USE_CHAR: u32 = 8;
486pub const PF_KernelFlag_USE_FIXED: u32 = 16;
487pub const PF_KernelFlag_USE_UNDEFINED: u32 = 24;
488pub const PF_KernelFlag_HORIZONTAL: u32 = 0;
489pub const PF_KernelFlag_VERTICAL: u32 = 32;
490pub const PF_KernelFlag_TRANSPARENT_BORDERS: u32 = 0;
491pub const PF_KernelFlag_REPLICATE_BORDERS: u32 = 64;
492pub const PF_KernelFlag_STRAIGHT_CONVOLVE: u32 = 0;
493pub const PF_KernelFlag_ALPHA_WEIGHT_CONVOLVE: u32 = 128;
494pub const PF_Iterations_ONCE_PER_PROCESSOR: i32 = -1;
495pub const PF_Iteratations_ONCE_PER_PROCESSOR: i32 = -1;
496pub const kPFCacheOnLoadSuite: &[u8; 23] = b"PF Cache On Load Suite\0";
497pub const kPFCacheOnLoadSuiteVersion1: u32 = 1;
498pub const kPFPixelFormatSuite: &[u8; 22] = b"PF Pixel Format Suite\0";
499pub const kPFPixelFormatSuiteVersion1: u32 = 1;
500pub const kPFBackgroundFrameSuite: &[u8; 26] = b"PF Background Frame Suite\0";
501pub const kPFBackgroundFrameSuiteVersion1: u32 = 1;
502pub const kPFUtilitySuite: &[u8; 17] = b"PF Utility Suite\0";
503pub const kPFUtilitySuiteVersion2: u32 = 2;
504pub const kPFUtilitySuiteVersion3: u32 = 3;
505pub const kPFUtilitySuiteVersion4: u32 = 4;
506pub const kPFUtilitySuiteVersion5: u32 = 5;
507pub const kPFUtilitySuiteVersion6: u32 = 6;
508pub const kPFUtilitySuiteVersion7: u32 = 7;
509pub const kPFUtilitySuiteVersion8: u32 = 8;
510pub const kPFUtilitySuiteVersion9: u32 = 9;
511pub const kPFUtilitySuiteVersion10: u32 = 10;
512pub const kPFUtilitySuiteVersion11: u32 = 11;
513pub const kPFUtilitySuiteVersion: u32 = 11;
514pub const kPFSourceSettingsSuite: &[u8; 25] = b"PF Source Settings Suite\0";
515pub const kPFSourceSettingsSuiteVersion1: u32 = 1;
516pub const kPFSourceSettingsSuiteVersion2: u32 = 2;
517pub const kPFSourceSettingsSuiteVersion: u32 = 2;
518pub const kPFTransitionSuite: &[u8; 20] = b"PF Transition Suite\0";
519pub const kPFTransitionSuiteVersion1: u32 = 1;
520pub const kPFTransitionSuiteVersion2: u32 = 2;
521pub const kPFTransitionSuiteVersion: u32 = 2;
522pub const kPrSDKOpaqueEffectDataSuite: &[u8; 25] = b"Opaque Effect Data Suite\0";
523pub const kPrSDKOpaqueEffectDataSuiteVersion2: u32 = 2;
524pub const kPrSDKOpaqueEffectDataSuiteVersion: u32 = 2;
525#[repr(C)]
526#[derive(Debug, Copy, Clone)]
527pub struct NSView {
528    _unused: [u8; 0],
529}
530pub type csSDK_int8 = i8;
531pub type csSDK_int16 = i16;
532pub type csSDK_int32 = i32;
533pub type csSDK_int64 = i64;
534pub type csSDK_uint8 = u8;
535pub type csSDK_uint16 = u16;
536pub type csSDK_uint32 = u32;
537pub type csSDK_uint64 = u64;
538pub type csSDK_size_t = csSDK_uint64;
539pub type PrMemoryPtr = *mut ::std::os::raw::c_char;
540pub type PrMemoryHandle = *mut PrMemoryPtr;
541pub type PrFourCC = csSDK_uint32;
542#[repr(C, packed)]
543#[derive(Debug, Copy, Clone)]
544pub struct prRect {
545    pub top: csSDK_int16,
546    pub left: csSDK_int16,
547    pub bottom: csSDK_int16,
548    pub right: csSDK_int16,
549}
550#[repr(C, packed)]
551#[derive(Debug, Copy, Clone)]
552pub struct prFPoint64 {
553    pub x: f64,
554    pub y: f64,
555}
556pub type prBool = csSDK_int32;
557pub const kPrTrue: prBool = 1;
558pub const kPrFalse: prBool = 0;
559pub type prUTF8Char = csSDK_uint8;
560pub type prInt64 = csSDK_int64;
561pub type prUTF16Char = csSDK_uint16;
562pub type prWnd = *mut NSView;
563#[repr(C, packed)]
564#[derive(Debug, Copy, Clone)]
565pub struct PrSDKString {
566    pub opaque: [csSDK_int64; 2usize],
567}
568#[repr(C, packed)]
569#[derive(Debug, Copy, Clone)]
570pub struct PrSDKGuid {
571    pub opaque: [csSDK_int64; 2usize],
572}
573pub type PrSDKColorSpaceID = PrSDKGuid;
574extern "C" {
575    #[link_name = "\u{1}__ZL26kPrSDKColorSpaceID_Invalid"]
576    pub static kPrSDKColorSpaceID_Invalid: PrSDKColorSpaceID;
577}
578pub type PrSDKLUTID = PrSDKGuid;
579extern "C" {
580    #[link_name = "\u{1}__ZL19kPrSDKLUTID_Invalid"]
581    pub static kPrSDKLUTID_Invalid: PrSDKLUTID;
582}
583#[repr(C, packed)]
584#[derive(Debug, Copy, Clone)]
585pub struct PPix {
586    pub bounds: prRect,
587    pub rowbytes: csSDK_int32,
588    pub bitsperpixel: csSDK_int32,
589    pub pix: *mut ::std::os::raw::c_void,
590    pub reserved: [*mut ::std::os::raw::c_void; 32usize],
591}
592pub type PPixHand = *mut *mut PPix;
593pub type prFieldType = csSDK_int32;
594pub type PrTimelineID = csSDK_int32;
595pub type PrClipID = csSDK_int32;
596#[repr(C)]
597#[derive(Debug, Copy, Clone)]
598pub struct prPluginID {
599    pub mGUID: [::std::os::raw::c_char; 37usize],
600}
601pub const PrParamType_kPrParamType_Int8: PrParamType = 1;
602pub const PrParamType_kPrParamType_Int16: PrParamType = 2;
603pub const PrParamType_kPrParamType_Int32: PrParamType = 3;
604pub const PrParamType_kPrParamType_Int64: PrParamType = 4;
605pub const PrParamType_kPrParamType_Float32: PrParamType = 5;
606pub const PrParamType_kPrParamType_Float64: PrParamType = 6;
607pub const PrParamType_kPrParamType_Bool: PrParamType = 7;
608pub const PrParamType_kPrParamType_Point: PrParamType = 8;
609pub const PrParamType_kPrParamType_Guid: PrParamType = 9;
610pub const PrParamType_kPrParamType_PrMemoryPtr: PrParamType = 10;
611pub const PrParamType_kPrParamType_MaxSize: PrParamType = 4294967295;
612pub type PrParamType = ::std::os::raw::c_uint;
613#[repr(C, packed)]
614#[derive(Copy, Clone)]
615pub struct PrParam {
616    pub mType: PrParamType,
617    pub __bindgen_anon_1: PrParam__bindgen_ty_1,
618}
619#[repr(C, packed)]
620#[derive(Copy, Clone)]
621pub union PrParam__bindgen_ty_1 {
622    pub mInt8: csSDK_int8,
623    pub mInt16: csSDK_int16,
624    pub mInt32: csSDK_int32,
625    pub mInt64: csSDK_int64,
626    pub mFloat32: f32,
627    pub mFloat64: f64,
628    pub mBool: csSDK_uint8,
629    pub mPoint: prFPoint64,
630    pub mGuid: prPluginID,
631    pub mMemoryPtr: PrMemoryPtr,
632}
633#[doc = "\tCurrently supported types"]
634pub const PrPixelFormat_PrPixelFormat_BGRA_4444_8u: PrPixelFormat = 1634887522;
635#[doc = "\tCurrently supported types"]
636pub const PrPixelFormat_PrPixelFormat_VUYA_4444_8u: PrPixelFormat = 1635349878;
637#[doc = "\tCurrently supported types"]
638pub const PrPixelFormat_PrPixelFormat_VUYA_4444_8u_709: PrPixelFormat = 1096373590;
639#[doc = "\tCurrently supported types"]
640pub const PrPixelFormat_PrPixelFormat_ARGB_4444_8u: PrPixelFormat = 1650946657;
641#[doc = "\tCurrently supported types"]
642pub const PrPixelFormat_PrPixelFormat_BGRX_4444_8u: PrPixelFormat = 2020763490;
643#[doc = "\tCurrently supported types"]
644pub const PrPixelFormat_PrPixelFormat_VUYX_4444_8u: PrPixelFormat = 2021225846;
645#[doc = "\tCurrently supported types"]
646pub const PrPixelFormat_PrPixelFormat_VUYX_4444_8u_709: PrPixelFormat = 930641270;
647#[doc = "\tCurrently supported types"]
648pub const PrPixelFormat_PrPixelFormat_XRGB_4444_8u: PrPixelFormat = 1650946680;
649#[doc = "\tCurrently supported types"]
650pub const PrPixelFormat_PrPixelFormat_BGRP_4444_8u: PrPixelFormat = 1886545762;
651#[doc = "\tCurrently supported types"]
652pub const PrPixelFormat_PrPixelFormat_VUYP_4444_8u: PrPixelFormat = 1887008118;
653#[doc = "\tCurrently supported types"]
654pub const PrPixelFormat_PrPixelFormat_VUYP_4444_8u_709: PrPixelFormat = 930116982;
655#[doc = "\tCurrently supported types"]
656pub const PrPixelFormat_PrPixelFormat_PRGB_4444_8u: PrPixelFormat = 1650946672;
657#[doc = "\tCurrently supported types"]
658pub const PrPixelFormat_PrPixelFormat_BGRA_4444_16u: PrPixelFormat = 1634887490;
659#[doc = "\tCurrently supported types"]
660pub const PrPixelFormat_PrPixelFormat_VUYA_4444_16u: PrPixelFormat = 1635349846;
661#[doc = "\tCurrently supported types"]
662pub const PrPixelFormat_PrPixelFormat_ARGB_4444_16u: PrPixelFormat = 1650946625;
663#[doc = "\tCurrently supported types"]
664pub const PrPixelFormat_PrPixelFormat_BGRX_4444_16u: PrPixelFormat = 2020763458;
665#[doc = "\tCurrently supported types"]
666pub const PrPixelFormat_PrPixelFormat_XRGB_4444_16u: PrPixelFormat = 1650946648;
667#[doc = "\tCurrently supported types"]
668pub const PrPixelFormat_PrPixelFormat_BGRP_4444_16u: PrPixelFormat = 1886545730;
669#[doc = "\tCurrently supported types"]
670pub const PrPixelFormat_PrPixelFormat_PRGB_4444_16u: PrPixelFormat = 1650946640;
671#[doc = "\tCurrently supported types"]
672pub const PrPixelFormat_PrPixelFormat_BGRA_4444_32f: PrPixelFormat = 1634879298;
673#[doc = "\tCurrently supported types"]
674pub const PrPixelFormat_PrPixelFormat_VUYA_4444_32f: PrPixelFormat = 1635341654;
675#[doc = "\tCurrently supported types"]
676pub const PrPixelFormat_PrPixelFormat_VUYA_4444_32f_709: PrPixelFormat = 1633244534;
677#[doc = "\tCurrently supported types"]
678pub const PrPixelFormat_PrPixelFormat_ARGB_4444_32f: PrPixelFormat = 1650938433;
679#[doc = "\tCurrently supported types"]
680pub const PrPixelFormat_PrPixelFormat_BGRX_4444_32f: PrPixelFormat = 2020755266;
681#[doc = "\tCurrently supported types"]
682pub const PrPixelFormat_PrPixelFormat_VUYX_4444_32f: PrPixelFormat = 2021217622;
683#[doc = "\tCurrently supported types"]
684pub const PrPixelFormat_PrPixelFormat_VUYX_4444_32f_709: PrPixelFormat = 930633046;
685#[doc = "\tCurrently supported types"]
686pub const PrPixelFormat_PrPixelFormat_XRGB_4444_32f: PrPixelFormat = 1650938456;
687#[doc = "\tCurrently supported types"]
688pub const PrPixelFormat_PrPixelFormat_BGRP_4444_32f: PrPixelFormat = 1886537538;
689#[doc = "\tCurrently supported types"]
690pub const PrPixelFormat_PrPixelFormat_VUYP_4444_32f: PrPixelFormat = 1886999894;
691#[doc = "\tCurrently supported types"]
692pub const PrPixelFormat_PrPixelFormat_VUYP_4444_32f_709: PrPixelFormat = 930108758;
693#[doc = "\tCurrently supported types"]
694pub const PrPixelFormat_PrPixelFormat_PRGB_4444_32f: PrPixelFormat = 1650938448;
695#[doc = "\tCurrently supported types"]
696pub const PrPixelFormat_PrPixelFormat_RGB_444_10u: PrPixelFormat = 826427218;
697#[doc = "\tCurrently supported types"]
698pub const PrPixelFormat_PrPixelFormat_YUYV_422_8u_601: PrPixelFormat = 846820729;
699#[doc = "\tCurrently supported types"]
700pub const PrPixelFormat_PrPixelFormat_YUYV_422_8u_709: PrPixelFormat = 863597945;
701#[doc = "\tCurrently supported types"]
702pub const PrPixelFormat_PrPixelFormat_UYVY_422_8u_601: PrPixelFormat = 2037807477;
703#[doc = "\tCurrently supported types"]
704pub const PrPixelFormat_PrPixelFormat_UYVY_422_8u_709: PrPixelFormat = 930511221;
705#[doc = "\tCurrently supported types"]
706pub const PrPixelFormat_PrPixelFormat_V210_422_10u_601: PrPixelFormat = 808530550;
707#[doc = "\tCurrently supported types"]
708pub const PrPixelFormat_PrPixelFormat_V210_422_10u_709: PrPixelFormat = 825307766;
709#[doc = "\tCurrently supported types"]
710pub const PrPixelFormat_PrPixelFormat_UYVY_422_32f_601: PrPixelFormat = 2037799253;
711#[doc = "\tCurrently supported types"]
712pub const PrPixelFormat_PrPixelFormat_UYVY_422_32f_709: PrPixelFormat = 930502997;
713#[doc = "\tCurrently supported types"]
714pub const PrPixelFormat_PrPixelFormat_BGRA_4444_32f_Linear: PrPixelFormat = 1281443650;
715#[doc = "\tCurrently supported types"]
716pub const PrPixelFormat_PrPixelFormat_BGRP_4444_32f_Linear: PrPixelFormat = 1282426690;
717#[doc = "\tCurrently supported types"]
718pub const PrPixelFormat_PrPixelFormat_BGRX_4444_32f_Linear: PrPixelFormat = 1282950978;
719#[doc = "\tCurrently supported types"]
720pub const PrPixelFormat_PrPixelFormat_ARGB_4444_32f_Linear: PrPixelFormat = 1281839681;
721#[doc = "\tCurrently supported types"]
722pub const PrPixelFormat_PrPixelFormat_PRGB_4444_32f_Linear: PrPixelFormat = 1281839696;
723#[doc = "\tCurrently supported types"]
724pub const PrPixelFormat_PrPixelFormat_XRGB_4444_32f_Linear: PrPixelFormat = 1281839704;
725#[doc = "\tCurrently supported types"]
726pub const PrPixelFormat_PrPixelFormat_RGB_444_12u_PQ_709: PrPixelFormat = 928075840;
727pub const PrPixelFormat_PrPixelFormat_RGB_444_12u_PQ_P3: PrPixelFormat = 1347506240;
728pub const PrPixelFormat_PrPixelFormat_RGB_444_12u_PQ_2020: PrPixelFormat = 844189760;
729pub const PrPixelFormat_PrPixelFormat_RGB_444_10u_HLG: PrPixelFormat = 827082816;
730pub const PrPixelFormat_PrPixelFormat_RGB_444_12u_HLG: PrPixelFormat = 843860032;
731pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG2_FRAME_PICTURE_PLANAR_8u_601: PrPixelFormat =
732    842102393;
733pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG2_FIELD_PICTURE_PLANAR_8u_601: PrPixelFormat =
734    845772409;
735pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG2_FRAME_PICTURE_PLANAR_8u_601_FullRange:
736    PrPixelFormat = 1714517625;
737pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG2_FIELD_PICTURE_PLANAR_8u_601_FullRange:
738    PrPixelFormat = 1718187641;
739pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG2_FRAME_PICTURE_PLANAR_8u_709: PrPixelFormat =
740    925988473;
741pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG2_FIELD_PICTURE_PLANAR_8u_709: PrPixelFormat =
742    929658489;
743pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG2_FRAME_PICTURE_PLANAR_8u_709_FullRange:
744    PrPixelFormat = 1177646713;
745pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG2_FIELD_PICTURE_PLANAR_8u_709_FullRange:
746    PrPixelFormat = 1181316729;
747pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_PLANAR_8u_601: PrPixelFormat =
748    842102361;
749pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_PLANAR_8u_601: PrPixelFormat =
750    845772377;
751pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_PLANAR_8u_601_FullRange:
752    PrPixelFormat = 1714517593;
753pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_PLANAR_8u_601_FullRange:
754    PrPixelFormat = 1718187609;
755pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_PLANAR_8u_709: PrPixelFormat =
756    925988441;
757pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_PLANAR_8u_709: PrPixelFormat =
758    929658457;
759pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_PLANAR_8u_709_FullRange:
760    PrPixelFormat = 1177646681;
761pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_PLANAR_8u_709_FullRange:
762    PrPixelFormat = 1181316697;
763pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_BIPLANAR_8u_601: PrPixelFormat =
764    862549614;
765pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_BIPLANAR_8u_601: PrPixelFormat =
766    858879598;
767pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_BIPLANAR_8u_601_FullRange:
768    PrPixelFormat = 828995182;
769pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_BIPLANAR_8u_601_FullRange:
770    PrPixelFormat = 825325166;
771pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_BIPLANAR_8u_709: PrPixelFormat =
772    845772398;
773pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_BIPLANAR_8u_709: PrPixelFormat =
774    842102382;
775pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_BIPLANAR_8u_709_FullRange:
776    PrPixelFormat = 812217966;
777pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_BIPLANAR_8u_709_FullRange:
778    PrPixelFormat = 808547950;
779pub const PrPixelFormat_PrPixelFormat_YVU_420_MPEG4_FIELD_PICTURE_BIPLANAR_8u_601: PrPixelFormat =
780    862549582;
781pub const PrPixelFormat_PrPixelFormat_YVU_420_MPEG4_FRAME_PICTURE_BIPLANAR_8u_601: PrPixelFormat =
782    858879566;
783pub const PrPixelFormat_PrPixelFormat_YVU_420_MPEG4_FIELD_PICTURE_BIPLANAR_8u_601_FullRange:
784    PrPixelFormat = 828995150;
785pub const PrPixelFormat_PrPixelFormat_YVU_420_MPEG4_FRAME_PICTURE_BIPLANAR_8u_601_FullRange:
786    PrPixelFormat = 825325134;
787pub const PrPixelFormat_PrPixelFormat_YVU_420_MPEG4_FIELD_PICTURE_BIPLANAR_8u_709: PrPixelFormat =
788    845772366;
789pub const PrPixelFormat_PrPixelFormat_YVU_420_MPEG4_FRAME_PICTURE_BIPLANAR_8u_709: PrPixelFormat =
790    842102350;
791pub const PrPixelFormat_PrPixelFormat_YVU_420_MPEG4_FIELD_PICTURE_BIPLANAR_8u_709_FullRange:
792    PrPixelFormat = 812217934;
793pub const PrPixelFormat_PrPixelFormat_YVU_420_MPEG4_FRAME_PICTURE_BIPLANAR_8u_709_FullRange:
794    PrPixelFormat = 808547918;
795pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_BIPLANAR_10u_as16u_709:
796    PrPixelFormat = 812200048;
797pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_BIPLANAR_10u_as16u_709:
798    PrPixelFormat = 808530032;
799pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_BIPLANAR_10u_as16u_709_FullRange : PrPixelFormat = 1718169712 ;
800pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_BIPLANAR_10u_as16u_709_FullRange : PrPixelFormat = 1714499696 ;
801pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_BIPLANAR_10u_as16u_2020:
802    PrPixelFormat = 812200016;
803pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_BIPLANAR_10u_as16u_2020:
804    PrPixelFormat = 808530000;
805pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_BIPLANAR_10u_as16u_2020_FullRange : PrPixelFormat = 1718169680 ;
806pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_BIPLANAR_10u_as16u_2020_FullRange : PrPixelFormat = 1714499664 ;
807pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_BIPLANAR_10u_as16u_2020_HDR:
808    PrPixelFormat = 812207952;
809pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_BIPLANAR_10u_as16u_2020_HDR:
810    PrPixelFormat = 808537936;
811pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_BIPLANAR_10u_as16u_2020_HDR_FullRange : PrPixelFormat = 1718177616 ;
812pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_BIPLANAR_10u_as16u_2020_HDR_FullRange : PrPixelFormat = 1714507600 ;
813pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_BIPLANAR_10u_as16u_2020_HDR_HLG : PrPixelFormat = 812410960 ;
814pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_BIPLANAR_10u_as16u_2020_HDR_HLG : PrPixelFormat = 810305616 ;
815pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_BIPLANAR_10u_as16u_2020_HDR_HLG_FullRange : PrPixelFormat = 1718380624 ;
816pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_BIPLANAR_10u_as16u_2020_HDR_HLG_FullRange : PrPixelFormat = 1716275280 ;
817pub const PrPixelFormat_PrPixelFormat_NTSCDV25: PrPixelFormat = 846100068;
818pub const PrPixelFormat_PrPixelFormat_PALDV25: PrPixelFormat = 846231140;
819pub const PrPixelFormat_PrPixelFormat_NTSCDV50: PrPixelFormat = 896431716;
820pub const PrPixelFormat_PrPixelFormat_PALDV50: PrPixelFormat = 896562788;
821pub const PrPixelFormat_PrPixelFormat_NTSCDV100_720p: PrPixelFormat = 929986148;
822pub const PrPixelFormat_PrPixelFormat_PALDV100_720p: PrPixelFormat = 930117220;
823pub const PrPixelFormat_PrPixelFormat_NTSCDV100_1080i: PrPixelFormat = 829322852;
824pub const PrPixelFormat_PrPixelFormat_PALDV100_1080i: PrPixelFormat = 829453924;
825pub const PrPixelFormat_PrPixelFormat_Raw: PrPixelFormat = 2004312434;
826pub const PrPixelFormat_PrPixelFormat_Invalid: PrPixelFormat = 1717854562;
827pub const PrPixelFormat_PrPixelFormat_Any: PrPixelFormat = 0;
828#[doc = "\tPremiere supported pixel formats for RenderFrame and PPixs"]
829pub type PrPixelFormat = ::std::os::raw::c_uint;
830pub type plugGetClipVideoFunc = ::std::option::Option<
831    unsafe extern "C" fn(
832        frame: csSDK_int32,
833        thePort: PPixHand,
834        bounds: *mut prRect,
835        flags: csSDK_int32,
836        clipData: PrClipID,
837    ) -> csSDK_int32,
838>;
839pub type plugGetWorkAreaFunc = ::std::option::Option<
840    unsafe extern "C" fn(
841        timelineData: PrTimelineID,
842        workAreaStart: *mut csSDK_int32,
843        workAreaEnd: *mut csSDK_int32,
844    ) -> csSDK_int32,
845>;
846pub type plugGetCurrentTimebaseFunc = ::std::option::Option<
847    unsafe extern "C" fn(
848        timelineData: PrTimelineID,
849        scale: *mut csSDK_uint32,
850        sampleSize: *mut csSDK_int32,
851    ),
852>;
853pub type plugGetCurrentPosFunc =
854    ::std::option::Option<unsafe extern "C" fn(timelineData: PrTimelineID) -> csSDK_int32>;
855pub type plugGetPreviewFrameExFunc = ::std::option::Option<
856    unsafe extern "C" fn(
857        inTimelineData: PrTimelineID,
858        inFrame: csSDK_int32,
859        outRenderedFrame: *mut PPixHand,
860        inFrameRect: *const prRect,
861        inRequestedPixelFormatArray: *mut PrPixelFormat,
862        inRequestedPixelFormatArrayCount: csSDK_int32,
863        inPixelAspectRatioNumerator: csSDK_uint32,
864        inPixelAspectRatioDenominator: csSDK_uint32,
865        inAlwaysRender: bool,
866    ) -> csSDK_int32,
867>;
868pub type plugGetClipVideoBoundsFunc = ::std::option::Option<
869    unsafe extern "C" fn(
870        inClipData: PrClipID,
871        outBounds: *mut prRect,
872        outPixelAspectRatioNumerator: *mut csSDK_uint32,
873        outPixelAspectRatioDenominator: *mut csSDK_uint32,
874    ) -> csSDK_int32,
875>;
876pub type plugGetClipVideoExFunc = ::std::option::Option<
877    unsafe extern "C" fn(
878        inFrame: csSDK_int32,
879        outRenderedFrame: *mut PPixHand,
880        inFrameRect: *const prRect,
881        inRequestedPixelFormatArray: *const PrPixelFormat,
882        inRequestedPixelFormatArrayCount: csSDK_int32,
883        inPixelAspectRatioNumerator: csSDK_uint32,
884        inPixelAspectRatioDenominator: csSDK_uint32,
885        inClipData: PrClipID,
886    ) -> csSDK_int32,
887>;
888#[repr(C, packed)]
889#[derive(Debug, Copy, Clone)]
890pub struct PlugTimelineFuncs {
891    pub unused2: *mut ::std::os::raw::c_void,
892    pub unused3: *mut ::std::os::raw::c_void,
893    pub getClipVideo: plugGetClipVideoFunc,
894    pub unused1: *mut ::std::os::raw::c_void,
895    pub unused8: *mut ::std::os::raw::c_void,
896    pub unused9: *mut ::std::os::raw::c_void,
897    pub unused10: *mut ::std::os::raw::c_void,
898    pub getWorkArea: plugGetWorkAreaFunc,
899    pub unused7: *mut ::std::os::raw::c_void,
900    pub unused4: *mut ::std::os::raw::c_void,
901    pub getCurrentTimebase: plugGetCurrentTimebaseFunc,
902    pub getCurrentPos: plugGetCurrentPosFunc,
903    pub unused5: *mut ::std::os::raw::c_void,
904    pub unused6: *mut ::std::os::raw::c_void,
905    pub getPreviewFrameEx: plugGetPreviewFrameExFunc,
906    pub getClipVideoBounds: plugGetClipVideoBoundsFunc,
907    pub getClipVideoEx: plugGetClipVideoExFunc,
908}
909pub type PlugTimelineFuncsPtr = *mut PlugTimelineFuncs;
910pub type prSuiteError = csSDK_int32;
911pub const suiteError_NoError: prSuiteError = 0;
912pub const suiteError_Fail: prSuiteError = -2147483648;
913pub const suiteError_InvalidParms: prSuiteError = -2147483647;
914pub const suiteError_OutOfMemory: prSuiteError = -2147483646;
915pub const suiteError_InvalidCall: prSuiteError = -2147483645;
916pub const suiteError_NotImplemented: prSuiteError = -2147483644;
917pub const suiteError_IDNotValid: prSuiteError = -2147483643;
918pub const suiteError_RenderPending: prSuiteError = 65536;
919pub const suiteError_RenderedFrameNotFound: prSuiteError = 65537;
920pub const suiteError_RenderedFrameCanceled: prSuiteError = 65538;
921pub const suiteError_RenderInvalidPixelFormat: prSuiteError = -2147418112;
922pub const suiteError_RenderCompletionProcNotSet: prSuiteError = -2147418111;
923pub const suiteError_TimeRoundedAudioRate: prSuiteError = 131072;
924pub const suiteError_CompilerCompileAbort: prSuiteError = 196609;
925pub const suiteError_CompilerCompileDone: prSuiteError = 196610;
926pub const suiteError_CompilerOutputFormatAccept: prSuiteError = 196612;
927pub const suiteError_CompilerOutputFormatDecline: prSuiteError = 196613;
928pub const suiteError_CompilerRebuildCutList: prSuiteError = 196614;
929pub const suiteError_CompilerIterateCompiler: prSuiteError = 196615;
930pub const suiteError_CompilerIterateCompilerDone: prSuiteError = 196616;
931pub const suiteError_CompilerInternalErrorSilent: prSuiteError = 196617;
932pub const suiteError_CompilerIterateCompilerCacheable: prSuiteError = 196618;
933pub const suiteError_CompilerBadFormatIndex: prSuiteError = -2147287040;
934pub const suiteError_CompilerInternalError: prSuiteError = -2147287039;
935pub const suiteError_CompilerOutOfDiskSpace: prSuiteError = -2147287038;
936pub const suiteError_CompilerBufferFull: prSuiteError = -2147287037;
937pub const suiteError_CompilerErrOther: prSuiteError = -2147287036;
938pub const suiteError_CompilerErrMemory: prSuiteError = -2147287035;
939pub const suiteError_CompilerErrFileNotFound: prSuiteError = -2147287034;
940pub const suiteError_CompilerErrTooManyOpenFiles: prSuiteError = -2147287033;
941pub const suiteError_CompilerErrPermErr: prSuiteError = -2147287032;
942pub const suiteError_CompilerErrOpenErr: prSuiteError = -2147287031;
943pub const suiteError_CompilerErrInvalidDrive: prSuiteError = -2147287030;
944pub const suiteError_CompilerErrDupFile: prSuiteError = -2147287029;
945pub const suiteError_CompilerErrIo: prSuiteError = -2147287028;
946pub const suiteError_CompilerErrInUse: prSuiteError = -2147287027;
947pub const suiteError_CompilerErrCodecBadInput: prSuiteError = -2147287026;
948pub const suiteError_ExporterSuspended: prSuiteError = -2147287025;
949pub const suiteError_ExporterNoMoreFrames: prSuiteError = -2147287024;
950pub const suiteError_FileBufferTooSmall: prSuiteError = -2147221504;
951pub const suiteError_FileNotImportableFileType: prSuiteError = -2147221503;
952pub const suiteError_LegacyInvalidVideoRate: prSuiteError = -2147155968;
953pub const suiteError_PlayModuleAudioInitFailure: prSuiteError = -2147090432;
954pub const suiteError_PlayModuleAudioIllegalPlaySetting: prSuiteError = -2147090431;
955pub const suiteError_PlayModuleAudioNotInitialized: prSuiteError = -2147090430;
956pub const suiteError_PlayModuleAudioNotStarted: prSuiteError = -2147090429;
957pub const suiteError_PlayModuleAudioIllegalAction: prSuiteError = -2147090428;
958pub const suiteError_PlayModuleDeviceControlSuiteIllegalCallSequence: prSuiteError = -2147024896;
959pub const suiteError_MediaAcceleratorSuitePathNotFound: prSuiteError = -2146959360;
960pub const suiteError_MediaAcceleratorSuiteRegisterFailure: prSuiteError = -2146959359;
961pub const suiteError_RepositoryReadFailed: prSuiteError = -2146893824;
962pub const suiteError_RepositoryWriteFailed: prSuiteError = -2146893823;
963pub const suiteError_NotActivated: prSuiteError = -2146893822;
964pub const suiteError_DataNotPresent: prSuiteError = -2146893821;
965pub const suiteError_ServerCommunicationFailed: prSuiteError = -2146893820;
966pub const suiteError_Internal: prSuiteError = -2146893819;
967pub const suiteError_StringNotFound: prSuiteError = -2146828288;
968pub const suiteError_StringBufferTooSmall: prSuiteError = -2146828287;
969pub const suiteError_NoKeyframeAfterInTime: prSuiteError = -2146762752;
970pub const suiteError_NoMoreData: prSuiteError = 786432;
971pub const suiteError_InstanceDestroyed: prSuiteError = -2146631680;
972pub const PrRenderQuality_kPrRenderQuality_Max: PrRenderQuality = 4;
973pub const PrRenderQuality_kPrRenderQuality_High: PrRenderQuality = 3;
974pub const PrRenderQuality_kPrRenderQuality_Medium: PrRenderQuality = 2;
975pub const PrRenderQuality_kPrRenderQuality_Low: PrRenderQuality = 1;
976pub const PrRenderQuality_kPrRenderQuality_Draft: PrRenderQuality = 0;
977pub const PrRenderQuality_kPrRenderQuality_Invalid: PrRenderQuality = 4294967295;
978pub const PrRenderQuality_kPrRenderQuality_ForceEnumSize: PrRenderQuality = 4294967295;
979#[doc = "\tRender qualities"]
980pub type PrRenderQuality = ::std::os::raw::c_uint;
981pub const PrPlaybackQuality_kPrPlaybackQuality_Invalid: PrPlaybackQuality = 4;
982pub const PrPlaybackQuality_kPrPlaybackQuality_High: PrPlaybackQuality = 3;
983pub const PrPlaybackQuality_kPrPlaybackQuality_Draft: PrPlaybackQuality = 2;
984pub const PrPlaybackQuality_kPrPlaybackQuality_Auto: PrPlaybackQuality = 1;
985pub const PrPlaybackQuality_kPrPlaybackQuality_ForceEnumSize: PrPlaybackQuality = 4294967295;
986#[doc = " Playback qualities"]
987pub type PrPlaybackQuality = ::std::os::raw::c_uint;
988pub const PrPlaybackFractionalResolution_kPrPlaybackFractionalResolution_Invalid:
989    PrPlaybackFractionalResolution = 6;
990pub const PrPlaybackFractionalResolution_kPrPlaybackFractionalResolution_Sixteenth:
991    PrPlaybackFractionalResolution = 5;
992pub const PrPlaybackFractionalResolution_kPrPlaybackFractionalResolution_Eighth:
993    PrPlaybackFractionalResolution = 4;
994pub const PrPlaybackFractionalResolution_kPrPlaybackFractionalResolution_Quarter:
995    PrPlaybackFractionalResolution = 3;
996pub const PrPlaybackFractionalResolution_kPrPlaybackFractionalResolution_Half:
997    PrPlaybackFractionalResolution = 2;
998pub const PrPlaybackFractionalResolution_kPrPlaybackFractionalResolution_Full:
999    PrPlaybackFractionalResolution = 1;
1000pub const PrPlaybackFractionalResolution_kPrPlaybackFractionalResolution_ForceEnumSize:
1001    PrPlaybackFractionalResolution = 4294967295;
1002#[doc = " Playback Fractional Resolutions"]
1003pub type PrPlaybackFractionalResolution = ::std::os::raw::c_uint;
1004#[doc = "\tTime overview:\n\n\tPremiere uses a tick-based time counter that is stored in a signed\n\t64-bit integer. The current number of ticks per second must be retrieved\n\tusing the callback in this suite, but is guaranteed to be constant for\n\tthe duration of runtime."]
1005pub type PrTime = prInt64;
1006#[doc = "\tRatioTime is used where value that are not representable by ticks are needed."]
1007#[repr(C, packed)]
1008#[derive(Debug, Copy, Clone)]
1009pub struct PrRatioTime {
1010    pub mValue: prInt64,
1011    pub mScale: prInt64,
1012}
1013pub const PrVideoFrameRates_kVideoFrameRate_24Drop: PrVideoFrameRates = 1;
1014pub const PrVideoFrameRates_kVideoFrameRate_24: PrVideoFrameRates = 2;
1015pub const PrVideoFrameRates_kVideoFrameRate_PAL: PrVideoFrameRates = 3;
1016pub const PrVideoFrameRates_kVideoFrameRate_NTSC: PrVideoFrameRates = 4;
1017pub const PrVideoFrameRates_kVideoFrameRate_30: PrVideoFrameRates = 5;
1018pub const PrVideoFrameRates_kVideoFrameRate_PAL_HD: PrVideoFrameRates = 6;
1019pub const PrVideoFrameRates_kVideoFrameRate_NTSC_HD: PrVideoFrameRates = 7;
1020pub const PrVideoFrameRates_kVideoFrameRate_60: PrVideoFrameRates = 8;
1021pub const PrVideoFrameRates_kVideoFrameRate_Max: PrVideoFrameRates = 4294967295;
1022pub type PrVideoFrameRates = ::std::os::raw::c_uint;
1023#[repr(C, packed)]
1024#[derive(Debug, Copy, Clone)]
1025pub struct PrSDKTimeSuite {
1026    #[doc = "\tGet the current ticks per second. This is guaranteed to be constant for\n\tthe duration of runtime.\n\n\t@param\toutTickPerSec\ton return, the number of time ticks per second."]
1027    pub GetTicksPerSecond:
1028        ::std::option::Option<unsafe extern "C" fn(outTicksPerSec: *mut PrTime) -> prSuiteError>,
1029    #[doc = "\tGet the number of ticks in a video frame rate.\n\n\t@param\tinFrameRate\t\tan enum value for a video frame rate.\n\t@param\toutTicksPerFrame\ton return, the number of time ticks per frame."]
1030    pub GetTicksPerVideoFrame: ::std::option::Option<
1031        unsafe extern "C" fn(
1032            inVideoFrameRate: PrVideoFrameRates,
1033            outTicksPerFrame: *mut PrTime,
1034        ) -> prSuiteError,
1035    >,
1036    #[doc = "\tGet the number of ticks in an audio sample rate.\n\n\t@param\tinSampleRate\tthe audio sample rate as a float.\n\t@param\toutTicksPerSample\ton return, the number of time ticks per sample.\n\t@return\t\t\t\t\tkPrTimeSuite_RoundedAudioRate is returned if the requested\n\t\t\t\t\t\t\taudio sample rate is not an even divisor of the base tick\n\t\t\t\t\t\t\tcount and therefore times in this rate will not be exact."]
1037    pub GetTicksPerAudioSample: ::std::option::Option<
1038        unsafe extern "C" fn(inSampleRate: f32, outTicksPerSample: *mut PrTime) -> prSuiteError,
1039    >,
1040}
1041pub type PrRenderCacheType = csSDK_int32;
1042#[repr(C, packed)]
1043#[derive(Debug, Copy, Clone)]
1044pub struct ClipFrameFormat {
1045    pub inPixelFormat: PrPixelFormat,
1046    pub inWidth: csSDK_int32,
1047    pub inHeight: csSDK_int32,
1048}
1049#[repr(C, packed)]
1050#[derive(Debug, Copy, Clone)]
1051pub struct PrSDKClipRenderSuite {
1052    #[doc = "\tDoes this clip support the clip render suite functions?\n\n\t@param\tinClipID\t\t\t\t\t\t\tThe ClipID of the clip.\n\t@param\toutSupported\t\t\t\t\t\tIf true, the clip supports the ClipRenderSuite.\n\t@param\toutAsyncIOSupported\t\t\t\t\tIf true, the clip supports asynchronous IO.\n\t\t\t\t\t\t\t\t\t\t\t\tIf false, the clip does not directly support asynchronous IO,\n\t\t\t\t\t\t\t\t\t\t\t\thowever it is still legal to call InitiateAsyncRead.\n\t\t\t\t\t\t\t\t\t\t\t\tPass nil if you do not need this information."]
1053    pub SupportsClipRenderSuite: ::std::option::Option<
1054        unsafe extern "C" fn(
1055            inClipID: PrClipID,
1056            outSupported: *mut prBool,
1057            outAsyncIOSupported: *mut prBool,
1058        ) -> prSuiteError,
1059    >,
1060    #[doc = "\tGiven a specific clip, find out the number of pixel formats natively supported\n\tby this clip.\n\n\t@param\tinClipID\t\t\t\t\t\t\tThe ClipID of the clip.\n\t@param\toutNumPixelFormats\t\t\t\t\tThe number of pixel formats."]
1061    pub GetNumPixelFormats: ::std::option::Option<
1062        unsafe extern "C" fn(
1063            inClipID: PrClipID,
1064            outNumPixelFormats: *mut csSDK_int32,
1065        ) -> prSuiteError,
1066    >,
1067    #[doc = "\tGiven a specific clip get a native pixel format. The pixel formats will be returned\n\tin index order based on preference. The maximum index can be determined by using\n\tGetNumPixelFormats().\n\n\t@param\tinClipID\t\t\t\t\t\t\tThe ClipID of the clip.\n\t@param\tinIndex\t\t\t\t\t\t\t\tThe pixel format index.\n\t@param\toutPixelFormat\t\t\t\t\t\tThe pixel format."]
1068    pub GetPixelFormat: ::std::option::Option<
1069        unsafe extern "C" fn(
1070            inClipID: PrClipID,
1071            inIndex: csSDK_int32,
1072            outPixelFormat: *mut PrPixelFormat,
1073        ) -> prSuiteError,
1074    >,
1075    #[doc = "\tGiven a specific clip and pixel format, find out the number of preferred\n\tframe sizes for this clip. A preferred frame size is a size which represents\n\ta \"native\" size of the media.\n\n\t@param\tinClipID\t\t\t\t\t\t\tThe ClipID of the clip.\n\t@param\tinPixelFormat\t\t\t\t\t\tThe pixel format to query for preferrred sizes.\n\t@param\toutNumPreferredFrameSizes\t\t\tThe number of sizes for this clip and pixel format."]
1076    pub GetNumPreferredFrameSizes: ::std::option::Option<
1077        unsafe extern "C" fn(
1078            inClipID: PrClipID,
1079            inPixelFormat: PrPixelFormat,
1080            outNumPreferredFrameSizes: *mut csSDK_int32,
1081        ) -> prSuiteError,
1082    >,
1083    #[doc = "\tGiven a specific clip and pixel format, get a preferred size. The sizes will be returned\n\tin index order based on preference. The maximum index can be determined by using\n\tGetNumPreferredFrameSizes().\n\n\t@param\tinClipID\t\t\t\t\t\t\tThe ClipID of the clip.\n\t@param\tinPixelFormat\t\t\t\t\t\tThe pixel format to query for preferrred sizes.\n\t@param\tinIndex\t\t\t\t\t\t\t\tThe preferred size index.\n\t@param\toutWidth\t\t\t\t\t\t\tThe width of the preferred size. 0 means any width.\n\t@param\toutHeight\t\t\t\t\t\t\tThe height of the preferred size. 0 means any height."]
1084    pub GetPreferredFrameSize: ::std::option::Option<
1085        unsafe extern "C" fn(
1086            inClipID: PrClipID,
1087            inPixelFormat: PrPixelFormat,
1088            inIndex: csSDK_int32,
1089            outWidth: *mut csSDK_int32,
1090            outHeight: *mut csSDK_int32,
1091        ) -> prSuiteError,
1092    >,
1093    #[doc = "\tInitiate an asynchronous read for the specified frame. Note that you cannot specify\n\ta specific frame format here. The clip will prefetch whatever data possible to\n\tfacilitate a faster decode, and return.\n\n\t@param\tinClipID\t\t\t\t\t\t\tThe ClipID of the clip.\n\t@param\tinFrameTime\t\t\t\t\t\t\tThe time of the video frame number.\n\t@param\tinFormat\t\t\t\t\t\t\tThe preferred format for the frame."]
1094    pub InitiateAsyncRead: ::std::option::Option<
1095        unsafe extern "C" fn(
1096            inClipID: PrClipID,
1097            inFrameTime: *const PrTime,
1098            inFormat: *mut ClipFrameFormat,
1099        ) -> prSuiteError,
1100    >,
1101    #[doc = "\tCancel an asynchronous read for the specified frame. Note that you cannot specify\n\ta specific frame format here.\n\n\t@param\tinClipID\t\t\t\t\t\t\tThe ClipID of the clip.\n\t@param\tinFrameTime\t\t\t\t\t\t\tThe time of the video frame number.\n\t@param\tinFormat\t\t\t\t\t\t\tThe preferred format for the frame."]
1102    pub CancelAsyncRead: ::std::option::Option<
1103        unsafe extern "C" fn(
1104            inClipID: PrClipID,
1105            inFrameTime: *const PrTime,
1106            inFormat: *mut ClipFrameFormat,
1107        ) -> prSuiteError,
1108    >,
1109    #[doc = "\tFind a frame of a specific format in the cache. This function will first look\n\tfor a match in the supplied list of formats. If it does not find one, it will\n\task the importer to decode one out of cached raw data. It will not access the\n\tdisk for new raw data, so it will fail if the required data is not in the cache.\n\n\t@param  inClipID\t\t\t\t\t\t\tThe ClipID of the clip.\n\t@param\tinFrameTime\t\t\t\t\t\t\tThe time of the video frame number.\n\t@param\tinFormats\t\t\t\t\t\t\tAn array of formats that would be acceptable.\n\t\t\t\t\t\t\t\t\t\t\t\tEach format must be a combination of\n\t\t\t\t\t\t\t\t\t\t\t\tsupported pixel formats and preferred frame\n\t\t\t\t\t\t\t\t\t\t\t\tsizes. May be NULL, in which case in format\n\t\t\t\t\t\t\t\t\t\t\t\tmay be returned.\n\t@param\tinNumFormats\t\t\t\t\t\tThe number of items in inFormats. May be 0.\n\t@param\tinSynchronous\t\t\t\t\t\tIf true, the function will render the file from disk if necessary\n\t@param\toutFrame\t\t\t\t\t\t\tThe found frame. May be NULL if it was not found."]
1110    pub FindFrame: ::std::option::Option<
1111        unsafe extern "C" fn(
1112            inClipID: PrClipID,
1113            inFrameTime: *const PrTime,
1114            inFormats: *mut ClipFrameFormat,
1115            inNumFormats: csSDK_int32,
1116            inSynchronous: bool,
1117            outFrame: *mut PPixHand,
1118        ) -> prSuiteError,
1119    >,
1120    #[doc = "\tWhat is the field type of this clip? Added in version 2.\n\n\t@param\tinClipID\t\t\t\t\t\t\tThe ClipID of the clip.\n\t@param\toutFieldType\t\t\t\t\t\tSee prFieldType in PrSDKTypes.h"]
1121    pub GetClipFieldType: ::std::option::Option<
1122        unsafe extern "C" fn(inClipID: PrClipID, outFieldType: *mut prFieldType) -> prSuiteError,
1123    >,
1124    #[doc = "\tGiven a specific clip, find out the number of custom pixel formats natively supported\n\tby this clip.\n\n\t@param\tinClipID\t\t\t\t\t\t\tThe ClipID of the clip.\n\t@param\toutNumPixelFormats\t\t\t\t\tThe number of pixel formats."]
1125    pub GetNumCustomPixelFormats: ::std::option::Option<
1126        unsafe extern "C" fn(
1127            inClipID: PrClipID,
1128            outNumPixelFormats: *mut csSDK_int32,
1129        ) -> prSuiteError,
1130    >,
1131    #[doc = "\tGiven a specific clip get a native pixel format. The pixel formats will be returned\n\tin index order based on preference. The maximum index can be determined by using\n\tGetNumPixelFormats().\n\n\t@param\tinClipID\t\t\t\t\t\t\tThe ClipID of the clip.\n\t@param\tinIndex\t\t\t\t\t\t\t\tThe pixel format index.\n\t@param\toutPixelFormat\t\t\t\t\t\tThe pixel format."]
1132    pub GetCustomPixelFormat: ::std::option::Option<
1133        unsafe extern "C" fn(
1134            inClipID: PrClipID,
1135            inIndex: csSDK_int32,
1136            outPixelFormat: *mut PrPixelFormat,
1137        ) -> prSuiteError,
1138    >,
1139}
1140#[doc = "!Indicates Data Group"]
1141pub const PrDSGroupChildType_kPrDSGroupType_GROUP: PrDSGroupChildType = 0;
1142#[doc = "!Indicates Dynamic Group"]
1143pub const PrDSGroupChildType_kPrDSGroupType_DYNAMIC_DATA: PrDSGroupChildType = 1;
1144#[doc = "!Indicates Static Group"]
1145pub const PrDSGroupChildType_kPrDSGroupType_STATIC_DATA: PrDSGroupChildType = 2;
1146#[doc = "!Indicates invalid entry"]
1147pub const PrDSGroupChildType_kPrDSGroupType_INVALID: PrDSGroupChildType = 3;
1148#[doc = "\tDefines data stream types"]
1149pub type PrDSGroupChildType = ::std::os::raw::c_uint;
1150pub type plugNewPtrFunc =
1151    ::std::option::Option<unsafe extern "C" fn(size: csSDK_uint32) -> *mut ::std::os::raw::c_char>;
1152pub type plugSetPtrSizeFunc =
1153    ::std::option::Option<unsafe extern "C" fn(ptr: *mut PrMemoryPtr, newsize: csSDK_uint32)>;
1154pub type plugGetPtrSizeFunc =
1155    ::std::option::Option<unsafe extern "C" fn(ptr: *mut ::std::os::raw::c_char) -> csSDK_int32>;
1156pub type plugDisposePtrFunc =
1157    ::std::option::Option<unsafe extern "C" fn(ptr: *mut ::std::os::raw::c_char)>;
1158pub type plugNewHandleFunc = ::std::option::Option<
1159    unsafe extern "C" fn(size: csSDK_uint32) -> *mut *mut ::std::os::raw::c_char,
1160>;
1161pub type plugSetHandleSizeFunc = ::std::option::Option<
1162    unsafe extern "C" fn(h: PrMemoryHandle, newsize: csSDK_uint32) -> csSDK_int16,
1163>;
1164pub type plugGetHandleSizeFunc =
1165    ::std::option::Option<unsafe extern "C" fn(h: PrMemoryHandle) -> csSDK_int32>;
1166pub type plugDisposeHandleFunc = ::std::option::Option<unsafe extern "C" fn(h: PrMemoryHandle)>;
1167pub type plugNewPtrClearFunc =
1168    ::std::option::Option<unsafe extern "C" fn(size: csSDK_uint32) -> *mut ::std::os::raw::c_char>;
1169pub type plugNewHandleClearFunc = ::std::option::Option<
1170    unsafe extern "C" fn(size: csSDK_uint32) -> *mut *mut ::std::os::raw::c_char,
1171>;
1172pub type plugLockHandleFunc = ::std::option::Option<unsafe extern "C" fn(h: PrMemoryHandle)>;
1173pub type plugUnlockHandleFunc = ::std::option::Option<unsafe extern "C" fn(h: PrMemoryHandle)>;
1174#[repr(C, packed)]
1175#[derive(Debug, Copy, Clone)]
1176pub struct PlugMemoryFuncs {
1177    pub newPtr: plugNewPtrFunc,
1178    pub setPtrSize: plugSetPtrSizeFunc,
1179    pub getPtrSize: plugGetPtrSizeFunc,
1180    pub disposePtr: plugDisposePtrFunc,
1181    pub newHandle: plugNewHandleFunc,
1182    pub setHandleSize: plugSetHandleSizeFunc,
1183    pub getHandleSize: plugGetHandleSizeFunc,
1184    pub disposeHandle: plugDisposeHandleFunc,
1185    pub newPtrClear: plugNewPtrClearFunc,
1186    pub newHandleClear: plugNewHandleClearFunc,
1187    pub lockHandle: plugLockHandleFunc,
1188    pub unlockHandle: plugUnlockHandleFunc,
1189}
1190pub type PlugMemoryFuncsPtr = *mut PlugMemoryFuncs;
1191pub type plugUpdateAllWindowsFunc = ::std::option::Option<unsafe extern "C" fn()>;
1192pub type plugGetMainWindFunc =
1193    ::std::option::Option<unsafe extern "C" fn() -> *mut ::std::os::raw::c_void>;
1194#[repr(C, packed)]
1195#[derive(Debug, Copy, Clone)]
1196pub struct PlugWindowFuncs {
1197    pub updateAllWindows: plugUpdateAllWindowsFunc,
1198    pub getMainWnd: plugGetMainWindFunc,
1199}
1200pub type PlugWindowFuncsPtr = *mut PlugWindowFuncs;
1201pub type plugppixGetPixelsFunc =
1202    ::std::option::Option<unsafe extern "C" fn(pix: PPixHand) -> *mut ::std::os::raw::c_char>;
1203pub type plugppixGetBoundsFunc =
1204    ::std::option::Option<unsafe extern "C" fn(pix: PPixHand, bounds: *mut prRect)>;
1205pub type plugppixGetRowbytesFunc =
1206    ::std::option::Option<unsafe extern "C" fn(pix: PPixHand) -> ::std::os::raw::c_int>;
1207pub type plugppixNewFunc =
1208    ::std::option::Option<unsafe extern "C" fn(bounds: *mut prRect) -> PPixHand>;
1209pub type plugppixDisposeFunc = ::std::option::Option<unsafe extern "C" fn(ppix: PPixHand)>;
1210pub type plugppixLockFunc = ::std::option::Option<unsafe extern "C" fn(pix: PPixHand)>;
1211pub type plugppixUnlockFunc = ::std::option::Option<unsafe extern "C" fn(pix: PPixHand)>;
1212pub type plugppixGetPixelAspectRatioFunc = ::std::option::Option<
1213    unsafe extern "C" fn(
1214        pix: PPixHand,
1215        num: *mut csSDK_uint32,
1216        den: *mut csSDK_uint32,
1217    ) -> ::std::os::raw::c_int,
1218>;
1219pub type plugppixGetAlphaBounds =
1220    ::std::option::Option<unsafe extern "C" fn(pix: PPixHand, alphaBounds: *mut prRect)>;
1221#[repr(C, packed)]
1222#[derive(Debug, Copy, Clone)]
1223pub struct PlugppixFuncs {
1224    pub ppixGetPixels: plugppixGetPixelsFunc,
1225    pub ppixGetBounds: plugppixGetBoundsFunc,
1226    pub ppixGetRowbytes: plugppixGetRowbytesFunc,
1227    pub ppixNew: plugppixNewFunc,
1228    pub ppixDispose: plugppixDisposeFunc,
1229    pub ppixLockPixels: plugppixLockFunc,
1230    pub ppixUnlockPixels: plugppixUnlockFunc,
1231    pub ppixGetPixelAspectRatio: plugppixGetPixelAspectRatioFunc,
1232    pub ppixGetAlphaBounds: plugppixGetAlphaBounds,
1233}
1234pub type PlugppixFuncsPtr = *mut PlugppixFuncs;
1235pub type SPBoolean = ::std::os::raw::c_uchar;
1236pub type SPErr = ::std::os::raw::c_int;
1237#[doc = " @ingroup Suites\nThis suite provides basic memory management for PICA (the Adobe plug-in manager)\nand defines the basic functions for acquiring and releasing other suites.\n\nA suite consists of a list of function pointers. The application, or a\nplug-in that loads a suite, provides valid pointers when the suite is\nacquired. When a suite is not available, the pointers are set to the\naddress of the \\c #Undefined() function.\n\nDo not attempt to acquire a suite (other than the \\c #SPBlocksSuite)\nin response to a PICA access (\\c #kSPAccessCaller) or property\n(\\c #kSPPropertiesCaller) message. Most suites are unavailable\nduring these load and unload operations.\n\nYou can acquire all the suites you will need when your plug-in is first\nloaded, as long as you release them before your plug-in is unloaded.\nAt shutdown, however, it is most efficient to acquire only those\nsuites explicitly needed to shut down; for example, to free memory\nand save preferences.\n\nThe \\c SPBasicSuite itself is a part of the message data passed\nto your plug-in with any call. To access it from the message data structure:\n@code\nSPBasicSuite sBasic = message->d.basic;\nsBasic->function( )\n@endcode"]
1238#[repr(C)]
1239#[derive(Debug, Copy, Clone)]
1240pub struct SPBasicSuite {
1241    #[doc = " Acquires a function suite. Loads the suite if necessary,\nand increments its reference count. For example:\n@code\nSPErr error;\nSPBasicSuite *sBasic = message->d.basic;\nAIRandomSuite *sRandom;\nsBasic->AcquireSuite( kAIRandomSuite, kAIRandomVersion, &sRandom );\n@endcode\n@param name The suite name.\n@param version The suite version number.\n@param suite [out] A buffer in which to return the suite pointer.\n@see \\c #SPSuitesSuite::AcquireSuite()"]
1242    pub AcquireSuite: ::std::option::Option<
1243        unsafe extern "C" fn(
1244            name: *const ::std::os::raw::c_char,
1245            version: ::std::os::raw::c_int,
1246            suite: *mut *const ::std::os::raw::c_void,
1247        ) -> SPErr,
1248    >,
1249    #[doc = " Decrements the reference count of a suite and unloads it when the\nreference count reaches 0.\n@param name The suite name.\n@param version The suite version number."]
1250    pub ReleaseSuite: ::std::option::Option<
1251        unsafe extern "C" fn(
1252            name: *const ::std::os::raw::c_char,
1253            version: ::std::os::raw::c_int,
1254        ) -> SPErr,
1255    >,
1256    #[doc = " Compares two strings for equality.\n@param token1 The first null-terminated string.\n@param token2 The second null-terminated string.\n@return True if the strings are the same, false otherwise."]
1257    pub IsEqual: ::std::option::Option<
1258        unsafe extern "C" fn(
1259            token1: *const ::std::os::raw::c_char,
1260            token2: *const ::std::os::raw::c_char,
1261        ) -> SPBoolean,
1262    >,
1263    #[doc = " Allocates a block of memory.\n@param size The number of bytes.\n@param block [out] A buffer in which to return the block pointer.\n@see \\c #SPBlocksSuite::AllocateBlock()"]
1264    pub AllocateBlock: ::std::option::Option<
1265        unsafe extern "C" fn(size: usize, block: *mut *mut ::std::os::raw::c_void) -> SPErr,
1266    >,
1267    #[doc = " Frees a block of memory allocated with \\c #AllocateBlock().\n@param block The block pointer.\n@see \\c #SPBlocksSuite::FreeBlock()"]
1268    pub FreeBlock:
1269        ::std::option::Option<unsafe extern "C" fn(block: *mut ::std::os::raw::c_void) -> SPErr>,
1270    #[doc = " Reallocates a block previously allocated with \\c #AllocateBlock().\nIncreases the size without changing the location, if possible.\n@param block The block pointer.\n@param newSize The new number of bytes.\n@param newblock [out] A buffer in which to return the new block pointer.\n@see \\c #SPBlocksSuite::ReallocateBlock()"]
1271    pub ReallocateBlock: ::std::option::Option<
1272        unsafe extern "C" fn(
1273            block: *mut ::std::os::raw::c_void,
1274            newSize: usize,
1275            newblock: *mut *mut ::std::os::raw::c_void,
1276        ) -> SPErr,
1277    >,
1278    #[doc = " A function pointer for unloaded suites. This is a protective measure\nagainst other plug-ins that may mistakenly use the suite after they have\nreleased it.\n\nA plug-in that exports a suite should unload the suite's procedure pointers\nwhen it is unloaded, and restore them when the plug-in is reloaded.\n\\li On unload, replace the suite's procedure pointers\nwith the address of this function.\n\\li On reload, restore the suite's procedure\npointers with the updated addresses of their functions.\n\nFor example:\n@code\nSPErr UnloadSuite( MySuite *mySuite, SPAccessMessage *message ) {\nmySuite->functionA = (void *) message->d.basic->Undefined;\nmySuite->functionB = (void *) message->d.basic->Undefined;\n}\n\nSPErr ReloadSuite( MySuite *mySuite, SPAccessMessage *message ) {\nmySuite->functionA = functionA;\nmySuite->functionB = functionB;\n}\n@endcode"]
1279    pub Undefined: ::std::option::Option<unsafe extern "C" fn() -> SPErr>,
1280}
1281#[repr(C, packed)]
1282#[derive(Debug, Copy, Clone)]
1283pub struct prTimebaseRec {
1284    pub duration: csSDK_int32,
1285    pub scale: csSDK_int32,
1286    pub sampleSize: csSDK_int32,
1287}
1288#[repr(C, packed)]
1289#[derive(Debug, Copy, Clone)]
1290pub struct prFileSpec {
1291    pub volID: ::std::os::raw::c_int,
1292    pub parID: ::std::os::raw::c_int,
1293    pub name: [::std::os::raw::c_char; 256usize],
1294}
1295pub type plugGetSerialNumberFunc =
1296    ::std::option::Option<unsafe extern "C" fn(result: *mut ::std::os::raw::c_char)>;
1297pub type plugGetFileTimebaseFunc = ::std::option::Option<
1298    unsafe extern "C" fn(
1299        filespec: *mut prFileSpec,
1300        audioOnly: csSDK_int32,
1301        result: *mut prTimebaseRec,
1302    ) -> csSDK_int32,
1303>;
1304pub type plugGetFileVideoFunc = ::std::option::Option<
1305    unsafe extern "C" fn(
1306        filespec: *mut prFileSpec,
1307        frame: csSDK_int32,
1308        thePort: PPixHand,
1309        bounds: *mut prRect,
1310        flags: csSDK_int32,
1311    ) -> csSDK_int32,
1312>;
1313pub type plugGetFileAudioSecondFunc = ::std::option::Option<
1314    unsafe extern "C" fn(
1315        filespec: *mut prFileSpec,
1316        num: csSDK_int32,
1317        buffer: *mut ::std::os::raw::c_char,
1318        flags: ::std::os::raw::c_short,
1319        audrate: csSDK_int32,
1320        speed: ::std::os::raw::c_short,
1321    ) -> csSDK_int32,
1322>;
1323pub type plugGetFileVideoBoundsFunc = ::std::option::Option<
1324    unsafe extern "C" fn(filespec: *mut prFileSpec, bounds: *mut prRect) -> csSDK_int32,
1325>;
1326pub type plugGetSPBasicSuiteFunc =
1327    ::std::option::Option<unsafe extern "C" fn() -> *mut SPBasicSuite>;
1328pub type plugGetFileExtStringFunc = ::std::option::Option<
1329    unsafe extern "C" fn(
1330        fileTypes: csSDK_uint32,
1331        inBuffer: *mut ::std::os::raw::c_char,
1332        inBufferSize: csSDK_uint32,
1333    ) -> csSDK_int32,
1334>;
1335#[repr(C, packed)]
1336#[derive(Debug, Copy, Clone)]
1337pub struct PlugUtilFuncs {
1338    pub unused1: *mut ::std::os::raw::c_void,
1339    pub getSerialNumber: plugGetSerialNumberFunc,
1340    pub getFileTimebase: plugGetFileTimebaseFunc,
1341    pub getFileVideo: plugGetFileVideoFunc,
1342    pub getFileAudioSecond: plugGetFileAudioSecondFunc,
1343    pub unused2: *mut ::std::os::raw::c_void,
1344    pub getFileVideoBounds: plugGetFileVideoBoundsFunc,
1345    pub getSPBasicSuite: plugGetSPBasicSuiteFunc,
1346    pub getFileExtString: plugGetFileExtStringFunc,
1347}
1348pub type PlugUtilFuncsPtr = *mut PlugUtilFuncs;
1349#[repr(C, packed)]
1350#[derive(Debug, Copy, Clone)]
1351pub struct piSuites {
1352    pub piInterfaceVer: ::std::os::raw::c_int,
1353    pub memFuncs: PlugMemoryFuncsPtr,
1354    pub windFuncs: PlugWindowFuncsPtr,
1355    pub ppixFuncs: PlugppixFuncsPtr,
1356    pub utilFuncs: PlugUtilFuncsPtr,
1357    pub timelineFuncs: PlugTimelineFuncsPtr,
1358}
1359pub type piSuitesPtr = *mut piSuites;
1360pub type Print2TapeProcPtr = ::std::option::Option<
1361    unsafe extern "C" fn(
1362        deviceHand: PrMemoryHandle,
1363        selector: ::std::os::raw::c_long,
1364    ) -> csSDK_int32,
1365>;
1366pub const PrDeviceSelector_dsInit: PrDeviceSelector = 0;
1367pub const PrDeviceSelector_dsSetup: PrDeviceSelector = 1;
1368pub const PrDeviceSelector_dsExecute: PrDeviceSelector = 2;
1369pub const PrDeviceSelector_dsCleanup: PrDeviceSelector = 3;
1370pub const PrDeviceSelector_dsRestart: PrDeviceSelector = 4;
1371pub const PrDeviceSelector_dsQuiet: PrDeviceSelector = 5;
1372pub const PrDeviceSelector_dsHasOptions: PrDeviceSelector = 6;
1373pub const PrDeviceSelector_dsSelector_Size: PrDeviceSelector = 4294967295;
1374#[doc = "\tSelectors"]
1375pub type PrDeviceSelector = ::std::os::raw::c_uint;
1376pub const PrTransitionReturnValue_esNoErr: PrTransitionReturnValue = 0;
1377pub const PrTransitionReturnValue_esBadFormatIndex: PrTransitionReturnValue = 1;
1378pub const PrTransitionReturnValue_esDoNotCacheOnLoad: PrTransitionReturnValue = 2;
1379pub const PrTransitionReturnValue_esUnsupported: PrTransitionReturnValue = -100;
1380pub const PrTransitionReturnValue_esErr_Size: PrTransitionReturnValue = 4294967295;
1381#[doc = "\tError Definitions"]
1382pub type PrTransitionReturnValue = ::std::os::raw::c_long;
1383pub const PrFilterReturnValue_fsNoErr: PrFilterReturnValue = 0;
1384pub const PrFilterReturnValue_fsBadFormatIndex: PrFilterReturnValue = 1;
1385pub const PrFilterReturnValue_fsDoNotCacheOnLoad: PrFilterReturnValue = 2;
1386pub const PrFilterReturnValue_fsHasNoSetupDialog: PrFilterReturnValue = 3;
1387pub const PrFilterReturnValue_fsUnsupported: PrFilterReturnValue = -100;
1388pub const PrFilterReturnValue_fsErr_Size: PrFilterReturnValue = 4294967295;
1389pub type PrFilterReturnValue = ::std::os::raw::c_long;
1390pub const PrTransitionSelector_esExecute: PrTransitionSelector = 0;
1391pub const PrTransitionSelector_esSetup: PrTransitionSelector = 1;
1392pub const PrTransitionSelector_esUnused1: PrTransitionSelector = 2;
1393pub const PrTransitionSelector_esUnused2: PrTransitionSelector = 3;
1394pub const PrTransitionSelector_esUnused3: PrTransitionSelector = 4;
1395pub const PrTransitionSelector_esDisposeData: PrTransitionSelector = 5;
1396pub const PrTransitionSelector_esCanHandlePAR: PrTransitionSelector = 6;
1397pub const PrTransitionSelector_esGetPixelFormatsSupported: PrTransitionSelector = 7;
1398pub const PrTransitionSelector_esCacheOnLoad: PrTransitionSelector = 8;
1399pub const PrTransitionSelector_esSelector_Size: PrTransitionSelector = 4294967295;
1400#[doc = "\tSelectors"]
1401pub type PrTransitionSelector = ::std::os::raw::c_uint;
1402pub const PrFilterSelector_fsExecute: PrFilterSelector = 0;
1403pub const PrFilterSelector_fsSetup: PrFilterSelector = 1;
1404pub const PrFilterSelector_fsAbout: PrFilterSelector = 2;
1405pub const PrFilterSelector_fsDisposeData: PrFilterSelector = 3;
1406pub const PrFilterSelector_fsCanHandlePAR: PrFilterSelector = 4;
1407pub const PrFilterSelector_fsInitSpec: PrFilterSelector = 5;
1408pub const PrFilterSelector_fsGetPixelFormatsSupported: PrFilterSelector = 6;
1409pub const PrFilterSelector_fsCacheOnLoad: PrFilterSelector = 7;
1410pub const PrFilterSelector_fsHasSetupDialog: PrFilterSelector = 8;
1411pub const PrFilterSelector_fsSelector_Size: PrFilterSelector = 4294967295;
1412pub type PrFilterSelector = ::std::os::raw::c_uint;
1413#[doc = "\tError overview:\n\n\tPlugins are allowed to send errors, warning, and information to 3 different\n\tcallbacks which will be handled by Premiere. For each, the plugin passes a string\n\tand a context ID from their plugin type (for instance, a CompilerID from the a\n\tcompiler). Then the plugin returns an error code defined in the appropriate\n\tplugin type header which will tell Premiere that there is an error with description\n\twaiting. Currently, Premiere concatenates all strings that it receives of each type\n\tuntil they can be displayed."]
1414#[repr(C, packed)]
1415#[derive(Debug, Copy, Clone)]
1416pub struct PrSDKErrorSuite1 {
1417    #[doc = "\tSet the plugin error string for Premiere.\n\n\t@param\tinErrorString\tA NULL terminated string for the error. Premiere will\n\t\t\t\t\t\t\tcopy this string, so the caller can delete it after\n\t\t\t\t\t\t\tthe function returns.\n\t@param\tinContextID\t\tThe context ID passed to the plugin."]
1418    pub SetErrorString: ::std::option::Option<
1419        unsafe extern "C" fn(
1420            inErrorString: *const ::std::os::raw::c_char,
1421            inContextID: csSDK_uint32,
1422        ) -> prSuiteError,
1423    >,
1424    #[doc = "\tSet the plugin error string for Premiere.\n\n\t@param\tinWarningString\tA NULL terminated string for the warning. Premiere will\n\t\t\t\t\t\t\tcopy this string, so the caller can delete it after\n\t\t\t\t\t\t\tthe function returns.\n\t@param\tinContextID\t\tThe context ID passed to the plugin."]
1425    pub SetWarningString: ::std::option::Option<
1426        unsafe extern "C" fn(
1427            inWarningString: *const ::std::os::raw::c_char,
1428            inContextID: csSDK_uint32,
1429        ) -> prSuiteError,
1430    >,
1431    #[doc = "\tSet the plugin error string for Premiere.\n\n\t@param\tinInfoString\tA NULL terminated string for the info. Premiere will\n\t\t\t\t\t\t\tcopy this string, so the caller can delete it after\n\t\t\t\t\t\t\tthe function returns.\n\t@param\tinContextID\t\tThe context ID passed to the plugin."]
1432    pub SetInfoString: ::std::option::Option<
1433        unsafe extern "C" fn(
1434            inInfoString: *const ::std::os::raw::c_char,
1435            inContextID: csSDK_uint32,
1436        ) -> prSuiteError,
1437    >,
1438}
1439#[doc = "\tVersion 2 changes:\n\tThe suite has been streamlined for this release.  In addition, the\n\tstring has been broken into two parts, a title and a description.  This\n\tseparation works well with the new Events Window."]
1440#[repr(C, packed)]
1441#[derive(Debug, Copy, Clone)]
1442pub struct PrSDKErrorSuite2 {
1443    pub SetEventString: ::std::option::Option<
1444        unsafe extern "C" fn(
1445            eventType: csSDK_uint32,
1446            eventTitle: *const ::std::os::raw::c_char,
1447            eventDescription: *const ::std::os::raw::c_char,
1448        ) -> prSuiteError,
1449    >,
1450}
1451pub const PrSDKErrorSuite2_kEventTypeInformational: PrSDKErrorSuite2__bindgen_ty_1 = 1;
1452pub const PrSDKErrorSuite2_kEventTypeWarning: PrSDKErrorSuite2__bindgen_ty_1 = 2;
1453pub const PrSDKErrorSuite2_kEventTypeError: PrSDKErrorSuite2__bindgen_ty_1 = 3;
1454pub type PrSDKErrorSuite2__bindgen_ty_1 = ::std::os::raw::c_uint;
1455#[doc = "\tVersion 3 changes:\n\tAdd UTF16 string support"]
1456#[repr(C, packed)]
1457#[derive(Debug, Copy, Clone)]
1458pub struct PrSDKErrorSuite3 {
1459    pub SetEventStringUnicode: ::std::option::Option<
1460        unsafe extern "C" fn(
1461            eventType: csSDK_uint32,
1462            eventTitle: *mut prUTF16Char,
1463            eventDescription: *mut prUTF16Char,
1464        ) -> prSuiteError,
1465    >,
1466}
1467pub const PrSDKErrorSuite3_kEventTypeInformational: PrSDKErrorSuite3__bindgen_ty_1 = 1;
1468pub const PrSDKErrorSuite3_kEventTypeWarning: PrSDKErrorSuite3__bindgen_ty_1 = 2;
1469pub const PrSDKErrorSuite3_kEventTypeError: PrSDKErrorSuite3__bindgen_ty_1 = 3;
1470pub const PrSDKErrorSuite3_kEventType_Mask: PrSDKErrorSuite3__bindgen_ty_1 = 255;
1471pub const PrSDKErrorSuite3_kEventFlag_DecodeError: PrSDKErrorSuite3__bindgen_ty_1 = 256;
1472pub const PrSDKErrorSuite3_kEventFlag_SubstitutedFrame: PrSDKErrorSuite3__bindgen_ty_1 = 512;
1473pub const PrSDKErrorSuite3_kEventFlag_ImportOperation: PrSDKErrorSuite3__bindgen_ty_1 = 1024;
1474pub type PrSDKErrorSuite3__bindgen_ty_1 = ::std::os::raw::c_uint;
1475#[doc = "\tVersion 3 changes:\n\tAdd UTF16 string support"]
1476pub type PrSDKErrorSuite = PrSDKErrorSuite3;
1477pub const PrGPUDeviceFramework_PrGPUDeviceFramework_CUDA: PrGPUDeviceFramework = 0;
1478pub const PrGPUDeviceFramework_PrGPUDeviceFramework_OpenCL: PrGPUDeviceFramework = 1;
1479pub const PrGPUDeviceFramework_PrGPUDeviceFramework_Metal: PrGPUDeviceFramework = 2;
1480pub type PrGPUDeviceFramework = ::std::os::raw::c_uint;
1481#[repr(C, packed)]
1482#[derive(Debug, Copy, Clone)]
1483pub struct PrGPUDeviceInfo {
1484    pub outDeviceFramework: PrGPUDeviceFramework,
1485    pub outMeetsMinimumRequirementsForAcceleration: prBool,
1486    pub outPlatformHandle: *mut ::std::os::raw::c_void,
1487    pub outDeviceHandle: *mut ::std::os::raw::c_void,
1488    pub outContextHandle: *mut ::std::os::raw::c_void,
1489    pub outCommandQueueHandle: *mut ::std::os::raw::c_void,
1490    pub outOffscreenOpenGLContextHandle: *mut ::std::os::raw::c_void,
1491    pub outOffscreenOpenGLDeviceHandle: *mut ::std::os::raw::c_void,
1492}
1493#[doc = "\tAccess CUDA or OpenCL devices.\n\t\tAll CUDA usage is through the CUDA device API."]
1494#[repr(C, packed)]
1495#[derive(Debug, Copy, Clone)]
1496pub struct PrSDKGPUDeviceSuite {
1497    #[doc = "\tDevice enumeration"]
1498    pub GetDeviceCount: ::std::option::Option<
1499        unsafe extern "C" fn(outDeviceCount: *mut csSDK_uint32) -> prSuiteError,
1500    >,
1501    pub GetDeviceInfo: ::std::option::Option<
1502        unsafe extern "C" fn(
1503            inSuiteVersion: csSDK_uint32,
1504            inDeviceIndex: csSDK_uint32,
1505            outDeviceInfo: *mut PrGPUDeviceInfo,
1506        ) -> prSuiteError,
1507    >,
1508    #[doc = "\tAcquire/release exclusive access to inDeviceIndex. All calls below this point generally require access be held.\n\tFor full GPU plugins (those that use a separate entry point for GPU rendering) exclusive access is always held.\n\tThese calls do not need to be made in that case.\n\t\tFor CUDA calls cuCtxPushCurrent/cuCtxPopCurrent on the current thread to manage the devices context."]
1509    pub AcquireExclusiveDeviceAccess:
1510        ::std::option::Option<unsafe extern "C" fn(inDeviceIndex: csSDK_uint32) -> prSuiteError>,
1511    pub ReleaseExclusiveDeviceAccess:
1512        ::std::option::Option<unsafe extern "C" fn(inDeviceIndex: csSDK_uint32) -> prSuiteError>,
1513    #[doc = "\tAll device memory must be allocated through this suite.\n\t\tPurge should be called only in emergency situations when working with GPU memory\n\t\t\tthat cannot be allocated through this suite (eg OpenGL memory).\n\t\tReturned pointer value represents memory allocated through cuMemAlloc or clCreateBuffer."]
1514    pub AllocateDeviceMemory: ::std::option::Option<
1515        unsafe extern "C" fn(
1516            inDeviceIndex: csSDK_uint32,
1517            inSizeInBytes: usize,
1518            outMemory: *mut *mut ::std::os::raw::c_void,
1519        ) -> prSuiteError,
1520    >,
1521    pub FreeDeviceMemory: ::std::option::Option<
1522        unsafe extern "C" fn(
1523            inDeviceIndex: csSDK_uint32,
1524            inMemory: *mut ::std::os::raw::c_void,
1525        ) -> prSuiteError,
1526    >,
1527    pub PurgeDeviceMemory: ::std::option::Option<
1528        unsafe extern "C" fn(
1529            inDeviceIndex: csSDK_uint32,
1530            inRequestedBytesToPurge: usize,
1531            outBytesPurged: *mut usize,
1532        ) -> prSuiteError,
1533    >,
1534    #[doc = "\tAll host (pinned) memory must be allocated through this suite.\n\t\tPurge should be called only in emergency situations when working with GPU memory\n\t\t\tthat cannot be allocated through this suite (eg OpenGL memory).\n\t\tReturned pointer value represents memory allocated through cuMemHostAlloc or malloc."]
1535    pub AllocateHostMemory: ::std::option::Option<
1536        unsafe extern "C" fn(
1537            inDeviceIndex: csSDK_uint32,
1538            inSizeInBytes: usize,
1539            outMemory: *mut *mut ::std::os::raw::c_void,
1540        ) -> prSuiteError,
1541    >,
1542    pub FreeHostMemory: ::std::option::Option<
1543        unsafe extern "C" fn(
1544            inDeviceIndex: csSDK_uint32,
1545            inMemory: *mut ::std::os::raw::c_void,
1546        ) -> prSuiteError,
1547    >,
1548    pub PurgeHostMemory: ::std::option::Option<
1549        unsafe extern "C" fn(
1550            inDeviceIndex: csSDK_uint32,
1551            inRequestedBytesToPurge: usize,
1552            outBytesPurged: *mut usize,
1553        ) -> prSuiteError,
1554    >,
1555    #[doc = "\tInformation on a GPU ppix. The following ppix functions may also be used:\n\t\t-PrSDKPPixSuite::Dispose\n\t\t-PrSDKPPixSuite::GetBounds\n\t\t-PrSDKPPixSuite::GetRowBytes\n\t\t-PrSDKPPixSuite::GetPixelAspectRatio\n\t\t-PrSDKPPixSuite::GetPixelFormat\n\t\t-PrSDKPPix2Suite::GetFieldOrder"]
1556    pub CreateGPUPPix: ::std::option::Option<
1557        unsafe extern "C" fn(
1558            inDeviceIndex: csSDK_uint32,
1559            inPixelFormat: PrPixelFormat,
1560            inWidth: ::std::os::raw::c_int,
1561            inHeight: ::std::os::raw::c_int,
1562            inPARNumerator: ::std::os::raw::c_int,
1563            inPARDenominator: ::std::os::raw::c_int,
1564            inFieldType: prFieldType,
1565            outPPixHand: *mut PPixHand,
1566        ) -> prSuiteError,
1567    >,
1568    pub GetGPUPPixData: ::std::option::Option<
1569        unsafe extern "C" fn(
1570            inPPixHand: PPixHand,
1571            outData: *mut *mut ::std::os::raw::c_void,
1572        ) -> prSuiteError,
1573    >,
1574    pub GetGPUPPixDeviceIndex: ::std::option::Option<
1575        unsafe extern "C" fn(
1576            inPPixHand: PPixHand,
1577            outDeviceIndex: *mut csSDK_uint32,
1578        ) -> prSuiteError,
1579    >,
1580    pub GetGPUPPixSize: ::std::option::Option<
1581        unsafe extern "C" fn(inPPixHand: PPixHand, outSize: *mut usize) -> prSuiteError,
1582    >,
1583}
1584pub const PrAudioSampleType_kPrAudioSampleType_8BitInt: PrAudioSampleType = 1;
1585pub const PrAudioSampleType_kPrAudioSampleType_8BitTwosInt: PrAudioSampleType = 2;
1586pub const PrAudioSampleType_kPrAudioSampleType_16BitInt: PrAudioSampleType = 3;
1587pub const PrAudioSampleType_kPrAudioSampleType_24BitInt: PrAudioSampleType = 4;
1588pub const PrAudioSampleType_kPrAudioSampleType_32BitInt: PrAudioSampleType = 5;
1589pub const PrAudioSampleType_kPrAudioSampleType_32BitFloat: PrAudioSampleType = 6;
1590pub const PrAudioSampleType_kPrAudioSampleType_64BitFloat: PrAudioSampleType = 7;
1591pub const PrAudioSampleType_kPrAudioSampleType_16BitIntBigEndian: PrAudioSampleType = 8;
1592pub const PrAudioSampleType_kPrAudioSampleType_24BitIntBigEndian: PrAudioSampleType = 9;
1593pub const PrAudioSampleType_kPrAudioSampleType_32BitIntBigEndian: PrAudioSampleType = 10;
1594pub const PrAudioSampleType_kPrAudioSampleType_32BitFloatBigEndian: PrAudioSampleType = 11;
1595pub const PrAudioSampleType_kPrAudioSampleType_Compressed: PrAudioSampleType = 12;
1596pub const PrAudioSampleType_kPrAudioSampleType_Packed: PrAudioSampleType = 13;
1597pub const PrAudioSampleType_kPrAudioSampleType_Other: PrAudioSampleType = 14;
1598pub const PrAudioSampleType_kPrAudioSampleType_Any: PrAudioSampleType = 15;
1599pub const PrAudioSampleType_kPrAudioSampleType_AudioPeakData: PrAudioSampleType = 16;
1600pub const PrAudioSampleType_kPrAudioSampleType_Max: PrAudioSampleType = 4294967295;
1601#[doc = "\tAudio overview:\n\n\tAll audio calls to and from Premiere use arrays of buffers of 32-bit\n\tfloats to pass audio. Therefore all audio is not interleaved by channel.\n\tSo stereo audio looks like this:\n\n\tfloat* audio[2];\n\n\twhere audio[0] is the address of a buffer N samples long and audio[1]\n\tis the address of a second buffer N samples long. audio[0] contains\n\tthe left channel and audio[1] contains the right channel. N is called\n\tthe number of \"sample frames\" in the buffer. N will be the same no matter\n\thow many channels of audio are present in the buffer.\n\n\tBecause we use 32-bit floats for each audio sample, we can represent\n\tvalues above 0 dB during mixing. 0 dB corresponds to +/- 1.0 in the floating\n\tpoint. For symmetry in the int <--> float conversions, it is recommended\n\tyou use the utility functions below.  For example if you want to convert\n\ta single float to a 16-bit signed int, use ConvertAndInterleaveTo16BitInteger()\n\twith 1 channel and one sample frame.\n\n\tSince floats are the only audio format ever passed, there is no variable\n\tsample type or bit depth. However, when going back and forth to storage\n\tformats, it is necessary to give the user an indication of the sample\n\ttype in the storage. For this reason, the SDK includes AudioSampleType\n\twhich defines a variety of possible formats. Note that these are ONLY\n\tUSED FOR USER INTERFACE!\n\n\tIn general, any audio sample rate is supported. For this reason, we use\n\ta floating point number to represent audio sample rates. However, not all\n\trates will evenly divide into our time ticks per second, so for more\n\tunusual rates there will be quantization errors possible using PrTime.\n\n\tThe host currently supports 4 audio channels types: mono, stereo, 5.1 and 32 channels.\n\tStereo channel ordering is {kPrAudioChannelLabel_FrontLeft, kPrAudioChannelLabel_FrontRight}.\n\t5.1 channels ordering is\n\t\t{kPrAudioChannelLabel_FrontLeft,\t\t// L\n\t\t kPrAudioChannelLabel_FrontRight,\t\t// R\n\t\t kPrAudioChannelLabel_FrontCenter,\t\t// C\n\t\t kPrAudioChannelLabel_LowFrequency,\t\t// LFE\n\t\t kPrAudioChannelLabel_BackLeft,\t\t\t// Ls\n\t\t kPrAudioChannelLabel_BackRight}.\t\t// Rs\n\n\t32 channel ordering is all {kPrAudioChannelLabel_Discrete}"]
1602pub type PrAudioSampleType = ::std::os::raw::c_uint;
1603pub const PrAudioChannelType_kPrAudioChannelType_Mono: PrAudioChannelType = 1;
1604pub const PrAudioChannelType_kPrAudioChannelType_Stereo: PrAudioChannelType = 2;
1605pub const PrAudioChannelType_kPrAudioChannelType_51: PrAudioChannelType = 3;
1606pub const PrAudioChannelType_kPrAudioChannelType_MaxChannel: PrAudioChannelType = 4;
1607pub const PrAudioChannelType_kPrAudioChannelType_Max: PrAudioChannelType = 4294967295;
1608pub type PrAudioChannelType = ::std::os::raw::c_uint;
1609pub const PrAudioDataType_kPrAudioDataType_Float32: PrAudioDataType = 1;
1610pub const PrAudioDataType_kPrAudioDataType_Int32: PrAudioDataType = 2;
1611pub const PrAudioDataType_kPrAudioDataType_PeakAudio: PrAudioDataType = 3;
1612#[doc = "\tThis is not the sample type of the underlying audio - this is the sample type\n\tthat is returned in the calls that support variable audio types. If the type is not\n\texplicitly called out as variable, then it is Float32."]
1613pub type PrAudioDataType = ::std::os::raw::c_uint;
1614pub type PrAudioSample = prInt64;
1615pub const PrAudioChannelLabel_kPrAudioChannelLabel_Discrete: PrAudioChannelLabel = 0;
1616pub const PrAudioChannelLabel_kPrAudioChannelLabel_FrontLeft: PrAudioChannelLabel = 100;
1617pub const PrAudioChannelLabel_kPrAudioChannelLabel_FrontRight: PrAudioChannelLabel = 101;
1618pub const PrAudioChannelLabel_kPrAudioChannelLabel_FrontCenter: PrAudioChannelLabel = 102;
1619pub const PrAudioChannelLabel_kPrAudioChannelLabel_LowFrequency: PrAudioChannelLabel = 103;
1620pub const PrAudioChannelLabel_kPrAudioChannelLabel_BackLeft: PrAudioChannelLabel = 104;
1621pub const PrAudioChannelLabel_kPrAudioChannelLabel_BackRight: PrAudioChannelLabel = 105;
1622pub const PrAudioChannelLabel_kPrAudioChannelLabel_BackCenter: PrAudioChannelLabel = 106;
1623pub const PrAudioChannelLabel_kPrAudioChannelLabel_FrontLeftOfCenter: PrAudioChannelLabel = 107;
1624pub const PrAudioChannelLabel_kPrAudioChannelLabel_FrontRightOfCenter: PrAudioChannelLabel = 108;
1625pub const PrAudioChannelLabel_kPrAudioChannelLabel_SideLeft: PrAudioChannelLabel = 109;
1626pub const PrAudioChannelLabel_kPrAudioChannelLabel_SideRight: PrAudioChannelLabel = 110;
1627pub const PrAudioChannelLabel_kPrAudioChannelLabel_TopCenter: PrAudioChannelLabel = 111;
1628pub const PrAudioChannelLabel_kPrAudioChannelLabel_TopFrontLeft: PrAudioChannelLabel = 112;
1629pub const PrAudioChannelLabel_kPrAudioChannelLabel_TopFrontRight: PrAudioChannelLabel = 113;
1630pub const PrAudioChannelLabel_kPrAudioChannelLabel_TopFrontCenter: PrAudioChannelLabel = 114;
1631pub const PrAudioChannelLabel_kPrAudioChannelLabel_TopBackLeft: PrAudioChannelLabel = 115;
1632pub const PrAudioChannelLabel_kPrAudioChannelLabel_TopBackRight: PrAudioChannelLabel = 116;
1633pub const PrAudioChannelLabel_kPrAudioChannelLabel_TopBackCenter: PrAudioChannelLabel = 117;
1634pub const PrAudioChannelLabel_kPrAudioChannelLabel_FrontLeftWide: PrAudioChannelLabel = 118;
1635pub const PrAudioChannelLabel_kPrAudioChannelLabel_FrontRightWide: PrAudioChannelLabel = 119;
1636pub const PrAudioChannelLabel_kPrAudioChannelLabel_LeftHeight: PrAudioChannelLabel = 127;
1637pub const PrAudioChannelLabel_kPrAudioChannelLabel_RightHeight: PrAudioChannelLabel = 128;
1638pub const PrAudioChannelLabel_kPrAudioChannelLabel_RearSurroundLeft: PrAudioChannelLabel = 129;
1639pub const PrAudioChannelLabel_kPrAudioChannelLabel_RearSurroundRight: PrAudioChannelLabel = 130;
1640pub const PrAudioChannelLabel_kPrAudioChannelLabel_LFE2: PrAudioChannelLabel = 131;
1641pub const PrAudioChannelLabel_kPrAudioChannelLabel_LeftTotal: PrAudioChannelLabel = 132;
1642pub const PrAudioChannelLabel_kPrAudioChannelLabel_RightTotal: PrAudioChannelLabel = 133;
1643pub const PrAudioChannelLabel_kPrAudioChannelLabel_Ambisonic_W: PrAudioChannelLabel = 134;
1644pub const PrAudioChannelLabel_kPrAudioChannelLabel_Ambisonic_X: PrAudioChannelLabel = 135;
1645pub const PrAudioChannelLabel_kPrAudioChannelLabel_Ambisonic_Y: PrAudioChannelLabel = 136;
1646pub const PrAudioChannelLabel_kPrAudioChannelLabel_Ambisonic_Z: PrAudioChannelLabel = 137;
1647pub const PrAudioChannelLabel_kPrAudioChannelLabel_BottomFrontLeft: PrAudioChannelLabel = 138;
1648pub const PrAudioChannelLabel_kPrAudioChannelLabel_BottomFrontCenter: PrAudioChannelLabel = 139;
1649pub const PrAudioChannelLabel_kPrAudioChannelLabel_BottomFrontRight: PrAudioChannelLabel = 140;
1650pub const PrAudioChannelLabel_kPrAudioChannelLabel_ProximityLeft: PrAudioChannelLabel = 141;
1651pub const PrAudioChannelLabel_kPrAudioChannelLabel_ProximityRight: PrAudioChannelLabel = 142;
1652pub type PrAudioChannelLabel = ::std::os::raw::c_uint;
1653#[repr(C)]
1654#[derive(Debug, Copy, Clone)]
1655pub struct PrSDKAudioSuite {
1656    #[doc = "\tThese are a variety of audio buffer conversion routines to convert an array\n\tof floating point buffers into interleaved audio of a specific type.\n\n\t@param\tinSource\t\tAn array of float buffers holding audio.\n\t@param\tinDestination\tA single buffer to hold the converted, interleaved audio.\n\t\t\t\t\t\t\tinDestination must be at least inNumChannels * sizeof(destinationFormat) *\n\t\t\t\t\t\t\tinNumSampleFrames bytes long.\n\t@param\tinNumChannels\tThe number of channels in inSource.\n\t@param\tinNumSampleFrames\tThe number of samples in each buffer in inSource."]
1657    pub ConvertAndInterleaveTo8BitInteger: ::std::option::Option<
1658        unsafe extern "C" fn(
1659            inSource: *mut *mut f32,
1660            inDestination: *mut ::std::os::raw::c_char,
1661            inNumChannels: ::std::os::raw::c_uint,
1662            inNumSampleFrames: ::std::os::raw::c_uint,
1663        ) -> prSuiteError,
1664    >,
1665    pub ConvertAndInterleaveTo16BitInteger: ::std::option::Option<
1666        unsafe extern "C" fn(
1667            inSource: *mut *mut f32,
1668            inDestination: *mut ::std::os::raw::c_short,
1669            inNumChannels: ::std::os::raw::c_uint,
1670            inNumSampleFrames: ::std::os::raw::c_uint,
1671        ) -> prSuiteError,
1672    >,
1673    pub ConvertAndInterleaveTo24BitInteger: ::std::option::Option<
1674        unsafe extern "C" fn(
1675            inSource: *mut *mut f32,
1676            inDestination: *mut ::std::os::raw::c_char,
1677            inNumChannels: ::std::os::raw::c_uint,
1678            inNumSampleFrames: ::std::os::raw::c_uint,
1679        ) -> prSuiteError,
1680    >,
1681    pub ConvertAndInterleaveTo32BitInteger: ::std::option::Option<
1682        unsafe extern "C" fn(
1683            inSource: *mut *mut f32,
1684            inDestination: *mut csSDK_int32,
1685            inNumChannels: ::std::os::raw::c_uint,
1686            inNumSampleFrames: ::std::os::raw::c_uint,
1687        ) -> prSuiteError,
1688    >,
1689    #[doc = "\tThese routines provide the reverse of the routines above, converting and\n\tuninterleaving a single buffer in a specified type.\n\n\t@param\tinSource\t\tA single buffer holding the orignal, interleaved audio.\n\t@param\tinDestination\tAn array of float buffers holding audio. There must be inNumChannels\n\t\t\t\t\t\t\tbuffers allocated in the array, and each must be at least\n\t\t\t\t\t\t\tinNumSampleFrames * sizeof(float) bytes long.\n\t@param\tinNumChannels\tThe number of channels in inSource.\n\t@param\tinNumSampleFrames\tThe number of samples in each buffer in inSource."]
1690    pub UninterleaveAndConvertFrom8BitInteger: ::std::option::Option<
1691        unsafe extern "C" fn(
1692            inSource: *mut ::std::os::raw::c_char,
1693            inDestination: *mut *mut f32,
1694            inNumChannels: ::std::os::raw::c_uint,
1695            inNumSampleFrames: ::std::os::raw::c_uint,
1696        ) -> prSuiteError,
1697    >,
1698    pub UninterleaveAndConvertFrom16BitInteger: ::std::option::Option<
1699        unsafe extern "C" fn(
1700            inSource: *mut ::std::os::raw::c_short,
1701            inDestination: *mut *mut f32,
1702            inNumChannels: ::std::os::raw::c_uint,
1703            inNumSampleFrames: ::std::os::raw::c_uint,
1704        ) -> prSuiteError,
1705    >,
1706    pub UninterleaveAndConvertFrom24BitInteger: ::std::option::Option<
1707        unsafe extern "C" fn(
1708            inSource: *mut ::std::os::raw::c_char,
1709            inDestination: *mut *mut f32,
1710            inNumChannels: ::std::os::raw::c_uint,
1711            inNumSampleFrames: ::std::os::raw::c_uint,
1712        ) -> prSuiteError,
1713    >,
1714    pub UninterleaveAndConvertFrom32BitInteger: ::std::option::Option<
1715        unsafe extern "C" fn(
1716            inSource: *mut csSDK_int32,
1717            inDestination: *mut *mut f32,
1718            inNumChannels: ::std::os::raw::c_uint,
1719            inNumSampleFrames: ::std::os::raw::c_uint,
1720        ) -> prSuiteError,
1721    >,
1722}
1723pub const PrActivationEvent_PrActivationEvent_Unspecified: PrActivationEvent = 0;
1724pub const PrActivationEvent_PrActivationEvent_RecorderActivated: PrActivationEvent = 1;
1725pub const PrActivationEvent_PrActivationEvent_PlayerActivated: PrActivationEvent = 2;
1726pub const PrActivationEvent_PrActivationEvent_ApplicationLostFocus: PrActivationEvent = 3;
1727pub const PrActivationEvent_PrActivationEvent_ForceSize: PrActivationEvent = 4294967295;
1728#[doc = "\tPrActivationEvent - Describes the event that caused activation/deactivation to occur"]
1729pub type PrActivationEvent = ::std::os::raw::c_uint;
1730pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_Undefined:
1731    PrRenderCaptionStreamFormat = 0;
1732pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_Open:
1733    PrRenderCaptionStreamFormat = 1;
1734pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_OP_42:
1735    PrRenderCaptionStreamFormat = 10;
1736pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_OP_47:
1737    PrRenderCaptionStreamFormat = 11;
1738pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_608_CC1:
1739    PrRenderCaptionStreamFormat = 20;
1740pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_608_CC2:
1741    PrRenderCaptionStreamFormat = 21;
1742pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_608_CC3:
1743    PrRenderCaptionStreamFormat = 22;
1744pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_608_CC4:
1745    PrRenderCaptionStreamFormat = 23;
1746pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_608_Text1:
1747    PrRenderCaptionStreamFormat = 24;
1748pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_608_Text2:
1749    PrRenderCaptionStreamFormat = 25;
1750pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_608_Text3:
1751    PrRenderCaptionStreamFormat = 26;
1752pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_608_Text4:
1753    PrRenderCaptionStreamFormat = 27;
1754pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_608_XDS:
1755    PrRenderCaptionStreamFormat = 28;
1756pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_708_Service1:
1757    PrRenderCaptionStreamFormat = 40;
1758pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_708_Service2:
1759    PrRenderCaptionStreamFormat = 41;
1760pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_708_Service3:
1761    PrRenderCaptionStreamFormat = 42;
1762pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_708_Service4:
1763    PrRenderCaptionStreamFormat = 43;
1764pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_708_Service5:
1765    PrRenderCaptionStreamFormat = 44;
1766pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_708_Service6:
1767    PrRenderCaptionStreamFormat = 45;
1768pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_Teletext_Level1:
1769    PrRenderCaptionStreamFormat = 50;
1770pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_Teletext_Level2:
1771    PrRenderCaptionStreamFormat = 51;
1772pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_Open_Subtitling:
1773    PrRenderCaptionStreamFormat = 52;
1774#[doc = "\tDefines the Caption Stream format to render"]
1775pub type PrRenderCaptionStreamFormat = ::std::os::raw::c_uint;
1776pub type PlayModuleDeviceID = csSDK_int32;
1777pub const kPrDeviceControlResult_Success: prSuiteError = 0;
1778pub const kPrDeviceControlResult_GeneralError: prSuiteError = -1;
1779pub const kPrDeviceControlResult_IllegalCallSequence: prSuiteError = -2;
1780#[doc = "\tPlaymod Device Control overview:\n\n\tThis suite is provided so that play modules can control a hardware\n\tdevice during \"Export To Tape.\" The necessary DeviceControlID will only\n\tbe passed down when a transmit is requested. The player must then call\n\tall of the methods in this suite, in the order in which they are\n\tlisted."]
1781#[repr(C, packed)]
1782#[derive(Debug, Copy, Clone)]
1783pub struct PrSDKPlayModuleDeviceControlSuite {
1784    #[doc = "\tTell the device to seek to the appropriate location.\n\n\t@return\t\t\t\t\tkPrDeviceControlResult_Success or kPrDeviceControlResult_IllegalCallSequence."]
1785    pub Seek:
1786        ::std::option::Option<unsafe extern "C" fn(inDeviceID: PlayModuleDeviceID) -> prSuiteError>,
1787    #[doc = "\tTell the device to prepare to record.\n\n\t@return\t\t\t\t\tkPrDeviceControlResult_Success or kPrDeviceControlResult_IllegalCallSequence."]
1788    pub Arm:
1789        ::std::option::Option<unsafe extern "C" fn(inDeviceID: PlayModuleDeviceID) -> prSuiteError>,
1790    #[doc = "\tTell the device to start recording.\n\n\t@return\t\t\t\t\tkPrDeviceControlResult_Success or kPrDeviceControlResult_IllegalCallSequence."]
1791    pub Record:
1792        ::std::option::Option<unsafe extern "C" fn(inDeviceID: PlayModuleDeviceID) -> prSuiteError>,
1793    #[doc = "\tTell the device to stop recording. This also cleans up the device control\n\tobject, so it is not available after this call.\n\n\t@return\t\t\t\t\tkPrDeviceControlResult_Success or kPrDeviceControlResult_IllegalCallSequence."]
1794    pub Stop:
1795        ::std::option::Option<unsafe extern "C" fn(inDeviceID: PlayModuleDeviceID) -> prSuiteError>,
1796}
1797pub const PrIVProjectionType_kPrIVProjectionType_None: PrIVProjectionType = 0;
1798pub const PrIVProjectionType_kPrIVProjectionType_Equirectangular: PrIVProjectionType = 1;
1799#[doc = "\tDefines how the VR image is projected into a 2D frame."]
1800pub type PrIVProjectionType = ::std::os::raw::c_uint;
1801pub const PrIVFrameLayout_kPrIVFrameLayout_Monoscopic: PrIVFrameLayout = 0;
1802pub const PrIVFrameLayout_kPrIVFrameLayout_StereoscopicOverUnder: PrIVFrameLayout = 1;
1803pub const PrIVFrameLayout_kPrIVFrameLayout_StereoscopicSideBySide: PrIVFrameLayout = 2;
1804#[doc = "\tDefines if the VR image contains a stereoscopic pair, and if so, what type of pair."]
1805pub type PrIVFrameLayout = ::std::os::raw::c_uint;
1806pub const PrIVStereoscopicEye_kPrIVStereoscopicEye_Left: PrIVStereoscopicEye = 0;
1807pub const PrIVStereoscopicEye_kPrIVStereoscopicEye_Right: PrIVStereoscopicEye = 1;
1808pub const PrIVStereoscopicEye_kPrIVStereoscopicEye_Anaglyph: PrIVStereoscopicEye = 2;
1809#[doc = "\tDefines which eye to view when given a VR image with a stereoscopic pair."]
1810pub type PrIVStereoscopicEye = ::std::os::raw::c_uint;
1811pub const PrIVAmbisonicsMonitoringType_kPrIVAmbisonicsMonitoringType_Off:
1812    PrIVAmbisonicsMonitoringType = 0;
1813pub const PrIVAmbisonicsMonitoringType_kPrIVAmbisonicsMonitoringType_Binaural:
1814    PrIVAmbisonicsMonitoringType = 1;
1815#[doc = "\tDefines how ambisonics audio is to be monitored."]
1816pub type PrIVAmbisonicsMonitoringType = ::std::os::raw::c_uint;
1817pub type kPrIVViewRange = csSDK_int32;
1818pub type kPrIVViewAngle = f32;
1819#[doc = " Field of View represents the degrees of view of what the application displays when the desktop's VR View is enabled.\n Captured View represents the degrees of view of what the video frame actually contains."]
1820pub const kPrIVMinFieldOfView: kPrIVViewRange = 60;
1821pub const kPrIVMaxFieldOfView: kPrIVViewRange = 180;
1822#[doc = " These FOV values roughly approximate an average view when compared\n to a HTC Vive or Oculus Rift."]
1823pub const kPrIVDefaultFieldOfHorizontalView: kPrIVViewRange = 108;
1824pub const kPrIVDefaultFieldOfVerticalView: kPrIVViewRange = 108;
1825pub const kPrIVMinCapturedHorizontalView: kPrIVViewRange = 60;
1826pub const kPrIVMaxCapturedHorizontalView: kPrIVViewRange = 360;
1827pub const kPrIVDefaultCapturedHorizontalView: kPrIVViewRange = 360;
1828pub const kPrIVMinCapturedVerticalView: kPrIVViewRange = 60;
1829pub const kPrIVMaxCapturedVerticalView: kPrIVViewRange = 180;
1830pub const kPrIVDefaultCapturedVerticalView: kPrIVViewRange = 180;
1831#[doc = "\tID for a head-related impulse response when monitoring with PrIVAmbisonicsMonitoring_Binaural."]
1832pub const kPrIVAmbisonicsHRIRLength: usize = 256;
1833pub type PrIVAmbisonicsHRIR = [prUTF8Char; 256usize];
1834pub const PrPlaymodReturnValue_playmod_ErrNone: PrPlaymodReturnValue = 0;
1835pub const PrPlaymodReturnValue_playmod_ErrBadFile: PrPlaymodReturnValue = 1;
1836pub const PrPlaymodReturnValue_playmod_ErrDriver: PrPlaymodReturnValue = 2;
1837pub const PrPlaymodReturnValue_playmod_ErrNotPreferred: PrPlaymodReturnValue = 3;
1838pub const PrPlaymodReturnValue_playmod_BadFormatIndex: PrPlaymodReturnValue = 4;
1839pub const PrPlaymodReturnValue_playmod_DeclinePlay: PrPlaymodReturnValue = 5;
1840pub const PrPlaymodReturnValue_playmod_ListWrongType: PrPlaymodReturnValue = 6;
1841pub const PrPlaymodReturnValue_playmod_ListBadSpeed: PrPlaymodReturnValue = 7;
1842pub const PrPlaymodReturnValue_playmod_CantAddSegment: PrPlaymodReturnValue = 8;
1843pub const PrPlaymodReturnValue_playmod_Unsupported: PrPlaymodReturnValue = 9;
1844pub const PrPlaymodReturnValue_playmod_AudioOverload: PrPlaymodReturnValue = 10;
1845pub const PrPlaymodReturnValue_playmod_OutOfRange: PrPlaymodReturnValue = 11;
1846pub const PrPlaymodReturnValue_playmod_CannotRender: PrPlaymodReturnValue = 12;
1847pub const PrPlaymodReturnValue_playmod_RebuildCutlist: PrPlaymodReturnValue = 13;
1848pub const PrPlaymodReturnValue_playmod_CannotShiftLayer: PrPlaymodReturnValue = 14;
1849pub const PrPlaymodReturnValue_playmod_UnsupportedPlaybackSpeed: PrPlaymodReturnValue = 16;
1850pub const PrPlaymodReturnValue_playmod_BroadcastPrefs: PrPlaymodReturnValue = 17;
1851pub const PrPlaymodReturnValue_playmod_CannotRecord: PrPlaymodReturnValue = 18;
1852pub const PrPlaymodReturnValue_playmod_RenderAndPutFrame: PrPlaymodReturnValue = 19;
1853pub const PrPlaymodReturnValue_pmIsCacheable: PrPlaymodReturnValue = 400;
1854pub const PrPlaymodReturnValue_playmod_ErrorForceSize: PrPlaymodReturnValue = 4294967295;
1855#[doc = "\tError Definitions"]
1856pub type PrPlaymodReturnValue = ::std::os::raw::c_uint;
1857#[doc = "\tType Definitions"]
1858pub type PrPlayID = csSDK_int32;
1859pub const pmFieldDisplay_pmFieldDisplay_ShowFirstField: pmFieldDisplay = 0;
1860pub const pmFieldDisplay_pmFieldDisplay_ShowSecondField: pmFieldDisplay = 1;
1861pub const pmFieldDisplay_pmFieldDisplay_ShowBothFields: pmFieldDisplay = 2;
1862pub const pmFieldDisplay_pmFieldDisplay_ForceSize: pmFieldDisplay = 4294967295;
1863pub type pmFieldDisplay = ::std::os::raw::c_uint;
1864pub const PrPlaymodSelector_playmod_Startup: PrPlaymodSelector = 1;
1865pub const PrPlaymodSelector_playmod_Shutdown: PrPlaymodSelector = 2;
1866pub const PrPlaymodSelector_playmod_Open: PrPlaymodSelector = 3;
1867pub const PrPlaymodSelector_playmod_GetInfo: PrPlaymodSelector = 4;
1868pub const PrPlaymodSelector_playmod_SetDisp: PrPlaymodSelector = 5;
1869pub const PrPlaymodSelector_playmod_Update: PrPlaymodSelector = 6;
1870pub const PrPlaymodSelector_playmod_Stop: PrPlaymodSelector = 10;
1871pub const PrPlaymodSelector_playmod_PlayIdle: PrPlaymodSelector = 11;
1872pub const PrPlaymodSelector_playmod_Close: PrPlaymodSelector = 12;
1873pub const PrPlaymodSelector_playmod_GetIndFormat: PrPlaymodSelector = 14;
1874pub const PrPlaymodSelector_playmod_NewList: PrPlaymodSelector = 21;
1875pub const PrPlaymodSelector_playmod_GetFilePrefs: PrPlaymodSelector = 34;
1876pub const PrPlaymodSelector_playmod_UpdateMarkers: PrPlaymodSelector = 45;
1877pub const PrPlaymodSelector_playmod_SetFilePrefs: PrPlaymodSelector = 46;
1878pub const PrPlaymodSelector_playmod_PutFrame: PrPlaymodSelector = 49;
1879pub const PrPlaymodSelector_playmod_SetQuality: PrPlaymodSelector = 53;
1880pub const PrPlaymodSelector_playmod_SetPlaybackSpeed: PrPlaymodSelector = 54;
1881pub const PrPlaymodSelector_playmod_Play: PrPlaymodSelector = 55;
1882pub const PrPlaymodSelector_playmod_SetPos: PrPlaymodSelector = 56;
1883pub const PrPlaymodSelector_playmod_GetPos: PrPlaymodSelector = 57;
1884pub const PrPlaymodSelector_playmod_Step: PrPlaymodSelector = 59;
1885pub const PrPlaymodSelector_playmod_Preroll: PrPlaymodSelector = 60;
1886pub const PrPlaymodSelector_playmod_AdornSafeAreas: PrPlaymodSelector = 61;
1887pub const PrPlaymodSelector_playmod_Activate: PrPlaymodSelector = 62;
1888pub const PrPlaymodSelector_playmod_EnterScrub: PrPlaymodSelector = 63;
1889pub const PrPlaymodSelector_playmod_LeaveScrub: PrPlaymodSelector = 64;
1890pub const PrPlaymodSelector_playmod_SetView: PrPlaymodSelector = 65;
1891pub const PrPlaymodSelector_playmod_SetDisplayMode: PrPlaymodSelector = 66;
1892pub const PrPlaymodSelector_playmod_PutFrameRequest: PrPlaymodSelector = 67;
1893pub const PrPlaymodSelector_playmod_SetVideoDisplayType: PrPlaymodSelector = 69;
1894pub const PrPlaymodSelector_playmod_DisplayMoving: PrPlaymodSelector = 70;
1895pub const PrPlaymodSelector_playmod_DisplayChanged: PrPlaymodSelector = 71;
1896pub const PrPlaymodSelector_playmod_GetAudioInfo: PrPlaymodSelector = 74;
1897pub const PrPlaymodSelector_playmod_GetAudioChannelInfo: PrPlaymodSelector = 75;
1898pub const PrPlaymodSelector_playmod_PushPlayerSettings: PrPlaymodSelector = 76;
1899pub const PrPlaymodSelector_playmod_EnableDynamicPlayback: PrPlaymodSelector = 77;
1900pub const PrPlaymodSelector_playmod_AllowSetPositionDuringPlayback: PrPlaymodSelector = 78;
1901pub const PrPlaymodSelector_playmod_VideoSequenceHasChanged: PrPlaymodSelector = 79;
1902pub const PrPlaymodSelector_playmod_GetRTStatusForTime: PrPlaymodSelector = 80;
1903pub const PrPlaymodSelector_playmod_SetUseFractionalResolution: PrPlaymodSelector = 81;
1904pub const PrPlaymodSelector_playmod_SetFractionalResolution: PrPlaymodSelector = 82;
1905pub const PrPlaymodSelector_playmod_PutTemporaryTimeline: PrPlaymodSelector = 83;
1906pub const PrPlaymodSelector_playmod_SetDisplayStateProperties: PrPlaymodSelector = 84;
1907pub const PrPlaymodSelector_playmod_AudioOutputMappingUpdate: PrPlaymodSelector = 85;
1908pub const PrPlaymodSelector_playmod_SetDest: PrPlaymodSelector = 86;
1909pub const PrPlaymodSelector_playmod_SetBackgroundColor: PrPlaymodSelector = 87;
1910pub const PrPlaymodSelector_playmod_GetVRSupported: PrPlaymodSelector = 88;
1911pub const PrPlaymodSelector_playmod_SetVRConfiguration: PrPlaymodSelector = 89;
1912pub const PrPlaymodSelector_playmod_GetVRConfiguration: PrPlaymodSelector = 90;
1913pub const PrPlaymodSelector_playmod_SetVREnabled: PrPlaymodSelector = 91;
1914pub const PrPlaymodSelector_playmod_GetVREnabled: PrPlaymodSelector = 92;
1915pub const PrPlaymodSelector_playmod_SetVRView: PrPlaymodSelector = 93;
1916pub const PrPlaymodSelector_playmod_GetVRView: PrPlaymodSelector = 94;
1917pub const PrPlaymodSelector_playmod_CalculateVRDisplayDimensions: PrPlaymodSelector = 95;
1918pub const PrPlaymodSelector_playmod_SetDisplayStateProperties2: PrPlaymodSelector = 96;
1919pub const PrPlaymodSelector_playmod_SelectorsForceSize: PrPlaymodSelector = 4294967295;
1920#[doc = "\tSelectors"]
1921pub type PrPlaymodSelector = ::std::os::raw::c_uint;
1922#[doc = "\tInformation returned from a plugin"]
1923#[repr(C, packed)]
1924#[derive(Debug, Copy, Clone)]
1925pub struct PrGPUFilterInfo {
1926    pub outInterfaceVersion: csSDK_uint32,
1927    pub outMatchName: PrSDKString,
1928}
1929#[doc = "\tA filter instance represents an effect applied to a track item with a fixed set of parameters.\n\tChanged parameters will create a new instance."]
1930#[repr(C, packed)]
1931#[derive(Debug, Copy, Clone)]
1932pub struct PrGPUFilterInstance {
1933    pub piSuites: piSuitesPtr,
1934    pub inDeviceIndex: csSDK_uint32,
1935    pub inTimelineID: PrTimelineID,
1936    pub inNodeID: csSDK_int32,
1937    pub ioPrivatePluginData: *mut ::std::os::raw::c_void,
1938    pub outIsRealtime: prBool,
1939}
1940#[doc = "\tInformation about a frame render"]
1941#[repr(C, packed)]
1942#[derive(Debug, Copy, Clone)]
1943pub struct PrGPUFilterRenderParams {
1944    pub inClipTime: PrTime,
1945    pub inSequenceTime: PrTime,
1946    pub inQuality: PrRenderQuality,
1947    pub inDownsampleFactorX: f32,
1948    pub inDownsampleFactorY: f32,
1949    pub inRenderWidth: csSDK_uint32,
1950    pub inRenderHeight: csSDK_uint32,
1951    pub inRenderPARNum: csSDK_uint32,
1952    pub inRenderPARDen: csSDK_uint32,
1953    pub inRenderFieldType: prFieldType,
1954    pub inRenderTicksPerFrame: PrTime,
1955    pub inRenderField: pmFieldDisplay,
1956}
1957pub const PrGPUFilterFrameDependencyType_PrGPUDependency_InputFrame:
1958    PrGPUFilterFrameDependencyType = 1;
1959pub const PrGPUFilterFrameDependencyType_PrGPUDependency_Precompute:
1960    PrGPUFilterFrameDependencyType = 2;
1961pub const PrGPUFilterFrameDependencyType_PrGPUDependency_FieldSeparation:
1962    PrGPUFilterFrameDependencyType = 4;
1963pub const PrGPUFilterFrameDependencyType_PrGPUDependency_TransitionInputFrame:
1964    PrGPUFilterFrameDependencyType = 8;
1965#[doc = "\tSpecify dependencies to satisfy a render"]
1966pub type PrGPUFilterFrameDependencyType = ::std::os::raw::c_uint;
1967#[repr(C, packed)]
1968#[derive(Debug, Copy, Clone)]
1969pub struct PrGPUFilterFrameDependency {
1970    pub outDependencyType: PrGPUFilterFrameDependencyType,
1971    pub outTrackID: csSDK_int32,
1972    pub outSequenceTime: PrTime,
1973    pub outPrecomputePixelFormat: PrPixelFormat,
1974    pub outPrecomputeFrameWidth: csSDK_uint32,
1975    pub outPrecomputeFrameHeight: csSDK_uint32,
1976    pub outPrecomputeFramePARNumerator: csSDK_uint32,
1977    pub outPrecomputeFramePARDenominator: csSDK_uint32,
1978    pub outPrecomputeFrameFieldType: prFieldType,
1979    pub outPrecomputeCustomDataSize: csSDK_size_t,
1980    pub outNeedsFieldSeparation: prBool,
1981    pub outReadIncomingTransition: prBool,
1982}
1983#[doc = "\tGPU Filter callbacks."]
1984#[repr(C, packed)]
1985#[derive(Debug, Copy, Clone)]
1986pub struct PrGPUFilter {
1987    #[doc = "\tCreates a GPU filter instance representing an effect or transition on a\n\ttrack item. Returning an error from CreateInstance will cause this node\n\tto be rendered in software for the current set of parameters. Separate\n\tinstances may be called concurrently."]
1988    pub CreateInstance: ::std::option::Option<
1989        unsafe extern "C" fn(ioInstanceData: *mut PrGPUFilterInstance) -> prSuiteError,
1990    >,
1991    pub DisposeInstance: ::std::option::Option<
1992        unsafe extern "C" fn(ioInstanceData: *mut PrGPUFilterInstance) -> prSuiteError,
1993    >,
1994    #[doc = "\tReturn dependency information about a render, or nothing if\n\tonly the current frame is required."]
1995    pub GetFrameDependencies: ::std::option::Option<
1996        unsafe extern "C" fn(
1997            inInstanceData: *mut PrGPUFilterInstance,
1998            inRenderParams: *const PrGPUFilterRenderParams,
1999            ioQueryIndex: *mut csSDK_int32,
2000            outFrameDependencies: *mut PrGPUFilterFrameDependency,
2001        ) -> prSuiteError,
2002    >,
2003    #[doc = "\tPrecompute a result into preallocated uninitialized host (pinned) memory.\n\tWill only be called if PrGPUDependency_Precompute was returned from GetFrameDependencies.\n\tPrecomputation may be called ahead of render time. Results will be\n\tuploaded to the GPU by the host. If outPrecomputePixelFormat is not custom,\n\tframes will be converted to the GPU pixel format."]
2004    pub Precompute: ::std::option::Option<
2005        unsafe extern "C" fn(
2006            inInstanceData: *mut PrGPUFilterInstance,
2007            inRenderParams: *const PrGPUFilterRenderParams,
2008            inIndex: csSDK_int32,
2009            inFrame: PPixHand,
2010        ) -> prSuiteError,
2011    >,
2012    #[doc = "\tRender into an allocated outFrame allocated with PrSDKGPUDeviceSuite or operate\n\tin place. Result must be in the same pixel format as the input. For effects, frame 0\n\twill always be the frame at the current time, other input frames will be in the same order as\n\treturned from GetFrameDependencies. For transitions frame 0 will be the incoming frame and\n\tframe 1 the outgoing frame. Transitions may not have other frame dependencies."]
2013    pub Render: ::std::option::Option<
2014        unsafe extern "C" fn(
2015            inInstanceData: *mut PrGPUFilterInstance,
2016            inRenderParams: *const PrGPUFilterRenderParams,
2017            inFrames: *const PPixHand,
2018            inFrameCount: csSDK_size_t,
2019            outFrame: *mut PPixHand,
2020        ) -> prSuiteError,
2021    >,
2022}
2023pub type PrGPUFilterEntry = ::std::option::Option<
2024    unsafe extern "C" fn(
2025        inHostInterfaceVersion: csSDK_uint32,
2026        ioIndex: *mut csSDK_int32,
2027        inStartup: prBool,
2028        piSuites: piSuitesPtr,
2029        outFilter: *mut PrGPUFilter,
2030        outFilterInfo: *mut PrGPUFilterInfo,
2031    ) -> prSuiteError,
2032>;
2033#[doc = "\tAccess to common GPU image processing algorithms"]
2034#[repr(C, packed)]
2035#[derive(Copy, Clone)]
2036pub struct PrSDKGPUImageProcessingSuite {
2037    #[doc = "\tConvert between formats on the GPU\n\t\tOne of inSrcPixelFormat or inDestPixelFormat must be a host format,\n\tthe other must be either PrPixelFormat_GPU_BGRA_4444_16f or PrPixelFormat_GPU_BGRA_4444_32f"]
2038    pub PixelFormatConvert: ::std::option::Option<
2039        unsafe extern "C" fn(
2040            inDeviceIndex: csSDK_uint32,
2041            inSrc: *const ::std::os::raw::c_void,
2042            inSrcRowBytes: csSDK_int32,
2043            inSrcPixelFormat: PrPixelFormat,
2044            inDest: *mut ::std::os::raw::c_void,
2045            inDestRowBytes: csSDK_int32,
2046            inDestPixelFormat: PrPixelFormat,
2047            inWidth: csSDK_uint32,
2048            inHeight: csSDK_uint32,
2049            inQuality: PrRenderQuality,
2050        ) -> prSuiteError,
2051    >,
2052    #[doc = "\tScale a frame on the GPU\n\t\tinPixelFormat must be PrPixelFormat_GPU_BGRA_4444_16f or PrPixelFormat_GPU_BGRA_4444_32f"]
2053    pub Scale: ::std::option::Option<
2054        unsafe extern "C" fn(
2055            inDeviceIndex: csSDK_uint32,
2056            inSrc: *const ::std::os::raw::c_void,
2057            inSrcRowBytes: csSDK_int32,
2058            inSrcWidth: csSDK_uint32,
2059            inSrcHeight: csSDK_uint32,
2060            inDest: *mut ::std::os::raw::c_void,
2061            inDestRowBytes: csSDK_int32,
2062            inDestWidth: csSDK_uint32,
2063            inDestHeight: csSDK_uint32,
2064            inPixelFormat: PrPixelFormat,
2065            inScaleX: f32,
2066            inScaleY: f32,
2067            inQuality: PrRenderQuality,
2068        ) -> prSuiteError,
2069    >,
2070    #[doc = "\tGaussian blur on the GPU\n\t\tinPixelFormat must be PrPixelFormat_GPU_BGRA_4444_16f or PrPixelFormat_GPU_BGRA_4444_32f"]
2071    pub GaussianBlur: ::std::option::Option<
2072        unsafe extern "C" fn(
2073            inDeviceIndex: csSDK_uint32,
2074            inSrc: *const ::std::os::raw::c_void,
2075            inSrcRowBytes: csSDK_int32,
2076            inSrcWidth: csSDK_uint32,
2077            inSrcHeight: csSDK_uint32,
2078            inDest: *mut ::std::os::raw::c_void,
2079            inDestRowBytes: csSDK_int32,
2080            inDestWidth: csSDK_uint32,
2081            inDestHeight: csSDK_uint32,
2082            inPixelFormat: PrPixelFormat,
2083            inSigmaX: f32,
2084            inSigmaY: f32,
2085            inRepeatEdgePixels: prBool,
2086            inBlurHorizontally: prBool,
2087            inBlurVertically: prBool,
2088            inQuality: PrRenderQuality,
2089        ) -> prSuiteError,
2090    >,
2091}
2092#[repr(C, packed)]
2093#[derive(Debug, Copy, Clone)]
2094pub struct PrSDKMemoryManagerSuiteV1 {
2095    #[doc = "\tSet the memory reserve size in bytes for the plugin with the specified ID.\n\n\t@param\tinPluginID\t\t\tThe ID of the plugin.\n\t@param\tinSize\t\t\t\tThe size in bytes to reserve."]
2096    pub ReserveMemory: ::std::option::Option<
2097        unsafe extern "C" fn(inPluginID: csSDK_uint32, inSize: csSDK_uint32) -> prSuiteError,
2098    >,
2099}
2100#[repr(C, packed)]
2101#[derive(Debug, Copy, Clone)]
2102pub struct PrSDKMemoryManagerSuiteV2 {
2103    #[doc = "\tSet the memory reserve size in bytes for the plugin with the specified ID.\n\n\t@param\tinPluginID\t\t\tThe ID of the plugin.\n\t@param\tinSize\t\t\t\tThe size in bytes to reserve."]
2104    pub ReserveMemory: ::std::option::Option<
2105        unsafe extern "C" fn(inPluginID: csSDK_uint32, inSize: csSDK_uint32) -> prSuiteError,
2106    >,
2107    pub NewPtrClear:
2108        ::std::option::Option<unsafe extern "C" fn(byteCount: csSDK_uint32) -> PrMemoryPtr>,
2109    pub NewPtr: ::std::option::Option<unsafe extern "C" fn(byteCount: csSDK_uint32) -> PrMemoryPtr>,
2110    pub GetPtrSize: ::std::option::Option<unsafe extern "C" fn(p: PrMemoryPtr) -> csSDK_uint32>,
2111    pub SetPtrSize:
2112        ::std::option::Option<unsafe extern "C" fn(p: *mut PrMemoryPtr, newSize: csSDK_uint32)>,
2113    pub NewHandle:
2114        ::std::option::Option<unsafe extern "C" fn(byteCount: csSDK_uint32) -> PrMemoryHandle>,
2115    pub NewHandleClear:
2116        ::std::option::Option<unsafe extern "C" fn(byteCount: csSDK_uint32) -> PrMemoryHandle>,
2117    pub PrDisposePtr: ::std::option::Option<unsafe extern "C" fn(p: PrMemoryPtr)>,
2118    pub DisposeHandle: ::std::option::Option<unsafe extern "C" fn(h: PrMemoryHandle)>,
2119    pub SetHandleSize: ::std::option::Option<
2120        unsafe extern "C" fn(h: PrMemoryHandle, newSize: csSDK_uint32) -> ::std::os::raw::c_short,
2121    >,
2122    pub GetHandleSize:
2123        ::std::option::Option<unsafe extern "C" fn(h: PrMemoryHandle) -> csSDK_uint32>,
2124    pub HUnlock: ::std::option::Option<unsafe extern "C" fn(h: PrMemoryHandle)>,
2125    pub HLock: ::std::option::Option<unsafe extern "C" fn(h: PrMemoryHandle)>,
2126}
2127pub type PrSDKMemoryManagerSuite_PurgeMemoryFunction = ::std::option::Option<
2128    unsafe extern "C" fn(inPurgeMemoryData: *mut ::std::os::raw::c_void, inMemoryID: csSDK_uint32),
2129>;
2130#[repr(C, packed)]
2131#[derive(Debug, Copy, Clone)]
2132pub struct PrSDKMemoryManagerSuite {
2133    #[doc = "\tSet the memory reserve size in bytes for the plugin with the specified ID.\n\n\t@param\tinPluginID\t\t\tThe ID of the plugin.\n\t@param\tinSize\t\t\t\tThe size in bytes to reserve."]
2134    pub ReserveMemory: ::std::option::Option<
2135        unsafe extern "C" fn(inPluginID: csSDK_uint32, inSize: csSDK_uint32) -> prSuiteError,
2136    >,
2137    #[doc = "\tGet the current size of the media cache in this process.\n\n\t@param\toutMemoryManagerSize\tThe size of the memory manager in bytes."]
2138    pub GetMemoryManagerSize: ::std::option::Option<
2139        unsafe extern "C" fn(outMemoryManagerSize: *mut csSDK_uint64) -> prSuiteError,
2140    >,
2141    #[doc = "\tAdd a block of memory to management. This block should not be something entered\n\tin any of the suite cache, and it must be purgeable. The purge function you pass in\n\tmay be called on any thread.\n\n\t@param\tinSize\t\t\t\tThe size in bytes of the item in question.\n\t@param\tinPurgeFunction\t\tThe function pointer that will be called to purge the item.\n\t@param\tinPurgeMemoryData\tThe data object passed back in the purge callback.\n\t@param\toutID\t\t\t\tThe id the host will use for this item."]
2142    pub AddBlock: ::std::option::Option<
2143        unsafe extern "C" fn(
2144            inSize: csSDK_size_t,
2145            inPurgeFunction: PrSDKMemoryManagerSuite_PurgeMemoryFunction,
2146            inPurgeMemoryData: *mut ::std::os::raw::c_void,
2147            outID: *mut csSDK_uint32,
2148        ) -> prSuiteError,
2149    >,
2150    #[doc = "\tEach time you use a block of memory, you should call this function. This pushes its\n\tpriority up in the cache, making a purge less likely.\n\n\t@param\tinID\t\t\t\tThe id of the block to touch."]
2151    pub TouchBlock: ::std::option::Option<unsafe extern "C" fn(inID: csSDK_uint32) -> prSuiteError>,
2152    #[doc = "\tYou can manually expire an item from the cache with this function. Note that the purge function\n\ton the item will not be called.\n\n\t@param\tinID\t\t\t\tThe id of the block to touch."]
2153    pub RemoveBlock:
2154        ::std::option::Option<unsafe extern "C" fn(inID: csSDK_uint32) -> prSuiteError>,
2155    pub NewPtrClear:
2156        ::std::option::Option<unsafe extern "C" fn(byteCount: csSDK_uint32) -> PrMemoryPtr>,
2157    pub NewPtr: ::std::option::Option<unsafe extern "C" fn(byteCount: csSDK_uint32) -> PrMemoryPtr>,
2158    pub GetPtrSize: ::std::option::Option<unsafe extern "C" fn(p: PrMemoryPtr) -> csSDK_uint32>,
2159    pub SetPtrSize:
2160        ::std::option::Option<unsafe extern "C" fn(p: *mut PrMemoryPtr, newSize: csSDK_uint32)>,
2161    pub NewHandle:
2162        ::std::option::Option<unsafe extern "C" fn(byteCount: csSDK_uint32) -> PrMemoryHandle>,
2163    pub NewHandleClear:
2164        ::std::option::Option<unsafe extern "C" fn(byteCount: csSDK_uint32) -> PrMemoryHandle>,
2165    pub PrDisposePtr: ::std::option::Option<unsafe extern "C" fn(p: PrMemoryPtr)>,
2166    pub DisposeHandle: ::std::option::Option<unsafe extern "C" fn(h: PrMemoryHandle)>,
2167    pub SetHandleSize: ::std::option::Option<
2168        unsafe extern "C" fn(h: PrMemoryHandle, newSize: csSDK_uint32) -> ::std::os::raw::c_short,
2169    >,
2170    pub GetHandleSize:
2171        ::std::option::Option<unsafe extern "C" fn(h: PrMemoryHandle) -> csSDK_uint32>,
2172    pub AdjustReservedMemorySize: ::std::option::Option<
2173        unsafe extern "C" fn(inPluginID: csSDK_uint32, inSize: csSDK_int64) -> prSuiteError,
2174    >,
2175}
2176#[repr(C, packed)]
2177#[derive(Debug, Copy, Clone)]
2178pub struct PrSDKPixelFormatSuite {
2179    #[doc = "\tRetrieves the minimum i.e. \"black\" value for a give pixel type.\n\n\t[NOTE]\tpixel types like YUY2, YUYV actually contain a group of two pixels to specify a color\n\t\t\tcompletely, so the data size returned in this case will be 4 bytes (rather than 2)\n\n\t@param\t\tpixelFormat\t\t\t\tthe Premiere pixel format whose black level you want\n\t@param\t\tpixelData\t\t\t\ta void pointer to data large enough to hold the pixel value (see note above)\n\n\t@returns\tsuiteError_NoError : successful retreival of black value\n\t@returns\tsuiteError_Fail :"]
2180    pub GetBlackForPixelFormat: ::std::option::Option<
2181        unsafe extern "C" fn(
2182            pixelFormat: PrPixelFormat,
2183            pixelData: *mut ::std::os::raw::c_void,
2184        ) -> prSuiteError,
2185    >,
2186    #[doc = "\tRetrieves the maximum i.e. \"white\" value for a give pixel type.\n\n\t[NOTE]\tpixel types like YUY2, YUYV actually contain a group of two pixels to specify a color\n\t\t\tcompletely, so the data size returned in this case will be 4 bytes (rather than 2)\n\n\t@param\t\tpixelFormat\t\t\t\tthe Premiere pixel format whose white level you want\n\t@param\t\tpixelData\t\t\t\ta void pointer to data large enough to hold the pixel value (see note above)\n\n\t@returns\tsuiteError_NoError : successful retreival of white value\n\t@returns\tsuiteError_Fail :"]
2187    pub GetWhiteForPixelFormat: ::std::option::Option<
2188        unsafe extern "C" fn(
2189            pixelFormat: PrPixelFormat,
2190            pixelData: *mut ::std::os::raw::c_void,
2191        ) -> prSuiteError,
2192    >,
2193    #[doc = "\tConverts an alpha, red, green, blue specification into a pixel value for a give pixel type.\n\n\t[NOTE]\tpixel types like YUY2, YUYV actually contain a group of two pixels to specify a color\n\t\t\tcompletely, so the data size returned in this case will be 4 bytes (rather than 2)\n\n\t@param\t\tpixelFormat\t\t\t\tthe Premiere pixel format whose white level you want\n\t@param\t\talpha\t\t\t\t\talpha value (0.0 - 1.0)\n\t@param\t\tred\t\t\t\t\t\tred value (0.0 - 1.0)\n\t@param\t\tgreen\t\t\t\t\tgreen value (0.0 - 1.0)\n\t@param\t\tblue\t\t\t\t\tblue value (0.0 - 1.0)\n\t@param\t\tpixelData\t\t\t\ta void pointer to data large enough to hold the pixel value (see note above)\n\n\t@returns\tsuiteError_NoError : successful conversion of color value\n\t@returns\tsuiteError_Fail :"]
2194    pub ConvertColorToPixelFormattedData: ::std::option::Option<
2195        unsafe extern "C" fn(
2196            pixelFormat: PrPixelFormat,
2197            alpha: f32,
2198            red: f32,
2199            green: f32,
2200            blue: f32,
2201            pixelData: *mut ::std::os::raw::c_void,
2202        ) -> prSuiteError,
2203    >,
2204}
2205pub const PrPPixBufferAccess_PrPPixBufferAccess_ReadOnly: PrPPixBufferAccess = 0;
2206pub const PrPPixBufferAccess_PrPPixBufferAccess_WriteOnly: PrPPixBufferAccess = 1;
2207pub const PrPPixBufferAccess_PrPPixBufferAccess_ReadWrite: PrPPixBufferAccess = 2;
2208pub const PrPPixBufferAccess_PrPPixBufferAccess_ForceEnumSize: PrPPixBufferAccess = 4294967295;
2209pub type PrPPixBufferAccess = ::std::os::raw::c_uint;
2210#[repr(C, packed)]
2211#[derive(Debug, Copy, Clone)]
2212pub struct PrSDKPPixSuite {
2213    #[doc = "\tThis will free this ppix. The ppix is no longer valid after this function is called.\n\n\t@param\tinPPixHand\t\t\t\tThe ppix handle you want to dispose."]
2214    pub Dispose: ::std::option::Option<unsafe extern "C" fn(inPPixHand: PPixHand) -> prSuiteError>,
2215    #[doc = "\tThis will return a pointer to the pixel buffer.\n\n\t@param\tinPPixHand\t\t\tThe ppix handle you want to operate on.\n\t@param\tinRequestedAccess\tRequested pixel access. Most PPixs do not support write access modes.\n\t@param\toutPixelAddress\t\tThe output pixel buffer address. May be NULL if the requested pixel access is not supported."]
2216    pub GetPixels: ::std::option::Option<
2217        unsafe extern "C" fn(
2218            inPPixHand: PPixHand,
2219            inRequestedAccess: PrPPixBufferAccess,
2220            outPixelAddress: *mut *mut ::std::os::raw::c_char,
2221        ) -> prSuiteError,
2222    >,
2223    #[doc = "\tThis will return the bounding rect.\n\n\t@param\tinPPixHand\t\t\tThe ppix handle you want to operate on.\n\t@param\toutBoundingRect\t\tThe address of a bounding rect to be filled in."]
2224    pub GetBounds: ::std::option::Option<
2225        unsafe extern "C" fn(inPPixHand: PPixHand, inoutBoundingRect: *mut prRect) -> prSuiteError,
2226    >,
2227    #[doc = "\tThis will return the row bytes of the ppix.\n\n\t@param\tinPPixHand\t\t\tThe ppix handle you want to operate on.\n\t@param\toutRowBytes\t\t\tReturns how many bytes must be added to the pixel buffer address to get to the next line.\n\t\t\t\t\t\t\t\tMay be negative."]
2228    pub GetRowBytes: ::std::option::Option<
2229        unsafe extern "C" fn(inPPixHand: PPixHand, outRowBytes: *mut csSDK_int32) -> prSuiteError,
2230    >,
2231    #[doc = "\tThis will return the pixel aspect ratio of this ppix.\n\n\t@param\tinPPixHand\t\t\t\t\t\tThe ppix handle you want to operate on.\n\t@param\toutPixelAspectRatioNumerator\tReturns the numerator of the pixel aspect ratio.\n\t@param\toutPixelAspectRatioDenominator\tReturns the denominator of the pixel aspect ratio."]
2232    pub GetPixelAspectRatio: ::std::option::Option<
2233        unsafe extern "C" fn(
2234            inPPixHand: PPixHand,
2235            outPixelAspectRatioNumerator: *mut csSDK_uint32,
2236            outPixelAspectRatioDenominator: *mut csSDK_uint32,
2237        ) -> prSuiteError,
2238    >,
2239    #[doc = "\tThis will return the pixel format of this ppix.\n\n\t@param\tinPPixHand\t\t\tThe ppix handle you want to operate on.\n\t@param\toutPixelFormat\t\tReturns the pixel format of this ppix."]
2240    pub GetPixelFormat: ::std::option::Option<
2241        unsafe extern "C" fn(
2242            inPPixHand: PPixHand,
2243            outPixelFormat: *mut PrPixelFormat,
2244        ) -> prSuiteError,
2245    >,
2246    #[doc = "\tThis will return the unique key for this ppix.\n\n\t@param\tinPPixHand\t\t\tThe ppix handle you want to operate on.\n\t@param\toutKeyBuffer\t\tReturns the pixel format of this ppix.\n\n\t[TODO] Fill in returned error codes.\n\t@returns Error if the buffer size is too small (call GetUniqueKeySize() to get the correct size).\n\t@returns Error if the key is not available.\n\t@returns Success if the key data was filled in."]
2247    pub GetUniqueKey: ::std::option::Option<
2248        unsafe extern "C" fn(
2249            inPPixHand: PPixHand,
2250            inoutKeyBuffer: *mut ::std::os::raw::c_uchar,
2251            inKeyBufferSize: usize,
2252        ) -> prSuiteError,
2253    >,
2254    #[doc = "\tThis will return the unique key size.\n\tThis will not change for the entire run of the application.\n\n\t@param\toutKeyBufferSize\tReturns the size of the ppix unique key."]
2255    pub GetUniqueKeySize:
2256        ::std::option::Option<unsafe extern "C" fn(outKeyBufferSize: *mut usize) -> prSuiteError>,
2257    #[doc = "\tThis will return the render time for this ppix.\n\n\t@param\tinPPixHand\t\t\t\tThe ppix handle you want to operate on.\n\t@param\toutRenderMilliseconds\tReturns the render time in milliseconds. If the frame was cached, this time will be 0."]
2258    pub GetRenderTime: ::std::option::Option<
2259        unsafe extern "C" fn(
2260            inPPixHand: PPixHand,
2261            outRenderMilliseconds: *mut csSDK_int32,
2262        ) -> prSuiteError,
2263    >,
2264}
2265#[repr(C, packed)]
2266#[derive(Debug, Copy, Clone)]
2267pub struct PrSDKPPix2Suite {
2268    #[doc = "\tThis will return the total size of the ppix in bytes.\n\n\t@param\tinPPixHand\t\t\tThe ppix handle you want to operate on.\n\t@param\toutSize\t\t\t\tThe size of the ppix in bytes."]
2269    pub GetSize: ::std::option::Option<
2270        unsafe extern "C" fn(inPPixHand: PPixHand, outSize: *mut usize) -> prSuiteError,
2271    >,
2272    #[doc = "\t[Added in CS4]\n\tThis will return the planar buffers and rowbytes for a PPixHand\n\tif the contained pixels are in a planar format, such as\n\tPrPixelFormat_YUV_420_MPEG2_FRAME_PICTURE_PLANAR_8u_601\n\tPrPixelFormat_YUV_420_MPEG2_FIELD_PICTURE_PLANAR_8u_601\n\tPrPixelFormat_YUV_420_MPEG2_FRAME_PICTURE_PLANAR_8u_709\n\tPrPixelFormat_YUV_420_MPEG2_FIELD_PICTURE_PLANAR_8u_709\n\n\t@param\tinPPixHand\t\t\tThe ppix handle you want to operate on.\n\t@param\tinRequestedAccess\tWill return an error if the source is read-only and the request is for write or read/write.\n\n\t@param\tout_xxx_PixelAddress\tThe output (Y, U, or V) pixel buffer address. May be NULL if the requested access is not supported.\n\t@param\tout_xxx_RowBytes\t\tReturns how many bytes must be added to the pixel buffer address to get to the next line.\n\t\t\t\t\t\t\t\t\tMay be negative."]
2273    pub GetYUV420PlanarBuffers: ::std::option::Option<
2274        unsafe extern "C" fn(
2275            inPPixHand: PPixHand,
2276            inRequestedAccess: PrPPixBufferAccess,
2277            out_Y_PixelAddress: *mut *mut ::std::os::raw::c_char,
2278            out_Y_RowBytes: *mut csSDK_uint32,
2279            out_U_PixelAddress: *mut *mut ::std::os::raw::c_char,
2280            out_U_RowBytes: *mut csSDK_uint32,
2281            out_V_PixelAddress: *mut *mut ::std::os::raw::c_char,
2282            out_V_RowBytes: *mut csSDK_uint32,
2283        ) -> prSuiteError,
2284    >,
2285    pub GetOrigin: ::std::option::Option<
2286        unsafe extern "C" fn(
2287            inPPixHand: PPixHand,
2288            outOriginX: *mut csSDK_int32,
2289            outOriginY: *mut csSDK_int32,
2290        ) -> prSuiteError,
2291    >,
2292    pub GetFieldOrder: ::std::option::Option<
2293        unsafe extern "C" fn(inPPixHand: PPixHand, outFieldType: *mut prFieldType) -> prSuiteError,
2294    >,
2295}
2296#[doc = "\tThis struct defines a specific frame format that is being requested\n\tfromt the importer. Any member can be 0, which means that any value\n\tis an acceptable match. For instance, the host might ask for a specific\n\twidth and height, but pass 0 as the pixel format, meaning it can accept\n\tany pixel format."]
2297#[repr(C, packed)]
2298#[derive(Debug, Copy, Clone)]
2299pub struct imFrameFormat {
2300    pub inFrameWidth: csSDK_int32,
2301    pub inFrameHeight: csSDK_int32,
2302    pub inPixelFormat: PrPixelFormat,
2303}
2304#[repr(C, packed)]
2305#[derive(Debug, Copy, Clone)]
2306pub struct PrSDKPPixCacheSuite {
2307    #[doc = "\tThis will add the ppix to the frame cache for this importer instance and stream.\n\n\t@param\tinImporterID\t\tThe ID of this importer instance (passed down in imGetInfo8).\n\t@param\tinStreamIndex\t\tThe index of this stream\n\t@param\tinPPixHand\t\t\tThe ppix handle you want to add.\n\t@param\tinFrameNumber\t\tThe frame number of the ppix.\n\t@param\tinPreferences\t\tCurrent importer preferences, can be NULL for no preferences\n\t@param\tinPreferencesLength\tCurrent importer preferences length"]
2308    pub AddFrameToCache: ::std::option::Option<
2309        unsafe extern "C" fn(
2310            inImporterID: csSDK_uint32,
2311            inStreamIndex: csSDK_int32,
2312            inPPixHand: PPixHand,
2313            inFrameNumber: csSDK_int32,
2314            inPreferences: *mut ::std::os::raw::c_void,
2315            inPreferencesLength: csSDK_int32,
2316        ) -> prSuiteError,
2317    >,
2318    #[doc = "\tThis will retrieve a ppix from the frame cache for this importer instance and stream.\n\n\t@param\tinImporterID\t\tThe ID of this importer instance (passed down in imGetInfo8).\n\t@param\tinStreamIndex\t\tThe index of this stream\n\t@param\tinFrameNumber\t\tThe frame number of the ppix requested.\n\t@param\toutPPixHand\t\t\tA pointer to a ppix handle to hold the retrieved frame.\n\t@param\tinPreferences\t\tCurrent importer preferences, can be NULL for no preferences\n\t@param\tinPreferencesLength\tCurrent importer preferences length"]
2319    pub GetFrameFromCache: ::std::option::Option<
2320        unsafe extern "C" fn(
2321            inImporterID: csSDK_uint32,
2322            inStreamIndex: csSDK_int32,
2323            inFrameNumber: csSDK_int32,
2324            inNumFormats: csSDK_int32,
2325            inFormats: *mut imFrameFormat,
2326            outPPixHand: *mut PPixHand,
2327            inPreferences: *mut ::std::os::raw::c_void,
2328            inPreferencesLength: csSDK_int32,
2329        ) -> prSuiteError,
2330    >,
2331    #[doc = "\tThis will add the ppix to the raw cache for this importer instance.\n\n\t@param\tinImporterID\t\tThe ID of this importer instance (passed down in imGetInfo8).\n\t@param\tinPPixHand\t\t\tThe raw ppix handle you want to add.\n\t@param\tinKey\t\t\t\tThe key to use for this raw ppix. If an entry with this key already\n\t\t\t\t\t\t\t\texists, this call will fail."]
2332    pub AddRawPPixToCache: ::std::option::Option<
2333        unsafe extern "C" fn(
2334            inImporterID: csSDK_uint32,
2335            inPPixHand: PPixHand,
2336            inKey: csSDK_int32,
2337        ) -> prSuiteError,
2338    >,
2339    #[doc = "\tThis will retrieve a ppix from the frame cache for this importer instance.\n\n\t@param\tinImporterID\t\tThe ID of this importer instance (passed down in imGetInfo8).\n\t@param\tinKey\t\t\t\tThe key to identify this raw ppix.\n\t@param\toutPPixHand\t\t\tA pointer to a ppix handle to hold the retrieved frame."]
2340    pub GetRawPPixFromCache: ::std::option::Option<
2341        unsafe extern "C" fn(
2342            inImporterID: csSDK_uint32,
2343            inKey: csSDK_int32,
2344            outPPixHand: *mut PPixHand,
2345        ) -> prSuiteError,
2346    >,
2347    #[doc = "\tThis function allows you to cache a PPix using a GUID as an identifier.\n\n\t@param\tinPPixIdentifier\tThe ID of the PPix, used to identify this particular set of pixels.\n\t\t\t\t\t\t\t\tThe GUID can be anything, but must be unique.\n\t@param\tinPPix\t\t\t\tThe Pixels to put in the cache. If a frame with this id is already in the cache,\n\t\t\t\t\t\t\t\tthen this PPix will be ignored. You still have ownership over the PPix.\n\t\t\t\t\t\t\t\tYou may want to get the PPix from the cache after this, in case your frame is redundant."]
2348    pub AddNamedPPixToCache: ::std::option::Option<
2349        unsafe extern "C" fn(inPPixIdentifier: *const prPluginID, inPPix: PPixHand) -> prSuiteError,
2350    >,
2351    #[doc = "\tThis function retrieves a named PPix from the cache.\n\n\t@param\tinPPixIdentifier\tThe ID of the PPix.\n\t@param\toutPPixHand\t\t\tThe PPix, if it's available. If it's not in the cache, this will be NULL.\n\t\t\t\t\t\t\t\tYou are responsible for calling PPixDispose on this PPix, like any other."]
2352    pub GetNamedPPixFromCache: ::std::option::Option<
2353        unsafe extern "C" fn(
2354            inPPixIdentifier: *const prPluginID,
2355            outPPixHand: *mut PPixHand,
2356        ) -> prSuiteError,
2357    >,
2358    #[doc = "\tThis function registers a dependency on a PPix. If a frame with that identifier is in the cache now,\n\tor ends up in the cache soon, then it will not be flushed from the cache while there are outstanding\n\tdependencies. You are responsible for call the Unregister function - if you don't then this is the\n\tsame as a memory leak of a PPix.\n\n\t@param\tinPPixIdentifier\tThe ID of the PPix you want held in the cache."]
2359    pub RegisterDependencyOnNamedPPix: ::std::option::Option<
2360        unsafe extern "C" fn(inPPixIdentifier: *const prPluginID) -> prSuiteError,
2361    >,
2362    #[doc = "\tThis function unregisters a dependency on a named PPix. This must be called for every successful call of\n\tRegisterDependencyOnNamedPPix\n\n\t@param inPPixIdentifier\t\tThe ID of the PPix you no longer need in the cache."]
2363    pub UnregisterDependencyOnNamedPPix: ::std::option::Option<
2364        unsafe extern "C" fn(inPPixIdentifier: *const prPluginID) -> prSuiteError,
2365    >,
2366    #[doc = "  This function attempts to flush a frame from the cache. If the frame has a registered dependency, then the\n  frame will remain available until the dependency count hits zero.\n\n\t@param inPPixIdentifier\t\tThe ID of the PPix you want forcibly removed from the cache."]
2367    pub ExpireNamedPPixFromCache: ::std::option::Option<
2368        unsafe extern "C" fn(inPPixIdentifier: *const prPluginID) -> prSuiteError,
2369    >,
2370    #[doc = "  This function attempts to flush all ppixes from the cache."]
2371    pub ExpireAllPPixesFromCache: ::std::option::Option<unsafe extern "C" fn() -> prSuiteError>,
2372    #[doc = "\tThis will add the ppix to the frame cache for this importer instance and stream.\n\n\t@param\tinImporterID\t\tThe ID of this importer instance (passed down in imGetInfo8).\n\t@param\tinStreamIndex\t\tThe index of this stream\n\t@param\tinPPixHand\t\t\tThe ppix handle you want to add.\n\t@param\tinFrameNumber\t\tThe frame number of the ppix.\n\t@param\tinPreferences\t\tCurrent importer preferences, can be NULL for no preferences\n\t@param\tinPreferencesLength\tCurrent importer preferences length\n\t@param\tinColorProfileName\tThe name of the selected color profile. This is only worth providing if your\n\t\t\t\t\t\t\t\tImporter supports color management, and has more than one possible profile.\n\t\t\t\t\t\t\t\tOtherwise we will default to the single profile provided.\n\t@param\tinColorProfileData\tThis is completely optional. We will use the color profile data provided\n\t\t\t\t\t\t\t\tthrough the imGetIndColorProfile selector. In some future version we will\n\t\t\t\t\t\t\t\tallow Importers to support arbitrary profiles, at which point this param will\n\t\t\t\t\t\t\t\tbe useful."]
2373    pub AddFrameToCacheWithColorProfile: ::std::option::Option<
2374        unsafe extern "C" fn(
2375            inImporterID: csSDK_uint32,
2376            inStreamIndex: csSDK_int32,
2377            inPPixHand: PPixHand,
2378            inFrameNumber: csSDK_int32,
2379            inPreferences: *mut ::std::os::raw::c_void,
2380            inPreferencesLength: csSDK_int32,
2381            inColorProfileName: *mut PrSDKString,
2382            inColorProfileData: *mut ::std::os::raw::c_void,
2383            inColorProfileDataLength: csSDK_int32,
2384        ) -> prSuiteError,
2385    >,
2386    #[doc = "\tThis will retrieve a ppix from the frame cache for this importer instance and stream.\n\n\t@param\tinImporterID\t\tThe ID of this importer instance (passed down in imGetInfo8).\n\t@param\tinStreamIndex\t\tThe index of this stream\n\t@param\tinFrameNumber\t\tThe frame number of the ppix requested.\n\t@param\toutPPixHand\t\t\tA pointer to a ppix handle to hold the retrieved frame.\n\t@param\tinPreferences\t\tCurrent importer preferences, can be NULL for no preferences\n\t@param\tinPreferencesLength\tCurrent importer preferences length\n\t@param\tinColorProfileName\tThe name of the selected color profile. This is only worth providing if your\n\t\t\t\t\t\t\t\tImporter supports color management, and has more than one possible profile.\n\t\t\t\t\t\t\t\tOtherwise we will default to the single profile provided.\n\t@param\tinColorProfileData\tThis is completely optional. We will use the color profile data provided\n\t\t\t\t\t\t\t\tthrough the imGetIndColorProfile selector. In some future version we will\n\t\t\t\t\t\t\t\tallow Importers to support arbitrary profiles, at which point this param will\n\t\t\t\t\t\t\t\tbe useful."]
2387    pub GetFrameFromCacheWithColorProfile: ::std::option::Option<
2388        unsafe extern "C" fn(
2389            inImporterID: csSDK_uint32,
2390            inStreamIndex: csSDK_int32,
2391            inFrameNumber: csSDK_int32,
2392            inNumFormats: csSDK_int32,
2393            inFormats: *mut imFrameFormat,
2394            outPPixHand: *mut PPixHand,
2395            inPreferences: *mut ::std::os::raw::c_void,
2396            inPreferencesLength: csSDK_int32,
2397            inColorProfileName: *mut PrSDKString,
2398            inColorProfileData: *mut ::std::os::raw::c_void,
2399            inColorProfileDataSize: csSDK_int32,
2400        ) -> prSuiteError,
2401    >,
2402    #[doc = "\tThis will add the ppix to the frame cache for this importer instance and stream.\n\n\t@param\tinImporterID\t\tThe ID of this importer instance (passed down in imGetInfo8).\n\t@param\tinStreamIndex\t\tThe index of this stream\n\t@param\tinPPixHand\t\t\tThe ppix handle you want to add.\n\t@param\tinFrameNumber\t\tThe frame number of the ppix.\n\t@param\tinPreferences\t\tCurrent importer preferences, can be NULL for no preferences\n\t@param\tinPreferencesLength\tCurrent importer preferences length\n\t@param\tinColorProfileName\tThe name of the selected color profile. This is only worth providing if your\n\t\t\t\t\t\t\t\tImporter supports color management, and has more than one possible profile.\n\t\t\t\t\t\t\t\tOtherwise we will default to the single profile provided.\n\t@param\tinColorProfileData\tThis is completely optional. We will use the color profile data provided\n\t\t\t\t\t\t\t\tthrough the imGetIndColorProfile selector. In some future version we will\n\t\t\t\t\t\t\t\tallow Importers to support arbitrary profiles, at which point this param will\n\t\t\t\t\t\t\t\tbe useful."]
2403    pub AddFrameToCacheWithColorProfile2: ::std::option::Option<
2404        unsafe extern "C" fn(
2405            inImporterID: csSDK_uint32,
2406            inStreamIndex: csSDK_int32,
2407            inPPixHand: PPixHand,
2408            inFrameNumber: csSDK_int32,
2409            inQuality: PrRenderQuality,
2410            inPreferences: *mut ::std::os::raw::c_void,
2411            inPreferencesLength: csSDK_int32,
2412            inColorProfileName: *mut PrSDKString,
2413            inColorProfileData: *mut ::std::os::raw::c_void,
2414            inColorProfileDataLength: csSDK_int32,
2415        ) -> prSuiteError,
2416    >,
2417    #[doc = "\tThis will retrieve a ppix from the frame cache for this importer instance and stream.\n\n\t@param\tinImporterID\t\tThe ID of this importer instance (passed down in imGetInfo8).\n\t@param\tinStreamIndex\t\tThe index of this stream\n\t@param\tinFrameNumber\t\tThe frame number of the ppix requested.\n\t@param\toutPPixHand\t\t\tA pointer to a ppix handle to hold the retrieved frame.\n\t@param\tinPreferences\t\tCurrent importer preferences, can be NULL for no preferences\n\t@param\tinPreferencesLength\tCurrent importer preferences length\n\t@param\tinColorProfileName\tThe name of the selected color profile. This is only worth providing if your\n\t\t\t\t\t\t\t\tImporter supports color management, and has more than one possible profile.\n\t\t\t\t\t\t\t\tOtherwise we will default to the single profile provided.\n\t@param\tinColorProfileData\tThis is completely optional. We will use the color profile data provided\n\t\t\t\t\t\t\t\tthrough the imGetIndColorProfile selector. In some future version we will\n\t\t\t\t\t\t\t\tallow Importers to support arbitrary profiles, at which point this param will\n\t\t\t\t\t\t\t\tbe useful."]
2418    pub GetFrameFromCacheWithColorProfile2: ::std::option::Option<
2419        unsafe extern "C" fn(
2420            inImporterID: csSDK_uint32,
2421            inStreamIndex: csSDK_int32,
2422            inFrameNumber: csSDK_int32,
2423            inNumFormats: csSDK_int32,
2424            inFormats: *mut imFrameFormat,
2425            outPPixHand: *mut PPixHand,
2426            inQuality: PrRenderQuality,
2427            inPreferences: *mut ::std::os::raw::c_void,
2428            inPreferencesLength: csSDK_int32,
2429            inColorProfileName: *mut PrSDKString,
2430            inColorProfileData: *mut ::std::os::raw::c_void,
2431            inColorProfileDataSize: csSDK_int32,
2432        ) -> prSuiteError,
2433    >,
2434    #[doc = "\tThis will add the ppix to the frame cache for this importer instance and stream.\n\n\t@param\tinImporterID\t\tThe ID of this importer instance (passed down in imGetInfo8).\n\t@param\tinStreamIndex\t\tThe index of this stream\n\t@param\tinPPixHand\t\t\tThe ppix handle you want to add.\n\t@param\tinFrameNumber\t\tThe frame number of the ppix.\n\t@param\tinQuality\t\t\tThe quality level with which to render the frame\n\t@param\tinPreferences\t\tCurrent importer preferences, can be NULL for no preferences\n\t@param\tinPreferencesLength\tCurrent importer preferences length\n\t@param\tinPrColorSpaceID\tcolor space for the frame to be cached; this is an opaque token passed to the importer by the host that importer is expected to use in color management APIs"]
2435    pub AddFrameToCacheWithColorSpace: ::std::option::Option<
2436        unsafe extern "C" fn(
2437            inImporterID: csSDK_uint32,
2438            inStreamIndex: csSDK_int32,
2439            inPPixHand: PPixHand,
2440            inFrameNumber: csSDK_int32,
2441            inQuality: PrRenderQuality,
2442            inPreferences: *mut ::std::os::raw::c_void,
2443            inPreferencesLength: csSDK_int32,
2444            inPrColorSpaceID: *mut PrSDKColorSpaceID,
2445        ) -> prSuiteError,
2446    >,
2447    #[doc = "\tThis will retrieve a ppix from the frame cache for this importer instance and stream.\n\n\t@param\tinImporterID\t\tThe ID of this importer instance (passed down in imGetInfo8).\n\t@param\tinStreamIndex\t\tThe index of this stream\n\t@param\tinFrameNumber\t\tThe frame number of the ppix requested.\n @param\tinNumFormats\t\tThe number of frame formats\n\t@param\tinFormats\t\t\tThe array of frame formats\n\t@param\toutPPixHand\t\t\tA pointer to a ppix handle to hold the retrieved frame.\n\t@param\tinQuality\t\t\tThe quality level with which to render the frame\n\t@param\tinPreferences\t\tCurrent importer preferences, can be NULL for no preferences\n\t@param\tinPreferencesLength\tCurrent importer preferences length\n\t@param\tinPrColorSpaceID\tcolor space to be used as part of identifier to retrieve a frame from cache; this is an opaque token passed to the importer by the host that importer is expected to use in color management APIs"]
2448    pub GetFrameFromCacheWithColorSpace: ::std::option::Option<
2449        unsafe extern "C" fn(
2450            inImporterID: csSDK_uint32,
2451            inStreamIndex: csSDK_int32,
2452            inFrameNumber: csSDK_int32,
2453            inNumFormats: csSDK_int32,
2454            inFormats: *mut imFrameFormat,
2455            outPPixHand: *mut PPixHand,
2456            inQuality: PrRenderQuality,
2457            inPreferences: *mut ::std::os::raw::c_void,
2458            inPreferencesLength: csSDK_int32,
2459            inPrColorSpaceID: *mut PrSDKColorSpaceID,
2460        ) -> prSuiteError,
2461    >,
2462    #[doc = "\tThis function registers a dependency on a PPix. If a frame with these settings is in the cache now,\n\tor ends up in the cache soon, then it will not be flushed from the cache while there are outstanding\n\tdependencies. You are responsible for calling the UnregisterDependencyOnNamedPPix function with the\n  returned identifier - if you don't then this is the same as a memory leak of a PPix.\n\n\t@param\tinImporterID\t\tThe ID of this importer instance (passed down in imGetInfo8).\n\t@param\tinStreamIndex\t\tThe index of this stream\n\t@param\tinFrameNumber\t\tThe frame number of the ppix.\n\t@param\toutPPixIdentifier\tThe pointer to the ppix Identifer obtained for the frame\n\t@param\tinPreferences\t\tCurrent importer preferences, can be NULL for no preferences\n\t@param\tinPreferencesLength\tCurrent importer preferences length"]
2463    pub RegisterDependencyOnFrame: ::std::option::Option<
2464        unsafe extern "C" fn(
2465            inImporterID: csSDK_uint32,
2466            inStreamIndex: csSDK_int32,
2467            inFrameNumber: csSDK_int32,
2468            inNumFormats: csSDK_int32,
2469            inFormats: *mut imFrameFormat,
2470            outPPixIdentifier: *mut prPluginID,
2471            inPreferences: *mut ::std::os::raw::c_void,
2472            inPreferencesLength: csSDK_int32,
2473        ) -> prSuiteError,
2474    >,
2475    #[doc = "\tThis function registers a dependency on a PPix. If a frame with these settings is in the cache now,\n\tor ends up in the cache soon, then it will not be flushed from the cache while there are outstanding\n\tdependencies. You are responsible for calling the UnregisterDependencyOnNamedPPix function with the\n  returned identifier - if you don't then this is the same as a memory leak of a PPix.\n\n\t@param\tinImporterID\t\tThe ID of this importer instance (passed down in imGetInfo8).\n\t@param\tinStreamIndex\t\tThe index of this stream\n\t@param\tinFrameNumber\t\tThe frame number of the ppix.\n\t@param\toutPPixIdentifier\tThe pointer to the ppix Identifer obtained for the frame\n\t@param\tinPreferences\t\tCurrent importer preferences, can be NULL for no preferences\n\t@param\tinPreferencesLength\tCurrent importer preferences length\n\t@param\tinColorProfileName\tThe name of the selected color profile. This is only worth providing if your\n\t\t\t\t\t\t\t\tImporter supports color management, and has more than one possible profile.\n\t\t\t\t\t\t\t\tOtherwise we will default to the single profile provided.\n\t@param\tinColorProfileData\tThis is completely optional. We will use the color profile data provided\n\t\t\t\t\t\t\t\tthrough the imGetIndColorProfile selector. In some future version we will\n\t\t\t\t\t\t\t\tallow Importers to support arbitrary profiles, at which point this param will\n\t\t\t\t\t\t\t\tbe useful."]
2476    pub RegisterDependencyOnFrameWithColorProfile: ::std::option::Option<
2477        unsafe extern "C" fn(
2478            inImporterID: csSDK_uint32,
2479            inStreamIndex: csSDK_int32,
2480            inFrameNumber: csSDK_int32,
2481            inNumFormats: csSDK_int32,
2482            inFormats: *mut imFrameFormat,
2483            outPPixIdentifier: *mut prPluginID,
2484            inPreferences: *mut ::std::os::raw::c_void,
2485            inPreferencesLength: csSDK_int32,
2486            inColorProfileName: *mut PrSDKString,
2487            inColorProfileData: *mut ::std::os::raw::c_void,
2488            inColorProfileDataSize: csSDK_int32,
2489        ) -> prSuiteError,
2490    >,
2491    #[doc = "\tThis function registers a dependency on a PPix. If a frame with these settings is in the cache now,\n\tor ends up in the cache soon, then it will not be flushed from the cache while there are outstanding\n\tdependencies. You are responsible for calling the UnregisterDependencyOnNamedPPix function with the\n  returned identifier - if you don't then this is the same as a memory leak of a PPix.\n\n\t@param\tinImporterID\t\tThe ID of this importer instance (passed down in imGetInfo8).\n\t@param\tinStreamIndex\t\tThe index of this stream\n\t@param\tinFrameNumber\t\tThe frame number of the ppix.\n\t@param\toutPPixIdentifier\tThe pointer to the ppix Identifer obtained for the frame\n\t@param\tinPreferences\t\tCurrent importer preferences, can be NULL for no preferences\n\t@param\tinPreferencesLength\tCurrent importer preferences length\n\t@param\tinColorProfileName\tThe name of the selected color profile. This is only worth providing if your\n\t\t\t\t\t\t\t\tImporter supports color management, and has more than one possible profile.\n\t\t\t\t\t\t\t\tOtherwise we will default to the single profile provided.\n\t@param\tinColorProfileData\tThis is completely optional. We will use the color profile data provided\n\t\t\t\t\t\t\t\tthrough the imGetIndColorProfile selector. In some future version we will\n\t\t\t\t\t\t\t\tallow Importers to support arbitrary profiles, at which point this param will\n\t\t\t\t\t\t\t\tbe useful."]
2492    pub RegisterDependencyOnFrameWithColorProfile2: ::std::option::Option<
2493        unsafe extern "C" fn(
2494            inImporterID: csSDK_uint32,
2495            inStreamIndex: csSDK_int32,
2496            inFrameNumber: csSDK_int32,
2497            inNumFormats: csSDK_int32,
2498            inFormats: *mut imFrameFormat,
2499            inQuality: PrRenderQuality,
2500            outPPixIdentifier: *mut prPluginID,
2501            inPreferences: *mut ::std::os::raw::c_void,
2502            inPreferencesLength: csSDK_int32,
2503            inColorProfileName: *mut PrSDKString,
2504            inColorProfileData: *mut ::std::os::raw::c_void,
2505            inColorProfileDataSize: csSDK_int32,
2506        ) -> prSuiteError,
2507    >,
2508    #[doc = "\tThis function registers a dependency on a PPix. If a frame with these settings is in the cache now,\n\tor ends up in the cache soon, then it will not be flushed from the cache while there are outstanding\n\tdependencies. You are responsible for calling the UnregisterDependencyOnNamedPPix function with the\n  returned identifier - if you don't then this is the same as a memory leak of a PPix.\n\n\t@param\tinImporterID\t\tThe ID of this importer instance (passed down in imGetInfo8).\n\t@param\tinStreamIndex\t\tThe index of this stream\n\t@param\tinFrameNumber\t\tThe frame number of the ppix.\n \t@param\tinNumFormats\t\tThe number of frame formats\n\t@param\tinFormats\t\t\tThe array of frame formats\n\t@param\tinQuality\t\t\tThe quality level with which to render the frame\n\t@param\toutPPixIdentifier\tThe pointer to the ppix Identifer obtained for the frame\n\t@param\tinPreferences\t\tCurrent importer preferences, can be NULL for no preferences\n\t@param\tinPreferencesLength\tCurrent importer preferences length\n\t@param\tinPrColorSpaceID\tcolor space to be used as part of identifier to retrieve a frame from cache; this is an opaque token passed to the importer by the host that importer is expected to use in color management APIs"]
2509    pub RegisterDependencyOnFrameWithColorSpace: ::std::option::Option<
2510        unsafe extern "C" fn(
2511            inImporterID: csSDK_uint32,
2512            inStreamIndex: csSDK_int32,
2513            inFrameNumber: csSDK_int32,
2514            inNumFormats: csSDK_int32,
2515            inFormats: *mut imFrameFormat,
2516            inQuality: PrRenderQuality,
2517            outPPixIdentifier: *mut prPluginID,
2518            inPreferences: *mut ::std::os::raw::c_void,
2519            inPreferencesLength: csSDK_int32,
2520            inPrColorSpaceID: *mut PrSDKColorSpaceID,
2521        ) -> prSuiteError,
2522    >,
2523}
2524#[repr(C, packed)]
2525#[derive(Debug, Copy, Clone)]
2526pub struct PrSDKPPixCacheSuite1 {
2527    #[doc = "\tThis will add the ppix to the frame cache for this importer instance and stream.\n\n\t@param\tinImporterID\t\tThe ID of this importer instance (passed down in imGetInfo8).\n\t@param\tinStreamIndex\t\tThe index of this stream\n\t@param\tinPPixHand\t\t\tThe ppix handle you want to add.\n\t@param\tinFrameNumber\t\tThe frame number of the ppix."]
2528    pub AddFrameToCache: ::std::option::Option<
2529        unsafe extern "C" fn(
2530            inImporterID: csSDK_uint32,
2531            inStreamIndex: csSDK_int32,
2532            inPPixHand: PPixHand,
2533            inFrameNumber: csSDK_int32,
2534        ) -> prSuiteError,
2535    >,
2536    #[doc = "\tThis will retrieve a ppix from the frame cache for this importer instance and stream.\n\n\t@param\tinImporterID\t\tThe ID of this importer instance (passed down in imGetInfo8).\n\t@param\tinStreamIndex\t\tThe index of this stream\n\t@param\tinFrameNumber\t\tThe frame number of the ppix requested.\n\t@param\toutPPixHand\t\t\tA pointer to a ppix handle to hold the retrieved frame."]
2537    pub GetFrameFromCache: ::std::option::Option<
2538        unsafe extern "C" fn(
2539            inImporterID: csSDK_uint32,
2540            inStreamIndex: csSDK_int32,
2541            inFrameNumber: csSDK_int32,
2542            inNumFormats: csSDK_int32,
2543            inFormats: *mut imFrameFormat,
2544            outPPixHand: *mut PPixHand,
2545        ) -> prSuiteError,
2546    >,
2547    #[doc = "\tThis will add the ppix to the raw cache for this importer instance.\n\n\t@param\tinImporterID\t\tThe ID of this importer instance (passed down in imGetInfo8).\n\t@param\tinPPixHand\t\t\tThe raw ppix handle you want to add.\n\t@param\tinKey\t\t\t\tThe key to use for this raw ppix. If an entry with this key already\n\t\t\t\t\t\t\t\texists, this call will fail."]
2548    pub AddRawPPixToCache: ::std::option::Option<
2549        unsafe extern "C" fn(
2550            inImporterID: csSDK_uint32,
2551            inPPixHand: PPixHand,
2552            inKey: csSDK_int32,
2553        ) -> prSuiteError,
2554    >,
2555    #[doc = "\tThis will retrieve a ppix from the frame cache for this importer instance.\n\n\t@param\tinImporterID\t\tThe ID of this importer instance (passed down in imGetInfo8).\n\t@param\tinKey\t\t\t\tThe key to identify this raw ppix.\n\t@param\toutPPixHand\t\t\tA pointer to a ppix handle to hold the retrieved frame."]
2556    pub GetRawPPixFromCache: ::std::option::Option<
2557        unsafe extern "C" fn(
2558            inImporterID: csSDK_uint32,
2559            inKey: csSDK_int32,
2560            outPPixHand: *mut PPixHand,
2561        ) -> prSuiteError,
2562    >,
2563}
2564#[repr(C, packed)]
2565#[derive(Debug, Copy, Clone)]
2566pub struct PrSDKPPixCreator2Suite {
2567    #[doc = "\tThis will create a new ppix.\n\n\t@param\toutPPixHand\t\t\t\t\t\tThe new ppix handle if the create was successfull. NULL otherwise.\n\t@param\tinRequestedAccess\t\t\t\tRequested pixel access. ReadOnly is not allowed (doesn't make sense).\n\t@param\tinPixelFormat\t\t\t\t\tThe pixel format of this ppix.\n\t@param\tinWidth\t\t\t\t\t\t\tThe horizontal size of the ppix.\n\t@param\tinHeight\t\t\t\t\t\tThe vertical size of the ppix.\n\t@param\tinUseFields\t\t\t\t\t\tIf true, the ppix is a field.\n\t@param\tinFieldNumber\t\t\t\t\tIf inUseFields is true, this specifies first field (0) or second (1)\n\t@param\tinPARNumerator\t\t\t\t\tThe pixel aspect ratio numerator for the ppix.\n\t@param\tinPARDenominator\t\t\t\tThe pixel aspect ratio denominator for the ppix."]
2568    pub CreatePPix: ::std::option::Option<
2569        unsafe extern "C" fn(
2570            outPPixHand: *mut PPixHand,
2571            inRequestedAccess: PrPPixBufferAccess,
2572            inPixelFormat: PrPixelFormat,
2573            inWidth: ::std::os::raw::c_int,
2574            inHeight: ::std::os::raw::c_int,
2575            inUseFields: bool,
2576            inFieldNumber: ::std::os::raw::c_int,
2577            inPARNumerator: ::std::os::raw::c_int,
2578            inPARDenominator: ::std::os::raw::c_int,
2579        ) -> prSuiteError,
2580    >,
2581    #[doc = "\tThis will create a new raw ppix.\n\n\t@param\toutPPixHand\t\t\t\t\t\tThe new ppix handle if the create was successfull. NULL otherwise.\n\t@param\tinRequestedAccess\t\t\t\tRequested pixel access. ReadOnly is not allowed (doesn't make sense).\n\t@param\tinSize\t\t\t\t\t\t\tThe size of the ppix in bytes.\n\t@param\tinAlignment\t\t\t\t\t\tThe alignment of the beginning of the ppix in bytes."]
2582    pub CreateRawPPix: ::std::option::Option<
2583        unsafe extern "C" fn(
2584            outPPixHand: *mut PPixHand,
2585            inRequestedAccess: PrPPixBufferAccess,
2586            inSize: ::std::os::raw::c_int,
2587            inAlignment: ::std::os::raw::c_int,
2588        ) -> prSuiteError,
2589    >,
2590    #[doc = "\tThis will create a new ppix in a custom pixel format.\n\n\t@param\toutPPixHand\t\t\t\t\t\tThe new ppix handle if the create was successfull. NULL otherwise.\n\t@param\tinRequestedAccess\t\t\t\tRequested pixel access. ReadOnly is not allowed (doesn't make sense).\n\t@param\tinPixelFormat\t\t\t\t\tThe pixel format of this ppix.\n\t@param\tinWidth\t\t\t\t\t\t\tThe horizontal size of the ppix.\n\t@param\tinHeight\t\t\t\t\t\tThe vertical size of the ppix.\n\t@param\tinPARNumerator\t\t\t\t\tThe pixel aspect ratio numerator for the ppix.\n\t@param\tinPARDenominator\t\t\t\tThe pixel aspect ratio denominator for the ppix.\n\t@param\tinDataBufferSize\t\t\t\tThe number of bytes requested, not including the header."]
2591    pub CreateCustomPPix: ::std::option::Option<
2592        unsafe extern "C" fn(
2593            outPPixHand: *mut PPixHand,
2594            inRequestedAccess: PrPPixBufferAccess,
2595            inPixelFormat: PrPixelFormat,
2596            inWidth: ::std::os::raw::c_int,
2597            inHeight: ::std::os::raw::c_int,
2598            inPARNumerator: ::std::os::raw::c_int,
2599            inPARDenominator: ::std::os::raw::c_int,
2600            inDataBufferSize: ::std::os::raw::c_int,
2601        ) -> prSuiteError,
2602    >,
2603    #[doc = "\tThis will create a new ppix properly aligned for reading from disk.\n\n\t@param\toutPPixHand\t\t\t\t\t\t\t\t\tThe new ppix handle if the create was successfull. NULL otherwise.\n\t@param\tinPixelFormat\t\t\t\t\t\t\t\tThe pixel format of this ppix.\n\t@param\tinWidth\t\t\t\t\t\t\t\t\t\tThe horizontal size of the ppix.\n\t@param\tinHeight\t\t\t\t\t\t\t\t\tThe vertical size of the ppix.\n\t@param\tinPARNumerator\t\t\t\t\t\t\t\tThe pixel aspect ratio numerator for the ppix.\n\t@param\tinPARDenominator\t\t\t\t\t\t\tThe pixel aspect ratio denominator for the ppix.\n\t@param\tinMemoryAlignment\t\t\t\t\t\t\tThe alignment of memory required for the start of the first sector.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tIf this value is zero, then we will align to the sector size.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tThis value must be a multiple of the pixel size or bad things will happen.\n\t@param\tinSectorSize\t\t\t\t\t\t\t\tThe size of a sector on disk. The required amount of memory will be padded\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tup to a multiple of the sector size. If this is zero, then there will be no padding.\n\t@param\tinOffsetToPixelDataFromFirstSectorStart\t\tThe number of bytes between the start of the first sector and the start\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tof the pixel data. The resulting pixel start location must be aligned to\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthe pixel size."]
2604    pub CreateDiskAlignedPPix: ::std::option::Option<
2605        unsafe extern "C" fn(
2606            outPPixHand: *mut PPixHand,
2607            inPixelFormat: PrPixelFormat,
2608            inWidth: ::std::os::raw::c_int,
2609            inHeight: ::std::os::raw::c_int,
2610            inPARNumerator: ::std::os::raw::c_int,
2611            inPARDenominator: ::std::os::raw::c_int,
2612            inMemoryAlignment: ::std::os::raw::c_int,
2613            inSectorSize: ::std::os::raw::c_int,
2614            inOffsetToPixelDataFromFirstSectorStart: ::std::os::raw::c_int,
2615        ) -> prSuiteError,
2616    >,
2617    #[doc = "\tThis will create a new ppix.\n\n\t@param\toutPPixHand\t\t\t\t\t\tThe new ppix handle if the create was successfull. NULL otherwise.\n\t@param\tinRequestedAccess\t\t\t\tRequested pixel access. ReadOnly is not allowed (doesn't make sense).\n\t@param\tinPixelFormat\t\t\t\t\tThe pixel format of this ppix.\n\t@param\tinWidth\t\t\t\t\t\t\tThe horizontal size of the ppix.\n\t@param\tinHeight\t\t\t\t\t\tThe vertical size of the ppix.\n\t@param\tinUseFields\t\t\t\t\t\tIf true, the ppix is a field.\n\t@param\tinFieldNumber\t\t\t\t\tIf inUseFields is true, this specifies first field (0) or second (1)\n\t@param\tinPARNumerator\t\t\t\t\tThe pixel aspect ratio numerator for the ppix.\n\t@param\tinPARDenominator\t\t\t\tThe pixel aspect ratio denominator for the ppix.\n\t@param \tinColorSpaceID\t\t\t\t\topaque color space identifier; new video frame will be tagged with this color space"]
2618    pub CreateColorManagedPPix: ::std::option::Option<
2619        unsafe extern "C" fn(
2620            outPPixHand: *mut PPixHand,
2621            inRequestedAccess: PrPPixBufferAccess,
2622            inPixelFormat: PrPixelFormat,
2623            inWidth: ::std::os::raw::c_int,
2624            inHeight: ::std::os::raw::c_int,
2625            inUseFields: bool,
2626            inFieldNumber: ::std::os::raw::c_int,
2627            inPARNumerator: ::std::os::raw::c_int,
2628            inPARDenominator: ::std::os::raw::c_int,
2629            inColorSpaceID: PrSDKColorSpaceID,
2630        ) -> prSuiteError,
2631    >,
2632    #[doc = "\tThis will create a new ppix in a custom pixel format.\n\n\t@param\toutPPixHand\t\t\t\t\t\tThe new ppix handle if the create was successfull. NULL otherwise.\n\t@param\tinRequestedAccess\t\t\t\tRequested pixel access. ReadOnly is not allowed (doesn't make sense).\n\t@param\tinPixelFormat\t\t\t\t\tThe pixel format of this ppix.\n\t@param\tinWidth\t\t\t\t\t\t\tThe horizontal size of the ppix.\n\t@param\tinHeight\t\t\t\t\t\tThe vertical size of the ppix.\n\t@param\tinPARNumerator\t\t\t\t\tThe pixel aspect ratio numerator for the ppix.\n\t@param\tinPARDenominator\t\t\t\tThe pixel aspect ratio denominator for the ppix.\n\t@param\tinDataBufferSize\t\t\t\tThe number of bytes requested, not including the header.\n\t@param \tinColorSpaceID\t\t\t\t\topaque color space identifier; new video frame will be tagged with this color space"]
2633    pub CreateColorManagedCustomPPix: ::std::option::Option<
2634        unsafe extern "C" fn(
2635            outPPixHand: *mut PPixHand,
2636            inRequestedAccess: PrPPixBufferAccess,
2637            inPixelFormat: PrPixelFormat,
2638            inWidth: ::std::os::raw::c_int,
2639            inHeight: ::std::os::raw::c_int,
2640            inPARNumerator: ::std::os::raw::c_int,
2641            inPARDenominator: ::std::os::raw::c_int,
2642            inDataBufferSize: ::std::os::raw::c_int,
2643            inColorSpaceID: PrSDKColorSpaceID,
2644        ) -> prSuiteError,
2645    >,
2646    #[doc = "\tThis will create a new ppix properly aligned for reading from disk.\n\n\t@param\toutPPixHand\t\t\t\t\t\t\t\t\tThe new ppix handle if the create was successfull. NULL otherwise.\n\t@param\tinPixelFormat\t\t\t\t\t\t\t\tThe pixel format of this ppix.\n\t@param\tinWidth\t\t\t\t\t\t\t\t\t\tThe horizontal size of the ppix.\n\t@param\tinHeight\t\t\t\t\t\t\t\t\tThe vertical size of the ppix.\n\t@param\tinPARNumerator\t\t\t\t\t\t\t\tThe pixel aspect ratio numerator for the ppix.\n\t@param\tinPARDenominator\t\t\t\t\t\t\tThe pixel aspect ratio denominator for the ppix.\n\t@param\tinMemoryAlignment\t\t\t\t\t\t\tThe alignment of memory required for the start of the first sector.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tIf this value is zero, then we will align to the sector size.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tThis value must be a multiple of the pixel size or bad things will happen.\n\t@param\tinSectorSize\t\t\t\t\t\t\t\tThe size of a sector on disk. The required amount of memory will be padded\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tup to a multiple of the sector size. If this is zero, then there will be no padding.\n\t@param\tinOffsetToPixelDataFromFirstSectorStart\t\tThe number of bytes between the start of the first sector and the start\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tof the pixel data. The resulting pixel start location must be aligned to\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthe pixel size.\n\t@param \tinColorSpaceID\t\t\t\t\t\t\t\topaque color space identifier; new video frame will be tagged with this color space"]
2647    pub CreateColorManagedDiskAlignedPPix: ::std::option::Option<
2648        unsafe extern "C" fn(
2649            outPPixHand: *mut PPixHand,
2650            inPixelFormat: PrPixelFormat,
2651            inWidth: ::std::os::raw::c_int,
2652            inHeight: ::std::os::raw::c_int,
2653            inPARNumerator: ::std::os::raw::c_int,
2654            inPARDenominator: ::std::os::raw::c_int,
2655            inMemoryAlignment: ::std::os::raw::c_int,
2656            inSectorSize: ::std::os::raw::c_int,
2657            inOffsetToPixelDataFromFirstSectorStart: ::std::os::raw::c_int,
2658            inColorSpaceID: PrSDKColorSpaceID,
2659        ) -> prSuiteError,
2660    >,
2661}
2662#[repr(C, packed)]
2663#[derive(Debug, Copy, Clone)]
2664pub struct PrSDKPPixCreatorSuite {
2665    #[doc = "\tThis will create a new ppix.\n\n\t@param\toutPPixHand\t\t\t\t\t\tThe new ppix handle if the create was successfull. NULL otherwise.\n\t@param\tinRequestedAccess\t\t\t\tRequested pixel access. ReadOnly is not allowed (doesn't make sense).\n\t@param\tinPixelFormat\t\t\t\t\tThe pixel format of this ppix."]
2666    pub CreatePPix: ::std::option::Option<
2667        unsafe extern "C" fn(
2668            outPPixHand: *mut PPixHand,
2669            inRequestedAccess: PrPPixBufferAccess,
2670            inPixelFormat: PrPixelFormat,
2671            inBoundingRect: *const prRect,
2672        ) -> prSuiteError,
2673    >,
2674    #[doc = "\tThis will clone an existing ppix. It will ref-count the ppix if only read-access is requested and\n\t\tthe ppix to copy from is read-only as well, otherwise it will create a new one and copy.\n\n\t@param\tinPPixToClone\t\t\t\t\tThe ppix to clone from.\n\t@param\toutPPixHand\t\t\t\t\t\tThe new ppix handle if the create was successfull. NULL otherwise.\n\t@param\tinRequestedAccess\t\t\t\tRequested pixel access on the new ppix. (Only PrPPixBufferAccess_ReadOnly is allowed right now)."]
2675    pub ClonePPix: ::std::option::Option<
2676        unsafe extern "C" fn(
2677            inPPixToClone: PPixHand,
2678            outPPixHand: *mut PPixHand,
2679            inRequestedAccess: PrPPixBufferAccess,
2680        ) -> prSuiteError,
2681    >,
2682}
2683#[repr(C, packed)]
2684#[derive(Debug, Copy, Clone)]
2685pub struct PrSceneTimebaseRec {
2686    pub scale: csSDK_uint32,
2687    pub sampleSize: csSDK_int32,
2688}
2689#[repr(C, packed)]
2690#[derive(Debug, Copy, Clone)]
2691pub struct PrSceneRecord {
2692    pub startTime: csSDK_int32,
2693    pub duration: csSDK_int32,
2694}
2695#[repr(C)]
2696#[derive(Debug, Copy, Clone)]
2697pub struct PrSceneMetaDataRec {
2698    pub timeBase: PrSceneTimebaseRec,
2699    pub scenes: [PrSceneRecord; 1usize],
2700}
2701#[repr(C, packed)]
2702#[derive(Debug, Copy, Clone)]
2703pub struct PrSDKSequenceInfoSuite {
2704    #[doc = "\tGet the video frame size of the sequence.\n\n\t@param\tinTimelineID\tthe timeline instance data\n\t@param\toutFrameRect\ton return, the size of the sequence video frame."]
2705    pub GetFrameRect: ::std::option::Option<
2706        unsafe extern "C" fn(inTimelineID: PrTimelineID, outFrameRect: *mut prRect) -> prSuiteError,
2707    >,
2708    #[doc = "\tGet the aspect ratio of the sequence.\n\n\t@param\tinTimelineID\tthe timeline instance data\n\t@param\toutNumerator\ton return, the aspect ratio numerator.\n\t@param\toutDenominator\ton return, the aspect ratio denominator."]
2709    pub GetPixelAspectRatio: ::std::option::Option<
2710        unsafe extern "C" fn(
2711            inTimelineID: PrTimelineID,
2712            outNumerator: *mut csSDK_uint32,
2713            outDenominator: *mut csSDK_uint32,
2714        ) -> prSuiteError,
2715    >,
2716    #[doc = "\tGet the framerate of the sequence.\n\n\t@param\tinTimelineID\t\tthe timeline instance data\n\t@param\toutTicksPerFrame\tthe framerate in ticks."]
2717    pub GetFrameRate: ::std::option::Option<
2718        unsafe extern "C" fn(
2719            inTimelineID: PrTimelineID,
2720            outTicksPerFrame: *mut PrTime,
2721        ) -> prSuiteError,
2722    >,
2723    #[doc = "\tGet the field type of the sequence.\n\n\t@param\tinTimelineID\t\tthe timeline instance data\n\t@param\toutFieldType\t\tthe field type."]
2724    pub GetFieldType: ::std::option::Option<
2725        unsafe extern "C" fn(
2726            inTimelineID: PrTimelineID,
2727            outFieldType: *mut prFieldType,
2728        ) -> prSuiteError,
2729    >,
2730    #[doc = "\tGet the zero point of the sequence.\n\n\t@param\tinTimelineID\t\tthe timeline instance data\n\t@param\toutTicksPerFrame\tstart time of the sequence."]
2731    pub GetZeroPoint: ::std::option::Option<
2732        unsafe extern "C" fn(inTimelineID: PrTimelineID, outTime: *mut PrTime) -> prSuiteError,
2733    >,
2734    #[doc = "\tReturns if the sequence timecode is drop or non drop.\n\n\t@param\tinTimelineID\t\tthe timeline instance data\n\t@param\toutDropFrame\t\tif the sequence timecode is dropframe"]
2735    pub GetTimecodeDropFrame: ::std::option::Option<
2736        unsafe extern "C" fn(inTimelineID: PrTimelineID, outDropFrame: *mut prBool) -> prSuiteError,
2737    >,
2738    #[doc = "\tReturns if the sequence has the proxy flag set.\n\n\t@param\tinTimelineID\t\tthe timeline instance data\n\t@param\toutProxyFlag\t\tif the sequence is in proxy mode"]
2739    pub GetProxyFlag: ::std::option::Option<
2740        unsafe extern "C" fn(inTimelineID: PrTimelineID, outDropFrame: *mut prBool) -> prSuiteError,
2741    >,
2742    #[doc = "\tReturns the VR Video settings of the specified sequence.\n\n\t@param\tinTimelineID\t\t\t\tThe timeline instance data.\n\t@param\toutProjectionType\t\t\tThe type of projection the specified sequence is using.\n\t@param\toutFrameLayout\t\t\t\tThe type of frame layout the specified sequence is using.\n\t@param\toutHorizontalCapturedView\tHow many degrees of horizontal view is captured in the video stream (up to 360).\n\t@param\toutVerticalCapturedView\t\tHow many degrees of vertical view is captured in the video stream (up to 180)."]
2743    pub GetImmersiveVideoVRConfiguration: ::std::option::Option<
2744        unsafe extern "C" fn(
2745            inTimelineID: PrTimelineID,
2746            outProjectionType: *mut PrIVProjectionType,
2747            outFrameLayout: *mut PrIVFrameLayout,
2748            outHorizontalCapturedView: *mut csSDK_uint32,
2749            outVerticalCapturedView: *mut csSDK_uint32,
2750        ) -> prSuiteError,
2751    >,
2752    #[doc = " Returns the identifier of the sequence working color space\n\n\t@param\tinTimelineID\t\t\t\tThe timeline instance data.\n\t@param\toutPrWorkingColorSpaceID\tPrSDKColorSpaceID with working color space identifier\n"]
2753    pub GetWorkingColorSpace: ::std::option::Option<
2754        unsafe extern "C" fn(
2755            inTimelineID: PrTimelineID,
2756            outPrWorkingColorSpaceID: *mut PrSDKColorSpaceID,
2757        ) -> prSuiteError,
2758    >,
2759    #[doc = "\tGet the HDR graphics white luminance value of the sequence in nits.\n\n\t@param\tinTimelineID\tthe timeline instance data\n\t@param\toutGraphicsWhiteLuminance\ton return, HDR graphics white luminance value of the sequence in nits."]
2760    pub GetGraphicsWhiteLuminance: ::std::option::Option<
2761        unsafe extern "C" fn(
2762            inTimelineID: PrTimelineID,
2763            outGraphicsWhiteLuminance: *mut csSDK_uint32,
2764        ) -> prSuiteError,
2765    >,
2766}
2767pub type PrSDKStreamLabel = *const ::std::os::raw::c_char;
2768#[repr(C, packed)]
2769#[derive(Debug, Copy, Clone)]
2770pub struct SequenceRender_FrameInfoRec {
2771    pub repeatCount: csSDK_int32,
2772}
2773#[repr(C, packed)]
2774#[derive(Debug, Copy, Clone)]
2775pub struct SequenceRender_GetFrameReturnRec {
2776    pub asyncCompletionData: *mut ::std::os::raw::c_void,
2777    pub returnVal: csSDK_int32,
2778    pub repeatCount: csSDK_int32,
2779    pub onMarker: csSDK_int32,
2780    pub outFrame: PPixHand,
2781}
2782#[repr(C, packed)]
2783#[derive(Debug, Copy, Clone)]
2784pub struct SequenceRender_ParamsRec {
2785    pub inRequestedPixelFormatArray: *const PrPixelFormat,
2786    pub inRequestedPixelFormatArrayCount: csSDK_int32,
2787    pub inWidth: csSDK_int32,
2788    pub inHeight: csSDK_int32,
2789    pub inPixelAspectRatioNumerator: csSDK_int32,
2790    pub inPixelAspectRatioDenominator: csSDK_int32,
2791    pub inRenderQuality: PrRenderQuality,
2792    pub inFieldType: prFieldType,
2793    pub inDeinterlace: csSDK_int32,
2794    pub inDeinterlaceQuality: PrRenderQuality,
2795    pub inCompositeOnBlack: csSDK_int32,
2796}
2797#[repr(C, packed)]
2798#[derive(Debug, Copy, Clone)]
2799pub struct SequenceRender_ParamsRecExt {
2800    pub inRequestedPixelFormatArray: *const PrPixelFormat,
2801    pub inRequestedPixelFormatArrayCount: csSDK_int32,
2802    pub inWidth: csSDK_int32,
2803    pub inHeight: csSDK_int32,
2804    pub inPixelAspectRatioNumerator: csSDK_int32,
2805    pub inPixelAspectRatioDenominator: csSDK_int32,
2806    pub inRenderQuality: PrRenderQuality,
2807    pub inFieldType: prFieldType,
2808    pub inDeinterlace: csSDK_int32,
2809    pub inDeinterlaceQuality: PrRenderQuality,
2810    pub inCompositeOnBlack: csSDK_int32,
2811    pub inPrSDKColorSpaceID: PrSDKColorSpaceID,
2812}
2813#[repr(C, packed)]
2814#[derive(Debug, Copy, Clone)]
2815pub struct SequenceRender_ParamsRecExt2 {
2816    pub inRequestedPixelFormatArray: *const PrPixelFormat,
2817    pub inRequestedPixelFormatArrayCount: csSDK_int32,
2818    pub inWidth: csSDK_int32,
2819    pub inHeight: csSDK_int32,
2820    pub inPixelAspectRatioNumerator: csSDK_int32,
2821    pub inPixelAspectRatioDenominator: csSDK_int32,
2822    pub inRenderQuality: PrRenderQuality,
2823    pub inFieldType: prFieldType,
2824    pub inDeinterlace: csSDK_int32,
2825    pub inDeinterlaceQuality: PrRenderQuality,
2826    pub inCompositeOnBlack: csSDK_int32,
2827    pub inPrSDKColorSpaceID: PrSDKColorSpaceID,
2828    pub inPrSDKLUTID: PrSDKLUTID,
2829}
2830pub type PrSDKSequenceAsyncRenderCompletionProc = ::std::option::Option<
2831    unsafe extern "C" fn(
2832        inVideoRenderID: csSDK_uint32,
2833        inCallbackRef: *mut ::std::os::raw::c_void,
2834        inTime: PrTime,
2835        inRenderedFrame: PPixHand,
2836        inGetFrameReturn: *mut SequenceRender_GetFrameReturnRec,
2837    ),
2838>;
2839#[repr(C, packed)]
2840#[derive(Debug, Copy, Clone)]
2841pub struct PrSDKSequenceRenderSuite {
2842    pub MakeVideoRenderer: ::std::option::Option<
2843        unsafe extern "C" fn(
2844            pluginID: csSDK_uint32,
2845            outVideoRenderID: *mut csSDK_uint32,
2846            inFrameRate: PrTime,
2847        ) -> prSuiteError,
2848    >,
2849    pub ReleaseVideoRenderer: ::std::option::Option<
2850        unsafe extern "C" fn(pluginID: csSDK_uint32, inVideoRenderID: csSDK_uint32) -> prSuiteError,
2851    >,
2852    pub RenderVideoFrame: ::std::option::Option<
2853        unsafe extern "C" fn(
2854            inVideoRenderID: csSDK_uint32,
2855            inTime: PrTime,
2856            inRenderParams: *mut SequenceRender_ParamsRec,
2857            inCacheFlags: PrRenderCacheType,
2858            getFrameReturn: *mut SequenceRender_GetFrameReturnRec,
2859        ) -> prSuiteError,
2860    >,
2861    pub QueueAsyncVideoFrameRender: ::std::option::Option<
2862        unsafe extern "C" fn(
2863            inVideoRenderID: csSDK_uint32,
2864            inTime: PrTime,
2865            outRequestID: *mut csSDK_uint32,
2866            inRenderParams: *mut SequenceRender_ParamsRec,
2867            inCacheFlags: PrRenderCacheType,
2868            inAsyncCompletionData: *mut ::std::os::raw::c_void,
2869        ) -> prSuiteError,
2870    >,
2871    pub SetAsyncRenderCompletionProc: ::std::option::Option<
2872        unsafe extern "C" fn(
2873            inVideoRenderID: csSDK_uint32,
2874            asyncGetFrameCallback: PrSDKSequenceAsyncRenderCompletionProc,
2875            callbackRef: *mut ::std::os::raw::c_void,
2876        ) -> prSuiteError,
2877    >,
2878    pub GetFrameInfo: ::std::option::Option<
2879        unsafe extern "C" fn(
2880            inVideoRenderID: csSDK_uint32,
2881            inTime: PrTime,
2882            outFrameInfo: *mut SequenceRender_FrameInfoRec,
2883        ) -> prSuiteError,
2884    >,
2885    #[doc = "\tPre-fetches the media needed to render this frame.\n\tThis is a hint to the importers to begin reading media needed to render this video frame.\n\n\t@param\tinFrame\t\t\t\t\t\t\t\tThe video frame number."]
2886    pub PrefetchMedia: ::std::option::Option<
2887        unsafe extern "C" fn(inVideoRenderID: csSDK_uint32, inFrame: PrTime) -> prSuiteError,
2888    >,
2889    #[doc = "\tPre-fetches the media needed to render this frame, using all of the parameters used to render the frame.\n\tThis is a hint to the importers to begin reading media needed to render this video frame.\n\n\t@param\tinFrameTime\t\t\t\t\t\t\tThe time of the video frame number.\n\n\t@param\tinRequestedPixelFormatArray\t\t\tAn array of PrPixelFormats that list your format preferences in order.\n\t\t\t\t\t\t\t\t\t\t\t\tThis list must end with PrPixelFormat_BGRA_4444_8u.\n\t@param\tinRequestedPixelFormatArrayCount\tNumber of formats in the format array\n\t@param\tinFrameRect\t\t\t\t\t\t\tVideo frame size\n\t@param\tinPixelAspectRatioNumerator\t\t\tThe numerator for the pixel aspect ratio.\n\t@param\tinPixelAspectRatioDenominator\t\tThe denominator for the pixel aspect ratio.\n\t@param\tinRenderQuality\t\t\t\t\t\tThe render quality of this frame."]
2890    pub PrefetchMediaWithRenderParameters: ::std::option::Option<
2891        unsafe extern "C" fn(
2892            inVideoRenderID: csSDK_uint32,
2893            inTime: PrTime,
2894            inRenderParams: *mut SequenceRender_ParamsRec,
2895        ) -> prSuiteError,
2896    >,
2897    #[doc = "\tThis will cancel all media pre-fetches that are still outstanding."]
2898    pub CancelAllOutstandingMediaPrefetches:
2899        ::std::option::Option<unsafe extern "C" fn(inVideoRenderID: csSDK_uint32) -> prSuiteError>,
2900    #[doc = "\tIs all the prefetched media ready?"]
2901    pub IsPrefetchedMediaReady: ::std::option::Option<
2902        unsafe extern "C" fn(
2903            inVideoRenderID: csSDK_uint32,
2904            inTime: PrTime,
2905            outMediaReady: *mut prBool,
2906        ) -> prSuiteError,
2907    >,
2908    pub MakeVideoRendererForTimeline: ::std::option::Option<
2909        unsafe extern "C" fn(
2910            inTimeline: PrTimelineID,
2911            outVideoRendererID: *mut csSDK_uint32,
2912        ) -> prSuiteError,
2913    >,
2914    pub MakeVideoRendererForTimelineWithFrameRate: ::std::option::Option<
2915        unsafe extern "C" fn(
2916            inTimeline: PrTimelineID,
2917            inFrameRate: PrTime,
2918            outVideoRendererID: *mut csSDK_uint32,
2919        ) -> prSuiteError,
2920    >,
2921    pub ReleaseVideoRendererForTimeline: ::std::option::Option<
2922        unsafe extern "C" fn(inVideoRendererID: csSDK_uint32) -> prSuiteError,
2923    >,
2924    pub RenderVideoFrameAndConformToPixelFormat: ::std::option::Option<
2925        unsafe extern "C" fn(
2926            inVideoRenderID: csSDK_uint32,
2927            inTime: PrTime,
2928            inRenderParams: *mut SequenceRender_ParamsRec,
2929            inCacheFlags: PrRenderCacheType,
2930            inConformToFormat: PrPixelFormat,
2931            getFrameReturn: *mut SequenceRender_GetFrameReturnRec,
2932        ) -> prSuiteError,
2933    >,
2934    pub MakeVideoRendererForTimelineWithStreamLabel: ::std::option::Option<
2935        unsafe extern "C" fn(
2936            inTimeline: PrTimelineID,
2937            inStreamLabel: PrSDKStreamLabel,
2938            outVideoRendererID: *mut csSDK_uint32,
2939        ) -> prSuiteError,
2940    >,
2941    pub RenderColorManagedVideoFrame: ::std::option::Option<
2942        unsafe extern "C" fn(
2943            inVideoRenderID: csSDK_uint32,
2944            inTime: PrTime,
2945            inRenderParamsExt: *mut SequenceRender_ParamsRecExt,
2946            inCacheFlags: PrRenderCacheType,
2947            getFrameReturn: *mut SequenceRender_GetFrameReturnRec,
2948        ) -> prSuiteError,
2949    >,
2950    pub QueueAsyncColorManagedVideoFrameRender: ::std::option::Option<
2951        unsafe extern "C" fn(
2952            inVideoRenderID: csSDK_uint32,
2953            inTime: PrTime,
2954            outRequestID: *mut csSDK_uint32,
2955            inRenderParamsExt: *mut SequenceRender_ParamsRecExt,
2956            inCacheFlags: PrRenderCacheType,
2957            inAsyncCompletionData: *mut ::std::os::raw::c_void,
2958        ) -> prSuiteError,
2959    >,
2960    pub PrefetchColorManagedMedia: ::std::option::Option<
2961        unsafe extern "C" fn(
2962            inVideoRenderID: csSDK_uint32,
2963            inFrame: PrTime,
2964            inPrSDKColorSpaceID: PrSDKColorSpaceID,
2965        ) -> prSuiteError,
2966    >,
2967    pub PrefetchColorManagedMediaWithRenderParameters: ::std::option::Option<
2968        unsafe extern "C" fn(
2969            inVideoRenderID: csSDK_uint32,
2970            inTime: PrTime,
2971            inRenderParamsExt: *mut SequenceRender_ParamsRecExt,
2972        ) -> prSuiteError,
2973    >,
2974    pub RenderColorManagedVideoFrameAndConformToPixelFormat: ::std::option::Option<
2975        unsafe extern "C" fn(
2976            inVideoRenderID: csSDK_uint32,
2977            inTime: PrTime,
2978            inRenderParamsExt: *mut SequenceRender_ParamsRecExt,
2979            inCacheFlags: PrRenderCacheType,
2980            inConformToFormat: PrPixelFormat,
2981            getFrameReturn: *mut SequenceRender_GetFrameReturnRec,
2982        ) -> prSuiteError,
2983    >,
2984    pub RenderColorManagedVideoFrame2: ::std::option::Option<
2985        unsafe extern "C" fn(
2986            inVideoRenderID: csSDK_uint32,
2987            inTime: PrTime,
2988            inRenderParamsExt2: *mut SequenceRender_ParamsRecExt2,
2989            inCacheFlags: PrRenderCacheType,
2990            outGetFrameReturn: *mut SequenceRender_GetFrameReturnRec,
2991        ) -> prSuiteError,
2992    >,
2993    pub QueueAsyncColorManagedVideoFrameRender2: ::std::option::Option<
2994        unsafe extern "C" fn(
2995            inVideoRenderID: csSDK_uint32,
2996            inTime: PrTime,
2997            outRequestID: *mut csSDK_uint32,
2998            inRenderParamsExt2: *mut SequenceRender_ParamsRecExt2,
2999            inCacheFlags: PrRenderCacheType,
3000            inAsyncCompletionData: *mut ::std::os::raw::c_void,
3001        ) -> prSuiteError,
3002    >,
3003    pub PrefetchColorManagedMediaWithRenderParameters2: ::std::option::Option<
3004        unsafe extern "C" fn(
3005            inVideoRenderID: csSDK_uint32,
3006            inTime: PrTime,
3007            inRenderParamsExt2: *mut SequenceRender_ParamsRecExt2,
3008        ) -> prSuiteError,
3009    >,
3010    pub RenderColorManagedVideoFrameAndConformToPixelFormat2: ::std::option::Option<
3011        unsafe extern "C" fn(
3012            inVideoRenderID: csSDK_uint32,
3013            inTime: PrTime,
3014            inRenderParamsExt2: *mut SequenceRender_ParamsRecExt2,
3015            inCacheFlags: PrRenderCacheType,
3016            inConformToFormat: PrPixelFormat,
3017            outGetFrameReturn: *mut SequenceRender_GetFrameReturnRec,
3018        ) -> prSuiteError,
3019    >,
3020}
3021#[repr(C, packed)]
3022#[derive(Debug, Copy, Clone)]
3023pub struct PrClipSegmentInfo {
3024    pub mClipID: csSDK_int32,
3025    pub mSegmentStartTime: csSDK_int64,
3026    pub mSegmentEndTime: csSDK_int64,
3027    pub mSegmentOffset: csSDK_int64,
3028    pub mClipStartTime: csSDK_int64,
3029    pub mClipEndTime: csSDK_int64,
3030    pub mClipPath: PrSDKString,
3031    pub mMediaStartTime: csSDK_int64,
3032    pub mMediaEndTime: csSDK_int64,
3033}
3034pub type SegmentInfoCallback = ::std::option::Option<
3035    unsafe extern "C" fn(
3036        inCallbackData: *mut ::std::os::raw::c_void,
3037        inClipSegmentInfo: *mut PrClipSegmentInfo,
3038    ),
3039>;
3040#[repr(C, packed)]
3041#[derive(Debug, Copy, Clone)]
3042pub struct PrSDKSmartRenderingSuite {
3043    pub BuildSmartRenderSegmentList: ::std::option::Option<
3044        unsafe extern "C" fn(
3045            inCallbackFunc: SegmentInfoCallback,
3046            inCallbackData: *mut ::std::os::raw::c_void,
3047            inSegmentsID: csSDK_int32,
3048            inTimeBase: PrTime,
3049            inPixelFormat: PrPixelFormat,
3050        ) -> prSuiteError,
3051    >,
3052    pub BuildSmartRenderSegmentListNoPreviewFiles: ::std::option::Option<
3053        unsafe extern "C" fn(
3054            inCallbackFunc: SegmentInfoCallback,
3055            inCallbackData: *mut ::std::os::raw::c_void,
3056            inSegmentsID: csSDK_int32,
3057            inTimeBase: PrTime,
3058            inPixelFormat: PrPixelFormat,
3059        ) -> prSuiteError,
3060    >,
3061    pub BuildAncillaryDataSegmentMap: ::std::option::Option<
3062        unsafe extern "C" fn(
3063            inCallbackFunc: SegmentInfoCallback,
3064            inCallbackData: *mut ::std::os::raw::c_void,
3065            inVideoSegmentsID: csSDK_int32,
3066            inTimeBase: PrTime,
3067            inPixelFormat: PrPixelFormat,
3068        ) -> prSuiteError,
3069    >,
3070    pub BuildColorManagedSmartRenderSegmentList: ::std::option::Option<
3071        unsafe extern "C" fn(
3072            inCallbackFunc: SegmentInfoCallback,
3073            inCallbackData: *mut ::std::os::raw::c_void,
3074            inSegmentsID: csSDK_int32,
3075            inTimeBase: PrTime,
3076            inPixelFormat: PrPixelFormat,
3077            inColorSpaceID: PrSDKColorSpaceID,
3078        ) -> prSuiteError,
3079    >,
3080    pub BuildColorManagedSmartRenderSegmentListNoPreviewFiles: ::std::option::Option<
3081        unsafe extern "C" fn(
3082            inCallbackFunc: SegmentInfoCallback,
3083            inCallbackData: *mut ::std::os::raw::c_void,
3084            inSegmentsID: csSDK_int32,
3085            inTimeBase: PrTime,
3086            inPixelFormat: PrPixelFormat,
3087            inColorSpaceID: PrSDKColorSpaceID,
3088        ) -> prSuiteError,
3089    >,
3090}
3091#[repr(C, packed)]
3092#[derive(Debug, Copy, Clone)]
3093pub struct PrSDKStringSuite {
3094    #[doc = "\tThis will dispose of an SDKString. It is OK to pass in an empty string.\n\n\t@param\tinSDKString\t\t\t\tthe string to dispose of\n\n\t@return suiteError_StringNotFound\tthis string has not been allocated, or may have already been disposed\n\t@return suiteError_InvalidParms\t\tone of the params is invalid"]
3095    pub DisposeString: ::std::option::Option<
3096        unsafe extern "C" fn(inSDKString: *const PrSDKString) -> prSuiteError,
3097    >,
3098    #[doc = "\tThis will allocate an SDKString from a passed in null terminated string.\n\n\t@param\tinUTF8String\t\t\tnull terminated UTF8 string to copy into the SDK string\n\t@param\tioSDKString\t\t\t\tthis passed in SDK string will receive the new allocated string\n\t\t\t\t\t\t\t\t\t\t- you must dispose of this sdk string\n\n\t@return suiteError_StringNotFound\tthis string has not been allocated, or may have already been disposed\n\t@return suiteError_InvalidParms\t\tone of the params is invalid"]
3099    pub AllocateFromUTF8: ::std::option::Option<
3100        unsafe extern "C" fn(
3101            inUTF8String: *const prUTF8Char,
3102            outSDKString: *mut PrSDKString,
3103        ) -> prSuiteError,
3104    >,
3105    #[doc = "\tThis will copy an SDKString into a UTF8 null terminated string if ioUTF8StringBufferByteCount reports enough bytes in\n\t\tthe string buffer to copy. If there are not enough bytes - suiteError_StringBufferTooSmall will be returned\n\t\tand ioUTF8StringBufferByteCount will contain the number of bytes needed to hold the string.\n\n\t@param\toutUTF8StringBuffer\t\t\t\t\tBuffer where UTF8 string will be stored\n\t@param\tioUTF8StringBufferSizeInElements\tPass in the size, in elements, of outUTF8StringStorage. Returns the number of elements copied.  Includes terminating 0.\n\n\t@return suiteError_InvalidParms\t\t\tOne of the params is invalid\n\t@return suiteError_StringBufferTooSmall\tThe passed in string buffer is too small. ioUTF8StringBufferByteCount will contain the number of bytes needed to copy this string.\n\t@return suiteError_NoError\t\t\t\tThe string has been copied. ioUTF8StringBufferByteCount contains the number of bytes copied."]
3106    pub CopyToUTF8String: ::std::option::Option<
3107        unsafe extern "C" fn(
3108            inSDKString: *const PrSDKString,
3109            outUTF8StringBuffer: *mut prUTF8Char,
3110            ioUTF8StringBufferSizeInElements: *mut csSDK_uint32,
3111        ) -> prSuiteError,
3112    >,
3113    #[doc = "\tThis will allocate an SDKString from a passed in null terminated string.\n\n\t@param\tinUTF16String\t\t\tnull terminated UTF16 string to copy into the SDK string\n\t@param\tioSDKString\t\t\t\tthis passed in SDK string will receive the new allocated string\n\t\t\t\t\t\t\t\t\t\t- you must dispose of this sdk string\n\n\t@return suiteError_StringNotFound\tthis string has not been allocated, or may have already been disposed\n\t@return suiteError_InvalidParms\t\tone of the params is invalid"]
3114    pub AllocateFromUTF16: ::std::option::Option<
3115        unsafe extern "C" fn(
3116            inUTF16String: *const prUTF16Char,
3117            outSDKString: *mut PrSDKString,
3118        ) -> prSuiteError,
3119    >,
3120    #[doc = "\tThis will copy an SDKString into a UTF16 null terminated string if ioUTF16StringBufferByteCount reports enough bytes in\n\t\tthe string buffer to copy. If there are not enough bytes - suiteError_StringBufferTooSmall will be returned\n\t\tand ioUTF16StringBufferByteCount will contain the number of bytes needed to hold the string.\n\n\t@param\toutUTF16StringBuffer\t\t\t\tBuffer where UTF16 string will be stored\n\t@param\tioUTF16StringBufferSizeInElements\tPass in the size, in elements, of outUTF16StringStorage. Returns the number of elements copied.  Includes terminating 0.\n\n\t@return suiteError_InvalidParms\t\t\tOne of the params is invalid\n\t@return suiteError_StringBufferTooSmall\tThe passed in string buffer is too small. ioUTF16StringBufferByteCount will contain the number of bytes needed to copy this string.\n\t@return suiteError_NoError\t\t\t\tThe string has been copied. ioUTF16StringBufferByteCount contains the number of bytes copied."]
3121    pub CopyToUTF16String: ::std::option::Option<
3122        unsafe extern "C" fn(
3123            inSDKString: *const PrSDKString,
3124            outUTF16StringBuffer: *mut prUTF16Char,
3125            ioUTF16StringBufferSizeInElements: *mut csSDK_uint32,
3126        ) -> prSuiteError,
3127    >,
3128}
3129pub type ThreadedWorkCallback =
3130    ::std::option::Option<unsafe extern "C" fn(inInstanceData: *mut ::std::os::raw::c_void)>;
3131pub type ThreadedWorkCallbackVersion3 = ::std::option::Option<
3132    unsafe extern "C" fn(
3133        inInstanceData: *mut ::std::os::raw::c_void,
3134        inPluginID: csSDK_int32,
3135        inStatus: prSuiteError,
3136    ),
3137>;
3138pub type ThreadedWorkRegistration = *mut ::std::os::raw::c_void;
3139#[repr(C, packed)]
3140#[derive(Debug, Copy, Clone)]
3141pub struct PrSDKThreadedWorkSuiteVersion2 {
3142    pub RegisterForThreadedWork: ::std::option::Option<
3143        unsafe extern "C" fn(
3144            inCallback: ThreadedWorkCallback,
3145            inInstanceData: *mut ::std::os::raw::c_void,
3146            outRegistrationData: *mut ThreadedWorkRegistration,
3147        ) -> prSuiteError,
3148    >,
3149    pub QueueThreadedWork: ::std::option::Option<
3150        unsafe extern "C" fn(inRegistrationData: ThreadedWorkRegistration) -> prSuiteError,
3151    >,
3152    pub UnregisterForThreadedWork: ::std::option::Option<
3153        unsafe extern "C" fn(inRegistrationData: ThreadedWorkRegistration) -> prSuiteError,
3154    >,
3155    pub RegisterForSingleThreadedWork: ::std::option::Option<
3156        unsafe extern "C" fn(
3157            inCallback: ThreadedWorkCallback,
3158            inInstanceData: *mut ::std::os::raw::c_void,
3159            outRegistrationData: *mut ThreadedWorkRegistration,
3160        ) -> prSuiteError,
3161    >,
3162}
3163#[doc = "\tThe following typedef is provided for short-term backwards compatibility only.\n\tClients should prefer the explicit versioned struct name."]
3164pub type PrSDKThreadedWorkSuite = PrSDKThreadedWorkSuiteVersion2;
3165#[repr(C, packed)]
3166#[derive(Debug, Copy, Clone)]
3167pub struct PrSDKThreadedWorkSuiteVersion3 {
3168    pub RegisterForThreadedWork: ::std::option::Option<
3169        unsafe extern "C" fn(
3170            inCallback: ThreadedWorkCallbackVersion3,
3171            inInstanceData: *mut ::std::os::raw::c_void,
3172            outRegistrationData: *mut ThreadedWorkRegistration,
3173        ) -> prSuiteError,
3174    >,
3175    pub QueueThreadedWork: ::std::option::Option<
3176        unsafe extern "C" fn(
3177            inRegistrationData: ThreadedWorkRegistration,
3178            inPluginID: csSDK_int32,
3179        ) -> prSuiteError,
3180    >,
3181    pub UnregisterForThreadedWork: ::std::option::Option<
3182        unsafe extern "C" fn(inRegistrationData: ThreadedWorkRegistration) -> prSuiteError,
3183    >,
3184    pub RegisterForSingleThreadedWork: ::std::option::Option<
3185        unsafe extern "C" fn(
3186            inCallback: ThreadedWorkCallbackVersion3,
3187            inInstanceData: *mut ::std::os::raw::c_void,
3188            outRegistrationData: *mut ThreadedWorkRegistration,
3189        ) -> prSuiteError,
3190    >,
3191}
3192pub const PrNodeInfoFlag_kPrNodeInfoFlag_IsCompletelyOpaque: PrNodeInfoFlag = 1;
3193pub const PrNodeInfoFlag_kPrNodeInfoFlag_IsCompletelyTransparent: PrNodeInfoFlag = 2;
3194pub const PrNodeInfoFlag_kPrNodeInfoFlag_DoesNotDependOnSequenceTime: PrNodeInfoFlag = 4;
3195pub const PrNodeInfoFlag_kPrNodeInfoFlag_NodeDoesNotDependOnSegmentTime: PrNodeInfoFlag = 8;
3196pub const PrNodeInfoFlag_kPrNodeInfoFlag_NodeDoesNotDependOnClipInOutTime: PrNodeInfoFlag = 16;
3197pub const PrNodeInfoFlag_kPrNodeInfoFlag_IsNOP: PrNodeInfoFlag = 32;
3198pub const PrNodeInfoFlag_kPrNodeInfoFlag_NodeDoesNotDependOnTrackInputs: PrNodeInfoFlag = 64;
3199pub const PrNodeInfoFlag_kPrNodeInfoFlag_IsAdjustment: PrNodeInfoFlag = 128;
3200pub const PrNodeInfoFlag_kPrNodeInfoFlag_MaxSize: PrNodeInfoFlag = 4294967295;
3201pub type PrNodeInfoFlag = ::std::os::raw::c_uint;
3202pub const kMaxNodeTypeStringSize: ::std::os::raw::c_int = 256;
3203pub const PrKeyframeInterpolationModeFlag_kPrInterpolationModeFlag_Linear:
3204    PrKeyframeInterpolationModeFlag = 0;
3205pub const PrKeyframeInterpolationModeFlag_kPrInterpolationModeFlag_Hold:
3206    PrKeyframeInterpolationModeFlag = 4;
3207pub const PrKeyframeInterpolationModeFlag_kPrInterpolationModeFlag_Bezier:
3208    PrKeyframeInterpolationModeFlag = 5;
3209pub const PrKeyframeInterpolationModeFlag_kPrInterpolationModeFlag_Time:
3210    PrKeyframeInterpolationModeFlag = 6;
3211pub const PrKeyframeInterpolationModeFlag_kPrInterpolationModeFlag_TimeTransitionStart:
3212    PrKeyframeInterpolationModeFlag = 7;
3213pub const PrKeyframeInterpolationModeFlag_kPrInterpolationModeFlag_TimeTransitionEnd:
3214    PrKeyframeInterpolationModeFlag = 8;
3215pub const PrKeyframeInterpolationModeFlag_kPrInterpolationModeFlag_MaxSize:
3216    PrKeyframeInterpolationModeFlag = 4294967295;
3217pub type PrKeyframeInterpolationModeFlag = ::std::os::raw::c_uint;
3218pub const PrNodeScalePolicy_kPrNodeScalePolicy_None: PrNodeScalePolicy = 0;
3219pub const PrNodeScalePolicy_kPrNodeScalePolicy_ScaleToFrame: PrNodeScalePolicy = 1;
3220pub const PrNodeScalePolicy_kPrNodeScalePolicy_ScaleToFillCrop: PrNodeScalePolicy = 2;
3221pub const PrNodeScalePolicy_kPrNodeScalePolicy_ScaleToFillDistort: PrNodeScalePolicy = 3;
3222pub type PrNodeScalePolicy = ::std::os::raw::c_uint;
3223#[doc = "\tThis callback function is used by the property query methods. Iteration can be cancelled at\n\tany time by returning a result other than malNoError.\n\n\t@param\tinPluginObject\t\t\tA value (such as \"this\") passed by the plugin in the original call\n\t\t\t\t\t\t\t\t\tand passed back in the callback. May be NULL.\n\t@param\tinKey\t\t\t\t\tThe key for the property\n\t@param\tinValue\t\t\t\t\tThe value for the property"]
3224pub type SegmentNodePropertyCallback = ::std::option::Option<
3225    unsafe extern "C" fn(
3226        inPluginObject: csSDK_int32,
3227        inKey: *const ::std::os::raw::c_char,
3228        inValue: *const prUTF8Char,
3229    ) -> prSuiteError,
3230>;
3231#[repr(C, packed)]
3232#[derive(Debug, Copy, Clone)]
3233pub struct PrSDKVideoSegmentSuite {
3234    #[doc = "\tFrom a sequence, get an ID to its video segments ID. This is a ref-counted\n\tobject, and must be released when no longer needed.\n\n\t@param\tinTimelineID\t\tThe plugin timeline ID for the sequence\n\t@param\toutVideoSegmentsID\tReceives the ID for the Video Segments"]
3235    pub AcquireVideoSegmentsID: ::std::option::Option<
3236        unsafe extern "C" fn(
3237            inTimelineData: PrTimelineID,
3238            outVideoSegmentsID: *mut csSDK_int32,
3239        ) -> prSuiteError,
3240    >,
3241    #[doc = "\tFrom a sequence, get an ID to its video segments ID with preview files substituted. This is a ref-counted\n\tobject, and must be released when no longer needed.\n\n\t@param\tinTimelineID\t\tThe plugin timeline ID for the sequence\n\t@param\toutVideoSegmentsID\tReceives the ID for the Video Segments with Previews."]
3242    pub AcquireVideoSegmentsWithPreviewsID: ::std::option::Option<
3243        unsafe extern "C" fn(
3244            inTimelineData: PrTimelineID,
3245            outVideoSegmentsID: *mut csSDK_int32,
3246        ) -> prSuiteError,
3247    >,
3248    #[doc = "\tFrom a sequence, get an ID to its video segments ID with preview files substituted, but only previews\n\tfor sections that are opaque. This is appropriate for use when using previews for nested sequences. This is a ref-counted\n\tobject, and must be released when no longer needed.\n\n\t@param\tinTimelineID\t\tThe plugin timeline ID for the sequence\n\t@param\toutVideoSegmentsID\tRecevies the ID for the Video Segments with Previews."]
3249    pub AcquireVideoSegmentsWithOpaquePreviewsID: ::std::option::Option<
3250        unsafe extern "C" fn(
3251            inTimelineData: PrTimelineID,
3252            outVideoSegmentsID: *mut csSDK_int32,
3253        ) -> prSuiteError,
3254    >,
3255    #[doc = "\tRelease a Video Segments ID\n\n\t@param\tinVideoSegmentsID\tThe Video Segments ID to release"]
3256    pub ReleaseVideoSegmentsID:
3257        ::std::option::Option<unsafe extern "C" fn(inVideoSegmentsID: csSDK_int32) -> prSuiteError>,
3258    #[doc = "\tGet the hash of a Video Segments object\n\n\t@param\tinVideoSegmentsID\tThe Video Segments ID\n\t@param\toutHash\t\t\t\tThe GUID hash of the segments"]
3259    pub GetHash: ::std::option::Option<
3260        unsafe extern "C" fn(
3261            inVideoSegmentsID: csSDK_int32,
3262            outHash: *mut prPluginID,
3263        ) -> prSuiteError,
3264    >,
3265    #[doc = "\tGet the number of segments in the segments object\n\n\t@param\tinVideoSegmentsID\tThe Video Segments ID\n\t@param\toutNumSegments\t\tThe number of segments"]
3266    pub GetSegmentCount: ::std::option::Option<
3267        unsafe extern "C" fn(
3268            inVideoSegmentsID: csSDK_int32,
3269            outNumSegments: *mut csSDK_int32,
3270        ) -> prSuiteError,
3271    >,
3272    #[doc = "\tGet the details of the Nth Node.\n\n\t@param\tinVideoSegmentsID\tThe Video Segments ID\n\t@param\tinIndex\t\t\t\tWhich segment?\n\t@param\toutStartTime\t\tThe start time of the segment\n\t@param\toutEndTime\t\t\tThe end time of the segment\n\t@param\toutSegmentOffset\tThe offset value for the segment\n\t@param\toutHash\t\t\t\tThe hash for the segment"]
3273    pub GetSegmentInfo: ::std::option::Option<
3274        unsafe extern "C" fn(
3275            inVideoSegmentsID: csSDK_int32,
3276            inIndex: csSDK_int32,
3277            outStartTime: *mut PrTime,
3278            outEndTime: *mut PrTime,
3279            outSegmentOffset: *mut PrTime,
3280            outHash: *mut prPluginID,
3281        ) -> prSuiteError,
3282    >,
3283    #[doc = "\tGet a segment node. This object is ref-counted and must be released.\n\n\t@param\tinVideoSegmentsID\tThe Video Segments ID\n\t@param\tinHash\t\t\t\tThe hash for the segment\n\t@param\toutVideoNodeID\t\tThe video node ID."]
3284    pub AcquireNodeID: ::std::option::Option<
3285        unsafe extern "C" fn(
3286            inVideoSegmentsID: csSDK_int32,
3287            inHash: *mut prPluginID,
3288            outVideoNodeID: *mut csSDK_int32,
3289        ) -> prSuiteError,
3290    >,
3291    #[doc = "\tRelease a Video Node ID\n\n\t@param\tinVideoNodeID\t\tThe Video Node ID to release"]
3292    pub ReleaseVideoNodeID:
3293        ::std::option::Option<unsafe extern "C" fn(inVideoNodeID: csSDK_int32) -> prSuiteError>,
3294    #[doc = "\tGet details about a node.\n\n\t@param\tinVideoNodeID\t\tThe Video Node ID\n\t@param\toutNodeType\t\t\tA string of size kMaxNodeTypeStringSize holding the node type\n\t@param\toutHash\t\t\t\tThe hash for the node (may be different than the hash used to get the node)\n\t@param\toutInfoFlags\t\tThe flags for this node (see enum above)"]
3295    pub GetNodeInfo: ::std::option::Option<
3296        unsafe extern "C" fn(
3297            inVideoNodeID: csSDK_int32,
3298            outNodeType: *mut ::std::os::raw::c_char,
3299            outHash: *mut prPluginID,
3300            outFlags: *mut csSDK_int32,
3301        ) -> prSuiteError,
3302    >,
3303    #[doc = "\tGet the number of inputs on the node object\n\n\t@param\tinVideoNodeID\t\tThe Video Node ID\n\t@param\toutNumInputs\t\tThe number of inputs"]
3304    pub GetNodeInputCount: ::std::option::Option<
3305        unsafe extern "C" fn(
3306            inVideoNodeID: csSDK_int32,
3307            outNumInputs: *mut csSDK_int32,
3308        ) -> prSuiteError,
3309    >,
3310    #[doc = "\tGet a segment node that is an input to another node. This object is ref-counted and must be released.\n\n\t@param\tinVideoNodeID\t\tThe Video Node ID\n\t@param\tinIndex\t\t\t\tThe index of the input\n\t@param\toutOffset\t\t\tThe time offset relative to it's parent node\n\t@param\toutInputVideoNodeID\tThe video node ID of the input node."]
3311    pub AcquireInputNodeID: ::std::option::Option<
3312        unsafe extern "C" fn(
3313            inVideoNodeID: csSDK_int32,
3314            inIndex: csSDK_int32,
3315            outOffset: *mut PrTime,
3316            outInputVideoNodeID: *mut csSDK_int32,
3317        ) -> prSuiteError,
3318    >,
3319    #[doc = "\tGet the number of inputs on the node object\n\n\t@param\tinVideoNodeID\t\tThe Video Node ID\n\t@param\toutNumOperators\t\tThe number of operators"]
3320    pub GetNodeOperatorCount: ::std::option::Option<
3321        unsafe extern "C" fn(
3322            inVideoNodeID: csSDK_int32,
3323            outNumOperators: *mut csSDK_int32,
3324        ) -> prSuiteError,
3325    >,
3326    #[doc = "\tGet a segment node that is an operator on another node. This object is ref-counted and must be released.\n\n\t@param\tinVideoNodeID\t\tThe Video Node ID\n\t@param\tinIndex\t\t\t\tThe index of the operator\n\t@param\toutOperatorVideoNodeID\tThe video node ID of the input node."]
3327    pub AcquireOperatorNodeID: ::std::option::Option<
3328        unsafe extern "C" fn(
3329            inVideoNodeID: csSDK_int32,
3330            inIndex: csSDK_int32,
3331            outOperatorVideoNodeID: *mut csSDK_int32,
3332        ) -> prSuiteError,
3333    >,
3334    #[doc = "\tIterate all of the properties on a node.\n\n\t@param\tinVideoNodeID\t\tThe Video Node ID\n\t@param\tinCallback\t\t\tThe callback function to return the properties\n\t@param\tinPluginObject\t\tThe plugin object returned in the callback."]
3335    pub IterateNodeProperties: ::std::option::Option<
3336        unsafe extern "C" fn(
3337            inVideoNodeID: csSDK_int32,
3338            inCallback: SegmentNodePropertyCallback,
3339            inPluginObject: csSDK_int32,
3340        ) -> prSuiteError,
3341    >,
3342    #[doc = "\tGet the value of a single property on a node\n\n\t@param\tinVideoNodeID\t\tThe Video Node ID\n\t@param\tinKey\t\t\t\tThe key of the property\n\t@param\toutValue\t\t\tA string holding the value. This UTF8 string is allocated using PrNewPtr,\n\t\t\t\t\t\t\t\tand ownership is transferred to the plugin and must be disposed\n\t\t\t\t\t\t\t\tby the plugin."]
3343    pub GetNodeProperty: ::std::option::Option<
3344        unsafe extern "C" fn(
3345            inVideoNodeID: csSDK_int32,
3346            inKey: *const ::std::os::raw::c_char,
3347            outValue: *mut PrMemoryPtr,
3348        ) -> prSuiteError,
3349    >,
3350    #[doc = "\tGet the number of params\n\n\t@param\tinVideoNodeID\t\tThe Video Node ID\n\t@param\toutParamCount\t\tThe number of params"]
3351    pub GetParamCount: ::std::option::Option<
3352        unsafe extern "C" fn(
3353            inVideoNodeID: csSDK_int32,
3354            outParamCount: *mut csSDK_int32,
3355        ) -> prSuiteError,
3356    >,
3357    #[doc = "\tGet a specific param value at a specific time\n\n\t@param\tinVideoNodeID\t\tThe Video Node ID\n\t@param\tinIndex\t\t\t\tThe index of the param\n\t@param\tinTime\t\t\t\tThe time requested (in Media time)\n\t@param\toutParam\t\t\tThe param"]
3358    pub GetParam: ::std::option::Option<
3359        unsafe extern "C" fn(
3360            inVideoNodeID: csSDK_int32,
3361            inIndex: csSDK_int32,
3362            inTime: PrTime,
3363            outParam: *mut PrParam,
3364        ) -> prSuiteError,
3365    >,
3366    #[doc = "\tGet the next keyframe time after the specified time.\n\n\tExample: Keyframes at 0 and 10\n\tinTime = -1, outKeyframeTime = 0\n\tinTime = 0, outKeyframeTime = 10\n\tinTime = 9, outKeyframeTime = 10\n\tinTime = 10, returns suiteError_NoKeyframeAfterInTime\n\n\t@param\tinVideoNodeID\t\tThe Video Node ID\n\t@param\tinIndex\t\t\t\tThe index of the param\n\t@param\tinTime\t\t\t\tThe lower bound time\n\t@param\toutKeyframeTime\t\tThe time of the next keyframe > inTime\n\t@param\toutKeyframeInterpolationMode\tThe temporal interpolation mode of the keyframe, see\n\t\t\t\t\t\t\t\t\t\t\tthe enum for PrKeyframeInterpolationModeFlag above"]
3367    pub GetNextKeyframeTime: ::std::option::Option<
3368        unsafe extern "C" fn(
3369            inVideoNodeID: csSDK_int32,
3370            inIndex: csSDK_int32,
3371            inTime: PrTime,
3372            outKeyframeTime: *mut PrTime,
3373            outKeyframeInterpolationMode: *mut csSDK_int32,
3374        ) -> prSuiteError,
3375    >,
3376    #[doc = "\tTransform a node local time into a time appropriate for node inputs and\n\toperators. When used on the clip node, for instance, this will take into\n\taccount speed change, reverse, time remapping and return a time value\n\twhich can be used in the Media and Effect nodes.\n\tIf the node does not have a time transform, function will not fail but\n\twill return in input time in the output."]
3377    pub TransformNodeTime: ::std::option::Option<
3378        unsafe extern "C" fn(
3379            inVideoNodeID: csSDK_int32,
3380            inTime: PrTime,
3381            outTime: *mut PrTime,
3382        ) -> prSuiteError,
3383    >,
3384    #[doc = "\tRetrieve general properties of a sequence (video segments). I.e. width/height, par and framerate.\n\n\t@param\tinTimelineID\t\t\t\t\tThe plugin timeline ID for the sequence\n\t@param\toutWidth\t\t\t\t\t\tReceives width of the sequence\n\t@param\toutHeight\t\t\t\t\t\tReceives height of the sequence\n\t@param\toutPixelAspectRatioNumerator\tReceives the pixel aspect ratio numerator of the sequence\n\t@param\toutPixelAspectRatioDenominator\tReceives the pixel aspect ratio denominator of the sequence\n\t@param\toutFrameRateNumerator\t\t\tReceives the frame rate numerator of the sequence\n\t@param\toutFrameRateDenominator\t\t\tReceives the frame rate denominator of the sequence"]
3385    pub GetVideoSegmentsProperties: ::std::option::Option<
3386        unsafe extern "C" fn(
3387            inTimelineData: PrTimelineID,
3388            outBounds: *mut prRect,
3389            outPixelAspectRatioNumerator: *mut csSDK_int32,
3390            outPixelAspectRatioDenominator: *mut csSDK_int32,
3391            outFrameRate: *mut PrTime,
3392            outFieldType: *mut prFieldType,
3393        ) -> prSuiteError,
3394    >,
3395    #[doc = "\tFrom a sequence, get a segment node for a requested time. This is a ref-counted\n\tobject, and must be released when no longer needed.\n\n\t@param\tinVideoSegmentsID\tThe Video Segments ID\n\t@param\tinTime\t\t\t\tRequested segment time\n\t@param\toutVideoNodeID\t\tThe video node ID\n\t@param\toutSegmentOffset\tOffset of retrieved segment"]
3396    pub AcquireNodeForTime: ::std::option::Option<
3397        unsafe extern "C" fn(
3398            inVideoSegmentsID: csSDK_int32,
3399            inTime: PrTime,
3400            outVideoNodeID: *mut csSDK_int32,
3401            outSegmentOffset: *mut PrTime,
3402        ) -> prSuiteError,
3403    >,
3404    #[doc = "\tFrom a sequence, get an ID to its video segments ID. This is a ref-counted\n\tobject, and must be released when no longer needed.\n\n\t@param\tinTimelineID\t\tThe plugin timeline ID for the sequence\n\t@param\toutVideoSegmentsID\tReceives the ID for the Video Segments"]
3405    pub AcquireVideoSegmentsIDWithStreamLabel: ::std::option::Option<
3406        unsafe extern "C" fn(
3407            inTimelineData: PrTimelineID,
3408            inStreamLabel: PrSDKStreamLabel,
3409            outVideoSegmentsID: *mut csSDK_int32,
3410        ) -> prSuiteError,
3411    >,
3412    #[doc = "\tFrom a sequence, get an ID to its video segments ID with preview files substituted. This is a ref-counted\n\tobject, and must be released when no longer needed.\n\n\t@param\tinTimelineID\t\tThe plugin timeline ID for the sequence\n\t@param\toutVideoSegmentsID\tReceives the ID for the Video Segments with Previews."]
3413    pub AcquireVideoSegmentsWithPreviewsIDWithStreamLabel: ::std::option::Option<
3414        unsafe extern "C" fn(
3415            inTimelineData: PrTimelineID,
3416            inStreamLabel: PrSDKStreamLabel,
3417            outVideoSegmentsID: *mut csSDK_int32,
3418        ) -> prSuiteError,
3419    >,
3420    #[doc = "\tFrom a sequence, get an ID to its video segments ID with preview files substituted, but only previews\n\tfor sections that are opaque. This is appropriate for use when using previews for nested sequences. This is a ref-counted\n\tobject, and must be released when no longer needed.\n\n\t@param\tinTimelineID\t\tThe plugin timeline ID for the sequence\n\t@param\toutVideoSegmentsID\tRecevies the ID for the Video Segments with Previews."]
3421    pub AcquireVideoSegmentsWithOpaquePreviewsIDWithStreamLabel: ::std::option::Option<
3422        unsafe extern "C" fn(
3423            inTimelineData: PrTimelineID,
3424            inStreamLabel: PrSDKStreamLabel,
3425            outVideoSegmentsID: *mut csSDK_int32,
3426        ) -> prSuiteError,
3427    >,
3428    #[doc = "\tFrom a sequence, get the first segment node that intersects with a range of times.\n  This is a ref-counted object, and must be released when no longer needed.\n\n\t@param\tinVideoSegmentsID\tThe Video Segments ID\n\t@param\tinStartTime\t\t\tThe start of the requested segment time range\n\t@param\tinEndTime\t\t\tThe end of the requested segment time range\n\t@param\toutVideoNodeID\t\tThe video node ID\n\t@param\toutSegmentOffset\tOffset of retrieved segment"]
3429    pub AcquireFirstNodeInTimeRange: ::std::option::Option<
3430        unsafe extern "C" fn(
3431            inVideoSegmentsID: csSDK_int32,
3432            inStartTime: PrTime,
3433            inEndTime: PrTime,
3434            outVideoNodeID: *mut csSDK_int32,
3435            outSegmentOffset: *mut PrTime,
3436        ) -> prSuiteError,
3437    >,
3438    #[doc = "\tAcquire the node owning an operator\n\n\t@param\tinVideoNodeID\t\tThe operator\n\t@param\toutOwnerNodeID\t\tThe owner"]
3439    pub AcquireOperatorOwnerNodeID: ::std::option::Option<
3440        unsafe extern "C" fn(
3441            inVideoNodeID: csSDK_int32,
3442            outOwnerNodeID: *mut csSDK_int32,
3443        ) -> prSuiteError,
3444    >,
3445    #[doc = "\tGet graphic layer params at a specific time\n\n\t@param\tinVideoNodeID\t\tThe Video Node ID\n\t@param\tinTime\t\t\t\tThe time requested (in Media time)"]
3446    pub GetGraphicsTransformedParams: ::std::option::Option<
3447        unsafe extern "C" fn(
3448            inVideoNodeID: csSDK_int32,
3449            inTime: PrTime,
3450            outPosition: *mut prFPoint64,
3451            outAnchor: *mut prFPoint64,
3452            outScale: *mut prFPoint64,
3453            outRotation: *mut f32,
3454        ) -> prSuiteError,
3455    >,
3456    #[doc = "\tGet graphic layer group ID\n\n\t@param\tinVideoNodeID\t\tThe Video Node ID"]
3457    pub HasGraphicsGroup: ::std::option::Option<
3458        unsafe extern "C" fn(
3459            inVideoNodeID: csSDK_int32,
3460            outHasGraphicGroup: *mut bool,
3461        ) -> prSuiteError,
3462    >,
3463    #[doc = "\tGet graphic layer group ID\n\n\t@param\tinVideoNodeID\t\tThe Video Node ID"]
3464    pub GetGraphicsGroupID: ::std::option::Option<
3465        unsafe extern "C" fn(
3466            inVideoNodeID: csSDK_int32,
3467            outGroupID: *mut csSDK_int32,
3468        ) -> prSuiteError,
3469    >,
3470    #[doc = " Color managed version of GetVideoSegmentsProperties\n\tRetrieve general properties of a sequence (video segments). I.e. width/height, par and framerate\n and color space\n\n\t@param\tinTimelineID\t\t\t\t\tThe plugin timeline ID for the sequence\n\t@param\toutWidth\t\t\t\t\t\tReceives width of the sequence\n\t@param\toutHeight\t\t\t\t\t\tReceives height of the sequence\n\t@param\toutPixelAspectRatioNumerator\tReceives the pixel aspect ratio numerator of the sequence\n\t@param\toutPixelAspectRatioDenominator\tReceives the pixel aspect ratio denominator of the sequence\n\t@param\toutFrameRateNumerator\t\t\tReceives the frame rate numerator of the sequence\n\t@param\toutFrameRateDenominator\t\t\tReceives the frame rate denominator of the sequence\n @param\toutColorSpaceID\t\t\t\t\tReceives the opaque ID of the sequence's working color space"]
3471    pub GetVideoSegmentsPropertiesExt: ::std::option::Option<
3472        unsafe extern "C" fn(
3473            inTimelineData: PrTimelineID,
3474            outBounds: *mut prRect,
3475            outPixelAspectRatioNumerator: *mut csSDK_int32,
3476            outPixelAspectRatioDenominator: *mut csSDK_int32,
3477            outFrameRate: *mut PrTime,
3478            outFieldType: *mut prFieldType,
3479            outColorSpaceID: *mut PrSDKColorSpaceID,
3480        ) -> prSuiteError,
3481    >,
3482    #[doc = "\tFrom a sequence, get the first segment node that intersects with a range of times.\n  This is a ref-counted object, and must be released when no longer needed.\n\n\t@param\tinVideoSegmentsID\tThe Video Segments ID\n\t@param\tinStartTime\t\t\tThe start of the requested segment time range\n\t@param\tinEndTime\t\t\tThe end of the requested segment time range\n\t@param\toutVideoNodeID\t\tThe video node ID\n\t@param\toutSegmentStartTime\tStart time of retrieved segment\n\t@param\toutSegmentEndTime\tEnd time of retrieved segment\n\t@param\toutSegmentOffset\tOffset of retrieved segment"]
3483    pub AcquireFirstNodeInTimeRangeExt: ::std::option::Option<
3484        unsafe extern "C" fn(
3485            inVideoSegmentsID: csSDK_int32,
3486            inStartTime: PrTime,
3487            inEndTime: PrTime,
3488            outVideoNodeID: *mut csSDK_int32,
3489            outSegmentStartTime: *mut PrTime,
3490            outSegmentEndTime: *mut PrTime,
3491            outSegmentOffset: *mut PrTime,
3492        ) -> prSuiteError,
3493    >,
3494    #[doc = "\tReturns the relative time rate of a node at a given point in time.\n  Node time rate varies with e.g. time remapping but not the playback speed of the sequence\n  Can be thought of as the instantaneous rate of change of TransformNodeTime()\n\t@param\tinVideoNodeID\t\tThe Video Node ID\n\t@param\tinTime\t\t\t\tThe time requested (in Media time - untransformed)\n\t@param\toutRate\t\t\t\tThe node rate relative to the containing sequence"]
3495    pub GetNodeTimeScale: ::std::option::Option<
3496        unsafe extern "C" fn(
3497            inVideoNodeID: csSDK_int32,
3498            inTime: PrTime,
3499            outRate: *mut f64,
3500        ) -> prSuiteError,
3501    >,
3502}
3503#[repr(C, packed)]
3504#[derive(Debug, Copy, Clone)]
3505pub struct PrSDKWindowSuite {
3506    pub GetMainWindow: ::std::option::Option<unsafe extern "C" fn() -> prWnd>,
3507    pub UpdateAllWindows: ::std::option::Option<unsafe extern "C" fn()>,
3508}
3509pub type A_long = i32;
3510pub type A_u_long = u32;
3511pub type A_char = ::std::os::raw::c_char;
3512pub type A_FpLong = f64;
3513pub type A_FpShort = f32;
3514pub type A_short = i16;
3515pub type A_u_short = u16;
3516pub type A_u_char = u8;
3517pub type A_Boolean = u8;
3518pub type A_intptr_t = isize;
3519pub type A_u_longlong = u64;
3520pub type UInt32 = ::std::os::raw::c_uint;
3521pub type SInt32 = ::std::os::raw::c_int;
3522pub type Fixed = SInt32;
3523pub type Ptr = *mut ::std::os::raw::c_char;
3524pub type Handle = *mut Ptr;
3525pub type Boolean = ::std::os::raw::c_uchar;
3526pub type ProcPtr = ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_long>;
3527pub type ProcHandle = *mut ProcPtr;
3528#[repr(C, packed(2))]
3529#[derive(Debug, Copy, Clone)]
3530pub struct ProcessSerialNumber {
3531    pub highLongOfPSN: UInt32,
3532    pub lowLongOfPSN: UInt32,
3533}
3534pub type ProcessSerialNumberPtr = *mut ProcessSerialNumber;
3535pub const PF_Stage_DEVELOP: _bindgen_ty_23 = 0;
3536pub const PF_Stage_ALPHA: _bindgen_ty_23 = 1;
3537pub const PF_Stage_BETA: _bindgen_ty_23 = 2;
3538pub const PF_Stage_RELEASE: _bindgen_ty_23 = 3;
3539pub type _bindgen_ty_23 = ::std::os::raw::c_uint;
3540pub type PF_Stage = A_long;
3541pub const PF_Quality_DRAWING_AUDIO: _bindgen_ty_24 = -1;
3542pub const PF_Quality_LO: _bindgen_ty_24 = 0;
3543pub const PF_Quality_HI: _bindgen_ty_24 = 1;
3544pub type _bindgen_ty_24 = ::std::os::raw::c_int;
3545pub type PF_Quality = A_long;
3546pub const PF_MF_Alpha_PREMUL: _bindgen_ty_25 = 0;
3547pub const PF_MF_Alpha_STRAIGHT: _bindgen_ty_25 = 1;
3548pub type _bindgen_ty_25 = ::std::os::raw::c_uint;
3549pub type PF_ModeFlags = A_long;
3550pub const PF_Field_FRAME: _bindgen_ty_26 = 0;
3551pub const PF_Field_UPPER: _bindgen_ty_26 = 1;
3552pub const PF_Field_LOWER: _bindgen_ty_26 = 2;
3553pub type _bindgen_ty_26 = ::std::os::raw::c_uint;
3554pub type PF_Field = A_long;
3555pub const PF_Param_RESERVED: _bindgen_ty_27 = -1;
3556pub const PF_Param_LAYER: _bindgen_ty_27 = 0;
3557pub const PF_Param_SLIDER: _bindgen_ty_27 = 1;
3558pub const PF_Param_FIX_SLIDER: _bindgen_ty_27 = 2;
3559pub const PF_Param_ANGLE: _bindgen_ty_27 = 3;
3560pub const PF_Param_CHECKBOX: _bindgen_ty_27 = 4;
3561pub const PF_Param_COLOR: _bindgen_ty_27 = 5;
3562pub const PF_Param_POINT: _bindgen_ty_27 = 6;
3563pub const PF_Param_POPUP: _bindgen_ty_27 = 7;
3564pub const PF_Param_CUSTOM: _bindgen_ty_27 = 8;
3565pub const PF_Param_NO_DATA: _bindgen_ty_27 = 9;
3566pub const PF_Param_FLOAT_SLIDER: _bindgen_ty_27 = 10;
3567pub const PF_Param_ARBITRARY_DATA: _bindgen_ty_27 = 11;
3568pub const PF_Param_PATH: _bindgen_ty_27 = 12;
3569pub const PF_Param_GROUP_START: _bindgen_ty_27 = 13;
3570pub const PF_Param_GROUP_END: _bindgen_ty_27 = 14;
3571pub const PF_Param_BUTTON: _bindgen_ty_27 = 15;
3572pub const PF_Param_RESERVED2: _bindgen_ty_27 = 16;
3573pub const PF_Param_RESERVED3: _bindgen_ty_27 = 17;
3574pub const PF_Param_POINT_3D: _bindgen_ty_27 = 18;
3575pub type _bindgen_ty_27 = ::std::os::raw::c_int;
3576pub type PF_ParamType = A_long;
3577pub const PF_ParamFlag_RESERVED1: _bindgen_ty_28 = 1;
3578pub const PF_ParamFlag_CANNOT_TIME_VARY: _bindgen_ty_28 = 2;
3579pub const PF_ParamFlag_CANNOT_INTERP: _bindgen_ty_28 = 4;
3580pub const PF_ParamFlag_RESERVED2: _bindgen_ty_28 = 8;
3581pub const PF_ParamFlag_RESERVED3: _bindgen_ty_28 = 16;
3582pub const PF_ParamFlag_COLLAPSE_TWIRLY: _bindgen_ty_28 = 32;
3583pub const PF_ParamFlag_SUPERVISE: _bindgen_ty_28 = 64;
3584pub const PF_ParamFlag_START_COLLAPSED: _bindgen_ty_28 = 32;
3585pub const PF_ParamFlag_USE_VALUE_FOR_OLD_PROJECTS: _bindgen_ty_28 = 128;
3586pub const PF_ParamFlag_LAYER_PARAM_IS_TRACKMATTE: _bindgen_ty_28 = 128;
3587pub const PF_ParamFlag_EXCLUDE_FROM_HAVE_INPUTS_CHANGED: _bindgen_ty_28 = 256;
3588pub const PF_ParamFlag_SKIP_REVEAL_WHEN_UNHIDDEN: _bindgen_ty_28 = 512;
3589pub type _bindgen_ty_28 = ::std::os::raw::c_uint;
3590pub type PF_ParamFlags = A_long;
3591pub const PF_Err_NONE: _bindgen_ty_29 = 0;
3592pub const PF_Err_OUT_OF_MEMORY: _bindgen_ty_29 = 4;
3593pub const PF_Err_INTERNAL_STRUCT_DAMAGED: _bindgen_ty_29 = 512;
3594pub const PF_Err_INVALID_INDEX: _bindgen_ty_29 = 513;
3595pub const PF_Err_UNRECOGNIZED_PARAM_TYPE: _bindgen_ty_29 = 514;
3596pub const PF_Err_INVALID_CALLBACK: _bindgen_ty_29 = 515;
3597pub const PF_Err_BAD_CALLBACK_PARAM: _bindgen_ty_29 = 516;
3598pub const PF_Interrupt_CANCEL: _bindgen_ty_29 = 517;
3599pub const PF_Err_CANNOT_PARSE_KEYFRAME_TEXT: _bindgen_ty_29 = 518;
3600pub type _bindgen_ty_29 = ::std::os::raw::c_uint;
3601pub type PF_Err = A_long;
3602pub const PF_WorldFlag_DEEP: _bindgen_ty_30 = 1;
3603pub const PF_WorldFlag_WRITEABLE: _bindgen_ty_30 = 2;
3604pub const PF_WorldFlag_RESERVED0: _bindgen_ty_30 = 16777216;
3605pub const PF_WorldFlag_RESERVED1: _bindgen_ty_30 = 33554432;
3606pub const PF_WorldFlag_RESERVED2: _bindgen_ty_30 = 67108864;
3607pub const PF_WorldFlag_RESERVED3: _bindgen_ty_30 = 134217728;
3608pub const PF_WorldFlag_RESERVED4: _bindgen_ty_30 = 268435456;
3609pub const PF_WorldFlag_RESERVED5: _bindgen_ty_30 = 536870912;
3610pub const PF_WorldFlag_RESERVED6: _bindgen_ty_30 = 1073741824;
3611pub const PF_WorldFlag_RESERVED: _bindgen_ty_30 = 2147483648;
3612pub type _bindgen_ty_30 = ::std::os::raw::c_uint;
3613pub type PF_WorldFlags = A_long;
3614pub const PF_OutFlag_NONE: _bindgen_ty_31 = 0;
3615pub const PF_OutFlag_KEEP_RESOURCE_OPEN: _bindgen_ty_31 = 1;
3616pub const PF_OutFlag_WIDE_TIME_INPUT: _bindgen_ty_31 = 2;
3617pub const PF_OutFlag_NON_PARAM_VARY: _bindgen_ty_31 = 4;
3618pub const PF_OutFlag_RESERVED6: _bindgen_ty_31 = 8;
3619pub const PF_OutFlag_SEQUENCE_DATA_NEEDS_FLATTENING: _bindgen_ty_31 = 16;
3620pub const PF_OutFlag_I_DO_DIALOG: _bindgen_ty_31 = 32;
3621pub const PF_OutFlag_USE_OUTPUT_EXTENT: _bindgen_ty_31 = 64;
3622pub const PF_OutFlag_SEND_DO_DIALOG: _bindgen_ty_31 = 128;
3623pub const PF_OutFlag_DISPLAY_ERROR_MESSAGE: _bindgen_ty_31 = 256;
3624pub const PF_OutFlag_I_EXPAND_BUFFER: _bindgen_ty_31 = 512;
3625pub const PF_OutFlag_PIX_INDEPENDENT: _bindgen_ty_31 = 1024;
3626pub const PF_OutFlag_I_WRITE_INPUT_BUFFER: _bindgen_ty_31 = 2048;
3627pub const PF_OutFlag_I_SHRINK_BUFFER: _bindgen_ty_31 = 4096;
3628pub const PF_OutFlag_WORKS_IN_PLACE: _bindgen_ty_31 = 8192;
3629pub const PF_OutFlag_RESERVED8: _bindgen_ty_31 = 16384;
3630pub const PF_OutFlag_CUSTOM_UI: _bindgen_ty_31 = 32768;
3631pub const PF_OutFlag_RESERVED7: _bindgen_ty_31 = 65536;
3632pub const PF_OutFlag_REFRESH_UI: _bindgen_ty_31 = 131072;
3633pub const PF_OutFlag_NOP_RENDER: _bindgen_ty_31 = 262144;
3634pub const PF_OutFlag_I_USE_SHUTTER_ANGLE: _bindgen_ty_31 = 524288;
3635pub const PF_OutFlag_I_USE_AUDIO: _bindgen_ty_31 = 1048576;
3636pub const PF_OutFlag_I_AM_OBSOLETE: _bindgen_ty_31 = 2097152;
3637pub const PF_OutFlag_FORCE_RERENDER: _bindgen_ty_31 = 4194304;
3638pub const PF_OutFlag_PiPL_OVERRIDES_OUTDATA_OUTFLAGS: _bindgen_ty_31 = 8388608;
3639pub const PF_OutFlag_I_HAVE_EXTERNAL_DEPENDENCIES: _bindgen_ty_31 = 16777216;
3640pub const PF_OutFlag_DEEP_COLOR_AWARE: _bindgen_ty_31 = 33554432;
3641pub const PF_OutFlag_SEND_UPDATE_PARAMS_UI: _bindgen_ty_31 = 67108864;
3642pub const PF_OutFlag_AUDIO_FLOAT_ONLY: _bindgen_ty_31 = 134217728;
3643pub const PF_OutFlag_AUDIO_IIR: _bindgen_ty_31 = 268435456;
3644pub const PF_OutFlag_I_SYNTHESIZE_AUDIO: _bindgen_ty_31 = 536870912;
3645pub const PF_OutFlag_AUDIO_EFFECT_TOO: _bindgen_ty_31 = 1073741824;
3646pub const PF_OutFlag_AUDIO_EFFECT_ONLY: _bindgen_ty_31 = 2147483648;
3647#[doc = " -------------------- Output Flags --------------------\n\nThe out_flags field of the OutData can be set to an OR-ed\ncombination of these flags to communicate various things to\nthe driver program.  The flags are described here:\n\nPF_OutFlag_NONE\nThis is the \"empty\" setting -- no outflags.\n\nPF_OutFlag_WIDE_TIME_INPUT\nSet this flag if the effect calls get_param to inquire a\nparameter at a time besides the current one (e.g. to get\nthe previous video frame). This should be sent, if it is\ngoing to be sent, at PF_Cmd_GLOBAL_SETUP. Can be over-ridden\ndynamically during PF_Cmd_QUERY_DYNAMIC_FLAGS.\n\nAs of AE10, this flag is no longer recommended. It still works the\nsame way and is safe to set, but there's a more efficient option.\nSee PF_OutFlag2_AUTOMATIC_WIDE_TIME_INPUT.\n\nPF_OutFlag_NON_PARAM_VARY\nSet this if the effect uses information other than the parameters\nin the param list to generate its output at the current time.\nFor instance, if the effect uses the current time of the frame\nor some random value to decide the output, set this flag.  This\nflag should be sent at PF_Cmd_GLOBAL_SETUP.  If the effect\nproduces changing frames when applied to a still image and\nall parameters are constant, that's a sure sign that this bit\nshould be set (e.g. Wave Warp).\tCan be over-ridden dynamically\nduring PF_Cmd_QUERY_DYNAMIC_FLAGS.\n\nPF_OutFlag_SEQUENCE_DATA_NEEDS_FLATTENING\nWhen you allocate a sequence data handle, the app\nmay write the handle out to disk and reuse it\nlater. Pass this flag if the handle is not \"flat\"\n(i.e. has pointers or handles hanging off of it).\nBasically, this gives you a chance to alter the\nhandle contents before it is written out to disk,\nso  you won't get invalid handles or pointers. Once\nyou have flattened a handle, you will get an\nopportunity to un-flatten it before the effect\nneeds to continue. For sequence data, you will be\ninvoked with a PF_Cmd_SEQUENCE_RESETUP call. You\nshould store a boolean at a common  offset in your\nunflattened and flattened data that says whether\nthe data is flat or not. If you get a\nPF_Cmd_SEQUENCE_RESETUP and the boolean indicated\nthe data is flattened, you should  unflatten the\ndata, free the flattened data handle, and set the\nsequence_data handle in the  PF_OutData. If you\never set the data to NULL when you flatten it, you\nwill NOT get the sequence  resetup call to\nunflatten it. Instead, you may just get a RENDER\ncall with NULL data. Forewarned is  forearmed. This\nflag, indicating if the data will need to be\nflattened, should be set at  PF_Cmd_GLOBAL_SETUP time.\n\nPF_OutFlag_I_DO_DIALOG\nSet this is the effect responds to a PF_Cmd_DO_DIALOG, i.e. Does this\neffect bring up an options dialog box.  PF_Cmd_DO_DIALOG is generated\nwhen the user presses the Options button on the Effect floater.\nThis flag should be set at PF_Cmd_GLOBAL_SETUP time.\n\nPF_OutFlag_USE_OUTPUT_EXTENT\nThe output layer is passed with an \"extent rect\" indicating\nthe area of the layer that actually contains visible image data.  If\nthe effect changes its behavior based on the extent rect (for instance,\nby not iterating over the entire image), set this flag, so the\napplication will know whether having the extent\tchange should cause\nthe frame to re-render.  Specify this flag at PF_Cmd_GLOBAL_SETUP.\n\nPF_OutFlag_SEND_DO_DIALOG\nSome filters need their options dialog box to be brought up at least\nonce to be valid.  You can set this flag, and the driver app will\nautomatically send a PF_Cmd_DO_DIALOG to the effect when it is applied.\nThe DO_DIALOG will be sent after PF_Cmd_SEQUENCE_SETUP.  This flag\nshould be set in PF_Cmd_SEQUENCE_SETUP if it is going to be set.\n\nPF_OutFlag_DISPLAY_ERROR_MESSAGE\nWhenever the return_msg field in the PF_OutData is set to a string,\nAfter Effects will bring up a simple dialog box containing that\nstring.  If you set this flag, the dialog box will be made to look\nlike an error message dialog box.  If you don't set this flag, it\nwill be an undecorated dialog box.  Using this flag, an effects module\ncan have and display its own error messages and not worry about the\ncode for dialog boxes -- the program will do it for you.\nThis flag can be sent after any command.\n\nPF_OutFlag_I_EXPAND_BUFFER\nStarting with After Effects 2.0, effects will be able to expand their buffers\nbeyond the current layer's dimensions. This has always been part of the\nPF specification, but as an extra precaution (and hint to the AE rendering\nengine) set this flag at PF_Cmd_GLOBAL_SETUP if you plan to expand your\nbuffer.\n\nPF_OutFlag_I_SHRINK_BUFFER\nSet this flag if you can shrink your buffer based on the extent-rects passed\nto you in order to be more memory efficient.\n\nPF_OutFlag_PIX_INDEPENDENT\nSet this flag if the output at a given pixel is not dependent on the values\nof the pixels around it. If this is set, the pixels After Effects does not\ncare about (because of field rendering, for example) could be filled with garbage\ncolors.  Please set this flag at PF_Cmd_GLOBAL_SETUP. Can be over-ridden\ndynamically during PF_Cmd_QUERY_DYNAMIC_FLAGS.\n\nPF_OutFlag_I_WRITE_INPUT_BUFFER\nSet this flag if your effect would like to write into the input buffer. This\ncan be useful if you need an scratch buffer, but it also invalidates some speedups\nin the AE rendering pipeline, so use it with some discretion. Please set this\nflag at PF_Cmd_GLOBAL_SETUP.\n\nPF_OutFlag_KEEP_RESOURCE_OPEN\n\nObsoleted in AE 2015 (does nothing when set).\n\nSet this flag if your effect expects its Macintosh resource fork to be open\nat any time other than global setup.  Note that this does not mean that\nthe resource fork will be kept open at all times, just whenever the\neffect is being executed.\n\nPF_OutFlag_NOP_RENDER\n\nSet this flag in PF_Cmd_GLOBAL_SETUP if the render would never result in changes\nto the source image (or audio?). For example, an expression control would set this.\n\nPF_OutFlag_CUSTOM_UI\n\nThis flag must be set if your effect has a custom UI in the Effect Controls\nWindow, Layer Window or Comp Window.\n\nPF_OutFlag2_CUSTOM_UI_ASYNC_MANAGER\t(new in 13.5)\n\nThis flags enables use of AEGP_CheckoutOrRender_*_AsyncManager() calls\nwhich avoid the need for plugin management of the lifetime of async custom UI renders from the UI thread.\nThe plugin asks for what frames it needs and the manager calls PF_Event_DRAW again when they are available\n(or cancels them as needed automatically).  The plugin responds in PF_Event_DRAW by asking for what it needs\nand drawing what it can from what is available.\n\nDue to separation of Render thread and UI thread in 13.5, frames for custom UI should no longer be\nrendered synchronously (see RenderSuite5 for more details). The manager simplifies this, especially when\nthere are multiple requests needed for DRAW.\n\nWhen enabled, this flag associates a \"PF_AsyncManager\" with the NEW_CONTEXT/CLOSE_CONTEXT and PF_Event_DRAW\nthat will automatically track completion of 1 or more asynch render requests made for drawing custom UI.\nAs requests complete,  PF_Event_DRAW will be called again and the current state of the CUSTOM_UI can be drawn.\nSuch requests may be canceled automatically as the user scrubs the time needle or project changes are made and\nbecome invalid.\n\nThis flag is used in addition to the CUSTOM_UI flag during PF_Cmd_GLOBAL_SETUP\n\nPF_OutFlag_REFRESH_UI\n\nCan be returned from PF_Cmd_EVENT, PF_Cmd_RENDER, and PF_Cmd_DO_DIALOG.\nCauses the effects control window, layer window, and comp window to be re-drawn.\n\nPF_OutFlag_I_USE_SHUTTER_ANGLE\n\nMust be set at PF_Cmd_GLOBAL_SETUP time if the effect uses\nthe shutter_angle or the shutter_phase. Can be over-ridden dynamically during\nPF_Cmd_QUERY_DYNAMIC_FLAGS.\n\nPF_OutFlag_I_USE_AUDIO\n\nMust be set at PF_Cmd_GLOBAL_SETUP time for a visual effect\nthat calls the audio checkout calls.\n\nPF_OutFlag_I_AM_OBSOLETE\n\nSet at PF_Cmd_GLOBAL_SETUP time for effects that don't\nwant to appear in the AE Effects menu (but will still be invoked\nif you load a project that has an old copy of the effect applied).\n\nPF_OutFlag_FORCE_RERENDER\n\nSet at PF_Cmd_EVENT if the effect modified sequence data,\nor did anything else that requires the effect needs to re-render.\nNote that setting PF_ChangeFlag_CHANGED_VALUE automatically\ncauses a re-render, so don't worry about setting PF_OutFlag_FORCE_RERENDER\nin that case. Also, I_MIX_GUID_DEPENDENCIES can be used to trigger a rerender on\ndependant changes if sequence_data has not been changed.\n\nIMPORTANT: FORCE_RERENDER should be used as a last resort. Long term we should be eliminating the need for this\nbecause it causes forced cache invalidation that doesn't work well with undo.\nOnce we have the full set of APIs in place needed to manage render state, we will be able to deprecate this.\nPrefer using ARB data + CHANGED_VALUE or I_MIX_GUID_DEPENDENCIES when possible instead.\n\nIn 13.5 the split between a UI and render threads means that FORCE_RERENDER will now also have the needed\nside effect of copying sequence_data state to the render project.  This can be expensive if the sequence_data is large.\nSupport GET_FLATTENED_SEQUENCE_DATA to prevent deallocation of your sequence_data, which can help.\nGET_FLATTENED_SEQUENCE_DATA support is required for FORCE_RERENDER use in custom mouse/key events.\n\nPF_OutFlag_PiPL_OVERRIDES_OUTDATA_OUTFLAGS\n\nValid only for setting in your PiPL.  When set out_flags will be\nignored at PF_Cmd_GLOBAL_SETUP time (& thus don't need to match).\n\nPF_OutFlag_I_HAVE_EXTERNAL_DEPENDENCIES\n\nSet this flag at PF_Cmd_GLOBAL_SETUP time if the effect has dependencies\nthat the user should know about before transporting their project to a\ndifferent machine.  For example, dependencies on an installed font,\nor on an external file.  If set, the effect will receive a\nPF_Cmd_GET_EXTERNAL_DEPENDENCIES request, where the extra\nparam will be a PF_ExtDependenciesExtra, and the effect should\nreport its information based on the given sequence_data.\n\nPF_OutFlag_SEND_UPDATE_PARAMS_UI\n\nSet this flag at PF_Cmd_GLOBAL_SETUP time if you want to receive\nPF_Cmd_UPDATE_PARAMS_UI messages.\n\nPF_OutFlag_AUDIO_FLOAT_ONLY\n\nSet this flag if you only want to receive PF_SIGNED_FLOAT data\nwhen processing audio data.  Requires PF_OutFlag_AUDIO_EFFECT_TOO\nor PF_OutFlag_AUDIO_EFFECT_ONLY.\n\nPF_OutFlag_AUDIO_IIR\n\nSet this flag at PF_Cmd_GLOBAL_SETUP time if you are an\nInfinite-Impulse-Response audio filter (i.e. your output at a given\ntime depends on your output from previous times).\n\nPF_OutFlag_I_SYNTHESIZE_AUDIO\n\nSet this flag at PF_Cmd_GLOBAL_SETUP time if you generate\naudio even when handed silence.  Requires PF_OutFlag_AUDIO_EFFECT_TOO\nor PF_OutFlag_AUDIO_EFFECT_ONLY.\n\nPF_OutFlag_AUDIO_EFFECT_TOO\n\nMust be set at PF_Cmd_GLOBAL_SETUP time for an effect that\nwants to filter the audio too (as opposed to just reading the audio).\n\nPF_OutFlag_AUDIO_EFFECT_ONLY\n\nMust be set at PF_Cmd_GLOBAL_SETUP time for an effect\nthat only filters audio (no video).\n\nPF_OutFlag2_SUPPORTS_QUERY_DYNAMIC_FLAGS\n\nSet this during PF_Cmd_GLOBAL_SETUP if the effect handles PF_Cmd_QUERY_DYNAMIC_FLAGS.\nSupporting this command can dramatically improve performance for certain\neffects, because it provides dynamic information to the host about what\ncan be cached (as opposed to PIPL bits which cannot be changed at run-time)\n\nPF_OutFlag2_I_USE_3D_CAMERA\n\nThis bit must be set if the effect ever uses the AEGP PF_Interface suite to\naccess camera layers. Can be over-ridden dynamically during PF_Cmd_QUERY_DYNAMIC_FLAGS.\n\nPF_OutFlag2_I_USE_3D_LIGHTS\n\nThis bit must be set if the effect ever uses the AEGP PF_Interface suite to\naccess camera layers. Can be over-ridden dynamically during PF_Cmd_QUERY_DYNAMIC_FLAGS.\n\nPF_OutFlag2_PARAM_GROUP_START_COLLAPSED_FLAG\n\nIf you want a parameter group to honor the PF_ParamFlag_COLLAPSE_TWIRLY or\nPF_ParamFlag_START_COLLAPSED flag, set this bit.  Otherwise, all parameter\ngroups will be collapsed by default.\n\nPF_OutFlag2_DOESNT_NEED_EMPTY_PIXELS\n\nAdded for render optimizations; shrinks the input buffer passed to the effect to\nexclude any empty pixels (where empty means \"zero alpha\" unless\nPF_OutFlag2_REVEALS_ZERO_ALPHA is set, in which case RGB must be zero as well.)\nThe origin of the trimmed buffer can be found in in_data->pre_effect_source_origin.\nEffects with both this flag and PF_OutFlag_I_EXPAND_BUFFER set may get called with\na null input buffer if their input is completely empty, and must be able to handle\nthis case without crashing. This flag can be cleared dynamically during\nPF_Cmd_QUERY_DYNAMIC_FLAGS.\n\nPF_OutFlag2_REVEALS_ZERO_ALPHA\n\nThe effect can take pixels with zero alpha and reveal the RGB data in them (like\nour Set Channels effect). This tells After Effects not to trim such pixels when\ndetermining the input for the effect. This flag can be cleared dynamically during\nPF_Cmd_QUERY_DYNAMIC_FLAGS.\n\nPF_OutFlag2_I_AM_DEPRECATED\nthis effect is still available, and shows up under user-visible \"Obsolete\" category\nin the UI. Setting this flag means \"there's a better way to do this, but this effect\nmay still be useful in some situations\".  distinct from PF_OutFlag_I_AM_OBSOLETE in\nthat these will still show up in the GUI and the user can still apply them to new\nprojects.  The category that is set by the effect is pretty much ignored, as it will\ninstead always go into the \"Obsolete\" category\n\nPF_OutFlag2_I_USE_TIMECODE\nNew in AE 9.0.  The effect depends on the Composition's timecode or a layer's\nsource footage timecode.  If the underlying timecode changes the effects will\nbe asked to rerender.\n\nPF_OutFlag2_AUTOMATIC_WIDE_TIME_INPUT\nNew in AE 10. Requires setting of PF_OutFlag_WIDE_TIME_INPUT (which allows you\nto support old hosts), but effectively overrides that flag. When set, all\nparameter checkouts are tracked so over-time dependencies are known by AE. Note\nthat if you use this new flag, and you cache any time-dependent data in your\nsequence data (or anywhere else), you must validate that cache using the\nnew PF_HaveInputsChangedOverTimeSpan() before using it.\n\nThis only works for smart effects (those that set PF_OutFlag2_SUPPORTS_SMART_RENDER). If you haven't\nset that, After Effects will silently treat this as PF_OutFlag_WIDE_TIME_INPUT instead.\n\nTo test that it's working, apply your effect with one parameter keyframed on every frame.\nRAM Preview to fill the cache, then change one of the keyframes. The related frame and\nall dependent frames (e.g. later frames, in the case of a simulation) should lose their\ncache marks and require re-rendering. Simlarly, upstream changes to sources of layer\nparameters should cause time-selective invalidation of the cache.\n\nPF_OutFlag2_DEPENDS_ON_UNREFERENCED_MASKS\nSet this if you are going to look at paths that aren't directly referenced by a path\nparam, e.g. if you are going to draw a stroke on all masks.\n\nPF_OutFlag2_OUTPUT_IS_WATERMARKED\nSet this if your output is going to be watermarked in some way that makes it unsuitable for\nfinal use, probably because the user is using an unlicensed demo version. It is ok to change\nthis state during the course of app session, if e.g. a floating license status changes.\nPlugin authors that actually do have this state changing asynchronously must be careful to\nhave the next render match the last state returned from QUERY_DYNAMIC_FLAGS otherwise race conditions\ncould cause incorrect frames to be cached. (This is a non-issue if you only change this in response\nto DO_DIALOG.)\n\nPF_OutFlag2_I_MIX_GUID_DEPENDENCIES\t(new in 13.5)\nSmart effects only. With this option, FORCE_RERENDER becomes a cache-savvy more efficient MAYBE rerender.\nIf custom UI or DO_DIALOG change sequence data, returning FORCE_RERENDER requests AE to check whether\nrerender needs to occur.  During PreRender, the effect uses the GuidMixInPtr callback to mix\nany additional state that affects the render into our internal GUID for the cached frame.\nAE can then tell whether the frame already exists and if so, no longer needs to render.\nThis also means that DO_DIALOG no longer always blows the cache and that undo works across DO_DIALOG.\nCancelation of DO_DIALOG no longer blows the cache either.\nThis also means that I_USE_* flags are now basically redundant since any dependency could be mixed in.\nJust be sure to mix in everything that can uniquely affect resulting rendered pixels (that is not already\nan AE stream parameter).  But don't mixin things that are disabled and have no render effect  (this\nresults in less cache efficiency).\n\nPF_OutFlag2_SUPPORTS_THREADED_RENDERING\nIndicates the effect supports rendering on multiple threads at the same time. Single or multiple\napplications of this effect on a layer can be called to render at the same time on multiple threads.\n\nUI selectors are still sent on the main thread, however Sequence Setup, Sequence Resetup, Sequence SetDown,\nPreRender, and Render may be sent on multiple threads at the same time as the UI selectors are being handled\nso all of these selectors must be thread safe.\n\nGlobal Setup and Global Setdown selectors are unaffected by this flag.  Regardless whether this flag is set\nor not, they will only be sent on the main thread, and will not be sent at the same time as any other selectors.\n\nIf the effect sets PF_OutFlag_SEQUENCE_DATA_NEEDS_FLATTENING indicating the sequence data needs flattening\nthen it must also set PF_OutFlag2_SUPPORTS_GET_FLATTENED_SEQUENCE_DATA.\n\nsequence_data is read-only at render time and must be accessed with PF_EffectSequenceDataSuite.\nin_data->sequence_data will be NULL during render. AEGP_ComputeCacheSuite is suggested if writing to\nsequence_data at render time is needed for caching. This suite unifies cache entries so multiple threads do\nnot recompute the same cache value. If neither of these solutions work, see the next flag,\nPF_OutFlag2_MUTABLE_RENDER_SEQUENCE_DATA_SLOWER.\n\nPF_OutFlag2_MUTABLE_RENDER_SEQUENCE_DATA_SLOWER\nIndicates the effect needs sequence_data replicated for each render thread, thus allowing each render to have\nsequence_data which can be written to. Note that changes to sequence_data will be discarded regularly, currently\nafter each span of frames is rendered such as single RAM Preview or Render Queue export."]
3648pub type _bindgen_ty_31 = ::std::os::raw::c_uint;
3649pub type PF_OutFlags = A_long;
3650pub const PF_OutFlag2_NONE: _bindgen_ty_32 = 0;
3651pub const PF_OutFlag2_SUPPORTS_QUERY_DYNAMIC_FLAGS: _bindgen_ty_32 = 1;
3652pub const PF_OutFlag2_I_USE_3D_CAMERA: _bindgen_ty_32 = 2;
3653pub const PF_OutFlag2_I_USE_3D_LIGHTS: _bindgen_ty_32 = 4;
3654pub const PF_OutFlag2_PARAM_GROUP_START_COLLAPSED_FLAG: _bindgen_ty_32 = 8;
3655pub const PF_OutFlag2_I_AM_THREADSAFE: _bindgen_ty_32 = 16;
3656pub const PF_OutFlag2_CAN_COMBINE_WITH_DESTINATION: _bindgen_ty_32 = 32;
3657pub const PF_OutFlag2_DOESNT_NEED_EMPTY_PIXELS: _bindgen_ty_32 = 64;
3658pub const PF_OutFlag2_REVEALS_ZERO_ALPHA: _bindgen_ty_32 = 128;
3659pub const PF_OutFlag2_PRESERVES_FULLY_OPAQUE_PIXELS: _bindgen_ty_32 = 256;
3660pub const PF_OutFlag2_SUPPORTS_SMART_RENDER: _bindgen_ty_32 = 1024;
3661pub const PF_OutFlag2_RESERVED9: _bindgen_ty_32 = 2048;
3662pub const PF_OutFlag2_FLOAT_COLOR_AWARE: _bindgen_ty_32 = 4096;
3663pub const PF_OutFlag2_I_USE_COLORSPACE_ENUMERATION: _bindgen_ty_32 = 8192;
3664pub const PF_OutFlag2_I_AM_DEPRECATED: _bindgen_ty_32 = 16384;
3665pub const PF_OutFlag2_PPRO_DO_NOT_CLONE_SEQUENCE_DATA_FOR_RENDER: _bindgen_ty_32 = 32768;
3666pub const PF_OutFlag2_RESERVED10: _bindgen_ty_32 = 65536;
3667pub const PF_OutFlag2_AUTOMATIC_WIDE_TIME_INPUT: _bindgen_ty_32 = 131072;
3668pub const PF_OutFlag2_I_USE_TIMECODE: _bindgen_ty_32 = 262144;
3669pub const PF_OutFlag2_DEPENDS_ON_UNREFERENCED_MASKS: _bindgen_ty_32 = 524288;
3670pub const PF_OutFlag2_OUTPUT_IS_WATERMARKED: _bindgen_ty_32 = 1048576;
3671pub const PF_OutFlag2_I_MIX_GUID_DEPENDENCIES: _bindgen_ty_32 = 2097152;
3672pub const PF_OutFlag2_AE13_5_THREADSAFE: _bindgen_ty_32 = 4194304;
3673pub const PF_OutFlag2_SUPPORTS_GET_FLATTENED_SEQUENCE_DATA: _bindgen_ty_32 = 8388608;
3674pub const PF_OutFlag2_CUSTOM_UI_ASYNC_MANAGER: _bindgen_ty_32 = 16777216;
3675pub const PF_OutFlag2_SUPPORTS_GPU_RENDER_F32: _bindgen_ty_32 = 33554432;
3676pub const PF_OutFlag2_RESERVED12: _bindgen_ty_32 = 67108864;
3677pub const PF_OutFlag2_SUPPORTS_THREADED_RENDERING: _bindgen_ty_32 = 134217728;
3678pub const PF_OutFlag2_MUTABLE_RENDER_SEQUENCE_DATA_SLOWER: _bindgen_ty_32 = 268435456;
3679pub type _bindgen_ty_32 = ::std::os::raw::c_uint;
3680pub type PF_OutFlags2 = A_long;
3681pub const PF_InFlag_NONE: _bindgen_ty_33 = 0;
3682pub const PF_InFlag_PROJECT_IS_RENDER_ONLY: _bindgen_ty_33 = 1;
3683#[doc = " -------------------- Input Flags --------------------\n\nThe in_flags field of the InData can be set to an OR-ed\ncombination of these flags to communicate various things from AE to an effect plugin\nThe flags are described here:\n\nPF_InFlag_NONE\nThis is the \"empty\" setting -- no inflags.\n\nPF_InFlag_PROJECT_IS_RENDER_ONLY  (since 13.5)\n\nFor efficiency, if a plugin sets up UI that is not used in render, this flag\ncan be tested to skip that step when an effect is being RESETUP for render only.\nEffect instances with this flag on in RESETUP are in read-only AE projects and will not receive UI related selectors.\n\nThis is an optimization hint.  If you don't make such optimizations in render your plugin should still work.\n\nThis flag should generally not be used to suppress errors in render.  Errors should still be reported as usual via AE standard mechanisms,\nand AE will then handle the differences in context reporting.\n\nIf this is off, UI should be set up normally (and the effect could also be running in an earlier version of\nAE that assumed render and UI on the same effect instance.)"]
3684pub type _bindgen_ty_33 = ::std::os::raw::c_uint;
3685pub type PF_InFlags = A_long;
3686pub const PF_Cmd_ABOUT: _bindgen_ty_34 = 0;
3687pub const PF_Cmd_GLOBAL_SETUP: _bindgen_ty_34 = 1;
3688pub const PF_Cmd_UNUSED_0: _bindgen_ty_34 = 2;
3689pub const PF_Cmd_GLOBAL_SETDOWN: _bindgen_ty_34 = 3;
3690pub const PF_Cmd_PARAMS_SETUP: _bindgen_ty_34 = 4;
3691pub const PF_Cmd_SEQUENCE_SETUP: _bindgen_ty_34 = 5;
3692pub const PF_Cmd_SEQUENCE_RESETUP: _bindgen_ty_34 = 6;
3693pub const PF_Cmd_SEQUENCE_FLATTEN: _bindgen_ty_34 = 7;
3694pub const PF_Cmd_SEQUENCE_SETDOWN: _bindgen_ty_34 = 8;
3695pub const PF_Cmd_DO_DIALOG: _bindgen_ty_34 = 9;
3696pub const PF_Cmd_FRAME_SETUP: _bindgen_ty_34 = 10;
3697pub const PF_Cmd_RENDER: _bindgen_ty_34 = 11;
3698pub const PF_Cmd_FRAME_SETDOWN: _bindgen_ty_34 = 12;
3699pub const PF_Cmd_USER_CHANGED_PARAM: _bindgen_ty_34 = 13;
3700pub const PF_Cmd_UPDATE_PARAMS_UI: _bindgen_ty_34 = 14;
3701pub const PF_Cmd_EVENT: _bindgen_ty_34 = 15;
3702pub const PF_Cmd_GET_EXTERNAL_DEPENDENCIES: _bindgen_ty_34 = 16;
3703pub const PF_Cmd_COMPLETELY_GENERAL: _bindgen_ty_34 = 17;
3704pub const PF_Cmd_QUERY_DYNAMIC_FLAGS: _bindgen_ty_34 = 18;
3705pub const PF_Cmd_AUDIO_RENDER: _bindgen_ty_34 = 19;
3706pub const PF_Cmd_AUDIO_SETUP: _bindgen_ty_34 = 20;
3707pub const PF_Cmd_AUDIO_SETDOWN: _bindgen_ty_34 = 21;
3708pub const PF_Cmd_ARBITRARY_CALLBACK: _bindgen_ty_34 = 22;
3709pub const PF_Cmd_SMART_PRE_RENDER: _bindgen_ty_34 = 23;
3710pub const PF_Cmd_SMART_RENDER: _bindgen_ty_34 = 24;
3711pub const PF_Cmd_RESERVED1: _bindgen_ty_34 = 25;
3712pub const PF_Cmd_RESERVED2: _bindgen_ty_34 = 26;
3713pub const PF_Cmd_RESERVED3: _bindgen_ty_34 = 27;
3714pub const PF_Cmd_GET_FLATTENED_SEQUENCE_DATA: _bindgen_ty_34 = 28;
3715pub const PF_Cmd_TRANSLATE_PARAMS_TO_PREFS: _bindgen_ty_34 = 29;
3716pub const PF_Cmd_RESERVED4: _bindgen_ty_34 = 30;
3717pub const PF_Cmd_SMART_RENDER_GPU: _bindgen_ty_34 = 31;
3718pub const PF_Cmd_GPU_DEVICE_SETUP: _bindgen_ty_34 = 32;
3719pub const PF_Cmd_GPU_DEVICE_SETDOWN: _bindgen_ty_34 = 33;
3720pub const PF_Cmd_NUM_CMDS: _bindgen_ty_34 = 34;
3721#[doc = " -------------------- Command Selectors --------------------\n\nThe first parameter to the effect routine is one of t\these command\nselectors.  The commands are described here.\n\nPF_Cmd_ABOUT\nThis command should display an information dialog box about the\neffect module.  The easiest thing to do is PF_SPRINTF the info\ninto the out_data->return_msg field.  After Effects will bring\nup a simple undecorated modal dialog with your text proudly displayed.\nThis command can be sent at _any_ time, so don't count on having\nany global data or anything else set.  (Except, as always, the\ncurrent resource file will be set to your effects module.)\n\nPF_Cmd_GLOBAL_SETUP\nWhen you get this command, you should check the version of the\neffect protocol with which you are being invoked, and set any of\nthe necessary out flags (described above) or out data fields\n(described below).  If your global data was flattened, the flat\ndata will be passed here and you should unflatten it, free the\nflat global data, and set the OutData global_data to the new un-flat\ndata.  Alternatively, the global data may come in NULL and you can\nallocate new global data at this time.\n\nPF_Cmd_GLOBAL_SETDOWN\nYou should free any global data you have allocated when you get\nthis command.\n\nPF_Cmd_PARAMS_SETUP\nHere you should add any params your effect wants using the\nPF_ADD_PARAM callback described below.  This is called after global\nsetup -- see the add_param callback described below.\n\nPF_Cmd_SEQUENCE_SETUP\nThis is called when the effect is first applied to a layer.\nA sequence is a series of images that will usually be all be of the same\nsize and in the same context.  You can allocate sequence data\nat this time -- many more input fields are defined at this time.\nSee the PF_InData description below.\n\nAs of 13.5 this only happens on the UI thread.\nExcept for legacy (no GET_FLATTENED_SEQUENCE_DATA) effects that do I_DO_DIALOG which can still hit this in render.\n\nPF_Cmd_SEQUENCE_RESETUP\nThis call is made to unflatten flattened sequence data.\nThere are at least three cases when this can happen:\n1) after the sequence data is written to disk, 2) after the\nsequence data is read in from disk, 3) after a duplicate\nis made (called on both original and the new sequence).\n\nThis can happen in UI or Render thread (13.5),  the effect must handle\ninitialization of a NULL sequence_data input if needed.  See also PF_InFlag_PROJECT_IS_RENDER_ONLY.\n\nPF_Cmd_SEQUENCE_FLATTEN\nThis call is made to flatten unflat sequence data so it can be\ncached to disk.  After the data is flattened, free the un-flat data\nand set the out_data->sequence_data to the new flat data.\nIf you don't want your sequence handle written to disk, you\ncan set it to NULL (after disposing it) at this time.  Presumably\nyou would then reallocate it at another time.\n\nThis command will be sent when saving and when duplicating\nthe sequence.\n\nPF_Cmd_GET_FLATTENED_SEQUENCE_DATA\t(new in 13.5)\nReturns an independent allocation of the sequence data which can be written\nto disk or used to initialise or update other instances of the effect plug-in.\n\nThe host calls this command to serialize the sequence data without\nhaving to flatten and resetup the UI plug-in as was legacy practice. (However, at present effects\nstill may need flattening in render if the sequence_data is about to be assigned.)\n\nAn effect that implements GET_FLATTENED_SEQUENCE_DATA will only receive SEQUENCE_SETUP on the UI thread.\nSEQUENCE_RESETUP can happen on either thread. Make sure you handle a NULL sequence_data in RESETUP.\n(Without GET_FLATTENED, a legacy effect may still get SEQUENCE_SETUP in render but DO_DIALOG will not be called.)\n\nAlso when enabled, this means that the effect is guaranteed to get a\nSEQUENCE_SETDOWN cmd to dispose the effect's sequence_data  (previously\nit was possible for AE to bypass this if the sequence_data was flat,\nbut that lead to SEQUENCE_SETUP/SETDOWN imbalances for some plugins.\nThe imbalance should not happen when using this flag, but the plugin must\nhandle being called on SETDOWN with possibly flat data. For example,\ntry copy and pasting an effect onto itself.\n\nSupport for this command is indicated by setting\nPF_OutFlag2_SUPPORTS_GET_FLATTENED_SEQUENCE_DATA\n\nThe ownership of the returned handle is transferred to the host.\n\nPF_Cmd_SEQUENCE_SETDOWN\nYou should free any sequence data you have allocated when you\nget this command.\n\nPF_Cmd_DO_DIALOG\nThis command indicated that the Options button or command has\nbeen selected and the effect should bring up its options dialog.\nThis command will only be sent it the effect has indicated that\nit has an options dialog with PF_OutFlag_I_DO_DIALOG.  This\ncommand will automatically be sent once upon applying the filter\nif PF_OutFlag_SEND_DO_DIALOG is set in SEQUENCE_SETUP.\n\nPF_Cmd_FRAME_SETUP\nThis is called immediately before each frame is invoked.  You\ncan allocate frame data at this time, if you wish, or you can\njust wait for the RENDER which will immediately follow.\n\nPF_Cmd_RENDER\nThis is the call to render the frame.  All fields in the in_data\nwill be valid at this time and you can inquire parameters or\nwhat-have-you.  This should set the output frame with the new\nimage data.  This is the main action command.\n\nPF_Cmd_FRAME_SETDOWN\nIf you allocated data in PF_Cmd_FRAME_SETUP, this is the time\nto free it and clean up after rendering the frame.\n\nPF_Cmd_USER_CHANGED_PARAM\nThis command will be sent if you set the PF_ParamFlag_SUPERVISE\nflag for a param.  This allows you to modify the params array contents to\ncontrol values or make one control affect others, including arbitrary\ndata.  This command will be sent whenever the user interacts with a\nstandard param controller that has PF_ParamFlag_SUPERVISE\nset.\n\nThe \"extra\" field will be a pointer to a PF_UserChangedParamExtra structure\nwhich contains the param_index of the changed parameter.\n\nYou can return PF_ChangeFlag_CHANGED_VALUE and/or call PF_UpdateParamUI()\nfor any param.\n\nPF_Cmd_UPDATE_PARAMS_UI\nThis command will be sent when the Effect Controls Window (ECW)\nneeds to updated (e.g. after opening the ECW or moving the comp to\na new time) if you have set PF_OutFlag_SEND_UPDATE_PARAMS_UI at\nglobal setup time.\n\nThis gives you a chance to call PF_UpdateParamUI() to modify certain\nui fields for the params.  See the doc for PF_UpdateParamUI()\nto see which fields can be modified.\n\nWARNING: When handling PF_Cmd_UPDATE_PARAMS_UI, you can call\nPF_UpdateParamUI() for any param(s), but not PF_ChangeFlag_CHANGED_VALUE --\nonly cosmetic changes can be made in response to this command.\n\nPF_Cmd_QUERY_DYNAMIC_FLAGS\nThis command will be sent at arbitrary times if PF_OutFlag2_SUPPORTS_QUERY_DYNAMIC_FLAGS\nis set during global setup. During this call the effect may examine the values\nof its parameters at the current time (except layer parameters) by checking them out,\nand decide whether any of the flags that support PF_Cmd_QUERY_DYNAMIC_FLAGS should be set.\n\nThe appropriate flags must be set in out_data->out_flags and out_data->out_flags2 before\nreturning. The effect must decide what information is necessary to render a frame at\nthe current time, given only the values of parameters at that time. Clearing the\nappropriate bits when possible can result in great performance improvements, but\nincorrectly clearing bits will result in caching bugs, and you won't like that. Nope.\n\n Important Reminder***\nBefore you add a new PF_Cmd, evaluate whether it should allow\nnew Sequence Data allocations! If so, remember to add it to\nCmdCanChangeSequenceData() in FLT_Host.cpp!"]
3722pub type _bindgen_ty_34 = ::std::os::raw::c_uint;
3723pub type PF_Cmd = A_long;
3724#[repr(C)]
3725#[derive(Debug, Copy, Clone)]
3726pub struct _PF_LayerAudio {
3727    _unused: [u8; 0],
3728}
3729#[doc = " -------------------- Simple Types --------------------"]
3730pub type PF_LayerAudio = *mut _PF_LayerAudio;
3731pub type PF_SndSamplePtr = *mut ::std::os::raw::c_void;
3732#[repr(C)]
3733#[derive(Debug, Copy, Clone)]
3734pub struct PF_ProgressInfo {
3735    _unused: [u8; 0],
3736}
3737pub type PF_ProgPtr = *mut PF_ProgressInfo;
3738pub type PF_ParamValue = A_long;
3739#[repr(C)]
3740#[derive(Debug, Copy, Clone)]
3741pub struct PF_SpecVersion {
3742    pub major: A_short,
3743    pub minor: A_short,
3744}
3745pub type PF_ParamIndex = A_long;
3746pub type PF_UFixed = A_u_long;
3747pub type PF_Fixed = Fixed;
3748pub type PF_Boolean = Boolean;
3749pub type PF_Handle = Handle;
3750#[repr(C)]
3751#[derive(Debug, Copy, Clone)]
3752pub struct PF_Point {
3753    pub h: A_long,
3754    pub v: A_long,
3755}
3756#[repr(C)]
3757#[derive(Debug, Copy, Clone)]
3758pub struct PF_LRect {
3759    pub left: A_long,
3760    pub top: A_long,
3761    pub right: A_long,
3762    pub bottom: A_long,
3763}
3764pub type PF_Rect = PF_LRect;
3765pub type PF_UnionableRect = PF_Rect;
3766#[repr(C)]
3767#[derive(Debug, Copy, Clone)]
3768pub struct PF_RationalScale {
3769    pub num: A_long,
3770    pub den: A_u_long,
3771}
3772#[repr(C)]
3773#[derive(Debug, Copy, Clone)]
3774pub struct PF_FixedPoint {
3775    pub x: PF_Fixed,
3776    pub y: PF_Fixed,
3777}
3778#[repr(C)]
3779#[derive(Debug, Copy, Clone)]
3780pub struct PF_FixedRect {
3781    pub left: PF_Fixed,
3782    pub top: PF_Fixed,
3783    pub right: PF_Fixed,
3784    pub bottom: PF_Fixed,
3785}
3786#[repr(C)]
3787#[derive(Debug, Copy, Clone)]
3788pub struct PF_Matrix {
3789    pub mat: [[PF_Fixed; 3usize]; 3usize],
3790}
3791pub type PF_TransferMode = A_long;
3792pub type PF_XferMode = PF_TransferMode;
3793#[repr(C)]
3794#[derive(Debug, Copy, Clone)]
3795pub struct PF_Pixel {
3796    pub alpha: A_u_char,
3797    pub red: A_u_char,
3798    pub green: A_u_char,
3799    pub blue: A_u_char,
3800}
3801pub type PF_Pixel8 = PF_Pixel;
3802pub type PF_UnionablePixel = PF_Pixel;
3803#[repr(C)]
3804#[derive(Debug, Copy, Clone)]
3805pub struct PF_Pixel16 {
3806    pub alpha: A_u_short,
3807    pub red: A_u_short,
3808    pub green: A_u_short,
3809    pub blue: A_u_short,
3810}
3811pub type PF_FpShort = A_FpShort;
3812pub type PF_FpLong = A_FpLong;
3813#[repr(C)]
3814#[derive(Debug, Copy, Clone)]
3815pub struct PF_PixelFloat {
3816    pub alpha: PF_FpShort,
3817    pub red: PF_FpShort,
3818    pub green: PF_FpShort,
3819    pub blue: PF_FpShort,
3820}
3821pub type PF_Pixel32 = PF_PixelFloat;
3822#[repr(C)]
3823#[derive(Debug, Copy, Clone)]
3824pub struct PF_FloatMatrix {
3825    pub mat: [[PF_FpLong; 3usize]; 3usize],
3826}
3827#[repr(C)]
3828#[derive(Debug, Copy, Clone)]
3829pub struct PF_CompositeMode {
3830    pub xfer: PF_TransferMode,
3831    pub rand_seed: A_long,
3832    pub opacity: A_u_char,
3833    pub rgb_only: PF_Boolean,
3834    pub opacitySu: A_u_short,
3835}
3836pub type PF_PixLong = A_u_long;
3837#[repr(C)]
3838#[derive(Debug, Copy, Clone)]
3839pub struct _PF_PixelOpaque {
3840    _unused: [u8; 0],
3841}
3842pub type PF_PixelOpaquePtr = *mut _PF_PixelOpaque;
3843pub type PF_PixelPtr = *mut PF_Pixel;
3844pub type PF_RGB_Pixel = [PF_Fixed; 3usize];
3845pub type PF_YIQ_Pixel = [PF_Fixed; 3usize];
3846pub type PF_HLS_Pixel = [PF_Fixed; 3usize];
3847pub type PF_ChannelType = A_long;
3848pub type PF_DataType = A_long;
3849#[doc = " for enumerating over all the channels"]
3850pub type PF_ChannelIndex = A_long;
3851#[repr(C)]
3852#[derive(Debug, Copy, Clone)]
3853pub struct PF_ChannelDesc {
3854    pub channel_type: PF_ChannelType,
3855    pub name: [A_char; 64usize],
3856    pub data_type: PF_DataType,
3857    pub dimension: A_long,
3858}
3859#[doc = " the opaque type representing the channel data"]
3860#[repr(C)]
3861#[derive(Debug, Copy, Clone)]
3862pub struct PF_ChannelRef {
3863    pub opaque: [A_intptr_t; 8usize],
3864}
3865#[doc = " the opaque type representing the channel data"]
3866pub type PF_ChannelRefPtr = *mut PF_ChannelRef;
3867#[doc = " the channel data parallels the image data in size and shape.\n the width is the number of pixels, the height is the number of scanlines\n the height is image_height\n the dimension is the number of planes in a pixel\n the row_bytes is the length of a scanline in bytes\n the data type is the type of data in a plane\n\tNote : a pixel consists of dimensionL * sizeof(data_type) bytes\n dataH is a handle to the data.\n dataPV is a pointer to the dereferenced locked handle\n effects should always have dataPV non null."]
3868#[repr(C)]
3869#[derive(Debug, Copy, Clone)]
3870pub struct PF_ChannelChunk {
3871    pub channel_ref: PF_ChannelRef,
3872    pub widthL: A_long,
3873    pub heightL: A_long,
3874    pub dimensionL: A_long,
3875    pub row_bytesL: A_long,
3876    pub data_type: PF_DataType,
3877    pub dataH: PF_Handle,
3878    pub dataPV: *mut ::std::os::raw::c_void,
3879}
3880pub const PF_LayerDefault_MYSELF: _bindgen_ty_35 = -1;
3881pub const PF_LayerDefault_NONE: _bindgen_ty_35 = 0;
3882#[doc = " -------------------- Effect Parameter Description Structures --------------------\n\nIn general each structure is divided into two parts:\na) description of the parameter\nb) setting of parameter at the current invocation time\n\nA number of these structures end in A_char*, A_char[] unions.  These\nstructures are \"flattened\" between the add_param callback (in which\nthe A_char * should be used) and the read-only values accessible when\nthe effect is later invoked (at which time the A_char [] is used and\nthe string data is concatenated right at the end of the struct)."]
3883pub type _bindgen_ty_35 = ::std::os::raw::c_int;
3884#[repr(C)]
3885#[derive(Debug, Copy, Clone)]
3886pub struct PF_LayerDef {
3887    pub reserved0: *mut ::std::os::raw::c_void,
3888    pub reserved1: *mut ::std::os::raw::c_void,
3889    pub world_flags: PF_WorldFlags,
3890    pub data: PF_PixelPtr,
3891    pub rowbytes: A_long,
3892    pub width: A_long,
3893    pub height: A_long,
3894    pub extent_hint: PF_UnionableRect,
3895    pub platform_ref: *mut ::std::os::raw::c_void,
3896    pub reserved_long1: A_long,
3897    pub reserved_long4: *mut ::std::os::raw::c_void,
3898    pub pix_aspect_ratio: PF_RationalScale,
3899    pub reserved_long2: *mut ::std::os::raw::c_void,
3900    pub origin_x: A_long,
3901    pub origin_y: A_long,
3902    pub reserved_long3: A_long,
3903    pub dephault: A_long,
3904}
3905pub type PF_EffectWorld = PF_LayerDef;
3906pub const PF_UNSIGNED_PCM: _bindgen_ty_36 = 0;
3907pub const PF_SIGNED_PCM: _bindgen_ty_36 = 1;
3908pub const PF_SIGNED_FLOAT: _bindgen_ty_36 = 2;
3909pub type _bindgen_ty_36 = ::std::os::raw::c_uint;
3910pub type PF_SoundFormat = A_short;
3911pub const PF_SSS_1: _bindgen_ty_37 = 1;
3912pub const PF_SSS_2: _bindgen_ty_37 = 2;
3913pub const PF_SSS_4: _bindgen_ty_37 = 4;
3914pub type _bindgen_ty_37 = ::std::os::raw::c_uint;
3915pub type PF_SoundSampleSize = A_short;
3916pub const PF_Channels_MONO: _bindgen_ty_38 = 1;
3917pub const PF_Channels_STEREO: _bindgen_ty_38 = 2;
3918pub type _bindgen_ty_38 = ::std::os::raw::c_uint;
3919pub type PF_SoundChannels = A_short;
3920#[repr(C)]
3921#[derive(Debug, Copy, Clone)]
3922pub struct PF_SoundFormatInfo {
3923    pub rateF: PF_FpLong,
3924    pub num_channels: PF_SoundChannels,
3925    pub format: PF_SoundFormat,
3926    pub sample_size: PF_SoundSampleSize,
3927}
3928#[repr(C)]
3929#[derive(Debug, Copy, Clone)]
3930pub struct PF_SoundWorld {
3931    pub fi: PF_SoundFormatInfo,
3932    pub num_samples: A_long,
3933    pub dataP: *mut ::std::os::raw::c_void,
3934}
3935pub const PF_ValueDisplayFlag_NONE: _bindgen_ty_39 = 0;
3936pub const PF_ValueDisplayFlag_PERCENT: _bindgen_ty_39 = 1;
3937pub const PF_ValueDisplayFlag_PIXEL: _bindgen_ty_39 = 2;
3938pub const PF_ValueDisplayFlag_RESERVED1: _bindgen_ty_39 = 4;
3939pub const PF_ValueDisplayFlag_REVERSE: _bindgen_ty_39 = 8;
3940pub type _bindgen_ty_39 = ::std::os::raw::c_uint;
3941pub type PF_ValueDisplayFlags = A_short;
3942#[doc = " Slider -- PF_Param_SLIDER"]
3943#[repr(C)]
3944#[derive(Debug, Copy, Clone)]
3945pub struct PF_SliderDef {
3946    pub value: PF_ParamValue,
3947    pub value_str: [A_char; 32usize],
3948    pub value_desc: [A_char; 32usize],
3949    pub valid_min: PF_ParamValue,
3950    pub valid_max: PF_ParamValue,
3951    pub slider_min: PF_ParamValue,
3952    pub slider_max: PF_ParamValue,
3953    pub dephault: PF_ParamValue,
3954}
3955#[doc = " Fixed Point Slider -- PF_Param_FIX_SLIDER"]
3956#[repr(C)]
3957#[derive(Debug, Copy, Clone)]
3958pub struct PF_FixedSliderDef {
3959    pub value: PF_Fixed,
3960    pub value_str: [A_char; 32usize],
3961    pub value_desc: [A_char; 32usize],
3962    pub valid_min: PF_Fixed,
3963    pub valid_max: PF_Fixed,
3964    pub slider_min: PF_Fixed,
3965    pub slider_max: PF_Fixed,
3966    pub dephault: PF_Fixed,
3967    pub precision: A_short,
3968    pub display_flags: PF_ValueDisplayFlags,
3969}
3970pub const PF_FSliderFlag_NONE: _bindgen_ty_40 = 0;
3971pub const PF_FSliderFlag_WANT_PHASE: _bindgen_ty_40 = 1;
3972pub type _bindgen_ty_40 = ::std::os::raw::c_uint;
3973pub type PF_FSliderFlags = A_u_long;
3974#[doc = " Floating Point Slider -- PF_Param_FLOAT_SLIDER"]
3975#[repr(C)]
3976#[derive(Debug, Copy, Clone)]
3977pub struct PF_FloatSliderDef {
3978    pub value: PF_FpLong,
3979    pub phase: PF_FpLong,
3980    pub value_desc: [A_char; 32usize],
3981    pub valid_min: PF_FpShort,
3982    pub valid_max: PF_FpShort,
3983    pub slider_min: PF_FpShort,
3984    pub slider_max: PF_FpShort,
3985    pub dephault: PF_FpShort,
3986    pub precision: A_short,
3987    pub display_flags: PF_ValueDisplayFlags,
3988    pub fs_flags: PF_FSliderFlags,
3989    pub curve_tolerance: PF_FpShort,
3990    pub useExponent: PF_Boolean,
3991    pub exponent: PF_FpShort,
3992}
3993#[doc = " Angle -- PF_Param_ANGLE"]
3994#[repr(C)]
3995#[derive(Debug, Copy, Clone)]
3996pub struct PF_AngleDef {
3997    pub value: PF_Fixed,
3998    pub dephault: PF_Fixed,
3999    pub valid_min: PF_Fixed,
4000    pub valid_max: PF_Fixed,
4001}
4002#[doc = " CheckBox -- PF_Param_CHECKBOX"]
4003#[repr(C)]
4004#[derive(Copy, Clone)]
4005pub struct PF_CheckBoxDef {
4006    pub value: PF_ParamValue,
4007    pub dephault: PF_Boolean,
4008    pub reserved: A_char,
4009    pub reserved1: A_short,
4010    pub u: PF_CheckBoxDef__bindgen_ty_1,
4011}
4012#[repr(C)]
4013#[derive(Copy, Clone)]
4014pub union PF_CheckBoxDef__bindgen_ty_1 {
4015    pub nameptr: *const A_char,
4016}
4017#[doc = " Color -- PF_Param_COLOR"]
4018#[repr(C)]
4019#[derive(Debug, Copy, Clone)]
4020pub struct PF_ColorDef {
4021    pub value: PF_UnionablePixel,
4022    pub dephault: PF_UnionablePixel,
4023}
4024#[doc = " Point -- PF_Param_POINT\n\nThe values for the point use the source's coordinate system, with the\norigin at the top left. The values are expressed in fixed point, with\n16 bits of fractional precision (out of a total of 32 bits).\n\nThe dephaults (sorry) are expressed as percentages (with 16 bits of\nfraction) with the origin at the top left. The percent can be negative,\nbut should not be smaller than -600%. It should not be greater than 600%.\n\nIf restrict_bounds is TRUE, the user will not be allowed to specify\npoints outside the bounds of the layer to which they are applying the\neffect. If this is TRUE, the dephaults should be between 0.0 and 100.0."]
4025#[repr(C)]
4026#[derive(Debug, Copy, Clone)]
4027pub struct PF_PointDef {
4028    pub x_value: PF_Fixed,
4029    pub y_value: PF_Fixed,
4030    pub reserved: [A_char; 3usize],
4031    pub restrict_bounds: PF_Boolean,
4032    pub x_dephault: PF_Fixed,
4033    pub y_dephault: PF_Fixed,
4034}
4035#[doc = " 3D Point -- PF_Param_POINT_3D\n\nJust like POINT, with an extra dimension. Supported in AE starting with version 10.5 (CS 5.5)."]
4036#[repr(C)]
4037#[derive(Debug, Copy, Clone)]
4038pub struct PF_Point3DDef {
4039    pub x_value: PF_FpLong,
4040    pub y_value: PF_FpLong,
4041    pub z_value: PF_FpLong,
4042    pub x_dephault: PF_FpLong,
4043    pub y_dephault: PF_FpLong,
4044    pub z_dephault: PF_FpLong,
4045    pub reserved: [::std::os::raw::c_char; 16usize],
4046}
4047#[doc = " Popup Menu -- PF_Param_POPUP\n\n can also be used as a radio-button group in some hosts\n when PF_PUI_RADIO_BUTTON is set\n"]
4048#[repr(C)]
4049#[derive(Copy, Clone)]
4050pub struct PF_PopupDef {
4051    pub value: PF_ParamValue,
4052    pub num_choices: A_short,
4053    pub dephault: A_short,
4054    pub u: PF_PopupDef__bindgen_ty_1,
4055}
4056#[repr(C)]
4057#[derive(Copy, Clone)]
4058pub union PF_PopupDef__bindgen_ty_1 {
4059    pub namesptr: *const A_char,
4060}
4061#[doc = " Momentary Buttons -- PF_Param_BUTTON\n\n supported by AE starting with CS 5.5 (AE 10.5); may be supported in other hosts\n"]
4062#[repr(C)]
4063#[derive(Copy, Clone)]
4064pub struct PF_ButtonDef {
4065    pub value: PF_ParamValue,
4066    pub u: PF_ButtonDef__bindgen_ty_1,
4067}
4068#[repr(C)]
4069#[derive(Copy, Clone)]
4070pub union PF_ButtonDef__bindgen_ty_1 {
4071    pub namesptr: *const A_char,
4072}
4073pub const PF_PathID_NONE: _bindgen_ty_41 = 0;
4074pub type _bindgen_ty_41 = ::std::os::raw::c_uint;
4075pub type PF_PathID = A_u_long;
4076pub const PF_MaskMode_NONE: _bindgen_ty_42 = 0;
4077pub const PF_MaskMode_ADD: _bindgen_ty_42 = 1;
4078pub const PF_MaskMode_SUBTRACT: _bindgen_ty_42 = 2;
4079pub const PF_MaskMode_INTERSECT: _bindgen_ty_42 = 3;
4080pub const PF_MaskMode_LIGHTEN: _bindgen_ty_42 = 4;
4081pub const PF_MaskMode_DARKEN: _bindgen_ty_42 = 5;
4082pub const PF_MaskMode_DIFFERENCE: _bindgen_ty_42 = 6;
4083pub const PF_MaskMode_ACCUM: _bindgen_ty_42 = 7;
4084pub const PF_NUM_MASKMODES: _bindgen_ty_42 = 8;
4085pub type _bindgen_ty_42 = ::std::os::raw::c_uint;
4086pub type PF_MaskMode = A_long;
4087#[doc = " Path -- PF_Param_PATH\n\nPath parameters give access to the mask/path/shapes of the layer on which\nthe effect is applied.  For more information\non how to use these paths, see the PF_PathQuerySuite, and the PF_PathDataSuite\nin AE_EffectSuites.h"]
4088#[repr(C)]
4089#[derive(Debug, Copy, Clone)]
4090pub struct PF_PathDef {
4091    pub path_id: PF_PathID,
4092    pub reserved0: A_long,
4093    pub dephault: A_long,
4094}
4095pub type PF_ArbitraryH = PF_Handle;
4096#[repr(C)]
4097#[derive(Debug, Copy, Clone)]
4098pub struct PF_ArbitraryDef {
4099    pub id: A_short,
4100    pub pad: A_short,
4101    pub dephault: PF_ArbitraryH,
4102    pub value: PF_ArbitraryH,
4103    pub refconPV: *mut ::std::os::raw::c_void,
4104}
4105pub const PF_Arbitrary_NEW_FUNC: _bindgen_ty_43 = 0;
4106pub const PF_Arbitrary_DISPOSE_FUNC: _bindgen_ty_43 = 1;
4107pub const PF_Arbitrary_COPY_FUNC: _bindgen_ty_43 = 2;
4108pub const PF_Arbitrary_FLAT_SIZE_FUNC: _bindgen_ty_43 = 3;
4109pub const PF_Arbitrary_FLATTEN_FUNC: _bindgen_ty_43 = 4;
4110pub const PF_Arbitrary_UNFLATTEN_FUNC: _bindgen_ty_43 = 5;
4111pub const PF_Arbitrary_INTERP_FUNC: _bindgen_ty_43 = 6;
4112pub const PF_Arbitrary_COMPARE_FUNC: _bindgen_ty_43 = 7;
4113pub const PF_Arbitrary_PRINT_SIZE_FUNC: _bindgen_ty_43 = 8;
4114pub const PF_Arbitrary_PRINT_FUNC: _bindgen_ty_43 = 9;
4115pub const PF_Arbitrary_SCAN_FUNC: _bindgen_ty_43 = 10;
4116pub type _bindgen_ty_43 = ::std::os::raw::c_uint;
4117pub type PF_FunctionSelector = A_long;
4118pub const PF_ArbCompare_EQUAL: _bindgen_ty_44 = 0;
4119pub const PF_ArbCompare_LESS: _bindgen_ty_44 = 1;
4120pub const PF_ArbCompare_MORE: _bindgen_ty_44 = 2;
4121pub const PF_ArbCompare_NOT_EQUAL: _bindgen_ty_44 = 3;
4122pub type _bindgen_ty_44 = ::std::os::raw::c_uint;
4123pub type PF_ArbCompareResult = A_long;
4124pub const PF_ArbPrint_NONE: _bindgen_ty_45 = 0;
4125pub const PF_ArbPrint_ABBREVIATED: _bindgen_ty_45 = 1;
4126pub type _bindgen_ty_45 = ::std::os::raw::c_uint;
4127pub type PF_ArbPrintFlags = A_long;
4128#[repr(C)]
4129#[derive(Copy, Clone)]
4130pub struct PF_ArbParamsExtra {
4131    pub which_function: PF_FunctionSelector,
4132    pub id: A_short,
4133    pub padding: A_short,
4134    pub u: PF_ArbParamsExtra__bindgen_ty_1,
4135}
4136#[repr(C)]
4137#[derive(Copy, Clone)]
4138pub union PF_ArbParamsExtra__bindgen_ty_1 {
4139    pub new_func_params: PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_1,
4140    pub dispose_func_params: PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_2,
4141    pub copy_func_params: PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_3,
4142    pub flat_size_func_params: PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_4,
4143    pub flatten_func_params: PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_5,
4144    pub unflatten_func_params: PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_6,
4145    pub interp_func_params: PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_7,
4146    pub compare_func_params: PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_8,
4147    pub print_size_func_params: PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_9,
4148    pub print_func_params: PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_10,
4149    pub scan_func_params: PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_11,
4150}
4151#[repr(C)]
4152#[derive(Debug, Copy, Clone)]
4153pub struct PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_1 {
4154    pub refconPV: *mut ::std::os::raw::c_void,
4155    pub arbPH: *mut PF_ArbitraryH,
4156}
4157#[repr(C)]
4158#[derive(Debug, Copy, Clone)]
4159pub struct PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_2 {
4160    pub refconPV: *mut ::std::os::raw::c_void,
4161    pub arbH: PF_ArbitraryH,
4162}
4163#[repr(C)]
4164#[derive(Debug, Copy, Clone)]
4165pub struct PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_3 {
4166    pub refconPV: *mut ::std::os::raw::c_void,
4167    pub src_arbH: PF_ArbitraryH,
4168    pub dst_arbPH: *mut PF_ArbitraryH,
4169}
4170#[repr(C)]
4171#[derive(Debug, Copy, Clone)]
4172pub struct PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_4 {
4173    pub refconPV: *mut ::std::os::raw::c_void,
4174    pub arbH: PF_ArbitraryH,
4175    pub flat_data_sizePLu: *mut A_u_long,
4176}
4177#[repr(C)]
4178#[derive(Debug, Copy, Clone)]
4179pub struct PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_5 {
4180    pub refconPV: *mut ::std::os::raw::c_void,
4181    pub arbH: PF_ArbitraryH,
4182    pub buf_sizeLu: A_u_long,
4183    pub flat_dataPV: *mut ::std::os::raw::c_void,
4184}
4185#[repr(C)]
4186#[derive(Debug, Copy, Clone)]
4187pub struct PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_6 {
4188    pub refconPV: *mut ::std::os::raw::c_void,
4189    pub buf_sizeLu: A_u_long,
4190    pub flat_dataPV: *const ::std::os::raw::c_void,
4191    pub arbPH: *mut PF_ArbitraryH,
4192}
4193#[repr(C)]
4194#[derive(Debug, Copy, Clone)]
4195pub struct PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_7 {
4196    pub refconPV: *mut ::std::os::raw::c_void,
4197    pub left_arbH: PF_ArbitraryH,
4198    pub right_arbH: PF_ArbitraryH,
4199    pub tF: PF_FpLong,
4200    pub interpPH: *mut PF_ArbitraryH,
4201}
4202#[repr(C)]
4203#[derive(Debug, Copy, Clone)]
4204pub struct PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_8 {
4205    pub refconPV: *mut ::std::os::raw::c_void,
4206    pub a_arbH: PF_ArbitraryH,
4207    pub b_arbH: PF_ArbitraryH,
4208    pub compareP: *mut PF_ArbCompareResult,
4209}
4210#[repr(C)]
4211#[derive(Debug, Copy, Clone)]
4212pub struct PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_9 {
4213    pub refconPV: *mut ::std::os::raw::c_void,
4214    pub arbH: PF_ArbitraryH,
4215    pub print_sizePLu: *mut A_u_long,
4216}
4217#[repr(C)]
4218#[derive(Debug, Copy, Clone)]
4219pub struct PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_10 {
4220    pub refconPV: *mut ::std::os::raw::c_void,
4221    pub print_flags: PF_ArbPrintFlags,
4222    pub arbH: PF_ArbitraryH,
4223    pub print_sizeLu: A_u_long,
4224    pub print_bufferPC: *mut A_char,
4225}
4226#[repr(C)]
4227#[derive(Debug, Copy, Clone)]
4228pub struct PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_11 {
4229    pub refconPV: *mut ::std::os::raw::c_void,
4230    pub bufPC: *const A_char,
4231    pub bytes_to_scanLu: A_u_long,
4232    pub arbPH: *mut PF_ArbitraryH,
4233}
4234#[repr(C)]
4235#[derive(Debug, Copy, Clone)]
4236pub struct PF_UserChangedParamExtra {
4237    pub param_index: PF_ParamIndex,
4238}
4239#[repr(C)]
4240#[derive(Debug, Copy, Clone)]
4241pub struct PF_ImporterPrefsData {
4242    _unused: [u8; 0],
4243}
4244pub type PF_ImporterPrefsDataPtr = *mut PF_ImporterPrefsData;
4245#[repr(C)]
4246#[derive(Debug, Copy, Clone)]
4247pub struct PF_TranslateParamsToPrefsExtra {
4248    pub prefsPC: PF_ImporterPrefsDataPtr,
4249    pub prefs_sizeLu: A_u_long,
4250}
4251pub const PF_DepCheckType_NONE: _bindgen_ty_46 = 0;
4252pub const PF_DepCheckType_ALL_DEPENDENCIES: _bindgen_ty_46 = 1;
4253pub const PF_DepCheckType_MISSING_DEPENDENCIES: _bindgen_ty_46 = 2;
4254pub type _bindgen_ty_46 = ::std::os::raw::c_uint;
4255pub type PF_DepCheckType = A_long;
4256#[repr(C)]
4257#[derive(Debug, Copy, Clone)]
4258pub struct PF_ExtDependenciesExtra {
4259    pub check_type: PF_DepCheckType,
4260    pub dependencies_strH: PF_Handle,
4261}
4262#[repr(C)]
4263#[derive(Copy, Clone)]
4264pub union PF_ParamDefUnion {
4265    pub ld: PF_LayerDef,
4266    pub sd: PF_SliderDef,
4267    pub fd: PF_FixedSliderDef,
4268    pub ad: PF_AngleDef,
4269    pub bd: PF_CheckBoxDef,
4270    pub cd: PF_ColorDef,
4271    pub td: PF_PointDef,
4272    pub pd: PF_PopupDef,
4273    pub fs_d: PF_FloatSliderDef,
4274    pub arb_d: PF_ArbitraryDef,
4275    pub path_d: PF_PathDef,
4276    pub button_d: PF_ButtonDef,
4277    pub point3d_d: PF_Point3DDef,
4278}
4279pub const PF_PUI_NONE: _bindgen_ty_47 = 0;
4280pub const PF_PUI_TOPIC: _bindgen_ty_47 = 1;
4281pub const PF_PUI_CONTROL: _bindgen_ty_47 = 2;
4282pub const PF_PUI_STD_CONTROL_ONLY: _bindgen_ty_47 = 4;
4283pub const PF_PUI_NO_ECW_UI: _bindgen_ty_47 = 8;
4284pub const PF_PUI_ECW_SEPARATOR: _bindgen_ty_47 = 16;
4285pub const PF_PUI_DISABLED: _bindgen_ty_47 = 32;
4286pub const PF_PUI_DONT_ERASE_TOPIC: _bindgen_ty_47 = 64;
4287pub const PF_PUI_DONT_ERASE_CONTROL: _bindgen_ty_47 = 128;
4288pub const PF_PUI_RADIO_BUTTON: _bindgen_ty_47 = 256;
4289pub const PF_PUI_INVISIBLE: _bindgen_ty_47 = 512;
4290#[doc = " Param UI Flags\n\nPF_PUI_TOPIC\n\nSet this flag if you handle PF_Cmd_EVENTs for the \"topic\" of\nthe parameter.  The \"topic\" is the portion of the param UI\nin the Effect Controls Window (ECW) that is still visible\nwhen the twirly-arrow is twirled up for that param.\n\nIf you set this flag, you must also set PF_OutFlag_CUSTOM_UI\nat PF_Cmd_GLOBAL_SETUP time.\n\nPF_PUI_CONTROL\n\nSet this flag if you handle PF_Cmd_EVENTs for the control\narea in the ECW.  This is the area that becomes invisible\nwhen you twirl up a parameter's twirly arrow (and is the\nusual place to have your custom UI).\n\nIf you set this flag, you must also set PF_OutFlag_CUSTOM_UI\nat PF_Cmd_GLOBAL_SETUP time.\n\nPF_PUI_STD_CONTROL_ONLY\n\nSet this flag if you want the standard control only -- no\ndata stream will be associated with this parameter, and\nthus no keyframes (nothing appears in the Time Layout window\nfor this type of param).\n\nYou might want to do this to control something in your\nsequence data with a standard control.  Or in your arb\ndata, or custom UI in the comp window, or to group-set multiple\nother controls.\n\n\nThis flag can be used with these param types:\nPF_Param_SLIDER, PF_Param_FIX_SLIDER, PF_Param_ANGLE,\nPF_Param_CHECKBOX, PF_Param_COLOR, PF_Param_POINT,\nPF_Param_POPUP, PF_Param_FLOAT_SLIDER, PF_Param_POINT_3D\n\nbut NOT:\n\nPF_Param_CUSTOM, PF_Param_NO_DATA,\nPF_Param_LAYER, PF_Param_ARBITRARY_DATA, PF_Param_PATH\n\nIf you set this flag, you must also set PF_ParamFlag_SUPERVISE\n(otherwise you would never find out about value changes, and\nthe setting would never be used for anything).  This flag\ndoes not require the setting of PF_OutFlag_CUSTOM_UI.\n\nIf you want a standard control for PF_Param_ARBITRARY_DATA,\njust add one (or more) using PF_PUI_STD_CONTROL_ONLY with\nthe supported param types, and then when handling\nPF_Cmd_USER_CHANGED_PARAM you can modify your arb data.\n\n\nPF_PUI_NO_ECW_UI\n\nSet this flag if you want no UI to appear in the Effect Controls\nWindow.  Presumably, you are setting the value of the parameter\nthrough some other method (e.g. custom UI in the comp window,\nor while handling PF_Cmd_USER_CHANGED_PARAM for a different param with\nPF_ParamFlag_SUPERVISE set). In AE, this doesn't affect keyframe\nvisibility in the timeline. In PPro it does remove the entire row,\nso you won't see keyframes.\n\nPF_PUI_ECW_SEPARATOR\n\nSet this flag if you'd like a thick line above this parameter\nin the effect control window. This is provided so that parameters\ncan be grouped visually, if needed (without adding groups).\nThis flag can be changed at runtime through the PF_UpdateParamUI()\nmethod. Not used by AE.\n\nPF_PUI_INVISIBLE\n\nSet this flag if you'd like the parameter to be initially invisible. This is useful\nif your effect needs hidden data parameters that affect rendering.\n\nPremiere only: The parameter can later be made visible by clearing the flag\nduring the PF_UpdateParamUI() callback."]
4291pub type _bindgen_ty_47 = ::std::os::raw::c_uint;
4292pub type PF_ParamUIFlags = A_long;
4293pub const PF_ChangeFlag_NONE: _bindgen_ty_48 = 0;
4294pub const PF_ChangeFlag_CHANGED_VALUE: _bindgen_ty_48 = 1;
4295pub const PF_ChangeFlag_RESERVED: _bindgen_ty_48 = 2;
4296pub const PF_ChangeFlag_SET_TO_VARY: _bindgen_ty_48 = 4;
4297pub const PF_ChangeFlag_SET_TO_CONSTANT: _bindgen_ty_48 = 8;
4298#[doc = " PF_ChangeFlags\n\nNew in AE 4.0 (although PF_ChangeFlag_CHANGED_VALUE was implemented\nby setting low bit of old changed field).\n\nPF_ChangeFlag_CHANGED_VALUE\n\nSet this flag for each param whose value you change when handling\na PF_Cmd_USER_CHANGED_PARAM or specific PF_Cmd_EVENT events\n(PF_Event_DO_CLICK, PF_Event_DRAG, & PF_Event_KEYDOWN). If set during\nPF_Cmd_EVENT, but sure to also set PF_EO_HANDLED_EVENT before returning.\nYou can change as many params as you want at once.  These changes are undoable and\nre-doable by the user.  Exception: do not set PF_PUI_STD_CONTROL_ONLY\nparam values with this flag, use PF_UpdateParamUI() instead.\n\nPF_ChangeFlag_SET_TO_VARY\n\nNot yet implemented.  Same restrictions as PF_ChangeFlag_CHANGED_VALUE.\n\nPF_ChangeFlag_SET_TO_CONSTANT\n\nNot yet implemented.  Same restrictions as PF_ChangeFlag_CHANGED_VALUE."]
4299pub type _bindgen_ty_48 = ::std::os::raw::c_uint;
4300pub type PF_ChangeFlags = A_long;
4301#[doc = " ParamDef"]
4302#[repr(C)]
4303#[derive(Copy, Clone)]
4304pub struct PF_ParamDef {
4305    pub uu: PF_ParamDef__bindgen_ty_1,
4306    pub ui_flags: PF_ParamUIFlags,
4307    pub ui_width: A_short,
4308    pub ui_height: A_short,
4309    pub param_type: PF_ParamType,
4310    pub name: [A_char; 32usize],
4311    pub flags: PF_ParamFlags,
4312    pub unused: A_long,
4313    pub u: PF_ParamDefUnion,
4314}
4315#[repr(C)]
4316#[derive(Copy, Clone)]
4317pub union PF_ParamDef__bindgen_ty_1 {
4318    pub id: A_long,
4319    pub change_flags: PF_ChangeFlags,
4320}
4321#[doc = " ParamDef"]
4322pub type PF_ParamDefPtr = *mut PF_ParamDef;
4323#[doc = " ParamDef"]
4324pub type PF_ParamDefH = *mut *mut PF_ParamDef;
4325pub type PF_ParamList = *mut *mut PF_ParamDef;
4326pub const PF_ChannelMask_ALPHA: _bindgen_ty_49 = 1;
4327pub const PF_ChannelMask_RED: _bindgen_ty_49 = 2;
4328pub const PF_ChannelMask_GREEN: _bindgen_ty_49 = 4;
4329pub const PF_ChannelMask_BLUE: _bindgen_ty_49 = 8;
4330pub const PF_ChannelMask_ARGB: _bindgen_ty_49 = 15;
4331#[doc = " -------------------- Smart Render Interface Constants and Structures --------------------\n\nPF_Cmd_SMART_PRE_RENDER gets a PF_PreRenderExtra struct in the extra pointer, and must\nfill out the \"output\" field before returning.\n\nPF_Cmd_SMART_RENDER gets a PF_SmartRenderExtra struct in the extra pointer, if pre-render was invoked.\n"]
4332pub type _bindgen_ty_49 = ::std::os::raw::c_uint;
4333pub type PF_ChannelMask = A_long;
4334pub const PF_GPU_Framework_NONE: _bindgen_ty_50 = 0;
4335pub const PF_GPU_Framework_OPENCL: _bindgen_ty_50 = 1;
4336pub const PF_GPU_Framework_METAL: _bindgen_ty_50 = 2;
4337pub const PF_GPU_Framework_CUDA: _bindgen_ty_50 = 3;
4338pub type _bindgen_ty_50 = ::std::os::raw::c_uint;
4339pub type PF_GPU_Framework = A_long;
4340#[repr(C)]
4341#[derive(Debug, Copy, Clone)]
4342pub struct PF_RenderRequest {
4343    pub rect: PF_LRect,
4344    pub field: PF_Field,
4345    pub channel_mask: PF_ChannelMask,
4346    pub preserve_rgb_of_zero_alpha: PF_Boolean,
4347    pub unused: [::std::os::raw::c_char; 3usize],
4348    pub reserved: [A_long; 4usize],
4349}
4350#[repr(C)]
4351#[derive(Debug, Copy, Clone)]
4352pub struct PF_PreRenderInput {
4353    pub output_request: PF_RenderRequest,
4354    pub bitdepth: ::std::os::raw::c_short,
4355    pub gpu_data: *const ::std::os::raw::c_void,
4356    pub what_gpu: PF_GPU_Framework,
4357    pub device_index: A_u_long,
4358}
4359pub type PF_DeletePreRenderDataFunc =
4360    ::std::option::Option<unsafe extern "C" fn(pre_render_data: *mut ::std::os::raw::c_void)>;
4361pub const PF_RenderOutputFlag_RETURNS_EXTRA_PIXELS: _bindgen_ty_51 = 1;
4362pub const PF_RenderOutputFlag_GPU_RENDER_POSSIBLE: _bindgen_ty_51 = 2;
4363pub const PF_RenderOutputFlag_RESERVED1: _bindgen_ty_51 = 4;
4364pub type _bindgen_ty_51 = ::std::os::raw::c_uint;
4365pub type PF_RenderOutputFlags = ::std::os::raw::c_short;
4366#[repr(C)]
4367#[derive(Debug, Copy, Clone)]
4368pub struct PF_PreRenderOutput {
4369    pub result_rect: PF_LRect,
4370    pub max_result_rect: PF_LRect,
4371    pub solid: PF_Boolean,
4372    pub reserved: PF_Boolean,
4373    pub flags: PF_RenderOutputFlags,
4374    pub pre_render_data: *mut ::std::os::raw::c_void,
4375    pub delete_pre_render_data_func: PF_DeletePreRenderDataFunc,
4376}
4377#[repr(C)]
4378#[derive(Debug, Copy, Clone)]
4379pub struct PF_CheckoutResult {
4380    pub result_rect: PF_LRect,
4381    pub max_result_rect: PF_LRect,
4382    pub par: PF_RationalScale,
4383    pub solid: PF_Boolean,
4384    pub reservedB: [PF_Boolean; 3usize],
4385    pub ref_width: A_long,
4386    pub ref_height: A_long,
4387    pub reserved: [A_long; 6usize],
4388}
4389#[repr(C)]
4390#[derive(Debug, Copy, Clone)]
4391pub struct PF_PreRenderCallbacks {
4392    pub checkout_layer: ::std::option::Option<
4393        unsafe extern "C" fn(
4394            effect_ref: PF_ProgPtr,
4395            index: PF_ParamIndex,
4396            checkout_idL: A_long,
4397            req: *const PF_RenderRequest,
4398            what_time: A_long,
4399            time_step: A_long,
4400            time_scale: A_u_long,
4401            checkout_result: *mut PF_CheckoutResult,
4402        ) -> PF_Err,
4403    >,
4404    pub GuidMixInPtr: ::std::option::Option<
4405        unsafe extern "C" fn(
4406            effect_ref: PF_ProgPtr,
4407            buf_sizeLu: A_u_long,
4408            buf: *const ::std::os::raw::c_void,
4409        ) -> PF_Err,
4410    >,
4411}
4412#[repr(C)]
4413#[derive(Debug, Copy, Clone)]
4414pub struct PF_PreRenderExtra {
4415    pub input: *mut PF_PreRenderInput,
4416    pub output: *mut PF_PreRenderOutput,
4417    pub cb: *mut PF_PreRenderCallbacks,
4418}
4419#[repr(C)]
4420#[derive(Debug, Copy, Clone)]
4421pub struct PF_SmartRenderInput {
4422    pub output_request: PF_RenderRequest,
4423    pub bitdepth: ::std::os::raw::c_short,
4424    pub pre_render_data: *mut ::std::os::raw::c_void,
4425    pub gpu_data: *const ::std::os::raw::c_void,
4426    pub what_gpu: PF_GPU_Framework,
4427    pub device_index: A_u_long,
4428}
4429#[repr(C)]
4430#[derive(Debug, Copy, Clone)]
4431pub struct PF_SmartRenderCallbacks {
4432    pub checkout_layer_pixels: ::std::option::Option<
4433        unsafe extern "C" fn(
4434            effect_ref: PF_ProgPtr,
4435            checkout_idL: A_long,
4436            pixels: *mut *mut PF_EffectWorld,
4437        ) -> PF_Err,
4438    >,
4439    pub checkin_layer_pixels: ::std::option::Option<
4440        unsafe extern "C" fn(effect_ref: PF_ProgPtr, checkout_idL: A_long) -> PF_Err,
4441    >,
4442    pub checkout_output: ::std::option::Option<
4443        unsafe extern "C" fn(effect_ref: PF_ProgPtr, output: *mut *mut PF_EffectWorld) -> PF_Err,
4444    >,
4445}
4446#[repr(C)]
4447#[derive(Debug, Copy, Clone)]
4448pub struct PF_SmartRenderExtra {
4449    pub input: *mut PF_SmartRenderInput,
4450    pub cb: *mut PF_SmartRenderCallbacks,
4451}
4452#[doc = " -------------------- GPU Setup/Setdown Constants and Structures --------------------\n\nPF_Cmd_GPU_DEVICE_SETUP gets a PF_GPUDeviceSetupExtra struct in the extra pointer.\n\nPF_Cmd_GPU_DEVICE_SETDOWN gets a PF_GPUDeviceSetdownExtra struct in the extra pointer.\n"]
4453#[repr(C)]
4454#[derive(Debug, Copy, Clone)]
4455pub struct PF_GPUDeviceSetupInput {
4456    pub what_gpu: PF_GPU_Framework,
4457    pub device_index: A_u_long,
4458}
4459#[repr(C)]
4460#[derive(Debug, Copy, Clone)]
4461pub struct PF_GPUDeviceSetupOutput {
4462    pub gpu_data: *mut ::std::os::raw::c_void,
4463}
4464#[repr(C)]
4465#[derive(Debug, Copy, Clone)]
4466pub struct PF_GPUDeviceSetupExtra {
4467    pub input: *mut PF_GPUDeviceSetupInput,
4468    pub output: *mut PF_GPUDeviceSetupOutput,
4469}
4470#[repr(C)]
4471#[derive(Debug, Copy, Clone)]
4472pub struct PF_GPUDeviceSetdownInput {
4473    pub gpu_data: *mut ::std::os::raw::c_void,
4474    pub what_gpu: PF_GPU_Framework,
4475    pub device_index: A_u_long,
4476}
4477#[repr(C)]
4478#[derive(Debug, Copy, Clone)]
4479pub struct PF_GPUDeviceSetdownExtra {
4480    pub input: *mut PF_GPUDeviceSetdownInput,
4481}
4482#[repr(C)]
4483#[derive(Debug, Copy, Clone)]
4484pub struct _PF_CustomUIInfo {
4485    _unused: [u8; 0],
4486}
4487#[doc = " -------------------- Interaction Callbacks --------------------\n\nEffects modules use callbacks to define their parameters.  When invoked,\nthey will be given the parameters values at the particular invocation\nmoment, but some effects may need to ask for the parameter values at\nother times (notably of layer parameters for, say, a visual echo).\n\nWhile running, effects modules are responsible for checking for user\ninterrupts.  This checking can be done with either the abort callback,\nwhich will return a value indicating if the user has taken any action,\nor with the progress callback, which performs user interrupt checking\njust like the abort callback, and also displays a progress display.\n\nAt the bottom of this section are macros for accessing these callback\nroutines.  The first parameter to each macro is a pointer to a PF_InData\nstructure, defined below.  This pointer will be passed to your effect.\n\ncheckout_param\nThe checkout_param callback allows you to inquire param values at times\nother than the current one, and allows you to access layer params other\nthan the default input layer and the output layer.  See the notes on the\n\"params\" structure at the end of this file.  The PF_ParamDef you must\nspecify cannot point into the \"params\" array; the memory must exist else-\nwhere, such as on the stack.\n\nIf you checkout a layer parameter and the layer popup is currently set\nto <none>, the return value will be filled with zeros.  You can check\nthe \"data\" pointer.  If it is NULL, then the layer param is set to <none>\nand you should do something like faking an all alpha zero layer or some\nsuch nonsense.  IMPORTANT: Due to 13.5 threading changes, checking out\na layer param that is not <none> inside of UPDATE_PARAMS_UI will return\na frame with black pixels to avoid render requests and possible deadlock.\nIn other selectors the actual render will be triggered as it did before.\n\ncheckin_param\nWhen you have called checkout_param, you must call checkin_param when you\nare done, so After Effects can clean up after itself and you.  This is\nvery important for smooth functioning and also to save memory where possible.\nOnce checked in, the fields in the PF_ParamDef will no longer be valid.\n\nadd_param\nWhen given the PARAMS_SETUP message, the effect will generally make a\nseries of calls to the add_param routine to define the interface that\nthe After Effects user will see.  See the PF_ParamDefs defined above.\nCurrently you can only add params at the end, and only at PARAMS_SETUP\ntime.\n\nabort\nPeriodically, you should check if the user wants to interrupt the\ncurrent processing.  The abort proc here will return non-zero if\nthe effects module should suspend its current processing.  If you\ncall this routine and it returns a value other than zero, you should\nreturn that value when your effect returns.  That will let us know\nif the effect completed rendering or not.\n\nprogress\nAlternatively, you may wish to display a progress bar while you are\nprocessing the image.  This routine combines the abort proc user\ninterrupt checking with code that will display a progress bar for\nyou.  The current and total params represent a fraction (current/total)\nthat describes how far you are along in your processing.  Current\nshould equal total when done.  Additionally, this routine will return\nnon-zero if you should suspend/abort your current processing.  You\nshould probably try not to call this too frequently (e.g. at every pixel).\nIt is better to call it, say, once per scanline, unless your filter is\nreally really slow."]
4488pub type PF_CustomUIInfo = _PF_CustomUIInfo;
4489#[repr(C)]
4490#[derive(Debug, Copy, Clone)]
4491pub struct PF_InteractCallbacks {
4492    pub checkout_param: ::std::option::Option<
4493        unsafe extern "C" fn(
4494            effect_ref: PF_ProgPtr,
4495            index: PF_ParamIndex,
4496            what_time: A_long,
4497            time_step: A_long,
4498            time_scale: A_u_long,
4499            param: *mut PF_ParamDef,
4500        ) -> PF_Err,
4501    >,
4502    pub checkin_param: ::std::option::Option<
4503        unsafe extern "C" fn(effect_ref: PF_ProgPtr, param: *mut PF_ParamDef) -> PF_Err,
4504    >,
4505    pub add_param: ::std::option::Option<
4506        unsafe extern "C" fn(
4507            effect_ref: PF_ProgPtr,
4508            index: PF_ParamIndex,
4509            def: PF_ParamDefPtr,
4510        ) -> PF_Err,
4511    >,
4512    pub abort: ::std::option::Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr) -> PF_Err>,
4513    pub progress: ::std::option::Option<
4514        unsafe extern "C" fn(effect_ref: PF_ProgPtr, current: A_long, total: A_long) -> PF_Err,
4515    >,
4516    pub register_ui: ::std::option::Option<
4517        unsafe extern "C" fn(effect_ref: PF_ProgPtr, cust_info: *mut PF_CustomUIInfo) -> PF_Err,
4518    >,
4519    pub checkout_layer_audio: ::std::option::Option<
4520        unsafe extern "C" fn(
4521            effect_ref: PF_ProgPtr,
4522            index: PF_ParamIndex,
4523            start_time: A_long,
4524            duration: A_long,
4525            time_scale: A_u_long,
4526            rate: PF_UFixed,
4527            bytes_per_sample: A_long,
4528            num_channels: A_long,
4529            fmt_signed: A_long,
4530            audio: *mut PF_LayerAudio,
4531        ) -> PF_Err,
4532    >,
4533    pub checkin_layer_audio: ::std::option::Option<
4534        unsafe extern "C" fn(effect_ref: PF_ProgPtr, audio: PF_LayerAudio) -> PF_Err,
4535    >,
4536    pub get_audio_data: ::std::option::Option<
4537        unsafe extern "C" fn(
4538            effect_ref: PF_ProgPtr,
4539            audio: PF_LayerAudio,
4540            data0: *mut PF_SndSamplePtr,
4541            num_samples0: *mut A_long,
4542            rate0: *mut PF_UFixed,
4543            bytes_per_sample0: *mut A_long,
4544            num_channels0: *mut A_long,
4545            fmt_signed0: *mut A_long,
4546        ) -> PF_Err,
4547    >,
4548    pub reserved_str: [*mut ::std::os::raw::c_void; 3usize],
4549    pub reserved: [*mut ::std::os::raw::c_void; 10usize],
4550}
4551#[doc = " -------------------- Effect Parameter Blocks --------------------\n\nThe effects module itself is invoked with input and output blocks\nof parameters for various messages that it needs to handle.  The\noutput block (values returned from the effect to the program) and\nthe input block (values provided by the program for the edification\nof the effect) are defined here.  Discussion follows.\n\nThe Output Block\n\nMost fields of the output block are only examined for changes after\ncertain commands have been sent to the effect module.  Each field\nbelow describes when it will be checked.\n\nmy_version\nThis is the version number of your plug-in effect, not to be confused\nwith the version of the plug-in specification. Please set this\nat PF_Cmd_GLOBAL_SETUP.\n\nname\nThis lets you override the name of the effect in the Time Layout and\nin the Effect Controls windows when the effect is applied. The name from\nthe PiPL resource is always used in the Effect menu. This field is\nchecked after PF_Cmd_SEQUENCE_SETUP. You will almost always leave\nthis field empty.\n\nglobal_data\nThis is a Handle that you can allocate at PF_Cmd_GLOBAL_SETUP\ntime.  It will be passed back to you verbatim in the input\nparameter block for use later on.  In PF_Cmd_GLOBAL_SETUP,\nthe global_data field in the Input Block may be set to a\nflattened version of your global data, in which case you should\nunflatten it, free the flat version, and set this field to the\nunflattened new global data.\n\nIt will be locked & unlocked for you automatically like sequence_data.\n\nnum_params\nThe calling application will sanity check the num_params field\nvs the times add_param is called.  The implicit main\nlayer parameter MUST be included in the parameter count.  Use the\nnum_params value in the in_data as a starting value (it will\ninclude the implicit layer parameter).\nSet this field when you get PF_Cmd_PARAMS_SETUP.\n\nsequence_data\nThis is a Handle that you can allocate (using PF_NEW_HANDLE)\nat PF_Cmd_SEQUENCE_SETUP time.\nIt will be passed back to you in the input parameter block\nfor later use.\n\nWARNING: this handle is always locked for you before your plugin\nis called, and the lock-state is restored on the way out.  If you\nhave arbitrary data, your plugin can be called re-entrantly, so\nif you have a lock/unlock inside your plugin, the handle will\nbecome unlocked prematurely -- instead simply depend on the host\nto lock & unlock your sequence data for you.  Of course during\nPF_Cmd_SEQUENCE_SETUP the handle you allocate will not be\nlocked unless you explicitly lock it at that time.\n\nThe contents of this handle will be written out to\ndisk.  If other handles\thang off this block, you must specify the\nPF_OutFlag_SEQUENCE_DATA_NEEDS_FLATTENING out flag when you get\nthe PF_Cmd_GLOBAL_SETUP command.  You will then receive the\nPF_Cmd_SEQUENCE_FLATTEN before your handle is written out.  At that\ntime, you should create a flat version of the handle contents,\nfree the old unflat handle, and set this field to the flattened\nversion of the handle.  Or after disposing, simply set to NULL\nand nothing will be written to disk.\n\nYou will receive a PF_Cmd_SEQUENCE_RESETUP\ncall to unflatten this handle (as well as to adjust the sequence\ndata to altered frame rates, etc).  If your\nsequence data can be flat or unflat, you should store its current\nstate along with the other data, and check that value in Resetup.\nIf the handle is flat, Resetup should unflatten it, free the flat\nhandle, and set this field to the new unflat usable handle.\n\nflat_sdata_size\nOBSOLETE.  Turns out, it was never used.  Since the handle\nset in sequence_data must be allocated using PF_NEW_HANDLE,\nthe host can find out the size of the handle without asking.\n\nframe_data\nThis is a Handle that you can allocated at PF_Cmd_FRAME_SETUP\ntime.  It will be passed to you in the input parameters, as\nwith the global_data and the sequence_data.  This will not\nbe written out to disk.  There is no particular use for this.\nSet this field in PF_Cmd_FRAME_SETUP, if you must.\n\nIt will be locked & unlocked for you like sequence_data.\n\nwidth\nheight\norigin\nYou set these fields at PF_Cmd_FRAME_SETUP time to indicate\nthat the output image will be larger than the input image.\nYou\tshould set width and height to the size that you want the\noutput buffer to be.  Set origin to the place that the\npoint (0,0) in the input should map to in the new larger\noutput.  Thus, if you created a 5 pixel drop shadow up and left,\nyou would set origin to (5, 5).\n\nout_flags\nout_flags2\nThis field can be set to an OR-ed combination of the PF_OutFlag\nand PF_OutFlag2 constants (don't mix them up!) to communicate\nthings to After Effects.  This will be checked after every\ncommand, but only certain flags are relevant at given times.\nCheck the PF_OutFlag constants above.\n\nreturn_msg\nThis is a message string (in C string format) that will be\ninterpreted as either an error message or a useful display\nmessage (for instance, for handling PF_Cmd_ABOUT).  Fill\nthis string with a message you want After Effects to report\nto the user for you.  It will come up in a simple dialog\nwith an OK button.  Set the first byte of this string to '\\0'\nto indicate no string -- it is set that way upon entry.  This\nfield is examined after every PF_Cmd.\n\nThe Input Block\n\nMany parts of the input block are actually structures defined elsewhere\nin this file, or in the companion file AE_EffectCB.h.  See the documentation\nwhere those structures are defined to understand their contents.\nWith any given PF_Cmd, only certain fields in the Input Block will\nhave valid values.  Each field described below tells when it is valid.\n\nin_flags\nin_flags2\nThese are various flags indicating some boolean value to\nthe effect module.  This is a combination of PF_InFlag values\nOR-ed together.  This is set for all commands, though most\nflags make sense only at certain times.  Usually this is\njust a copy of the PiPL global flags.  See PF_OutFlags and\nPF_OutFlags2 above.\n\ninter\nThis is a structure defined above containing callbacks\nrelated to user interaction.  This has callbacks to add parameters,\nto check if the user has interrupted the effect, to display\na progress bar, and to inquire parameter values outside of the\ncurrent moment.  See the doc above.  When each callback can\nvalidly be executed is defined above.\n\nutils\nThis is a pointer to a block of useful graphical and mathematical\ncallbacks provided for the effects module.  The documentation\nfor this block is in the AE_EffectCB.h file.  This is a void *,\nwhich can be confusing.  See AE_EffectCB.h for macros to use these\nfunctions.  This pointer will be defined at all times.\n\neffect_ref\nThis is a opaque piece of data that needs to be passed to\nmost of the various callback routines.  Don't worry about it.\n\nquality\nThis is set to one of the PF_Quality constants above to\ndescribe the Quality currently chosen by the user.  Ideally,\nyour effect should do a faster version with LO quality, and\na better, \"broadcast\"-able version with HI quality.  Also,\nsome of the utility callbacks perform differently between\nLO and HI quality.  This is defined for all PF_Cmds related\nto SEQUENCE and FRAME (obviously, including RENDER).\n\nversion\nThis is the version of the effects spec with which you are\nbeing invoked.  This will not be defined until after GLOBAL_SETUP.\n\nserial_num\nThis is the serial number of the invoking application.\n\nappl_id\nThis is the identifier of the invoking application.  It will\nbe the creator A_long of the app.\n\nfreq\nThis is an estimate of the frequency with which you should\ncall the abort check callback.  You can ignore this.\n\nnum_params\nThis is set to the number of input parameters you are receiving.\n\nwhat_cpu\nThis is set to the return value from Gestalt asking what sort\nof CPU your machine has.  If your effect requires a certain\ntype of CPU it should check this value and return an error\nindicating that it cannot run.  After Effects only runs on\n68020s and higher, so don't sweat it if you require that.\n\nwhat_fpu\nThis is set to the return value from Gestalt asking what sort\nof FPU your machine has.  If you require a floating point unit,\nyou should return the OutFlag indicating that in GLOBAL_SETUP,\nand then do not execute your floating point code if this value\nis set to 0 -- just do a PF_COPY of the input to the output when\nyou get the PF_Cmd_RENDER.  See OutFlag description above.\n\ncurrent_time\nThis is the time of the current frame.  It will be set in RENDER.\nThe number of the current frame is current_time / time_step.\nAll effects sequences start at time 0.\n\ntime_step\nThis is the time difference to the next or last frame.  This value\nand current_time and total_time are in units given by time_scale.\nThe time between frames is time_step, not 1.  This value will be 0\nat SEQUENCE_SETUP if it is not constant for all frames.  It will\nbe set correctly in the FRAME calls, even if it's not constant.\n\ntotal_time\nThis is the amount of time from the start to the end of the\nimage sequence on which this effect is being invoked.  The total\nnumber of frames is total_time / time_step.\n\ntime_scale\nThese are the units that current_time, time_step, and total_time\nare in.  See QuickTime for an explanation of how these time values work.\n\nwidth\nheight\nThese are the size of the input image. As Stoney Ballard points out,\nthese are certainly NOT the same as the\twidth and height fields in param[0],\nbut rather reflect the full-resolution dimensions of the input layer.\n\nfield\nWill be set to PF_Field_UPPER or PF_Field_LOWER during field-rendering\nif certain conditions are met -- for example: effect must have\nPF_OutFlag_PIX_INDEPENDENT set, and the layer to which the effect is\napplied must not be rotated, scaled nor positioned on a subpixel.\nYou can safely ignore the setting of this field, but might be able to\noptimize things by only processing the specified field.\n\nextent_hint\nThis is a rectangle that indicates the intersection of the visible\nportions of the input and output layers.  For an effect that does\nnot do a geometric distortion of the image, copying just this rectangle\nfrom the source image to the destination image is sufficient to copy\nall the image data that the user will see.  This can speed up effects\nvery much.  Just iterate over only this rectangle of pixels.\n\noutput_origin_x\noutput_origin_y\nThese fields correspond to the origin returned in the out_data at\nPF_Cmd_FRAME_SETUP time. They indicate the position of the top left\ncorner of the input buffer in the output buffer.\n\ndownsample_x\ndownsample_y\nFor speed, the user may have asked for only every Nth vertical or\nhorizontal pixel to be actually rendered by After Effects.  The width\nand height of all effect parameters (including layers) will be\nautomatically adjusted to compensate, but the effect needs to know\nthe downsampling factors to correctly interpret scalar parameters\n(ie. sliders) that represent pixel distances in the image.\nDownsample factors will be in the range 1 to 999+.  This is set in\nSEQUENCE_SETUP or RESETUP as the case may be. As of PF_PLUG_IN_VERSION 2,\nthis factor is a rational quantity.\n\nglobal_data\nsequence_data\nframe_data\nThese fields are copied from the out data on previous invocations\nand set here for you to access as you need them.  They will only\nbe set if they have been allocated during previous commands.\n\npre_effect_source_origin_x\npre_effect_source_origin_y\nThese fields are the origin of the source image in the input buffer. They are set\nonly during frame calls (PF_Cmd_FRAME_SETUP, PF_Cmd_RENDER, PF_Cmd_FRAME_SETDOWN).\nThey will be non-zero only if one or more effects that preceded this effect\non the same layer resized the output buffer (i.e. specified that the output\nimage will be larger or smaller than the input image)."]
4552#[repr(C)]
4553#[derive(Debug, Copy, Clone)]
4554pub struct PF_OutData {
4555    pub my_version: A_u_long,
4556    pub name: [A_char; 32usize],
4557    pub global_data: PF_Handle,
4558    pub num_params: A_long,
4559    pub sequence_data: PF_Handle,
4560    pub flat_sdata_size: A_long,
4561    pub frame_data: PF_Handle,
4562    pub width: A_long,
4563    pub height: A_long,
4564    pub origin: PF_Point,
4565    pub out_flags: PF_OutFlags,
4566    pub return_msg: [A_char; 256usize],
4567    pub start_sampL: A_long,
4568    pub dur_sampL: A_long,
4569    pub dest_snd: PF_SoundWorld,
4570    pub out_flags2: PF_OutFlags2,
4571}
4572#[repr(C)]
4573#[derive(Debug, Copy, Clone)]
4574pub struct PF_InData {
4575    pub inter: PF_InteractCallbacks,
4576    pub utils: *mut _PF_UtilCallbacks,
4577    pub effect_ref: PF_ProgPtr,
4578    pub quality: PF_Quality,
4579    pub version: PF_SpecVersion,
4580    pub serial_num: A_long,
4581    pub appl_id: A_long,
4582    pub num_params: A_long,
4583    pub reserved: A_long,
4584    pub what_cpu: A_long,
4585    pub what_fpu: A_long,
4586    pub current_time: A_long,
4587    pub time_step: A_long,
4588    pub total_time: A_long,
4589    pub local_time_step: A_long,
4590    pub time_scale: A_u_long,
4591    pub field: PF_Field,
4592    pub shutter_angle: PF_Fixed,
4593    pub width: A_long,
4594    pub height: A_long,
4595    pub extent_hint: PF_Rect,
4596    pub output_origin_x: A_long,
4597    pub output_origin_y: A_long,
4598    pub downsample_x: PF_RationalScale,
4599    pub downsample_y: PF_RationalScale,
4600    pub pixel_aspect_ratio: PF_RationalScale,
4601    pub in_flags: PF_InFlags,
4602    pub global_data: PF_Handle,
4603    pub sequence_data: PF_Handle,
4604    pub frame_data: PF_Handle,
4605    pub start_sampL: A_long,
4606    pub dur_sampL: A_long,
4607    pub total_sampL: A_long,
4608    pub src_snd: PF_SoundWorld,
4609    pub pica_basicP: *mut SPBasicSuite,
4610    pub pre_effect_source_origin_x: A_long,
4611    pub pre_effect_source_origin_y: A_long,
4612    pub shutter_phase: PF_Fixed,
4613}
4614#[doc = " -------------------- Effect Prototype --------------------\n\nThe effects module provides a single entry point corresponding to the\nbelow prototype through which all messages are dispatched to the\nappropriate code.\n\nThe cmd parameter is one of the PF_Cmd enumeration defined above.\nAll commands are discussed at that enumeration.  There are a lot.\n\nThe in_data and out_data parameters are respectively, PF_InData and\nPF_OutData blocks defined and described above.  The in_data contains\nread only information that the effect can use.  The out_data contains\nwrite only information through which the effect communicates back to\nthe calling program.  The descriptions above give a lot more detail.\n\nThe params list is an array of pointers to variably sized PF_ParamDef\nstructs.  This is in typical Unix-like argv format, where the last item\npoints to NULL.  The entries in this array describe the current settings\nof the parameters to the effect.  Params[0] is the layer to which the\neffect has been applied and is a PF_LayerDef param.  Other parameters\nare defined by the effect.\n\nThe output param is also a PF_LayerDef param, like params[0], and is\nan output buffer into which your effect should write the new contents\nof the layer.\n\nA brief explanation about parameter passing to effects:\n\nWhen you are invoked to Render, all \"params\" array entries will be filled\nwith their value at the current time, except for layer params other than\nthe default input layer parameter (ie. param[0]).  To get other layer param\nvalues, you must call the checkout_param callback.  (See callbacks above.)\n\nIn other words, on PF_Cmd_RENDER, params[0] will be a valid ready-to-use\nPF_EffectWorld and output will be a valid ready-to-use PF_EffectWorld.  Other params that\nare not layer params (i.e. sliders, popups, etc.) will be ready-to-use, filled\nwith their value at the current time; you do not need to call checkout_param for\nthem.  However, other params (besides [0]) that are layer params will NOT be\nfilled in correctly -- you must make a checkout_param callback to get them.\n\nANY param which you call checkout_param on, you must also call checkin_param\nbefore you exit.  If not, After Effects will automatically erase your effect\nmodule code resource from the users hard disk, along with any files that contain\nyour name or any nicknames you have.  Sorry.  Calling checkin_param is important!"]
4615pub type PF_FilterProc = ::std::option::Option<
4616    unsafe extern "C" fn(
4617        cmd: PF_Cmd,
4618        in_data: *mut PF_InData,
4619        out_data: *mut PF_OutData,
4620        params: PF_ParamList,
4621        output: *mut PF_LayerDef,
4622        extra: *mut ::std::os::raw::c_void,
4623    ) -> PF_Err,
4624>;
4625pub type PF_KernelFlags = A_u_long;
4626pub const PF_SampleEdgeBehav_ZERO: _bindgen_ty_52 = 0;
4627#[doc = " ---------- PF_SampleEdgeBehav ----------\n\nThe sampling routines always deal with 32 bit images, and thus\nneed to compute properly alpha-weighted samples. An issue arises\nwhen an attempt is made to sample outside of the image content area.\n\nBefore PF_PLUG_IN_VERSION 2, After Effects always treated pixels\noutside of the image content area as having alpha = 0, which is desirable\nin many cases. Distortions and other effects may want different sampling\nbehaviors, however, hence the PF_SampleEdgeBehav.\n"]
4628pub type _bindgen_ty_52 = ::std::os::raw::c_uint;
4629pub type PF_SampleEdgeBehav = A_u_long;
4630pub const PF_Xfer_NONE: _bindgen_ty_53 = -1;
4631pub const PF_Xfer_COPY: _bindgen_ty_53 = 0;
4632pub const PF_Xfer_BEHIND: _bindgen_ty_53 = 1;
4633pub const PF_Xfer_IN_FRONT: _bindgen_ty_53 = 2;
4634pub const PF_Xfer_DISSOLVE: _bindgen_ty_53 = 3;
4635pub const PF_Xfer_ADD: _bindgen_ty_53 = 4;
4636pub const PF_Xfer_MULTIPLY: _bindgen_ty_53 = 5;
4637pub const PF_Xfer_SCREEN: _bindgen_ty_53 = 6;
4638pub const PF_Xfer_OVERLAY: _bindgen_ty_53 = 7;
4639pub const PF_Xfer_SOFT_LIGHT: _bindgen_ty_53 = 8;
4640pub const PF_Xfer_HARD_LIGHT: _bindgen_ty_53 = 9;
4641pub const PF_Xfer_DARKEN: _bindgen_ty_53 = 10;
4642pub const PF_Xfer_LIGHTEN: _bindgen_ty_53 = 11;
4643pub const PF_Xfer_DIFFERENCE: _bindgen_ty_53 = 12;
4644pub const PF_Xfer_HUE: _bindgen_ty_53 = 13;
4645pub const PF_Xfer_SATURATION: _bindgen_ty_53 = 14;
4646pub const PF_Xfer_COLOR: _bindgen_ty_53 = 15;
4647pub const PF_Xfer_LUMINOSITY: _bindgen_ty_53 = 16;
4648pub const PF_Xfer_MULTIPLY_ALPHA: _bindgen_ty_53 = 17;
4649pub const PF_Xfer_MULTIPLY_ALPHA_LUMA: _bindgen_ty_53 = 18;
4650pub const PF_Xfer_MULTIPLY_NOT_ALPHA: _bindgen_ty_53 = 19;
4651pub const PF_Xfer_MULTIPLY_NOT_ALPHA_LUMA: _bindgen_ty_53 = 20;
4652pub const PF_Xfer_ADDITIVE_PREMUL: _bindgen_ty_53 = 21;
4653pub const PF_Xfer_ALPHA_ADD: _bindgen_ty_53 = 22;
4654pub const PF_Xfer_COLOR_DODGE: _bindgen_ty_53 = 23;
4655pub const PF_Xfer_COLOR_BURN: _bindgen_ty_53 = 24;
4656pub const PF_Xfer_EXCLUSION: _bindgen_ty_53 = 25;
4657pub const PF_Xfer_DIFFERENCE2: _bindgen_ty_53 = 26;
4658pub const PF_Xfer_COLOR_DODGE2: _bindgen_ty_53 = 27;
4659pub const PF_Xfer_COLOR_BURN2: _bindgen_ty_53 = 28;
4660pub const PF_Xfer_LINEAR_DODGE: _bindgen_ty_53 = 29;
4661pub const PF_Xfer_LINEAR_BURN: _bindgen_ty_53 = 30;
4662pub const PF_Xfer_LINEAR_LIGHT: _bindgen_ty_53 = 31;
4663pub const PF_Xfer_VIVID_LIGHT: _bindgen_ty_53 = 32;
4664pub const PF_Xfer_PIN_LIGHT: _bindgen_ty_53 = 33;
4665pub const PF_Xfer_HARD_MIX: _bindgen_ty_53 = 34;
4666pub const PF_Xfer_LIGHTER_COLOR: _bindgen_ty_53 = 35;
4667pub const PF_Xfer_DARKER_COLOR: _bindgen_ty_53 = 36;
4668pub const PF_Xfer_SUBTRACT: _bindgen_ty_53 = 37;
4669pub const PF_Xfer_DIVIDE: _bindgen_ty_53 = 38;
4670pub const PF_Xfer_RESERVED0: _bindgen_ty_53 = 39;
4671pub const PF_Xfer_RESERVED1: _bindgen_ty_53 = 40;
4672pub const PF_Xfer_NUM_MODES: _bindgen_ty_53 = 41;
4673pub type _bindgen_ty_53 = ::std::os::raw::c_int;
4674pub const PF_Xfer_TINT: _bindgen_ty_54 = 29;
4675pub const PF_Xfer_SHADE: _bindgen_ty_54 = 30;
4676pub const PF_Xfer_INTENSE_LIGHT: _bindgen_ty_54 = 32;
4677pub type _bindgen_ty_54 = ::std::os::raw::c_uint;
4678pub const PF_MaskFlag_NONE: _bindgen_ty_55 = 0;
4679pub const PF_MaskFlag_INVERTED: _bindgen_ty_55 = 1;
4680pub const PF_MaskFlag_LUMINANCE: _bindgen_ty_55 = 2;
4681pub type _bindgen_ty_55 = ::std::os::raw::c_uint;
4682pub type PF_MaskFlags = A_long;
4683#[repr(C)]
4684#[derive(Debug, Copy, Clone)]
4685pub struct PF_MaskWorld {
4686    pub mask: PF_EffectWorld,
4687    pub offset: PF_Point,
4688    pub what_is_mask: PF_MaskFlags,
4689}
4690#[doc = " ---------- PF_SampPB ----------\n\nThere are calls to sample an a non-integral point in an image,\nand to sample an area of an image.  This parameter block describes\nsome information needed for these image resampling routines."]
4691#[repr(C)]
4692#[derive(Debug, Copy, Clone)]
4693pub struct PF_SampPB {
4694    pub x_radius: PF_Fixed,
4695    pub y_radius: PF_Fixed,
4696    pub area: PF_Fixed,
4697    pub src: *mut PF_EffectWorld,
4698    pub samp_behave: PF_SampleEdgeBehav,
4699    pub allow_asynch: A_long,
4700    pub motion_blur: A_long,
4701    pub comp_mode: PF_CompositeMode,
4702    pub mask0: PF_PixelPtr,
4703    pub fcm_table: *mut A_u_char,
4704    pub fcd_table: *mut A_u_char,
4705    pub reserved: [A_long; 8usize],
4706}
4707pub const PF_Callback_NONE: _bindgen_ty_56 = 0;
4708pub const PF_Callback_BEGIN_SAMPLING: _bindgen_ty_56 = 1;
4709pub const PF_Callback_SUBPIXEL_SAMPLE: _bindgen_ty_56 = 2;
4710pub const PF_Callback_AREA_SAMPLE: _bindgen_ty_56 = 3;
4711pub const PF_Callback_OBSOLETE0: _bindgen_ty_56 = 4;
4712pub const PF_Callback_END_SAMPLING: _bindgen_ty_56 = 5;
4713pub const PF_Callback_COMPOSITE_RECT: _bindgen_ty_56 = 6;
4714pub const PF_Callback_BLEND: _bindgen_ty_56 = 7;
4715pub const PF_Callback_CONVOLVE: _bindgen_ty_56 = 8;
4716pub const PF_Callback_COPY: _bindgen_ty_56 = 9;
4717pub const PF_Callback_FILL: _bindgen_ty_56 = 10;
4718pub const PF_Callback_GAUSSIAN: _bindgen_ty_56 = 11;
4719pub const PF_Callback_ITERATE: _bindgen_ty_56 = 12;
4720pub const PF_Callback_PREMUL: _bindgen_ty_56 = 13;
4721pub const PF_Callback_PREMUL_COLOR: _bindgen_ty_56 = 14;
4722pub const PF_Callback_RGB_TO_HLS: _bindgen_ty_56 = 15;
4723pub const PF_Callback_HLS_TO_RGB: _bindgen_ty_56 = 16;
4724pub const PF_Callback_RGB_TO_YIQ: _bindgen_ty_56 = 17;
4725pub const PF_Callback_YIQ_TO_RGB: _bindgen_ty_56 = 18;
4726pub const PF_Callback_LUMINANCE: _bindgen_ty_56 = 19;
4727pub const PF_Callback_HUE: _bindgen_ty_56 = 20;
4728pub const PF_Callback_LIGHTNESS: _bindgen_ty_56 = 21;
4729pub const PF_Callback_SATURATION: _bindgen_ty_56 = 22;
4730pub const PF_Callback_NEW_WORLD: _bindgen_ty_56 = 23;
4731pub const PF_Callback_DISPOSE_WORLD: _bindgen_ty_56 = 24;
4732pub const PF_Callback_ITERATE_ORIGIN: _bindgen_ty_56 = 25;
4733pub const PF_Callback_ITERATE_LUT: _bindgen_ty_56 = 26;
4734pub const PF_Callback_TRANSFER_RECT: _bindgen_ty_56 = 27;
4735pub const PF_Callback_TRANSFORM_WORLD: _bindgen_ty_56 = 28;
4736pub const PF_Callback_ITERATE_ORIGIN_NON_CLIP_SRC: _bindgen_ty_56 = 29;
4737pub const PF_Callback_ITERATE_GENERIC: _bindgen_ty_56 = 30;
4738pub const PF_Callback_SUBPIXEL_SAMPLE16: _bindgen_ty_56 = 31;
4739pub const PF_Callback_AREA_SAMPLE16: _bindgen_ty_56 = 32;
4740pub const PF_Callback_FILL16: _bindgen_ty_56 = 33;
4741pub const PF_Callback_PREMUL_COLOR16: _bindgen_ty_56 = 34;
4742pub const PF_Callback_ITERATE16: _bindgen_ty_56 = 35;
4743pub const PF_Callback_ITERATE_ORIGIN16: _bindgen_ty_56 = 36;
4744pub const PF_Callback_ITERATE_ORIGIN_NON_CLIP_SRC16: _bindgen_ty_56 = 37;
4745pub const PF_Callback_ITERATE_GENERIC_NO_MAX_THREADS: _bindgen_ty_56 = 38;
4746pub const PF_Callback_ITERATE_NO_MAX_THREADS: _bindgen_ty_56 = 39;
4747pub const PF_Callback_ITERATE_ORIGIN_NO_MAX_THREADS: _bindgen_ty_56 = 40;
4748pub const PF_Callback_ITERATE_ORIGIN_NON_CLIP_SRC_NO_MAX_THREADS: _bindgen_ty_56 = 41;
4749pub const PF_Callback_ITERATE16_NO_MAX_THREADS: _bindgen_ty_56 = 42;
4750pub const PF_Callback_ITERATE_ORIGIN16_NO_MAX_THREADS: _bindgen_ty_56 = 43;
4751pub const PF_Callback_ITERATE_ORIGIN_NON_CLIP_SRC16_NO_MAX_THREADS: _bindgen_ty_56 = 44;
4752#[doc = " ---------- Callback Selectors ----------\n\nSome callbacks have different high and low quality versions.\nThe parameter block of function pointers will automatically\nbe filled with the appropriate versions for the current quality\nsetting, but some filters may wish to override this and access\na callback of different quality.  To do this, a get_callback_addr\ncallback is provided which will take a callback selector and a\ndesired quality and return the callback of that quality.  The\nselectors for the various callbacks are listed here.  Also, a\ntypedef for the function pointer that will be returned is given."]
4753pub type _bindgen_ty_56 = ::std::os::raw::c_uint;
4754pub type PF_CallbackID = A_long;
4755#[repr(C)]
4756#[derive(Debug, Copy, Clone)]
4757pub struct PF_YouMustCastThisToActualFunctionType {
4758    _unused: [u8; 0],
4759}
4760#[doc = "Previous versions of PF_CallbackFunc were defined using varargs in attempt to enforce\nthe effect_ref passed as the first argument to all callbacks. The actual host\nimplementations are generally *not* varargs, and on some platforms the calling\nconventions between normal C ABI and C varargs ABI are not compatible. If your\ncode is trying to call through a PF_CallbackFunc it is unsafe; with this definition\nit will now no longer compile. To fix, cast to the proper API signature before\ncalling. Or better, use the extensive Suite implementations which are explicitly typed"]
4761pub type PF_CallbackFunc = *mut PF_YouMustCastThisToActualFunctionType;
4762pub const PF_PlatData_MAIN_WND: _bindgen_ty_57 = 0;
4763pub const PF_PlatData_EXE_FILE_PATH_DEPRECATED: _bindgen_ty_57 = 1;
4764pub const PF_PlatData_RES_FILE_PATH_DEPRECATED: _bindgen_ty_57 = 2;
4765pub const PF_PlatData_RES_REFNUM: _bindgen_ty_57 = 3;
4766pub const PF_PlatData_RES_DLLINSTANCE: _bindgen_ty_57 = 4;
4767pub const PF_PlatData_SP_PLUG_REF: _bindgen_ty_57 = 5;
4768pub const PF_PlatData_BUNDLE_REF: _bindgen_ty_57 = 6;
4769pub const PF_PlatData_EXE_FILE_PATH_W: _bindgen_ty_57 = 7;
4770pub const PF_PlatData_RES_FILE_PATH_W: _bindgen_ty_57 = 8;
4771pub type _bindgen_ty_57 = ::std::os::raw::c_uint;
4772pub type PF_PlatDataID = A_long;
4773pub const PF_Plane_ALPHA: _bindgen_ty_58 = 1;
4774pub const PF_Plane_RED: _bindgen_ty_58 = 2;
4775pub const PF_Plane_GREEN: _bindgen_ty_58 = 4;
4776pub const PF_Plane_BLUE: _bindgen_ty_58 = 8;
4777#[doc = " ---------- Image Plane Selectors ----------\n\nThese constants can be used to specify a subset\nof the planes of the 32-bit image."]
4778pub type _bindgen_ty_58 = ::std::os::raw::c_uint;
4779pub type PF_Plane = A_u_long;
4780#[doc = " ---------- ANSI Routines Block ----------\n\nWithin the callback routines block there is a block of ANSI\nroutines, so that the filter will not need to link with the\nANSI library.  The following structure describes that block\nand is included in the larger Callback Routines block below.\n\nAll angles are expressed in radians; use PF_RAD_PER_DEGREE\nto convert from degrees to radians, if necessary.  Be aware\nthat angle parameter types use degrees (in fixed point).\n\nSprintf and strcpy are provided to facilitate string usage,\nsuch as printing for names and supervised controls.\n\nNone of these callbacks vary based on the Quality setting."]
4781#[repr(C)]
4782#[derive(Debug, Copy, Clone)]
4783pub struct PF_ANSICallbacks {
4784    pub atan: ::std::option::Option<unsafe extern "C" fn(arg1: A_FpLong) -> A_FpLong>,
4785    pub atan2: ::std::option::Option<unsafe extern "C" fn(y: A_FpLong, x: A_FpLong) -> A_FpLong>,
4786    pub ceil: ::std::option::Option<unsafe extern "C" fn(arg1: A_FpLong) -> A_FpLong>,
4787    pub cos: ::std::option::Option<unsafe extern "C" fn(arg1: A_FpLong) -> A_FpLong>,
4788    pub exp: ::std::option::Option<unsafe extern "C" fn(arg1: A_FpLong) -> A_FpLong>,
4789    pub fabs: ::std::option::Option<unsafe extern "C" fn(arg1: A_FpLong) -> A_FpLong>,
4790    pub floor: ::std::option::Option<unsafe extern "C" fn(arg1: A_FpLong) -> A_FpLong>,
4791    pub fmod: ::std::option::Option<unsafe extern "C" fn(x: A_FpLong, y: A_FpLong) -> A_FpLong>,
4792    pub hypot: ::std::option::Option<unsafe extern "C" fn(x: A_FpLong, y: A_FpLong) -> A_FpLong>,
4793    pub log: ::std::option::Option<unsafe extern "C" fn(arg1: A_FpLong) -> A_FpLong>,
4794    pub log10: ::std::option::Option<unsafe extern "C" fn(arg1: A_FpLong) -> A_FpLong>,
4795    pub pow: ::std::option::Option<unsafe extern "C" fn(x: A_FpLong, y: A_FpLong) -> A_FpLong>,
4796    pub sin: ::std::option::Option<unsafe extern "C" fn(arg1: A_FpLong) -> A_FpLong>,
4797    pub sqrt: ::std::option::Option<unsafe extern "C" fn(arg1: A_FpLong) -> A_FpLong>,
4798    pub tan: ::std::option::Option<unsafe extern "C" fn(arg1: A_FpLong) -> A_FpLong>,
4799    pub sprintf: ::std::option::Option<
4800        unsafe extern "C" fn(arg1: *mut A_char, arg2: *const A_char, ...) -> ::std::os::raw::c_int,
4801    >,
4802    pub strcpy: ::std::option::Option<
4803        unsafe extern "C" fn(arg1: *mut A_char, arg2: *const A_char) -> *mut A_char,
4804    >,
4805    pub asin: ::std::option::Option<unsafe extern "C" fn(arg1: A_FpLong) -> A_FpLong>,
4806    pub acos: ::std::option::Option<unsafe extern "C" fn(arg1: A_FpLong) -> A_FpLong>,
4807    pub ansi_procs: [A_long; 1usize],
4808}
4809#[doc = " ---------- Colorspace Conversion Callbacks\n"]
4810#[repr(C)]
4811#[derive(Debug, Copy, Clone)]
4812pub struct PF_ColorCallbacks {
4813    pub RGBtoHLS: ::std::option::Option<
4814        unsafe extern "C" fn(
4815            effect_ref: PF_ProgPtr,
4816            rgb: *mut PF_Pixel,
4817            hls: *mut PF_Fixed,
4818        ) -> PF_Err,
4819    >,
4820    pub HLStoRGB: ::std::option::Option<
4821        unsafe extern "C" fn(
4822            effect_ref: PF_ProgPtr,
4823            hls: *mut PF_Fixed,
4824            rgb: *mut PF_Pixel,
4825        ) -> PF_Err,
4826    >,
4827    pub RGBtoYIQ: ::std::option::Option<
4828        unsafe extern "C" fn(
4829            effect_ref: PF_ProgPtr,
4830            rgb: *mut PF_Pixel,
4831            yiq: *mut PF_Fixed,
4832        ) -> PF_Err,
4833    >,
4834    pub YIQtoRGB: ::std::option::Option<
4835        unsafe extern "C" fn(
4836            effect_ref: PF_ProgPtr,
4837            yiq: *mut PF_Fixed,
4838            rgb: *mut PF_Pixel,
4839        ) -> PF_Err,
4840    >,
4841    pub Luminance: ::std::option::Option<
4842        unsafe extern "C" fn(
4843            effect_ref: PF_ProgPtr,
4844            rgb: *mut PF_Pixel,
4845            lum100: *mut A_long,
4846        ) -> PF_Err,
4847    >,
4848    pub Hue: ::std::option::Option<
4849        unsafe extern "C" fn(
4850            effect_ref: PF_ProgPtr,
4851            rgb: *mut PF_Pixel,
4852            hue: *mut A_long,
4853        ) -> PF_Err,
4854    >,
4855    pub Lightness: ::std::option::Option<
4856        unsafe extern "C" fn(
4857            effect_ref: PF_ProgPtr,
4858            rgb: *mut PF_Pixel,
4859            lightness: *mut A_long,
4860        ) -> PF_Err,
4861    >,
4862    pub Saturation: ::std::option::Option<
4863        unsafe extern "C" fn(
4864            effect_ref: PF_ProgPtr,
4865            rgb: *mut PF_Pixel,
4866            saturation: *mut A_long,
4867        ) -> PF_Err,
4868    >,
4869}
4870pub type PF_BatchSampleFunc = *mut ::std::os::raw::c_void;
4871pub type PF_BatchSample16Func = *mut ::std::os::raw::c_void;
4872pub const PF_NewWorldFlag_NONE: _bindgen_ty_59 = 0;
4873pub const PF_NewWorldFlag_CLEAR_PIXELS: _bindgen_ty_59 = 1;
4874pub const PF_NewWorldFlag_DEEP_PIXELS: _bindgen_ty_59 = 2;
4875pub const PF_NewWorldFlag_RESERVED0: _bindgen_ty_59 = 4;
4876pub const PF_NewWorldFlag_RESERVED1: _bindgen_ty_59 = 8;
4877pub type _bindgen_ty_59 = ::std::os::raw::c_uint;
4878pub type PF_NewWorldFlags = A_long;
4879#[doc = "prototypes for PF_ITERATE8 and PF_ITERATE16 pixel functions\n\nthe user of PF_ITERATE provides a refcon; After Effects may distribute iteration\nacross multiple threads, so any data pointed to by refconL should be read-only or\nproperly synchronized\n\ninP is writable only if the world you pass to PF_ITERATE() is PF_WorldFlag_WRITEABLE\n\n"]
4880pub type PF_IteratePixel8Func = ::std::option::Option<
4881    unsafe extern "C" fn(
4882        refconP: *mut ::std::os::raw::c_void,
4883        xL: A_long,
4884        yL: A_long,
4885        inP: *mut PF_Pixel,
4886        outP: *mut PF_Pixel,
4887    ) -> PF_Err,
4888>;
4889pub type PF_IteratePixel16Func = ::std::option::Option<
4890    unsafe extern "C" fn(
4891        refconP: *mut ::std::os::raw::c_void,
4892        xL: A_long,
4893        yL: A_long,
4894        inP: *mut PF_Pixel16,
4895        outP: *mut PF_Pixel16,
4896    ) -> PF_Err,
4897>;
4898pub type PF_IteratePixelFloatFunc = ::std::option::Option<
4899    unsafe extern "C" fn(
4900        refconP: *mut ::std::os::raw::c_void,
4901        xL: A_long,
4902        yL: A_long,
4903        inP: *mut PF_PixelFloat,
4904        outP: *mut PF_PixelFloat,
4905    ) -> PF_Err,
4906>;
4907#[repr(C)]
4908#[derive(Debug, Copy, Clone)]
4909pub struct _PF_UtilCallbacks {
4910    pub begin_sampling: ::std::option::Option<
4911        unsafe extern "C" fn(
4912            effect_ref: PF_ProgPtr,
4913            qual: PF_Quality,
4914            mf: PF_ModeFlags,
4915            params: *mut PF_SampPB,
4916        ) -> PF_Err,
4917    >,
4918    pub subpixel_sample: ::std::option::Option<
4919        unsafe extern "C" fn(
4920            effect_ref: PF_ProgPtr,
4921            x: PF_Fixed,
4922            y: PF_Fixed,
4923            params: *const PF_SampPB,
4924            dst_pixel: *mut PF_Pixel,
4925        ) -> PF_Err,
4926    >,
4927    pub area_sample: ::std::option::Option<
4928        unsafe extern "C" fn(
4929            effect_ref: PF_ProgPtr,
4930            x: PF_Fixed,
4931            y: PF_Fixed,
4932            params: *const PF_SampPB,
4933            dst_pixel: *mut PF_Pixel,
4934        ) -> PF_Err,
4935    >,
4936    pub get_batch_func_is_deprecated: *mut ::std::os::raw::c_void,
4937    pub end_sampling: ::std::option::Option<
4938        unsafe extern "C" fn(
4939            effect_ref: PF_ProgPtr,
4940            qual: PF_Quality,
4941            mf: PF_ModeFlags,
4942            params: *mut PF_SampPB,
4943        ) -> PF_Err,
4944    >,
4945    pub composite_rect: ::std::option::Option<
4946        unsafe extern "C" fn(
4947            effect_ref: PF_ProgPtr,
4948            src_rect: *mut PF_Rect,
4949            src_opacity: A_long,
4950            source_wld: *mut PF_EffectWorld,
4951            dest_x: A_long,
4952            dest_y: A_long,
4953            field_rdr: PF_Field,
4954            xfer_mode: PF_XferMode,
4955            dest_wld: *mut PF_EffectWorld,
4956        ) -> PF_Err,
4957    >,
4958    pub blend: ::std::option::Option<
4959        unsafe extern "C" fn(
4960            effect_ref: PF_ProgPtr,
4961            src1: *const PF_EffectWorld,
4962            src2: *const PF_EffectWorld,
4963            ratio: PF_Fixed,
4964            dst: *mut PF_EffectWorld,
4965        ) -> PF_Err,
4966    >,
4967    pub convolve: ::std::option::Option<
4968        unsafe extern "C" fn(
4969            effect_ref: PF_ProgPtr,
4970            src: *mut PF_EffectWorld,
4971            area: *const PF_Rect,
4972            flags: PF_KernelFlags,
4973            kernel_size: A_long,
4974            a_kernel: *mut ::std::os::raw::c_void,
4975            r_kernel: *mut ::std::os::raw::c_void,
4976            g_kernel: *mut ::std::os::raw::c_void,
4977            b_kernel: *mut ::std::os::raw::c_void,
4978            dst: *mut PF_EffectWorld,
4979        ) -> PF_Err,
4980    >,
4981    pub copy: ::std::option::Option<
4982        unsafe extern "C" fn(
4983            effect_ref: PF_ProgPtr,
4984            src: *mut PF_EffectWorld,
4985            dst: *mut PF_EffectWorld,
4986            src_r: *mut PF_Rect,
4987            dst_r: *mut PF_Rect,
4988        ) -> PF_Err,
4989    >,
4990    pub fill: ::std::option::Option<
4991        unsafe extern "C" fn(
4992            effect_ref: PF_ProgPtr,
4993            color: *const PF_Pixel,
4994            dst_rect: *const PF_Rect,
4995            world: *mut PF_EffectWorld,
4996        ) -> PF_Err,
4997    >,
4998    pub gaussian_kernel: ::std::option::Option<
4999        unsafe extern "C" fn(
5000            effect_ref: PF_ProgPtr,
5001            kRadius: A_FpLong,
5002            flags: PF_KernelFlags,
5003            multiplier: A_FpLong,
5004            diameter: *mut A_long,
5005            kernel: *mut ::std::os::raw::c_void,
5006        ) -> PF_Err,
5007    >,
5008    pub iterate: ::std::option::Option<
5009        unsafe extern "C" fn(
5010            in_data: *mut PF_InData,
5011            progress_base: A_long,
5012            progress_final: A_long,
5013            src: *mut PF_EffectWorld,
5014            area: *const PF_Rect,
5015            refcon: *mut ::std::os::raw::c_void,
5016            pix_fn: PF_IteratePixel8Func,
5017            dst: *mut PF_EffectWorld,
5018        ) -> PF_Err,
5019    >,
5020    pub premultiply: ::std::option::Option<
5021        unsafe extern "C" fn(
5022            effect_ref: PF_ProgPtr,
5023            forward: A_long,
5024            dst: *mut PF_EffectWorld,
5025        ) -> PF_Err,
5026    >,
5027    pub premultiply_color: ::std::option::Option<
5028        unsafe extern "C" fn(
5029            effect_ref: PF_ProgPtr,
5030            src: *mut PF_EffectWorld,
5031            color: *const PF_Pixel,
5032            forward: A_long,
5033            dst: *mut PF_EffectWorld,
5034        ) -> PF_Err,
5035    >,
5036    pub new_world: ::std::option::Option<
5037        unsafe extern "C" fn(
5038            effect_ref: PF_ProgPtr,
5039            width: A_long,
5040            height: A_long,
5041            flags: PF_NewWorldFlags,
5042            world: *mut PF_EffectWorld,
5043        ) -> PF_Err,
5044    >,
5045    pub dispose_world: ::std::option::Option<
5046        unsafe extern "C" fn(effect_ref: PF_ProgPtr, world: *mut PF_EffectWorld) -> PF_Err,
5047    >,
5048    pub iterate_origin: ::std::option::Option<
5049        unsafe extern "C" fn(
5050            in_data: *mut PF_InData,
5051            progress_base: A_long,
5052            progress_final: A_long,
5053            src: *mut PF_EffectWorld,
5054            area: *const PF_Rect,
5055            origin: *const PF_Point,
5056            refcon: *mut ::std::os::raw::c_void,
5057            pix_fn: PF_IteratePixel8Func,
5058            dst: *mut PF_EffectWorld,
5059        ) -> PF_Err,
5060    >,
5061    pub iterate_lut: ::std::option::Option<
5062        unsafe extern "C" fn(
5063            in_data: *mut PF_InData,
5064            progress_base: A_long,
5065            progress_final: A_long,
5066            src: *mut PF_EffectWorld,
5067            area: *const PF_Rect,
5068            a_lut0: *mut A_u_char,
5069            r_lut0: *mut A_u_char,
5070            g_lut0: *mut A_u_char,
5071            b_lut0: *mut A_u_char,
5072            dst: *mut PF_EffectWorld,
5073        ) -> PF_Err,
5074    >,
5075    pub transfer_rect: ::std::option::Option<
5076        unsafe extern "C" fn(
5077            effect_ref: PF_ProgPtr,
5078            quality: PF_Quality,
5079            m_flags: PF_ModeFlags,
5080            field: PF_Field,
5081            src_rec: *const PF_Rect,
5082            src_world: *const PF_EffectWorld,
5083            comp_mode: *const PF_CompositeMode,
5084            mask_world0: *const PF_MaskWorld,
5085            dest_x: A_long,
5086            dest_y: A_long,
5087            dst_world: *mut PF_EffectWorld,
5088        ) -> PF_Err,
5089    >,
5090    pub transform_world: ::std::option::Option<
5091        unsafe extern "C" fn(
5092            effect_ref: PF_ProgPtr,
5093            quality: PF_Quality,
5094            m_flags: PF_ModeFlags,
5095            field: PF_Field,
5096            src_world: *const PF_EffectWorld,
5097            comp_mode: *const PF_CompositeMode,
5098            mask_world0: *const PF_MaskWorld,
5099            matrices: *const PF_FloatMatrix,
5100            num_matrices: A_long,
5101            src2dst_matrix: PF_Boolean,
5102            dest_rect: *const PF_Rect,
5103            dst_world: *mut PF_EffectWorld,
5104        ) -> PF_Err,
5105    >,
5106    pub host_new_handle:
5107        ::std::option::Option<unsafe extern "C" fn(size: A_u_longlong) -> PF_Handle>,
5108    pub host_lock_handle: ::std::option::Option<
5109        unsafe extern "C" fn(pf_handle: PF_Handle) -> *mut ::std::os::raw::c_void,
5110    >,
5111    pub host_unlock_handle: ::std::option::Option<unsafe extern "C" fn(pf_handle: PF_Handle)>,
5112    pub host_dispose_handle: ::std::option::Option<unsafe extern "C" fn(pf_handle: PF_Handle)>,
5113    pub get_callback_addr: ::std::option::Option<
5114        unsafe extern "C" fn(
5115            effect_ref: PF_ProgPtr,
5116            quality: PF_Quality,
5117            mode_flags: PF_ModeFlags,
5118            which_callback: PF_CallbackID,
5119            fn_ptr: *mut PF_CallbackFunc,
5120        ) -> PF_Err,
5121    >,
5122    pub app:
5123        ::std::option::Option<unsafe extern "C" fn(arg1: PF_ProgPtr, arg2: A_long, ...) -> PF_Err>,
5124    pub ansi: PF_ANSICallbacks,
5125    pub colorCB: PF_ColorCallbacks,
5126    pub get_platform_data: ::std::option::Option<
5127        unsafe extern "C" fn(
5128            effect_ref: PF_ProgPtr,
5129            which: PF_PlatDataID,
5130            data: *mut ::std::os::raw::c_void,
5131        ) -> PF_Err,
5132    >,
5133    pub host_get_handle_size:
5134        ::std::option::Option<unsafe extern "C" fn(pf_handle: PF_Handle) -> A_u_longlong>,
5135    pub iterate_origin_non_clip_src: ::std::option::Option<
5136        unsafe extern "C" fn(
5137            in_data: *mut PF_InData,
5138            progress_base: A_long,
5139            progress_final: A_long,
5140            src: *mut PF_EffectWorld,
5141            area: *const PF_Rect,
5142            origin: *const PF_Point,
5143            refcon: *mut ::std::os::raw::c_void,
5144            pix_fn: PF_IteratePixel8Func,
5145            dst: *mut PF_EffectWorld,
5146        ) -> PF_Err,
5147    >,
5148    pub iterate_generic: ::std::option::Option<
5149        unsafe extern "C" fn(
5150            iterationsL: A_long,
5151            refconPV: *mut ::std::os::raw::c_void,
5152            fn_func: ::std::option::Option<
5153                unsafe extern "C" fn(
5154                    refconPV: *mut ::std::os::raw::c_void,
5155                    thread_indexL: A_long,
5156                    i: A_long,
5157                    iterationsL: A_long,
5158                ) -> PF_Err,
5159            >,
5160        ) -> PF_Err,
5161    >,
5162    pub host_resize_handle: ::std::option::Option<
5163        unsafe extern "C" fn(new_sizeL: A_u_longlong, handlePH: *mut PF_Handle) -> PF_Err,
5164    >,
5165    pub subpixel_sample16: ::std::option::Option<
5166        unsafe extern "C" fn(
5167            effect_ref: PF_ProgPtr,
5168            x: PF_Fixed,
5169            y: PF_Fixed,
5170            params: *const PF_SampPB,
5171            dst_pixel: *mut PF_Pixel16,
5172        ) -> PF_Err,
5173    >,
5174    pub area_sample16: ::std::option::Option<
5175        unsafe extern "C" fn(
5176            effect_ref: PF_ProgPtr,
5177            x: PF_Fixed,
5178            y: PF_Fixed,
5179            params: *const PF_SampPB,
5180            dst_pixel: *mut PF_Pixel16,
5181        ) -> PF_Err,
5182    >,
5183    pub fill16: ::std::option::Option<
5184        unsafe extern "C" fn(
5185            effect_ref: PF_ProgPtr,
5186            color: *const PF_Pixel16,
5187            dst_rect: *const PF_Rect,
5188            world: *mut PF_EffectWorld,
5189        ) -> PF_Err,
5190    >,
5191    pub premultiply_color16: ::std::option::Option<
5192        unsafe extern "C" fn(
5193            effect_ref: PF_ProgPtr,
5194            src: *mut PF_EffectWorld,
5195            color: *const PF_Pixel16,
5196            forward: A_long,
5197            dst: *mut PF_EffectWorld,
5198        ) -> PF_Err,
5199    >,
5200    pub iterate16: ::std::option::Option<
5201        unsafe extern "C" fn(
5202            in_data: *mut PF_InData,
5203            progress_base: A_long,
5204            progress_final: A_long,
5205            src: *mut PF_EffectWorld,
5206            area: *const PF_Rect,
5207            refcon: *mut ::std::os::raw::c_void,
5208            pix_fn: PF_IteratePixel16Func,
5209            dst: *mut PF_EffectWorld,
5210        ) -> PF_Err,
5211    >,
5212    pub iterate_origin16: ::std::option::Option<
5213        unsafe extern "C" fn(
5214            in_data: *mut PF_InData,
5215            progress_base: A_long,
5216            progress_final: A_long,
5217            src: *mut PF_EffectWorld,
5218            area: *const PF_Rect,
5219            origin: *const PF_Point,
5220            refcon: *mut ::std::os::raw::c_void,
5221            pix_fn: PF_IteratePixel16Func,
5222            dst: *mut PF_EffectWorld,
5223        ) -> PF_Err,
5224    >,
5225    pub iterate_origin_non_clip_src16: ::std::option::Option<
5226        unsafe extern "C" fn(
5227            in_data: *mut PF_InData,
5228            progress_base: A_long,
5229            progress_final: A_long,
5230            src: *mut PF_EffectWorld,
5231            area: *const PF_Rect,
5232            origin: *const PF_Point,
5233            refcon: *mut ::std::os::raw::c_void,
5234            pix_fn: PF_IteratePixel16Func,
5235            dst: *mut PF_EffectWorld,
5236        ) -> PF_Err,
5237    >,
5238    pub get_pixel_data8: ::std::option::Option<
5239        unsafe extern "C" fn(
5240            worldP: *mut PF_EffectWorld,
5241            pixelsP0: PF_PixelPtr,
5242            pixPP: *mut *mut PF_Pixel8,
5243        ) -> PF_Err,
5244    >,
5245    pub get_pixel_data16: ::std::option::Option<
5246        unsafe extern "C" fn(
5247            worldP: *mut PF_EffectWorld,
5248            pixelsP0: PF_PixelPtr,
5249            pixPP: *mut *mut PF_Pixel16,
5250        ) -> PF_Err,
5251    >,
5252    pub reserved: [A_long; 1usize],
5253}
5254pub type PF_UtilCallbacks = _PF_UtilCallbacks;
5255#[repr(C)]
5256#[derive(Debug, Copy, Clone)]
5257pub struct PF_CacheOnLoadSuite1 {
5258    pub PF_SetNoCacheOnLoad: ::std::option::Option<
5259        unsafe extern "C" fn(
5260            effect_ref: PF_ProgPtr,
5261            effectAvailable: ::std::os::raw::c_long,
5262        ) -> PF_Err,
5263    >,
5264}
5265pub const PF_TimeDisplay_24: _bindgen_ty_60 = 1;
5266pub const PF_TimeDisplay_25: _bindgen_ty_60 = 2;
5267pub const PF_TimeDisplay_30Drop: _bindgen_ty_60 = 3;
5268pub const PF_TimeDisplay_30NonDrop: _bindgen_ty_60 = 4;
5269pub const PF_TimeDisplay_50: _bindgen_ty_60 = 5;
5270pub const PF_TimeDisplay_60Drop: _bindgen_ty_60 = 6;
5271pub const PF_TimeDisplay_60NonDrop: _bindgen_ty_60 = 7;
5272pub const PF_TimeDisplay_NonStandard: _bindgen_ty_60 = 8;
5273pub const PF_TimeDisplay_Invalid: _bindgen_ty_60 = 9;
5274pub type _bindgen_ty_60 = ::std::os::raw::c_uint;
5275pub type PF_TimeDisplay = csSDK_uint32;
5276#[repr(C)]
5277#[derive(Debug, Copy, Clone)]
5278pub struct PF_PixelFormatSuite1 {
5279    pub AddSupportedPixelFormat: ::std::option::Option<
5280        unsafe extern "C" fn(effect_ref: PF_ProgPtr, pixelFormat: PrPixelFormat) -> PF_Err,
5281    >,
5282    pub ClearSupportedPixelFormats:
5283        ::std::option::Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr) -> PF_Err>,
5284    pub NewWorldOfPixelFormat: ::std::option::Option<
5285        unsafe extern "C" fn(
5286            effect_ref: PF_ProgPtr,
5287            width: A_u_long,
5288            height: A_u_long,
5289            flags: PF_NewWorldFlags,
5290            pixelFormat: PrPixelFormat,
5291            world: *mut PF_EffectWorld,
5292        ) -> PF_Err,
5293    >,
5294    pub DisposeWorld: ::std::option::Option<
5295        unsafe extern "C" fn(effect_ref: PF_ProgPtr, world: *mut PF_EffectWorld) -> PF_Err,
5296    >,
5297    pub GetPixelFormat: ::std::option::Option<
5298        unsafe extern "C" fn(
5299            inWorld: *mut PF_EffectWorld,
5300            pixelFormat: *mut PrPixelFormat,
5301        ) -> PF_Err,
5302    >,
5303    pub GetBlackForPixelFormat: ::std::option::Option<
5304        unsafe extern "C" fn(
5305            pixelFormat: PrPixelFormat,
5306            pixelData: *mut ::std::os::raw::c_void,
5307        ) -> PF_Err,
5308    >,
5309    pub GetWhiteForPixelFormat: ::std::option::Option<
5310        unsafe extern "C" fn(
5311            pixelFormat: PrPixelFormat,
5312            pixelData: *mut ::std::os::raw::c_void,
5313        ) -> PF_Err,
5314    >,
5315    pub ConvertColorToPixelFormattedData: ::std::option::Option<
5316        unsafe extern "C" fn(
5317            pixelFormat: PrPixelFormat,
5318            alpha: f32,
5319            red: f32,
5320            green: f32,
5321            blue: f32,
5322            pixelData: *mut ::std::os::raw::c_void,
5323        ) -> PF_Err,
5324    >,
5325}
5326#[repr(C)]
5327#[derive(Debug, Copy, Clone)]
5328pub struct PF_BackgroundFrameSuite1 {
5329    pub AddSupportedBackgroundTransferMode: ::std::option::Option<
5330        unsafe extern "C" fn(
5331            effect_ref: PF_ProgPtr,
5332            supportedTransferMode: PF_TransferMode,
5333            supportedPixelFormat: PrPixelFormat,
5334        ) -> PF_Err,
5335    >,
5336    pub GetBackgroundFrame: ::std::option::Option<
5337        unsafe extern "C" fn(
5338            effect_ref: PF_ProgPtr,
5339            backgroundFrame: *mut *mut PF_LayerDef,
5340            backgroundTransferMode: *mut PF_TransferMode,
5341        ) -> PF_Err,
5342    >,
5343}
5344#[repr(C)]
5345#[derive(Debug, Copy, Clone)]
5346pub struct PF_UtilitySuite4 {
5347    pub GetFilterInstanceID: ::std::option::Option<
5348        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outFilterInstanceID: *mut A_long) -> PF_Err,
5349    >,
5350    pub GetMediaTimecode: ::std::option::Option<
5351        unsafe extern "C" fn(
5352            effect_ref: PF_ProgPtr,
5353            outCurrentFrame: *mut A_long,
5354            outTimeDisplay: *mut PF_TimeDisplay,
5355        ) -> PF_Err,
5356    >,
5357    pub GetClipSpeed: ::std::option::Option<
5358        unsafe extern "C" fn(effect_ref: PF_ProgPtr, speed: *mut f64) -> PF_Err,
5359    >,
5360    pub GetClipDuration: ::std::option::Option<
5361        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
5362    >,
5363    pub GetClipStart: ::std::option::Option<
5364        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
5365    >,
5366    pub GetUnscaledClipDuration: ::std::option::Option<
5367        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
5368    >,
5369    pub GetUnscaledClipStart: ::std::option::Option<
5370        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
5371    >,
5372    pub GetTrackItemStart: ::std::option::Option<
5373        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
5374    >,
5375    pub GetMediaFieldType: ::std::option::Option<
5376        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outFieldType: *mut prFieldType) -> PF_Err,
5377    >,
5378    pub GetMediaFrameRate: ::std::option::Option<
5379        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outTicksPerFrame: *mut PrTime) -> PF_Err,
5380    >,
5381    pub GetContainingTimelineID: ::std::option::Option<
5382        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outTimelineID: *mut PrTimelineID) -> PF_Err,
5383    >,
5384    pub GetClipName: ::std::option::Option<
5385        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outSDKString: *mut PrSDKString) -> PF_Err,
5386    >,
5387    pub EffectWantsCheckedOutFramesToMatchRenderPixelFormat:
5388        ::std::option::Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr) -> PF_Err>,
5389}
5390#[repr(C)]
5391#[derive(Debug, Copy, Clone)]
5392pub struct PF_UtilitySuite {
5393    pub GetFilterInstanceID: ::std::option::Option<
5394        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outFilterInstanceID: *mut A_long) -> PF_Err,
5395    >,
5396    pub GetMediaTimecode: ::std::option::Option<
5397        unsafe extern "C" fn(
5398            effect_ref: PF_ProgPtr,
5399            outCurrentFrame: *mut A_long,
5400            outTimeDisplay: *mut PF_TimeDisplay,
5401        ) -> PF_Err,
5402    >,
5403    pub GetClipSpeed: ::std::option::Option<
5404        unsafe extern "C" fn(effect_ref: PF_ProgPtr, speed: *mut f64) -> PF_Err,
5405    >,
5406    pub GetClipDuration: ::std::option::Option<
5407        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
5408    >,
5409    pub GetClipStart: ::std::option::Option<
5410        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
5411    >,
5412    pub GetUnscaledClipDuration: ::std::option::Option<
5413        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
5414    >,
5415    pub GetUnscaledClipStart: ::std::option::Option<
5416        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
5417    >,
5418    pub GetTrackItemStart: ::std::option::Option<
5419        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
5420    >,
5421    pub GetMediaFieldType: ::std::option::Option<
5422        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outFieldType: *mut prFieldType) -> PF_Err,
5423    >,
5424    pub GetMediaFrameRate: ::std::option::Option<
5425        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outTicksPerFrame: *mut PrTime) -> PF_Err,
5426    >,
5427    pub GetContainingTimelineID: ::std::option::Option<
5428        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outTimelineID: *mut PrTimelineID) -> PF_Err,
5429    >,
5430    pub GetClipName: ::std::option::Option<
5431        unsafe extern "C" fn(
5432            effect_ref: PF_ProgPtr,
5433            inGetMasterClipName: A_Boolean,
5434            outSDKString: *mut PrSDKString,
5435        ) -> PF_Err,
5436    >,
5437    pub EffectWantsCheckedOutFramesToMatchRenderPixelFormat:
5438        ::std::option::Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr) -> PF_Err>,
5439    pub EffectDependsOnClipName: ::std::option::Option<
5440        unsafe extern "C" fn(effect_ref: PF_ProgPtr, inDependsOnClipName: A_Boolean) -> PF_Err,
5441    >,
5442    pub SetEffectInstanceName: ::std::option::Option<
5443        unsafe extern "C" fn(effect_ref: PF_ProgPtr, inSDKString: *const PrSDKString) -> PF_Err,
5444    >,
5445    pub GetFileName: ::std::option::Option<
5446        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outSDKString: *mut PrSDKString) -> PF_Err,
5447    >,
5448    pub GetOriginalClipFrameRate: ::std::option::Option<
5449        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outTicksPerFrame: *mut PrTime) -> PF_Err,
5450    >,
5451    pub GetSourceTrackMediaTimecode: ::std::option::Option<
5452        unsafe extern "C" fn(
5453            effect_ref: PF_ProgPtr,
5454            inLayerParamIndex: csSDK_uint32,
5455            inApplyTransform: bool,
5456            inAddStartTimeOffset: bool,
5457            outCurrentFrame: *mut A_long,
5458        ) -> PF_Err,
5459    >,
5460    pub GetSourceTrackClipName: ::std::option::Option<
5461        unsafe extern "C" fn(
5462            effect_ref: PF_ProgPtr,
5463            inLayerParamIndex: csSDK_uint32,
5464            inGetMasterClipName: A_Boolean,
5465            outSDKString: *mut PrSDKString,
5466        ) -> PF_Err,
5467    >,
5468    pub GetSourceTrackFileName: ::std::option::Option<
5469        unsafe extern "C" fn(
5470            effect_ref: PF_ProgPtr,
5471            inLayerParamIndex: csSDK_uint32,
5472            outSDKString: *mut PrSDKString,
5473        ) -> PF_Err,
5474    >,
5475    pub EffectDependsOnClipName2: ::std::option::Option<
5476        unsafe extern "C" fn(
5477            effect_ref: PF_ProgPtr,
5478            inDependsOnClipName: A_Boolean,
5479            inLayerParamIndex: csSDK_uint32,
5480        ) -> PF_Err,
5481    >,
5482    pub GetMediaTimecode2: ::std::option::Option<
5483        unsafe extern "C" fn(
5484            effect_ref: PF_ProgPtr,
5485            inApplyTrim: bool,
5486            outCurrentFrame: *mut A_long,
5487            outTimeDisplay: *mut PF_TimeDisplay,
5488        ) -> PF_Err,
5489    >,
5490    pub GetSourceTrackMediaTimecode2: ::std::option::Option<
5491        unsafe extern "C" fn(
5492            effect_ref: PF_ProgPtr,
5493            inLayerParamIndex: csSDK_uint32,
5494            inApplyTransform: bool,
5495            inAddStartTimeOffset: bool,
5496            inSequenceTime: PrTime,
5497            outCurrentFrame: *mut A_long,
5498        ) -> PF_Err,
5499    >,
5500    pub GetSourceTrackClipName2: ::std::option::Option<
5501        unsafe extern "C" fn(
5502            effect_ref: PF_ProgPtr,
5503            inLayerParamIndex: csSDK_uint32,
5504            inGetMasterClipName: A_Boolean,
5505            outSDKString: *mut PrSDKString,
5506            inSequenceTime: PrTime,
5507        ) -> PF_Err,
5508    >,
5509    pub GetSourceTrackFileName2: ::std::option::Option<
5510        unsafe extern "C" fn(
5511            effect_ref: PF_ProgPtr,
5512            inLayerParamIndex: csSDK_uint32,
5513            outSDKString: *mut PrSDKString,
5514            inSequenceTime: PrTime,
5515        ) -> PF_Err,
5516    >,
5517    pub GetCommentString: ::std::option::Option<
5518        unsafe extern "C" fn(
5519            inEffectRef: PF_ProgPtr,
5520            inSourceTrack: i32,
5521            inSequenceTime: PrTime,
5522            outSDKString: *mut PrSDKString,
5523        ) -> PF_Err,
5524    >,
5525    pub GetLogNoteString: ::std::option::Option<
5526        unsafe extern "C" fn(
5527            inEffectRef: PF_ProgPtr,
5528            inSourceTrack: i32,
5529            inSequenceTime: PrTime,
5530            outSDKString: *mut PrSDKString,
5531        ) -> PF_Err,
5532    >,
5533    pub GetCameraRollString: ::std::option::Option<
5534        unsafe extern "C" fn(
5535            inEffectRef: PF_ProgPtr,
5536            inSourceTrack: i32,
5537            inSequenceTime: PrTime,
5538            outSDKString: *mut PrSDKString,
5539        ) -> PF_Err,
5540    >,
5541    pub GetClientMetadataString: ::std::option::Option<
5542        unsafe extern "C" fn(
5543            inEffectRef: PF_ProgPtr,
5544            inSourceTrack: i32,
5545            inSequenceTime: PrTime,
5546            outSDKString: *mut PrSDKString,
5547        ) -> PF_Err,
5548    >,
5549    pub GetDailyRollString: ::std::option::Option<
5550        unsafe extern "C" fn(
5551            inEffectRef: PF_ProgPtr,
5552            inSourceTrack: i32,
5553            inSequenceTime: PrTime,
5554            outSDKString: *mut PrSDKString,
5555        ) -> PF_Err,
5556    >,
5557    pub GetDescriptionString: ::std::option::Option<
5558        unsafe extern "C" fn(
5559            inEffectRef: PF_ProgPtr,
5560            inSourceTrack: i32,
5561            inSequenceTime: PrTime,
5562            outSDKString: *mut PrSDKString,
5563        ) -> PF_Err,
5564    >,
5565    pub GetLabRollString: ::std::option::Option<
5566        unsafe extern "C" fn(
5567            inEffectRef: PF_ProgPtr,
5568            inSourceTrack: i32,
5569            inSequenceTime: PrTime,
5570            outSDKString: *mut PrSDKString,
5571        ) -> PF_Err,
5572    >,
5573    pub GetSceneString: ::std::option::Option<
5574        unsafe extern "C" fn(
5575            inEffectRef: PF_ProgPtr,
5576            inSourceTrack: i32,
5577            inSequenceTime: PrTime,
5578            outSDKString: *mut PrSDKString,
5579        ) -> PF_Err,
5580    >,
5581    pub GetShotString: ::std::option::Option<
5582        unsafe extern "C" fn(
5583            inEffectRef: PF_ProgPtr,
5584            inSourceTrack: i32,
5585            inSequenceTime: PrTime,
5586            outSDKString: *mut PrSDKString,
5587        ) -> PF_Err,
5588    >,
5589    pub GetTapeNameString: ::std::option::Option<
5590        unsafe extern "C" fn(
5591            inEffectRef: PF_ProgPtr,
5592            inSourceTrack: i32,
5593            inSequenceTime: PrTime,
5594            outSDKString: *mut PrSDKString,
5595        ) -> PF_Err,
5596    >,
5597    pub GetVideoCodecString: ::std::option::Option<
5598        unsafe extern "C" fn(
5599            inEffectRef: PF_ProgPtr,
5600            inSourceTrack: i32,
5601            inSequenceTime: PrTime,
5602            outSDKString: *mut PrSDKString,
5603        ) -> PF_Err,
5604    >,
5605    pub GetGoodMetadataString: ::std::option::Option<
5606        unsafe extern "C" fn(
5607            inEffectRef: PF_ProgPtr,
5608            inSourceTrack: i32,
5609            inSequenceTime: PrTime,
5610            outSDKString: *mut PrSDKString,
5611        ) -> PF_Err,
5612    >,
5613    pub GetSoundRollString: ::std::option::Option<
5614        unsafe extern "C" fn(
5615            inEffectRef: PF_ProgPtr,
5616            inSourceTrack: i32,
5617            inSequenceTime: PrTime,
5618            outSDKString: *mut PrSDKString,
5619        ) -> PF_Err,
5620    >,
5621    pub GetSequenceTime: ::std::option::Option<
5622        unsafe extern "C" fn(inEffectRef: PF_ProgPtr, outSequenceTime: *mut PrTime) -> PF_Err,
5623    >,
5624    pub GetSoundTimecode: ::std::option::Option<
5625        unsafe extern "C" fn(
5626            inEffectRef: PF_ProgPtr,
5627            inSourceTrack: i32,
5628            inSequenceTime: PrTime,
5629            outCurrentFrame: *mut A_long,
5630        ) -> PF_Err,
5631    >,
5632    pub GetOriginalClipFrameRateForSourceTrack: ::std::option::Option<
5633        unsafe extern "C" fn(
5634            inEffectRef: PF_ProgPtr,
5635            inSourceTrack: i32,
5636            outTicksPerFrame: *mut PrTime,
5637        ) -> PF_Err,
5638    >,
5639    pub GetMediaFrameRateForSourceTrack: ::std::option::Option<
5640        unsafe extern "C" fn(
5641            inEffectRef: PF_ProgPtr,
5642            inSourceTrack: i32,
5643            inSequenceTime: PrTime,
5644            outTicksPerFrame: *mut PrTime,
5645        ) -> PF_Err,
5646    >,
5647    pub GetSourceTrackMediaActualStartTime: ::std::option::Option<
5648        unsafe extern "C" fn(
5649            inEffectRef: PF_ProgPtr,
5650            inLayerParamIndex: csSDK_uint32,
5651            inSequenceTime: PrTime,
5652            outClipActualStartTime: *mut PrTime,
5653        ) -> PF_Err,
5654    >,
5655    pub IsSourceTrackMediaTrimmed: ::std::option::Option<
5656        unsafe extern "C" fn(
5657            inEffectRef: PF_ProgPtr,
5658            inLayerParamIndex: csSDK_uint32,
5659            inSequenceTime: PrTime,
5660            outTrimApplied: *mut bool,
5661        ) -> PF_Err,
5662    >,
5663    pub IsMediaTrimmed: ::std::option::Option<
5664        unsafe extern "C" fn(
5665            inEffectRef: PF_ProgPtr,
5666            inSequenceTime: PrTime,
5667            outTrimApplied: *mut bool,
5668        ) -> PF_Err,
5669    >,
5670    pub IsTrackEmpty: ::std::option::Option<
5671        unsafe extern "C" fn(
5672            inEffectRef: PF_ProgPtr,
5673            inLayerParamIndex: csSDK_uint32,
5674            inSequenceTime: PrTime,
5675            outIsTrackEmpty: *mut bool,
5676        ) -> PF_Err,
5677    >,
5678    pub IsTrackItemEffectAppliedToSynthetic: ::std::option::Option<
5679        unsafe extern "C" fn(
5680            inEffectRef: PF_ProgPtr,
5681            outIsTrackItemEffectAppliedToSynthetic: *mut bool,
5682        ) -> PF_Err,
5683    >,
5684}
5685#[repr(C)]
5686#[derive(Debug, Copy, Clone)]
5687pub struct PF_UtilitySuite10 {
5688    pub GetFilterInstanceID: ::std::option::Option<
5689        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outFilterInstanceID: *mut A_long) -> PF_Err,
5690    >,
5691    pub GetMediaTimecode: ::std::option::Option<
5692        unsafe extern "C" fn(
5693            effect_ref: PF_ProgPtr,
5694            outCurrentFrame: *mut A_long,
5695            outTimeDisplay: *mut PF_TimeDisplay,
5696        ) -> PF_Err,
5697    >,
5698    pub GetClipSpeed: ::std::option::Option<
5699        unsafe extern "C" fn(effect_ref: PF_ProgPtr, speed: *mut f64) -> PF_Err,
5700    >,
5701    pub GetClipDuration: ::std::option::Option<
5702        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
5703    >,
5704    pub GetClipStart: ::std::option::Option<
5705        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
5706    >,
5707    pub GetUnscaledClipDuration: ::std::option::Option<
5708        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
5709    >,
5710    pub GetUnscaledClipStart: ::std::option::Option<
5711        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
5712    >,
5713    pub GetTrackItemStart: ::std::option::Option<
5714        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
5715    >,
5716    pub GetMediaFieldType: ::std::option::Option<
5717        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outFieldType: *mut prFieldType) -> PF_Err,
5718    >,
5719    pub GetMediaFrameRate: ::std::option::Option<
5720        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outTicksPerFrame: *mut PrTime) -> PF_Err,
5721    >,
5722    pub GetContainingTimelineID: ::std::option::Option<
5723        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outTimelineID: *mut PrTimelineID) -> PF_Err,
5724    >,
5725    pub GetClipName: ::std::option::Option<
5726        unsafe extern "C" fn(
5727            effect_ref: PF_ProgPtr,
5728            inGetMasterClipName: A_Boolean,
5729            outSDKString: *mut PrSDKString,
5730        ) -> PF_Err,
5731    >,
5732    pub EffectWantsCheckedOutFramesToMatchRenderPixelFormat:
5733        ::std::option::Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr) -> PF_Err>,
5734    pub EffectDependsOnClipName: ::std::option::Option<
5735        unsafe extern "C" fn(effect_ref: PF_ProgPtr, inDependsOnClipName: A_Boolean) -> PF_Err,
5736    >,
5737    pub SetEffectInstanceName: ::std::option::Option<
5738        unsafe extern "C" fn(effect_ref: PF_ProgPtr, inSDKString: *const PrSDKString) -> PF_Err,
5739    >,
5740    pub GetFileName: ::std::option::Option<
5741        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outSDKString: *mut PrSDKString) -> PF_Err,
5742    >,
5743    pub GetOriginalClipFrameRate: ::std::option::Option<
5744        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outTicksPerFrame: *mut PrTime) -> PF_Err,
5745    >,
5746    pub GetSourceTrackMediaTimecode: ::std::option::Option<
5747        unsafe extern "C" fn(
5748            effect_ref: PF_ProgPtr,
5749            inLayerParamIndex: csSDK_uint32,
5750            inApplyTransform: bool,
5751            inAddStartTimeOffset: bool,
5752            outCurrentFrame: *mut A_long,
5753        ) -> PF_Err,
5754    >,
5755    pub GetSourceTrackClipName: ::std::option::Option<
5756        unsafe extern "C" fn(
5757            effect_ref: PF_ProgPtr,
5758            inLayerParamIndex: csSDK_uint32,
5759            inGetMasterClipName: A_Boolean,
5760            outSDKString: *mut PrSDKString,
5761        ) -> PF_Err,
5762    >,
5763    pub GetSourceTrackFileName: ::std::option::Option<
5764        unsafe extern "C" fn(
5765            effect_ref: PF_ProgPtr,
5766            inLayerParamIndex: csSDK_uint32,
5767            outSDKString: *mut PrSDKString,
5768        ) -> PF_Err,
5769    >,
5770    pub EffectDependsOnClipName2: ::std::option::Option<
5771        unsafe extern "C" fn(
5772            effect_ref: PF_ProgPtr,
5773            inDependsOnClipName: A_Boolean,
5774            inLayerParamIndex: csSDK_uint32,
5775        ) -> PF_Err,
5776    >,
5777    pub GetMediaTimecode2: ::std::option::Option<
5778        unsafe extern "C" fn(
5779            effect_ref: PF_ProgPtr,
5780            inApplyTrim: bool,
5781            outCurrentFrame: *mut A_long,
5782            outTimeDisplay: *mut PF_TimeDisplay,
5783        ) -> PF_Err,
5784    >,
5785    pub GetSourceTrackMediaTimecode2: ::std::option::Option<
5786        unsafe extern "C" fn(
5787            effect_ref: PF_ProgPtr,
5788            inLayerParamIndex: csSDK_uint32,
5789            inApplyTransform: bool,
5790            inAddStartTimeOffset: bool,
5791            inSequenceTime: PrTime,
5792            outCurrentFrame: *mut A_long,
5793        ) -> PF_Err,
5794    >,
5795    pub GetSourceTrackClipName2: ::std::option::Option<
5796        unsafe extern "C" fn(
5797            effect_ref: PF_ProgPtr,
5798            inLayerParamIndex: csSDK_uint32,
5799            inGetMasterClipName: A_Boolean,
5800            outSDKString: *mut PrSDKString,
5801            inSequenceTime: PrTime,
5802        ) -> PF_Err,
5803    >,
5804    pub GetSourceTrackFileName2: ::std::option::Option<
5805        unsafe extern "C" fn(
5806            effect_ref: PF_ProgPtr,
5807            inLayerParamIndex: csSDK_uint32,
5808            outSDKString: *mut PrSDKString,
5809            inSequenceTime: PrTime,
5810        ) -> PF_Err,
5811    >,
5812    pub GetCommentString: ::std::option::Option<
5813        unsafe extern "C" fn(
5814            inEffectRef: PF_ProgPtr,
5815            inSourceTrack: i32,
5816            inSequenceTime: PrTime,
5817            outSDKString: *mut PrSDKString,
5818        ) -> PF_Err,
5819    >,
5820    pub GetLogNoteString: ::std::option::Option<
5821        unsafe extern "C" fn(
5822            inEffectRef: PF_ProgPtr,
5823            inSourceTrack: i32,
5824            inSequenceTime: PrTime,
5825            outSDKString: *mut PrSDKString,
5826        ) -> PF_Err,
5827    >,
5828    pub GetCameraRollString: ::std::option::Option<
5829        unsafe extern "C" fn(
5830            inEffectRef: PF_ProgPtr,
5831            inSourceTrack: i32,
5832            inSequenceTime: PrTime,
5833            outSDKString: *mut PrSDKString,
5834        ) -> PF_Err,
5835    >,
5836    pub GetClientMetadataString: ::std::option::Option<
5837        unsafe extern "C" fn(
5838            inEffectRef: PF_ProgPtr,
5839            inSourceTrack: i32,
5840            inSequenceTime: PrTime,
5841            outSDKString: *mut PrSDKString,
5842        ) -> PF_Err,
5843    >,
5844    pub GetDailyRollString: ::std::option::Option<
5845        unsafe extern "C" fn(
5846            inEffectRef: PF_ProgPtr,
5847            inSourceTrack: i32,
5848            inSequenceTime: PrTime,
5849            outSDKString: *mut PrSDKString,
5850        ) -> PF_Err,
5851    >,
5852    pub GetDescriptionString: ::std::option::Option<
5853        unsafe extern "C" fn(
5854            inEffectRef: PF_ProgPtr,
5855            inSourceTrack: i32,
5856            inSequenceTime: PrTime,
5857            outSDKString: *mut PrSDKString,
5858        ) -> PF_Err,
5859    >,
5860    pub GetLabRollString: ::std::option::Option<
5861        unsafe extern "C" fn(
5862            inEffectRef: PF_ProgPtr,
5863            inSourceTrack: i32,
5864            inSequenceTime: PrTime,
5865            outSDKString: *mut PrSDKString,
5866        ) -> PF_Err,
5867    >,
5868    pub GetSceneString: ::std::option::Option<
5869        unsafe extern "C" fn(
5870            inEffectRef: PF_ProgPtr,
5871            inSourceTrack: i32,
5872            inSequenceTime: PrTime,
5873            outSDKString: *mut PrSDKString,
5874        ) -> PF_Err,
5875    >,
5876    pub GetShotString: ::std::option::Option<
5877        unsafe extern "C" fn(
5878            inEffectRef: PF_ProgPtr,
5879            inSourceTrack: i32,
5880            inSequenceTime: PrTime,
5881            outSDKString: *mut PrSDKString,
5882        ) -> PF_Err,
5883    >,
5884    pub GetTapeNameString: ::std::option::Option<
5885        unsafe extern "C" fn(
5886            inEffectRef: PF_ProgPtr,
5887            inSourceTrack: i32,
5888            inSequenceTime: PrTime,
5889            outSDKString: *mut PrSDKString,
5890        ) -> PF_Err,
5891    >,
5892    pub GetVideoCodecString: ::std::option::Option<
5893        unsafe extern "C" fn(
5894            inEffectRef: PF_ProgPtr,
5895            inSourceTrack: i32,
5896            inSequenceTime: PrTime,
5897            outSDKString: *mut PrSDKString,
5898        ) -> PF_Err,
5899    >,
5900    pub GetGoodMetadataString: ::std::option::Option<
5901        unsafe extern "C" fn(
5902            inEffectRef: PF_ProgPtr,
5903            inSourceTrack: i32,
5904            inSequenceTime: PrTime,
5905            outSDKString: *mut PrSDKString,
5906        ) -> PF_Err,
5907    >,
5908    pub GetSoundRollString: ::std::option::Option<
5909        unsafe extern "C" fn(
5910            inEffectRef: PF_ProgPtr,
5911            inSourceTrack: i32,
5912            inSequenceTime: PrTime,
5913            outSDKString: *mut PrSDKString,
5914        ) -> PF_Err,
5915    >,
5916    pub GetSequenceTime: ::std::option::Option<
5917        unsafe extern "C" fn(inEffectRef: PF_ProgPtr, outSequenceTime: *mut PrTime) -> PF_Err,
5918    >,
5919    pub GetSoundTimecode: ::std::option::Option<
5920        unsafe extern "C" fn(
5921            inEffectRef: PF_ProgPtr,
5922            inSourceTrack: i32,
5923            inSequenceTime: PrTime,
5924            outCurrentFrame: *mut A_long,
5925        ) -> PF_Err,
5926    >,
5927    pub GetOriginalClipFrameRateForSourceTrack: ::std::option::Option<
5928        unsafe extern "C" fn(
5929            inEffectRef: PF_ProgPtr,
5930            inSourceTrack: i32,
5931            outTicksPerFrame: *mut PrTime,
5932        ) -> PF_Err,
5933    >,
5934    pub GetMediaFrameRateForSourceTrack: ::std::option::Option<
5935        unsafe extern "C" fn(
5936            inEffectRef: PF_ProgPtr,
5937            inSourceTrack: i32,
5938            inSequenceTime: PrTime,
5939            outTicksPerFrame: *mut PrTime,
5940        ) -> PF_Err,
5941    >,
5942    pub GetSourceTrackMediaActualStartTime: ::std::option::Option<
5943        unsafe extern "C" fn(
5944            inEffectRef: PF_ProgPtr,
5945            inLayerParamIndex: csSDK_uint32,
5946            inSequenceTime: PrTime,
5947            outClipActualStartTime: *mut PrTime,
5948        ) -> PF_Err,
5949    >,
5950    pub IsSourceTrackMediaTrimmed: ::std::option::Option<
5951        unsafe extern "C" fn(
5952            inEffectRef: PF_ProgPtr,
5953            inLayerParamIndex: csSDK_uint32,
5954            inSequenceTime: PrTime,
5955            outTrimApplied: *mut bool,
5956        ) -> PF_Err,
5957    >,
5958    pub IsMediaTrimmed: ::std::option::Option<
5959        unsafe extern "C" fn(
5960            inEffectRef: PF_ProgPtr,
5961            inSequenceTime: PrTime,
5962            outTrimApplied: *mut bool,
5963        ) -> PF_Err,
5964    >,
5965    pub IsTrackEmpty: ::std::option::Option<
5966        unsafe extern "C" fn(
5967            inEffectRef: PF_ProgPtr,
5968            inLayerParamIndex: csSDK_uint32,
5969            inSequenceTime: PrTime,
5970            outIsTrackEmpty: *mut bool,
5971        ) -> PF_Err,
5972    >,
5973    pub IsTrackItemEffectAppliedToSynthetic: ::std::option::Option<
5974        unsafe extern "C" fn(
5975            inEffectRef: PF_ProgPtr,
5976            outIsTrackItemEffectAppliedToSynthetic: *mut bool,
5977        ) -> PF_Err,
5978    >,
5979    pub GetSourceTrackCurrentMediaTimeInfo: ::std::option::Option<
5980        unsafe extern "C" fn(
5981            effect_ref: PF_ProgPtr,
5982            inLayerParamIndex: csSDK_uint32,
5983            inUseSoundTimecodeAsStartTime: bool,
5984            inSequenceTime: PrTime,
5985            outCurrentMediaTime: *mut PrTime,
5986            outMediaTicksPerFrame: *mut PrTime,
5987            outMediaTimeDisplay: *mut PF_TimeDisplay,
5988        ) -> PF_Err,
5989    >,
5990    pub GetSequenceZeroPoint: ::std::option::Option<
5991        unsafe extern "C" fn(inEffectRef: PF_ProgPtr, outZeroPointTime: *mut PrTime) -> PF_Err,
5992    >,
5993}
5994#[repr(C)]
5995#[derive(Debug, Copy, Clone)]
5996pub struct PF_UtilitySuite11 {
5997    pub GetFilterInstanceID: ::std::option::Option<
5998        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outFilterInstanceID: *mut A_long) -> PF_Err,
5999    >,
6000    pub GetMediaTimecode: ::std::option::Option<
6001        unsafe extern "C" fn(
6002            effect_ref: PF_ProgPtr,
6003            outCurrentFrame: *mut A_long,
6004            outTimeDisplay: *mut PF_TimeDisplay,
6005        ) -> PF_Err,
6006    >,
6007    pub GetClipSpeed: ::std::option::Option<
6008        unsafe extern "C" fn(effect_ref: PF_ProgPtr, speed: *mut f64) -> PF_Err,
6009    >,
6010    pub GetClipDuration: ::std::option::Option<
6011        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
6012    >,
6013    pub GetClipStart: ::std::option::Option<
6014        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
6015    >,
6016    pub GetUnscaledClipDuration: ::std::option::Option<
6017        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
6018    >,
6019    pub GetUnscaledClipStart: ::std::option::Option<
6020        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
6021    >,
6022    pub GetTrackItemStart: ::std::option::Option<
6023        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
6024    >,
6025    pub GetMediaFieldType: ::std::option::Option<
6026        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outFieldType: *mut prFieldType) -> PF_Err,
6027    >,
6028    pub GetMediaFrameRate: ::std::option::Option<
6029        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outTicksPerFrame: *mut PrTime) -> PF_Err,
6030    >,
6031    pub GetContainingTimelineID: ::std::option::Option<
6032        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outTimelineID: *mut PrTimelineID) -> PF_Err,
6033    >,
6034    pub GetClipName: ::std::option::Option<
6035        unsafe extern "C" fn(
6036            effect_ref: PF_ProgPtr,
6037            inGetMasterClipName: A_Boolean,
6038            outSDKString: *mut PrSDKString,
6039        ) -> PF_Err,
6040    >,
6041    pub EffectWantsCheckedOutFramesToMatchRenderPixelFormat:
6042        ::std::option::Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr) -> PF_Err>,
6043    pub EffectDependsOnClipName: ::std::option::Option<
6044        unsafe extern "C" fn(effect_ref: PF_ProgPtr, inDependsOnClipName: A_Boolean) -> PF_Err,
6045    >,
6046    pub SetEffectInstanceName: ::std::option::Option<
6047        unsafe extern "C" fn(effect_ref: PF_ProgPtr, inSDKString: *const PrSDKString) -> PF_Err,
6048    >,
6049    pub GetFileName: ::std::option::Option<
6050        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outSDKString: *mut PrSDKString) -> PF_Err,
6051    >,
6052    pub GetOriginalClipFrameRate: ::std::option::Option<
6053        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outTicksPerFrame: *mut PrTime) -> PF_Err,
6054    >,
6055    pub GetSourceTrackMediaTimecode: ::std::option::Option<
6056        unsafe extern "C" fn(
6057            effect_ref: PF_ProgPtr,
6058            inLayerParamIndex: csSDK_uint32,
6059            inApplyTransform: bool,
6060            inAddStartTimeOffset: bool,
6061            outCurrentFrame: *mut A_long,
6062        ) -> PF_Err,
6063    >,
6064    pub GetSourceTrackClipName: ::std::option::Option<
6065        unsafe extern "C" fn(
6066            effect_ref: PF_ProgPtr,
6067            inLayerParamIndex: csSDK_uint32,
6068            inGetMasterClipName: A_Boolean,
6069            outSDKString: *mut PrSDKString,
6070        ) -> PF_Err,
6071    >,
6072    pub GetSourceTrackFileName: ::std::option::Option<
6073        unsafe extern "C" fn(
6074            effect_ref: PF_ProgPtr,
6075            inLayerParamIndex: csSDK_uint32,
6076            outSDKString: *mut PrSDKString,
6077        ) -> PF_Err,
6078    >,
6079    pub EffectDependsOnClipName2: ::std::option::Option<
6080        unsafe extern "C" fn(
6081            effect_ref: PF_ProgPtr,
6082            inDependsOnClipName: A_Boolean,
6083            inLayerParamIndex: csSDK_uint32,
6084        ) -> PF_Err,
6085    >,
6086    pub GetMediaTimecode2: ::std::option::Option<
6087        unsafe extern "C" fn(
6088            effect_ref: PF_ProgPtr,
6089            inApplyTrim: bool,
6090            outCurrentFrame: *mut A_long,
6091            outTimeDisplay: *mut PF_TimeDisplay,
6092        ) -> PF_Err,
6093    >,
6094    pub GetSourceTrackMediaTimecode2: ::std::option::Option<
6095        unsafe extern "C" fn(
6096            effect_ref: PF_ProgPtr,
6097            inLayerParamIndex: csSDK_uint32,
6098            inApplyTransform: bool,
6099            inAddStartTimeOffset: bool,
6100            inSequenceTime: PrTime,
6101            outCurrentFrame: *mut A_long,
6102        ) -> PF_Err,
6103    >,
6104    pub GetSourceTrackClipName2: ::std::option::Option<
6105        unsafe extern "C" fn(
6106            effect_ref: PF_ProgPtr,
6107            inLayerParamIndex: csSDK_uint32,
6108            inGetMasterClipName: A_Boolean,
6109            outSDKString: *mut PrSDKString,
6110            inSequenceTime: PrTime,
6111        ) -> PF_Err,
6112    >,
6113    pub GetSourceTrackFileName2: ::std::option::Option<
6114        unsafe extern "C" fn(
6115            effect_ref: PF_ProgPtr,
6116            inLayerParamIndex: csSDK_uint32,
6117            outSDKString: *mut PrSDKString,
6118            inSequenceTime: PrTime,
6119        ) -> PF_Err,
6120    >,
6121    pub GetCommentString: ::std::option::Option<
6122        unsafe extern "C" fn(
6123            inEffectRef: PF_ProgPtr,
6124            inSourceTrack: i32,
6125            inSequenceTime: PrTime,
6126            outSDKString: *mut PrSDKString,
6127        ) -> PF_Err,
6128    >,
6129    pub GetLogNoteString: ::std::option::Option<
6130        unsafe extern "C" fn(
6131            inEffectRef: PF_ProgPtr,
6132            inSourceTrack: i32,
6133            inSequenceTime: PrTime,
6134            outSDKString: *mut PrSDKString,
6135        ) -> PF_Err,
6136    >,
6137    pub GetCameraRollString: ::std::option::Option<
6138        unsafe extern "C" fn(
6139            inEffectRef: PF_ProgPtr,
6140            inSourceTrack: i32,
6141            inSequenceTime: PrTime,
6142            outSDKString: *mut PrSDKString,
6143        ) -> PF_Err,
6144    >,
6145    pub GetClientMetadataString: ::std::option::Option<
6146        unsafe extern "C" fn(
6147            inEffectRef: PF_ProgPtr,
6148            inSourceTrack: i32,
6149            inSequenceTime: PrTime,
6150            outSDKString: *mut PrSDKString,
6151        ) -> PF_Err,
6152    >,
6153    pub GetDailyRollString: ::std::option::Option<
6154        unsafe extern "C" fn(
6155            inEffectRef: PF_ProgPtr,
6156            inSourceTrack: i32,
6157            inSequenceTime: PrTime,
6158            outSDKString: *mut PrSDKString,
6159        ) -> PF_Err,
6160    >,
6161    pub GetDescriptionString: ::std::option::Option<
6162        unsafe extern "C" fn(
6163            inEffectRef: PF_ProgPtr,
6164            inSourceTrack: i32,
6165            inSequenceTime: PrTime,
6166            outSDKString: *mut PrSDKString,
6167        ) -> PF_Err,
6168    >,
6169    pub GetLabRollString: ::std::option::Option<
6170        unsafe extern "C" fn(
6171            inEffectRef: PF_ProgPtr,
6172            inSourceTrack: i32,
6173            inSequenceTime: PrTime,
6174            outSDKString: *mut PrSDKString,
6175        ) -> PF_Err,
6176    >,
6177    pub GetSceneString: ::std::option::Option<
6178        unsafe extern "C" fn(
6179            inEffectRef: PF_ProgPtr,
6180            inSourceTrack: i32,
6181            inSequenceTime: PrTime,
6182            outSDKString: *mut PrSDKString,
6183        ) -> PF_Err,
6184    >,
6185    pub GetShotString: ::std::option::Option<
6186        unsafe extern "C" fn(
6187            inEffectRef: PF_ProgPtr,
6188            inSourceTrack: i32,
6189            inSequenceTime: PrTime,
6190            outSDKString: *mut PrSDKString,
6191        ) -> PF_Err,
6192    >,
6193    pub GetTapeNameString: ::std::option::Option<
6194        unsafe extern "C" fn(
6195            inEffectRef: PF_ProgPtr,
6196            inSourceTrack: i32,
6197            inSequenceTime: PrTime,
6198            outSDKString: *mut PrSDKString,
6199        ) -> PF_Err,
6200    >,
6201    pub GetVideoCodecString: ::std::option::Option<
6202        unsafe extern "C" fn(
6203            inEffectRef: PF_ProgPtr,
6204            inSourceTrack: i32,
6205            inSequenceTime: PrTime,
6206            outSDKString: *mut PrSDKString,
6207        ) -> PF_Err,
6208    >,
6209    pub GetGoodMetadataString: ::std::option::Option<
6210        unsafe extern "C" fn(
6211            inEffectRef: PF_ProgPtr,
6212            inSourceTrack: i32,
6213            inSequenceTime: PrTime,
6214            outSDKString: *mut PrSDKString,
6215        ) -> PF_Err,
6216    >,
6217    pub GetSoundRollString: ::std::option::Option<
6218        unsafe extern "C" fn(
6219            inEffectRef: PF_ProgPtr,
6220            inSourceTrack: i32,
6221            inSequenceTime: PrTime,
6222            outSDKString: *mut PrSDKString,
6223        ) -> PF_Err,
6224    >,
6225    pub GetSequenceTime: ::std::option::Option<
6226        unsafe extern "C" fn(inEffectRef: PF_ProgPtr, outSequenceTime: *mut PrTime) -> PF_Err,
6227    >,
6228    pub GetSoundTimecode: ::std::option::Option<
6229        unsafe extern "C" fn(
6230            inEffectRef: PF_ProgPtr,
6231            inSourceTrack: i32,
6232            inSequenceTime: PrTime,
6233            outCurrentFrame: *mut A_long,
6234        ) -> PF_Err,
6235    >,
6236    pub GetOriginalClipFrameRateForSourceTrack: ::std::option::Option<
6237        unsafe extern "C" fn(
6238            inEffectRef: PF_ProgPtr,
6239            inSourceTrack: i32,
6240            outTicksPerFrame: *mut PrTime,
6241        ) -> PF_Err,
6242    >,
6243    pub GetMediaFrameRateForSourceTrack: ::std::option::Option<
6244        unsafe extern "C" fn(
6245            inEffectRef: PF_ProgPtr,
6246            inSourceTrack: i32,
6247            inSequenceTime: PrTime,
6248            outTicksPerFrame: *mut PrTime,
6249        ) -> PF_Err,
6250    >,
6251    pub GetSourceTrackMediaActualStartTime: ::std::option::Option<
6252        unsafe extern "C" fn(
6253            inEffectRef: PF_ProgPtr,
6254            inLayerParamIndex: csSDK_uint32,
6255            inSequenceTime: PrTime,
6256            outClipActualStartTime: *mut PrTime,
6257        ) -> PF_Err,
6258    >,
6259    pub IsSourceTrackMediaTrimmed: ::std::option::Option<
6260        unsafe extern "C" fn(
6261            inEffectRef: PF_ProgPtr,
6262            inLayerParamIndex: csSDK_uint32,
6263            inSequenceTime: PrTime,
6264            outTrimApplied: *mut bool,
6265        ) -> PF_Err,
6266    >,
6267    pub IsMediaTrimmed: ::std::option::Option<
6268        unsafe extern "C" fn(
6269            inEffectRef: PF_ProgPtr,
6270            inSequenceTime: PrTime,
6271            outTrimApplied: *mut bool,
6272        ) -> PF_Err,
6273    >,
6274    pub IsTrackEmpty: ::std::option::Option<
6275        unsafe extern "C" fn(
6276            inEffectRef: PF_ProgPtr,
6277            inLayerParamIndex: csSDK_uint32,
6278            inSequenceTime: PrTime,
6279            outIsTrackEmpty: *mut bool,
6280        ) -> PF_Err,
6281    >,
6282    pub IsTrackItemEffectAppliedToSynthetic: ::std::option::Option<
6283        unsafe extern "C" fn(
6284            inEffectRef: PF_ProgPtr,
6285            outIsTrackItemEffectAppliedToSynthetic: *mut bool,
6286        ) -> PF_Err,
6287    >,
6288    pub GetSourceTrackCurrentMediaTimeInfo: ::std::option::Option<
6289        unsafe extern "C" fn(
6290            effect_ref: PF_ProgPtr,
6291            inLayerParamIndex: csSDK_uint32,
6292            inUseSoundTimecodeAsStartTime: bool,
6293            inSequenceTime: PrTime,
6294            outCurrentMediaTime: *mut PrTime,
6295            outMediaTicksPerFrame: *mut PrTime,
6296            outMediaTimeDisplay: *mut PF_TimeDisplay,
6297        ) -> PF_Err,
6298    >,
6299    pub GetSequenceZeroPoint: ::std::option::Option<
6300        unsafe extern "C" fn(inEffectRef: PF_ProgPtr, outZeroPointTime: *mut PrTime) -> PF_Err,
6301    >,
6302    pub GetSourceTrackCurrentClipDuration: ::std::option::Option<
6303        unsafe extern "C" fn(
6304            inEffectRef: PF_ProgPtr,
6305            inLayerParamIndex: csSDK_uint32,
6306            inSequenceTime: PrTime,
6307            outClipDuration: *mut PrTime,
6308        ) -> PF_Err,
6309    >,
6310    pub GetSequenceDuration: ::std::option::Option<
6311        unsafe extern "C" fn(inEffectRef: PF_ProgPtr, outSequenceDuration: *mut PrTime) -> PF_Err,
6312    >,
6313    pub GetVideoResolutionString: ::std::option::Option<
6314        unsafe extern "C" fn(
6315            inEffectRef: PF_ProgPtr,
6316            inSourceTrack: i32,
6317            inSequenceTime: PrTime,
6318            outSDKString: *mut PrSDKString,
6319        ) -> PF_Err,
6320    >,
6321}
6322pub type PF_UtilitySuiteVersion1 = PF_UtilitySuite;
6323pub type PF_UtilitySuite2 = PF_UtilitySuite;
6324pub type PF_UtilitySuite3 = PF_UtilitySuite;
6325pub type PF_UtilitySuite5 = PF_UtilitySuite;
6326pub type PF_UtilitySuite6 = PF_UtilitySuite;
6327pub type PF_UtilitySuite7 = PF_UtilitySuite;
6328pub type PF_UtilitySuite8 = PF_UtilitySuite;
6329#[repr(C)]
6330#[derive(Debug, Copy, Clone)]
6331pub struct PF_SourceSettingsSuite {
6332    pub PerformSourceSettingsCommand: ::std::option::Option<
6333        unsafe extern "C" fn(
6334            inEffectRef: PF_ProgPtr,
6335            ioCommandStruct: *mut ::std::os::raw::c_void,
6336            inDataSize: csSDK_uint32,
6337        ) -> PF_Err,
6338    >,
6339    pub SetIsSourceSettingsEffect: ::std::option::Option<
6340        unsafe extern "C" fn(
6341            inEffectRef: PF_ProgPtr,
6342            inIsSourceSettingsEffect: A_Boolean,
6343        ) -> PF_Err,
6344    >,
6345}
6346pub type PF_SourceSettingsSuite2 = PF_SourceSettingsSuite;
6347#[repr(C)]
6348#[derive(Debug, Copy, Clone)]
6349pub struct PF_TransitionSuite {
6350    #[doc = "\tRegister an effect as a transition using the passed in\n\tinput layer as the outgoing clip. When registered the effect\n\twill be available to be dragged directly onto clip ends rather\n\tthan only applied to layers."]
6351    pub RegisterTransitionInputParam: ::std::option::Option<
6352        unsafe extern "C" fn(inEffectRef: PF_ProgPtr, inIndex: PF_ParamIndex) -> PF_Err,
6353    >,
6354    #[doc = "\tRegister a PF_ADD_FLOAT_SLIDER parameter to receive\n\tchanges to the start of the transition region through the\n\tPF_Cmd_USER_CHANGED_PARAM command."]
6355    pub RegisterTransitionStartParam: ::std::option::Option<
6356        unsafe extern "C" fn(inEffectRef: PF_ProgPtr, inIndex: PF_ParamIndex) -> PF_Err,
6357    >,
6358    #[doc = "\tRegister a PF_ADD_FLOAT_SLIDER parameter to receive\n\tchanges to the end of the transition region through the\n\tPF_Cmd_USER_CHANGED_PARAM command."]
6359    pub RegisterTransitionEndParam: ::std::option::Option<
6360        unsafe extern "C" fn(inEffectRef: PF_ProgPtr, inIndex: PF_ParamIndex) -> PF_Err,
6361    >,
6362}
6363#[repr(C)]
6364#[derive(Debug, Copy, Clone)]
6365pub struct OpaqueEffectDataType {
6366    _unused: [u8; 0],
6367}
6368#[doc = "\tThis suite provides effects a means to share unflattened sequence data between its instances.\n  The data is opaque to the host and effects are responsible for maintaining thread safety\n  of the shared data.  The host provides ref counting that the effect can use to manage\n  the lifetime of the shared data."]
6369#[repr(C)]
6370#[derive(Debug, Copy, Clone)]
6371pub struct PrSDKOpaqueEffectDataSuite {
6372    #[doc = "\tAcquire pointer to opaque effect data.  This is reference counted meaning that\n  AcquireOpaqueEffectData and ReleaseOpaqueEffectData should always be called in pairs.\n  If no opaque effect was registered for the given effect_ref AcquireOpaqueEffectData\n  will return 0 and the reference count remains 0."]
6373    pub AcquireOpaqueEffectData: ::std::option::Option<
6374        unsafe extern "C" fn(
6375            instanceID: csSDK_int32,
6376            outOpaqueEffectDataPP: *mut *mut OpaqueEffectDataType,
6377        ) -> PF_Err,
6378    >,
6379    #[doc = "Register opaque effect data.  If multiple threads invoke RegisterOpaqueEffectData\n  only one will be successful.  The ioOpaqueEffectDataPP of the successful thread\n  will be returned to all callers.  Calling threads are always responsible for\n  managing the data they register.  This is the case whether or not threads are\n  successful registering their data.\n  Similarly, RegisterOpaqueEffectData always increments the internal reference count.\n\n//\n// Sample code showing how to use RegisterOpaqueEffectData.\n// Note: code is simplified (not exception-safe, etc.)\n//\n\n//\n// Try to acquire first, in case another thread registered the opaque effect data earlier\n//\nOpaqueEffectDataType * pData = 0;\nPF_Err err = opaqueEffectDataSuite->AcquireOpaqueEffectData(instanceID, &pData);\nassert(err == PF_Err_NONE);\n\n//\n// If acquire did not return a valid pointer, create a new object and register it\n// otherwise we are done\n//\nif (pData == 0)\n{\nOpaqueEffectDataType * pNewData(new OpaqueEffectDataType());\npData = pNewData;\nerr = opaqueEffectDataSuite->RegisterOpaqueEffectData(instanceID, &pData);\nassert(err == PF_Err_NONE);\n\n// now we check if this thread actually succeeded registering\n// if the returned pData is unchanged it means that it was successful\nif (pData != pNewData)\n{\ndelete pNewData;\n}\n}\n\n// pData now points to the right OpaqueEffectDataType object and we can start using it\n...\n\n\n\n"]
6380    pub RegisterOpaqueEffectData: ::std::option::Option<
6381        unsafe extern "C" fn(
6382            instanceID: csSDK_int32,
6383            ioOpaqueEffectDataPP: *mut *mut OpaqueEffectDataType,
6384        ) -> PF_Err,
6385    >,
6386    #[doc = "\tRelease opaque effect data.  This decrements the internal reference count.\n  If the internal reference count goes to 0 outDisposeOpaqueEffectDataPP is set\n  to the managed data that should be deleted, otherwise it is set to NULL.\n  If the internal reference count goes to 0 any calls made to AcquireOpaqueEffectData\n  will return 0 until new opaque effect data is registered via RegisterOpaqueEffectData."]
6387    pub ReleaseOpaqueEffectData: ::std::option::Option<
6388        unsafe extern "C" fn(
6389            instanceID: csSDK_int32,
6390            outDisposeOpaqueEffectDataPP: *mut *mut OpaqueEffectDataType,
6391        ) -> PF_Err,
6392    >,
6393}
6394pub const PrPixelFormatGpu_GPU_BGRA_4444_32f: PrPixelFormatGpu = 1094992704;
6395pub const PrPixelFormatGpu_GPU_BGRA_4444_16f: PrPixelFormatGpu = 1631863616;
6396pub type PrPixelFormatGpu = ::std::os::raw::c_uint;