premiere_sys/opt/rustwide/workdir/
bindings_macos.rs

1/* automatically generated by rust-bindgen 0.72.0 */
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 = 9;
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_ToneMapSettings: &[u8; 26] = b"ClipNode::ToneMapSettings\0";
271pub const kVideoSegmentProperty_Clip_HasCaptions: &[u8; 22] = b"ClipNode::HasCaptions\0";
272pub const kVideoSegmentProperty_Clip_UntrimmedDuration: &[u8; 28] =
273    b"ClipNode::UntrimmedDuration\0";
274pub const kVideoSegmentProperty_Multicam_SelectedTrack: &[u8; 28] =
275    b"MulticamNode::SelectedTrack\0";
276pub const kVideoSegmentProperty_Multicam_CameraOrder: &[u8; 26] = b"MulticamNode::CameraOrder\0";
277pub const kVideoSegmentProperty_Multicam_CamerasPerPage: &[u8; 29] =
278    b"MulticamNode::CamerasPerPage\0";
279pub const kVideoSegmentProperty_Multicam_CurrentPage: &[u8; 26] = b"MulticamNode::CurrentPage\0";
280pub const kVideoSegmentProperty_Multicam_ShowProgram: &[u8; 26] = b"MulticamNode::ShowProgram\0";
281pub const kVideoSegmentProperty_Multicam_Recording: &[u8; 24] = b"MulticamNode::Recording\0";
282pub const kVideoSegmentProperty_Multicam_IsNonMultiCam: &[u8; 28] =
283    b"MulticamNode::IsNonMultiCam\0";
284pub const kVideoSegmentProperty_Multicam_UseTimeRemapping: &[u8; 31] =
285    b"MulticamNode::UseTimeRemapping\0";
286pub const kVideoSegmentProperty_SolidColor_Color: &[u8; 22] = b"SolidColorNode::Color\0";
287pub const kVideoSegmentProperty_Effect_FilterMatchName: &[u8; 28] =
288    b"EffectNode::FilterMatchName\0";
289pub const kVideoSegmentProperty_Effect_FilterCategoryName: &[u8; 31] =
290    b"EffectNode::FilterCategoryName\0";
291pub const kVideoSegmentProperty_Effect_FilterOpaqueData: &[u8; 29] =
292    b"EffectNode::FilterOpaqueData\0";
293pub const kVideoSegmentProperty_Effect_FilterParams: &[u8; 25] = b"EffectNode::FilterParams\0";
294pub const kVideoSegmentProperty_Effect_EffectDuration: &[u8; 27] = b"EffectNode::EffectDuration\0";
295pub const kVideoSegmentProperty_Effect_RuntimeInstanceID: &[u8; 30] =
296    b"EffectNode::RuntimeInstanceID\0";
297pub const kVideoSegmentProperty_Effect_LayerInputHashes: &[u8; 29] =
298    b"EffectNode::LayerInputHashes\0";
299pub const kVideoSegmentProperty_Effect_RuntimeHash: &[u8; 24] = b"EffectNode::RuntimeHash\0";
300pub const kVideoSegmentProperty_Effect_StreamLabel: &[u8; 24] = b"EffectNode::StreamLabel\0";
301pub const kVideoSegmentProperty_Effect_ClipName: &[u8; 21] = b"EffectNode::ClipName\0";
302pub const kVideoSegmentProperty_Effect_MasterClipName: &[u8; 27] = b"EffectNode::MasterClipName\0";
303pub const kVideoSegmentProperty_Effect_FileName: &[u8; 21] = b"EffectNode::FileName\0";
304pub const kVideoSegmentProperty_Effect_SourceTrackClipNameHashes: &[u8; 38] =
305    b"EffectNode::SourceTrackClipNameHashes\0";
306pub const kVideoSegmentProperty_Transition_TransitionMatchName: &[u8; 36] =
307    b"TransitionNode::TransitionMatchName\0";
308pub const kVideoSegmentProperty_Transition_TransitionCategoryName: &[u8; 39] =
309    b"TransitionNode::TransitionCategoryName\0";
310pub const kVideoSegmentProperty_Transition_TransitionOpaqueData: &[u8; 37] =
311    b"TransitionNode::TransitionOpaqueData\0";
312pub const kVideoSegmentProperty_Transition_TransitionStartPosition: &[u8; 40] =
313    b"TransitionNode::TransitionStartPosition\0";
314pub const kVideoSegmentProperty_Transition_TransitionEndPosition: &[u8; 38] =
315    b"TransitionNode::TransitionEndPosition\0";
316pub const kVideoSegmentProperty_Transition_TransitionCenterPosition: &[u8; 41] =
317    b"TransitionNode::TransitionCenterPosition\0";
318pub const kVideoSegmentProperty_Transition_TransitionStartPercent: &[u8; 39] =
319    b"TransitionNode::TransitionStartPercent\0";
320pub const kVideoSegmentProperty_Transition_TransitionEndPercent: &[u8; 37] =
321    b"TransitionNode::TransitionEndPercent\0";
322pub const kVideoSegmentProperty_Transition_TransitionBorderWidth: &[u8; 38] =
323    b"TransitionNode::TransitionBorderWidth\0";
324pub const kVideoSegmentProperty_Transition_TransitionBorderColor: &[u8; 38] =
325    b"TransitionNode::TransitionBorderColor\0";
326pub const kVideoSegmentProperty_Transition_TransitionSwitchSources: &[u8; 40] =
327    b"TransitionNode::TransitionSwitchSources\0";
328pub const kVideoSegmentProperty_Transition_TransitionReverse: &[u8; 34] =
329    b"TransitionNode::TransitionReverse\0";
330pub const kVideoSegmentProperty_Transition_TransitionDirection: &[u8; 36] =
331    b"TransitionNode::TransitionDirection\0";
332pub const kVideoSegmentProperty_Transition_TransitionAntiAliasQuality: &[u8; 43] =
333    b"TransitionNode::TransitionAntiAliasQuality\0";
334pub const kVideoSegmentProperty_Transition_TransitionDuration: &[u8; 35] =
335    b"TransitionNode::TransitionDuration\0";
336pub const kVideoSegmentProperty_Transition_TransitionParams: &[u8; 33] =
337    b"TransitionNode::TransitionParams\0";
338pub const kVideoSegmentProperty_Transition_RuntimeInstanceID: &[u8; 34] =
339    b"TransitionNode::RuntimeInstanceID\0";
340pub const kVideoSegmentProperty_Adjustment_AdjustmentMediaIsOpaque: &[u8; 40] =
341    b"AdjustmentNode::AdjustmentMediaIsOpaque\0";
342pub const kVideoSegmentProperty_Adjustment_InvertAlpha: &[u8; 28] =
343    b"AdjustmentNode::InvertAlpha\0";
344pub const kPrSDKVideoSegmentSuite: &[u8; 30] = b"MediaCore Video Segment Suite\0";
345pub const kPrSDKVideoSegmentSuiteVersion4: u32 = 4;
346pub const kPrSDKVideoSegmentSuiteVersion5: u32 = 5;
347pub const kPrSDKVideoSegmentSuiteVersion6: u32 = 6;
348pub const kPrSDKVideoSegmentSuiteVersion7: u32 = 7;
349pub const kPrSDKVideoSegmentSuiteVersion8: u32 = 8;
350pub const kPrSDKVideoSegmentSuiteVersion9: u32 = 9;
351pub const kPrSDKVideoSegmentSuiteVersion: u32 = 9;
352pub const kVideoSegment_NodeType_Clip: &[u8; 23] = b"RenderableNodeClipImpl\0";
353pub const kVideoSegment_NodeType_Compositor: &[u8; 29] = b"RenderableNodeCompositorImpl\0";
354pub const kVideoSegment_NodeType_Disabled: &[u8; 27] = b"RenderableNodeDisabledImpl\0";
355pub const kVideoSegment_NodeType_Effect: &[u8; 25] = b"RenderableNodeEffectImpl\0";
356pub const kVideoSegment_NodeType_Transition: &[u8; 29] = b"RenderableNodeTransitionImpl\0";
357pub const kVideoSegment_NodeType_Media: &[u8; 24] = b"RenderableNodeMediaImpl\0";
358pub const kVideoSegment_NodeType_Preview: &[u8; 26] = b"RenderableNodePreviewImpl\0";
359pub const kVideoSegment_NodeType_SolidColor: &[u8; 29] = b"RenderableNodeSolidColorImpl\0";
360pub const kVideoSegment_NodeType_Multicam: &[u8; 27] = b"RenderableNodeMulticamImpl\0";
361pub const kVideoSegment_NodeType_Adjustment: &[u8; 30] = b"RenderableNode_AdjustmentImpl\0";
362pub const kVideoSegment_NodeType_AdjustmentEffect: &[u8; 36] =
363    b"RenderableNode_AdjustmentEffectImpl\0";
364pub const kPrSDKWindowSuite: &[u8; 22] = b"Premiere Window Suite\0";
365pub const kPrSDKWindowSuiteVersion: u32 = 1;
366pub const PF_Vers_BUILD_BITS: u32 = 511;
367pub const PF_Vers_BUILD_SHIFT: u32 = 0;
368pub const PF_Vers_STAGE_BITS: u32 = 3;
369pub const PF_Vers_STAGE_SHIFT: u32 = 9;
370pub const PF_Vers_BUGFIX_BITS: u32 = 15;
371pub const PF_Vers_BUGFIX_SHIFT: u32 = 11;
372pub const PF_Vers_SUBVERS_BITS: u32 = 15;
373pub const PF_Vers_SUBVERS_SHIFT: u32 = 15;
374pub const PF_Vers_VERS_BITS: u32 = 7;
375pub const PF_Vers_VERS_SHIFT: u32 = 19;
376pub const PF_Vers_VERS_HIGH_BITS: u32 = 15;
377pub const PF_Vers_VERS_HIGH_SHIFT: u32 = 26;
378pub const PF_Vers_VERS_LOW_SHIFT: u32 = 3;
379pub const PF_AE234_PLUG_IN_VERSION: u32 = 13;
380pub const PF_AE234_PLUG_IN_SUBVERS: u32 = 28;
381pub const PF_AE220_PLUG_IN_VERSION: u32 = 13;
382pub const PF_AE220_PLUG_IN_SUBVERS: u32 = 27;
383pub const PF_AE184_PLUG_IN_VERSION: u32 = 13;
384pub const PF_AE184_PLUG_IN_SUBVERS: u32 = 26;
385pub const PF_AE182_PLUG_IN_VERSION: u32 = 13;
386pub const PF_AE182_PLUG_IN_SUBVERS: u32 = 25;
387pub const PF_AE180_PLUG_IN_VERSION: u32 = 13;
388pub const PF_AE180_PLUG_IN_SUBVERS: u32 = 24;
389pub const PF_AE177_PLUG_IN_VERSION: u32 = 13;
390pub const PF_AE177_PLUG_IN_SUBVERS: u32 = 23;
391pub const PF_AE176_PLUG_IN_VERSION: u32 = 13;
392pub const PF_AE176_PLUG_IN_SUBVERS: u32 = 22;
393pub const PF_AE175_PLUG_IN_VERSION: u32 = 13;
394pub const PF_AE175_PLUG_IN_SUBVERS: u32 = 21;
395pub const PF_AE171_PLUG_IN_VERSION: u32 = 13;
396pub const PF_AE171_PLUG_IN_SUBVERS: u32 = 20;
397pub const PF_AE170_PLUG_IN_VERSION: u32 = 13;
398pub const PF_AE170_PLUG_IN_SUBVERS: u32 = 18;
399pub const PF_AE161_PLUG_IN_VERSION: u32 = 13;
400pub const PF_AE161_PLUG_IN_SUBVERS: u32 = 17;
401pub const PF_AE160_PLUG_IN_VERSION: u32 = 13;
402pub const PF_AE160_PLUG_IN_SUBVERS: u32 = 16;
403pub const PF_AE151_PLUG_IN_VERSION: u32 = 13;
404pub const PF_AE151_PLUG_IN_SUBVERS: u32 = 15;
405pub const PF_AE150_PLUG_IN_VERSION: u32 = 13;
406pub const PF_AE150_PLUG_IN_SUBVERS: u32 = 15;
407pub const PF_AE142_PLUG_IN_VERSION: u32 = 13;
408pub const PF_AE142_PLUG_IN_SUBVERS: u32 = 14;
409pub const PF_AE140_PLUG_IN_VERSION: u32 = 13;
410pub const PF_AE140_PLUG_IN_SUBVERS: u32 = 13;
411pub const PF_AE138_PLUG_IN_VERSION: u32 = 13;
412pub const PF_AE138_PLUG_IN_SUBVERS: u32 = 11;
413pub const PF_AE136_PLUG_IN_VERSION: u32 = 13;
414pub const PF_AE136_PLUG_IN_SUBVERS: u32 = 10;
415pub const PF_AE135_PLUG_IN_VERSION: u32 = 13;
416pub const PF_AE135_PLUG_IN_SUBVERS: u32 = 9;
417pub const PF_AE130_PLUG_IN_VERSION: u32 = 13;
418pub const PF_AE130_PLUG_IN_SUBVERS: u32 = 7;
419pub const PF_AE122_PLUG_IN_VERSION: u32 = 13;
420pub const PF_AE122_PLUG_IN_SUBVERS: u32 = 6;
421pub const PF_AE121_PLUG_IN_VERSION: u32 = 13;
422pub const PF_AE121_PLUG_IN_SUBVERS: u32 = 5;
423pub const PF_AE120_PLUG_IN_VERSION: u32 = 13;
424pub const PF_AE120_PLUG_IN_SUBVERS: u32 = 4;
425pub const PF_AE1101_PLUG_IN_VERSION: u32 = 13;
426pub const PF_AE1101_PLUG_IN_SUBVERS: u32 = 3;
427pub const PF_AE110_PLUG_IN_VERSION: u32 = 13;
428pub const PF_AE110_PLUG_IN_SUBVERS: u32 = 2;
429pub const PF_AE105_PLUG_IN_VERSION: u32 = 13;
430pub const PF_AE105_PLUG_IN_SUBVERS: u32 = 1;
431pub const PF_AE100_PLUG_IN_VERSION: u32 = 13;
432pub const PF_AE100_PLUG_IN_SUBVERS: u32 = 0;
433pub const PF_AE90_PLUG_IN_VERSION: u32 = 12;
434pub const PF_AE90_PLUG_IN_SUBVERS: u32 = 14;
435pub const PF_AE80_PLUG_IN_VERSION: u32 = 12;
436pub const PF_AE80_PLUG_IN_SUBVERS: u32 = 13;
437pub const PF_AE70_PLUG_IN_VERSION: u32 = 12;
438pub const PF_AE70_PLUG_IN_SUBVERS: u32 = 12;
439pub const PF_AE65_PLUG_IN_VERSION: u32 = 12;
440pub const PF_AE65_PLUG_IN_SUBVERS: u32 = 11;
441pub const PF_AE41_PLUG_IN_VERSION: u32 = 12;
442pub const PF_AE41_PLUG_IN_SUBVERS: u32 = 2;
443pub const PF_AE40_PLUG_IN_VERSION: u32 = 12;
444pub const PF_AE40_PLUG_IN_SUBVERS: u32 = 1;
445pub const PF_AE31_PLUG_IN_VERSION: u32 = 11;
446pub const PF_AE31_PLUG_IN_SUBVERS: u32 = 6;
447pub const PF_AE31_PLUG_IN_SUBVERS_STRICTIFY: u32 = 8;
448pub const PF_AE_PLUG_IN_VERSION: u32 = 13;
449pub const PF_AE_PLUG_IN_SUBVERS: u32 = 28;
450pub const PF_MAX_EFFECT_NAME_LEN: u32 = 31;
451pub const PF_MAX_EFFECT_CATEGORY_NAME_LEN: u32 = 31;
452pub const PF_MAX_EFFECT_PARAM_NAME_LEN: u32 = 31;
453pub const PF_MAX_PARAM_DESCRIPTION_LEN: u32 = 31;
454pub const PF_MAX_PARAM_VALUE_LEN: u32 = 31;
455pub const PF_MAX_EFFECT_MSG_LEN: u32 = 255;
456pub const PF_AE65_AND_EARLIER_MAX_NUM_EFFECT_PARAMS: u32 = 127;
457pub const PF_MAX_WORLD_WIDTH: u32 = 30000;
458pub const PF_MAX_WORLD_HEIGHT: u32 = 30000;
459pub const PF_FIRST_ERR: u32 = 512;
460pub const PF_Category_BLUR_AND_SHARPEN: &[u8; 15] = b"Blur & Sharpen\0";
461pub const PF_Category_CHANNEL: &[u8; 8] = b"Channel\0";
462pub const PF_Category_DISTORT: &[u8; 8] = b"Distort\0";
463pub const PF_Category_IMAGE_CONTROL: &[u8; 14] = b"Image Control\0";
464pub const PF_Category_KEYING: &[u8; 7] = b"Keying\0";
465pub const PF_Category_PERSPECTIVE: &[u8; 12] = b"Perspective\0";
466pub const PF_Category_STYLIZE: &[u8; 8] = b"Stylize\0";
467pub const PF_Category_TEXT: &[u8; 5] = b"Text\0";
468pub const PF_Category_VIDEO: &[u8; 6] = b"Video\0";
469pub const PF_Category_TRANSITION: &[u8; 11] = b"Transition\0";
470pub const PF_Category_AUDIO: &[u8; 6] = b"Audio\0";
471pub const PF_Category_OTHER: &[u8; 6] = b"Other\0";
472pub const PF_MAX_CHAN8: u32 = 255;
473pub const PF_HALF_CHAN8: u32 = 128;
474pub const PF_MAX_CHAN16: u32 = 32768;
475pub const PF_HALF_CHAN16: u32 = 16384;
476pub const PF_HUE_UNDEFINED: u32 = 2147483648;
477pub const PF_CHANNEL_NAME_LEN: u32 = 63;
478pub const PF_PI: f64 = 3.141592653589793;
479pub const PF_2PI: f64 = 6.283185307179586;
480pub const PF_HALF_PI: f64 = 1.5707963267948966;
481pub const PF_E: f64 = 2.718281828459045;
482pub const PF_SQRT2: f64 = 1.4142135623730951;
483pub const PF_RAD_PER_DEGREE: f64 = 0.017453292519943295;
484pub const PF_KernelFlag_2D: u32 = 0;
485pub const PF_KernelFlag_1D: u32 = 1;
486pub const PF_KernelFlag_UNNORMALIZED: u32 = 0;
487pub const PF_KernelFlag_NORMALIZED: u32 = 2;
488pub const PF_KernelFlag_CLAMP: u32 = 0;
489pub const PF_KernelFlag_NO_CLAMP: u32 = 4;
490pub const PF_KernelFlag_USE_LONG: u32 = 0;
491pub const PF_KernelFlag_USE_CHAR: u32 = 8;
492pub const PF_KernelFlag_USE_FIXED: u32 = 16;
493pub const PF_KernelFlag_USE_UNDEFINED: u32 = 24;
494pub const PF_KernelFlag_HORIZONTAL: u32 = 0;
495pub const PF_KernelFlag_VERTICAL: u32 = 32;
496pub const PF_KernelFlag_TRANSPARENT_BORDERS: u32 = 0;
497pub const PF_KernelFlag_REPLICATE_BORDERS: u32 = 64;
498pub const PF_KernelFlag_STRAIGHT_CONVOLVE: u32 = 0;
499pub const PF_KernelFlag_ALPHA_WEIGHT_CONVOLVE: u32 = 128;
500pub const PF_Iterations_ONCE_PER_PROCESSOR: i32 = -1;
501pub const PF_Iteratations_ONCE_PER_PROCESSOR: i32 = -1;
502pub const kPFCacheOnLoadSuite: &[u8; 23] = b"PF Cache On Load Suite\0";
503pub const kPFCacheOnLoadSuiteVersion1: u32 = 1;
504pub const kPFPixelFormatSuite: &[u8; 22] = b"PF Pixel Format Suite\0";
505pub const kPFPixelFormatSuiteVersion1: u32 = 1;
506pub const kPFBackgroundFrameSuite: &[u8; 26] = b"PF Background Frame Suite\0";
507pub const kPFBackgroundFrameSuiteVersion1: u32 = 1;
508pub const kPFUtilitySuite: &[u8; 17] = b"PF Utility Suite\0";
509pub const kPFUtilitySuiteVersion2: u32 = 2;
510pub const kPFUtilitySuiteVersion3: u32 = 3;
511pub const kPFUtilitySuiteVersion4: u32 = 4;
512pub const kPFUtilitySuiteVersion5: u32 = 5;
513pub const kPFUtilitySuiteVersion6: u32 = 6;
514pub const kPFUtilitySuiteVersion7: u32 = 7;
515pub const kPFUtilitySuiteVersion8: u32 = 8;
516pub const kPFUtilitySuiteVersion9: u32 = 9;
517pub const kPFUtilitySuiteVersion10: u32 = 10;
518pub const kPFUtilitySuiteVersion11: u32 = 11;
519pub const kPFUtilitySuiteVersion12: u32 = 12;
520pub const kPFUtilitySuiteVersion13: u32 = 13;
521pub const kPFUtilitySuiteVersion: u32 = 13;
522pub const kPFSourceSettingsSuite: &[u8; 25] = b"PF Source Settings Suite\0";
523pub const kPFSourceSettingsSuiteVersion1: u32 = 1;
524pub const kPFSourceSettingsSuiteVersion2: u32 = 2;
525pub const kPFSourceSettingsSuiteVersion: u32 = 2;
526pub const kPFTransitionSuite: &[u8; 20] = b"PF Transition Suite\0";
527pub const kPFTransitionSuiteVersion1: u32 = 1;
528pub const kPFTransitionSuiteVersion2: u32 = 2;
529pub const kPFTransitionSuiteVersion: u32 = 2;
530pub const kPrSDKOpaqueEffectDataSuite: &[u8; 25] = b"Opaque Effect Data Suite\0";
531pub const kPrSDKOpaqueEffectDataSuiteVersion2: u32 = 2;
532pub const kPrSDKOpaqueEffectDataSuiteVersion: u32 = 2;
533#[repr(C)]
534#[derive(Debug, Copy, Clone)]
535pub struct NSView {
536    _unused: [u8; 0],
537}
538pub type csSDK_int8 = i8;
539pub type csSDK_int16 = i16;
540pub type csSDK_int32 = i32;
541pub type csSDK_int64 = i64;
542pub type csSDK_uint8 = u8;
543pub type csSDK_uint16 = u16;
544pub type csSDK_uint32 = u32;
545pub type csSDK_uint64 = u64;
546pub type csSDK_size_t = csSDK_uint64;
547pub type PrMemoryPtr = *mut ::std::os::raw::c_char;
548pub type PrMemoryHandle = *mut PrMemoryPtr;
549pub type PrFourCC = csSDK_uint32;
550#[repr(C, packed)]
551#[derive(Debug, Copy, Clone)]
552pub struct prRect {
553    pub top: csSDK_int16,
554    pub left: csSDK_int16,
555    pub bottom: csSDK_int16,
556    pub right: csSDK_int16,
557}
558#[repr(C, packed)]
559#[derive(Debug, Copy, Clone)]
560pub struct prFPoint64 {
561    pub x: f64,
562    pub y: f64,
563}
564pub type prBool = csSDK_int32;
565pub const kPrTrue: prBool = 1;
566pub const kPrFalse: prBool = 0;
567pub type prUTF8Char = csSDK_uint8;
568pub type prInt64 = csSDK_int64;
569pub type prUTF16Char = csSDK_uint16;
570pub type prWnd = *mut NSView;
571#[repr(C, packed)]
572#[derive(Debug, Copy, Clone)]
573pub struct PrSDKString {
574    pub opaque: [csSDK_int64; 2usize],
575}
576#[repr(C, packed)]
577#[derive(Debug, Copy, Clone)]
578pub struct PrSDKGuid {
579    pub opaque: [csSDK_int64; 2usize],
580}
581pub type PrSDKColorSpaceID = PrSDKGuid;
582unsafe extern "C" {
583    #[link_name = "\u{1}__ZL26kPrSDKColorSpaceID_Invalid"]
584    pub static kPrSDKColorSpaceID_Invalid: PrSDKColorSpaceID;
585}
586pub type PrSDKLUTID = PrSDKGuid;
587unsafe extern "C" {
588    #[link_name = "\u{1}__ZL19kPrSDKLUTID_Invalid"]
589    pub static kPrSDKLUTID_Invalid: PrSDKLUTID;
590}
591#[repr(C, packed)]
592#[derive(Debug, Copy, Clone)]
593pub struct PPix {
594    pub bounds: prRect,
595    pub rowbytes: csSDK_int32,
596    pub bitsperpixel: csSDK_int32,
597    pub pix: *mut ::std::os::raw::c_void,
598    pub reserved: [*mut ::std::os::raw::c_void; 32usize],
599}
600pub type PPixHand = *mut *mut PPix;
601pub type prFieldType = csSDK_int32;
602pub type PrTimelineID = csSDK_int32;
603pub type PrClipID = csSDK_int32;
604#[repr(C)]
605#[derive(Debug, Copy, Clone)]
606pub struct prPluginID {
607    pub mGUID: [::std::os::raw::c_char; 37usize],
608}
609pub const PrMaxBitDepth_kMaxBitDepth_Off: PrMaxBitDepth = 0;
610pub const PrMaxBitDepth_kMaxBitDepth_On: PrMaxBitDepth = 1;
611pub const PrMaxBitDepth_kMaxBitDepth_Unknown: PrMaxBitDepth = 2;
612pub type PrMaxBitDepth = ::std::os::raw::c_uint;
613pub const PrParamType_kPrParamType_Int8: PrParamType = 1;
614pub const PrParamType_kPrParamType_Int16: PrParamType = 2;
615pub const PrParamType_kPrParamType_Int32: PrParamType = 3;
616pub const PrParamType_kPrParamType_Int64: PrParamType = 4;
617pub const PrParamType_kPrParamType_Float32: PrParamType = 5;
618pub const PrParamType_kPrParamType_Float64: PrParamType = 6;
619pub const PrParamType_kPrParamType_Bool: PrParamType = 7;
620pub const PrParamType_kPrParamType_Point: PrParamType = 8;
621pub const PrParamType_kPrParamType_Guid: PrParamType = 9;
622pub const PrParamType_kPrParamType_PrMemoryPtr: PrParamType = 10;
623pub const PrParamType_kPrParamType_MaxSize: PrParamType = 4294967295;
624pub type PrParamType = ::std::os::raw::c_uint;
625#[repr(C, packed)]
626#[derive(Copy, Clone)]
627pub struct PrParam {
628    pub mType: PrParamType,
629    pub __bindgen_anon_1: PrParam__bindgen_ty_1,
630}
631#[repr(C, packed)]
632#[derive(Copy, Clone)]
633pub union PrParam__bindgen_ty_1 {
634    pub mInt8: csSDK_int8,
635    pub mInt16: csSDK_int16,
636    pub mInt32: csSDK_int32,
637    pub mInt64: csSDK_int64,
638    pub mFloat32: f32,
639    pub mFloat64: f64,
640    pub mBool: csSDK_uint8,
641    pub mPoint: prFPoint64,
642    pub mGuid: prPluginID,
643    pub mMemoryPtr: PrMemoryPtr,
644}
645#[doc = "\tCurrently supported types"]
646pub const PrPixelFormat_PrPixelFormat_BGRA_4444_8u: PrPixelFormat = 1634887522;
647#[doc = "\tCurrently supported types"]
648pub const PrPixelFormat_PrPixelFormat_VUYA_4444_8u: PrPixelFormat = 1635349878;
649#[doc = "\tCurrently supported types"]
650pub const PrPixelFormat_PrPixelFormat_VUYA_4444_8u_709: PrPixelFormat = 1096373590;
651#[doc = "\tCurrently supported types"]
652pub const PrPixelFormat_PrPixelFormat_ARGB_4444_8u: PrPixelFormat = 1650946657;
653#[doc = "\tCurrently supported types"]
654pub const PrPixelFormat_PrPixelFormat_BGRX_4444_8u: PrPixelFormat = 2020763490;
655#[doc = "\tCurrently supported types"]
656pub const PrPixelFormat_PrPixelFormat_VUYX_4444_8u: PrPixelFormat = 2021225846;
657#[doc = "\tCurrently supported types"]
658pub const PrPixelFormat_PrPixelFormat_VUYX_4444_8u_709: PrPixelFormat = 930641270;
659#[doc = "\tCurrently supported types"]
660pub const PrPixelFormat_PrPixelFormat_XRGB_4444_8u: PrPixelFormat = 1650946680;
661#[doc = "\tCurrently supported types"]
662pub const PrPixelFormat_PrPixelFormat_BGRP_4444_8u: PrPixelFormat = 1886545762;
663#[doc = "\tCurrently supported types"]
664pub const PrPixelFormat_PrPixelFormat_VUYP_4444_8u: PrPixelFormat = 1887008118;
665#[doc = "\tCurrently supported types"]
666pub const PrPixelFormat_PrPixelFormat_VUYP_4444_8u_709: PrPixelFormat = 930116982;
667#[doc = "\tCurrently supported types"]
668pub const PrPixelFormat_PrPixelFormat_PRGB_4444_8u: PrPixelFormat = 1650946672;
669#[doc = "\tCurrently supported types"]
670pub const PrPixelFormat_PrPixelFormat_BGRA_4444_16u: PrPixelFormat = 1634887490;
671#[doc = "\tCurrently supported types"]
672pub const PrPixelFormat_PrPixelFormat_VUYA_4444_16u: PrPixelFormat = 1635349846;
673#[doc = "\tCurrently supported types"]
674pub const PrPixelFormat_PrPixelFormat_ARGB_4444_16u: PrPixelFormat = 1650946625;
675#[doc = "\tCurrently supported types"]
676pub const PrPixelFormat_PrPixelFormat_BGRX_4444_16u: PrPixelFormat = 2020763458;
677#[doc = "\tCurrently supported types"]
678pub const PrPixelFormat_PrPixelFormat_XRGB_4444_16u: PrPixelFormat = 1650946648;
679#[doc = "\tCurrently supported types"]
680pub const PrPixelFormat_PrPixelFormat_BGRP_4444_16u: PrPixelFormat = 1886545730;
681#[doc = "\tCurrently supported types"]
682pub const PrPixelFormat_PrPixelFormat_PRGB_4444_16u: PrPixelFormat = 1650946640;
683#[doc = "\tCurrently supported types"]
684pub const PrPixelFormat_PrPixelFormat_BGRA_4444_32f: PrPixelFormat = 1634879298;
685#[doc = "\tCurrently supported types"]
686pub const PrPixelFormat_PrPixelFormat_VUYA_4444_32f: PrPixelFormat = 1635341654;
687#[doc = "\tCurrently supported types"]
688pub const PrPixelFormat_PrPixelFormat_VUYA_4444_32f_709: PrPixelFormat = 1633244534;
689#[doc = "\tCurrently supported types"]
690pub const PrPixelFormat_PrPixelFormat_ARGB_4444_32f: PrPixelFormat = 1650938433;
691#[doc = "\tCurrently supported types"]
692pub const PrPixelFormat_PrPixelFormat_BGRX_4444_32f: PrPixelFormat = 2020755266;
693#[doc = "\tCurrently supported types"]
694pub const PrPixelFormat_PrPixelFormat_VUYX_4444_32f: PrPixelFormat = 2021217622;
695#[doc = "\tCurrently supported types"]
696pub const PrPixelFormat_PrPixelFormat_VUYX_4444_32f_709: PrPixelFormat = 930633046;
697#[doc = "\tCurrently supported types"]
698pub const PrPixelFormat_PrPixelFormat_XRGB_4444_32f: PrPixelFormat = 1650938456;
699#[doc = "\tCurrently supported types"]
700pub const PrPixelFormat_PrPixelFormat_BGRP_4444_32f: PrPixelFormat = 1886537538;
701#[doc = "\tCurrently supported types"]
702pub const PrPixelFormat_PrPixelFormat_VUYP_4444_32f: PrPixelFormat = 1886999894;
703#[doc = "\tCurrently supported types"]
704pub const PrPixelFormat_PrPixelFormat_VUYP_4444_32f_709: PrPixelFormat = 930108758;
705#[doc = "\tCurrently supported types"]
706pub const PrPixelFormat_PrPixelFormat_PRGB_4444_32f: PrPixelFormat = 1650938448;
707#[doc = "\tCurrently supported types"]
708pub const PrPixelFormat_PrPixelFormat_RGB_444_10u: PrPixelFormat = 826427218;
709#[doc = "\tCurrently supported types"]
710pub const PrPixelFormat_PrPixelFormat_YUYV_422_8u_601: PrPixelFormat = 846820729;
711#[doc = "\tCurrently supported types"]
712pub const PrPixelFormat_PrPixelFormat_YUYV_422_8u_709: PrPixelFormat = 863597945;
713#[doc = "\tCurrently supported types"]
714pub const PrPixelFormat_PrPixelFormat_UYVY_422_8u_601: PrPixelFormat = 2037807477;
715#[doc = "\tCurrently supported types"]
716pub const PrPixelFormat_PrPixelFormat_UYVY_422_8u_709: PrPixelFormat = 930511221;
717#[doc = "\tCurrently supported types"]
718pub const PrPixelFormat_PrPixelFormat_V210_422_10u_601: PrPixelFormat = 808530550;
719#[doc = "\tCurrently supported types"]
720pub const PrPixelFormat_PrPixelFormat_V210_422_10u_709: PrPixelFormat = 825307766;
721#[doc = "\tCurrently supported types"]
722pub const PrPixelFormat_PrPixelFormat_V210_422_10u_709_FullRange: PrPixelFormat = 1714500214;
723#[doc = "\tCurrently supported types"]
724pub const PrPixelFormat_PrPixelFormat_P210_422_10u_709: PrPixelFormat = 808530544;
725#[doc = "\tCurrently supported types"]
726pub const PrPixelFormat_PrPixelFormat_UYVY_422_32f_601: PrPixelFormat = 2037799253;
727#[doc = "\tCurrently supported types"]
728pub const PrPixelFormat_PrPixelFormat_UYVY_422_32f_709: PrPixelFormat = 930502997;
729#[doc = "\tCurrently supported types"]
730pub const PrPixelFormat_PrPixelFormat_BGRA_4444_32f_Linear: PrPixelFormat = 1281443650;
731#[doc = "\tCurrently supported types"]
732pub const PrPixelFormat_PrPixelFormat_BGRP_4444_32f_Linear: PrPixelFormat = 1282426690;
733#[doc = "\tCurrently supported types"]
734pub const PrPixelFormat_PrPixelFormat_BGRX_4444_32f_Linear: PrPixelFormat = 1282950978;
735#[doc = "\tCurrently supported types"]
736pub const PrPixelFormat_PrPixelFormat_ARGB_4444_32f_Linear: PrPixelFormat = 1281839681;
737#[doc = "\tCurrently supported types"]
738pub const PrPixelFormat_PrPixelFormat_PRGB_4444_32f_Linear: PrPixelFormat = 1281839696;
739#[doc = "\tCurrently supported types"]
740pub const PrPixelFormat_PrPixelFormat_XRGB_4444_32f_Linear: PrPixelFormat = 1281839704;
741#[doc = "\tCurrently supported types"]
742pub const PrPixelFormat_PrPixelFormat_RGB_444_12u_PQ_709: PrPixelFormat = 928075840;
743pub const PrPixelFormat_PrPixelFormat_RGB_444_12u_PQ_P3: PrPixelFormat = 1347506240;
744pub const PrPixelFormat_PrPixelFormat_RGB_444_12u_PQ_2020: PrPixelFormat = 844189760;
745pub const PrPixelFormat_PrPixelFormat_RGB_444_10u_HLG: PrPixelFormat = 827082816;
746pub const PrPixelFormat_PrPixelFormat_RGB_444_12u_HLG: PrPixelFormat = 843860032;
747pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG2_FRAME_PICTURE_PLANAR_8u_601: PrPixelFormat =
748    842102393;
749pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG2_FIELD_PICTURE_PLANAR_8u_601: PrPixelFormat =
750    845772409;
751pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG2_FRAME_PICTURE_PLANAR_8u_601_FullRange:
752    PrPixelFormat = 1714517625;
753pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG2_FIELD_PICTURE_PLANAR_8u_601_FullRange:
754    PrPixelFormat = 1718187641;
755pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG2_FRAME_PICTURE_PLANAR_8u_709: PrPixelFormat =
756    925988473;
757pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG2_FIELD_PICTURE_PLANAR_8u_709: PrPixelFormat =
758    929658489;
759pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG2_FRAME_PICTURE_PLANAR_8u_709_FullRange:
760    PrPixelFormat = 1177646713;
761pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG2_FIELD_PICTURE_PLANAR_8u_709_FullRange:
762    PrPixelFormat = 1181316729;
763pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_PLANAR_8u_601: PrPixelFormat =
764    842102361;
765pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_PLANAR_8u_601: PrPixelFormat =
766    845772377;
767pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_PLANAR_8u_601_FullRange:
768    PrPixelFormat = 1714517593;
769pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_PLANAR_8u_601_FullRange:
770    PrPixelFormat = 1718187609;
771pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_PLANAR_8u_709: PrPixelFormat =
772    925988441;
773pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_PLANAR_8u_709: PrPixelFormat =
774    929658457;
775pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_PLANAR_8u_709_FullRange:
776    PrPixelFormat = 1177646681;
777pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_PLANAR_8u_709_FullRange:
778    PrPixelFormat = 1181316697;
779pub const PrPixelFormat_PrPixelFormat_ARGB_4444_32f_Planar: PrPixelFormat = 1348948545;
780pub const PrPixelFormat_PrPixelFormat_RGB_444_32f_Planar: PrPixelFormat = 1346520914;
781pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_BIPLANAR_8u_601: PrPixelFormat =
782    862549614;
783pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_BIPLANAR_8u_601: PrPixelFormat =
784    858879598;
785pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_BIPLANAR_8u_601_FullRange:
786    PrPixelFormat = 828995182;
787pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_BIPLANAR_8u_601_FullRange:
788    PrPixelFormat = 825325166;
789pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_BIPLANAR_8u_709: PrPixelFormat =
790    845772398;
791pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_BIPLANAR_8u_709: PrPixelFormat =
792    842102382;
793pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_BIPLANAR_8u_709_FullRange:
794    PrPixelFormat = 812217966;
795pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_BIPLANAR_8u_709_FullRange:
796    PrPixelFormat = 808547950;
797pub const PrPixelFormat_PrPixelFormat_YVU_420_MPEG4_FIELD_PICTURE_BIPLANAR_8u_601: PrPixelFormat =
798    862549582;
799pub const PrPixelFormat_PrPixelFormat_YVU_420_MPEG4_FRAME_PICTURE_BIPLANAR_8u_601: PrPixelFormat =
800    858879566;
801pub const PrPixelFormat_PrPixelFormat_YVU_420_MPEG4_FIELD_PICTURE_BIPLANAR_8u_601_FullRange:
802    PrPixelFormat = 828995150;
803pub const PrPixelFormat_PrPixelFormat_YVU_420_MPEG4_FRAME_PICTURE_BIPLANAR_8u_601_FullRange:
804    PrPixelFormat = 825325134;
805pub const PrPixelFormat_PrPixelFormat_YVU_420_MPEG4_FIELD_PICTURE_BIPLANAR_8u_709: PrPixelFormat =
806    845772366;
807pub const PrPixelFormat_PrPixelFormat_YVU_420_MPEG4_FRAME_PICTURE_BIPLANAR_8u_709: PrPixelFormat =
808    842102350;
809pub const PrPixelFormat_PrPixelFormat_YVU_420_MPEG4_FIELD_PICTURE_BIPLANAR_8u_709_FullRange:
810    PrPixelFormat = 812217934;
811pub const PrPixelFormat_PrPixelFormat_YVU_420_MPEG4_FRAME_PICTURE_BIPLANAR_8u_709_FullRange:
812    PrPixelFormat = 808547918;
813pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_BIPLANAR_10u_as16u_709:
814    PrPixelFormat = 812200048;
815pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_BIPLANAR_10u_as16u_709:
816    PrPixelFormat = 808530032;
817pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_BIPLANAR_10u_as16u_709_FullRange : PrPixelFormat = 1718169712 ;
818pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_BIPLANAR_10u_as16u_709_FullRange : PrPixelFormat = 1714499696 ;
819pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_BIPLANAR_10u_as16u_2020:
820    PrPixelFormat = 812200016;
821pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_BIPLANAR_10u_as16u_2020:
822    PrPixelFormat = 808530000;
823pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_BIPLANAR_10u_as16u_2020_FullRange : PrPixelFormat = 1718169680 ;
824pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_BIPLANAR_10u_as16u_2020_FullRange : PrPixelFormat = 1714499664 ;
825pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_BIPLANAR_10u_as16u_2020_HDR:
826    PrPixelFormat = 812207952;
827pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_BIPLANAR_10u_as16u_2020_HDR:
828    PrPixelFormat = 808537936;
829pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_BIPLANAR_10u_as16u_2020_HDR_FullRange : PrPixelFormat = 1718177616 ;
830pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_BIPLANAR_10u_as16u_2020_HDR_FullRange : PrPixelFormat = 1714507600 ;
831pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_BIPLANAR_10u_as16u_2020_HDR_HLG : PrPixelFormat = 812410960 ;
832pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_BIPLANAR_10u_as16u_2020_HDR_HLG : PrPixelFormat = 810305616 ;
833pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FIELD_PICTURE_BIPLANAR_10u_as16u_2020_HDR_HLG_FullRange : PrPixelFormat = 1718380624 ;
834pub const PrPixelFormat_PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_BIPLANAR_10u_as16u_2020_HDR_HLG_FullRange : PrPixelFormat = 1716275280 ;
835pub const PrPixelFormat_PrPixelFormat_Y210_422_10u_as16u_709: PrPixelFormat = 808530553;
836pub const PrPixelFormat_PrPixelFormat_Y210_422_10u_as16u_709_FullRange: PrPixelFormat = 1714500217;
837pub const PrPixelFormat_PrPixelFormat_NTSCDV25: PrPixelFormat = 846100068;
838pub const PrPixelFormat_PrPixelFormat_PALDV25: PrPixelFormat = 846231140;
839pub const PrPixelFormat_PrPixelFormat_NTSCDV50: PrPixelFormat = 896431716;
840pub const PrPixelFormat_PrPixelFormat_PALDV50: PrPixelFormat = 896562788;
841pub const PrPixelFormat_PrPixelFormat_NTSCDV100_720p: PrPixelFormat = 929986148;
842pub const PrPixelFormat_PrPixelFormat_PALDV100_720p: PrPixelFormat = 930117220;
843pub const PrPixelFormat_PrPixelFormat_NTSCDV100_1080i: PrPixelFormat = 829322852;
844pub const PrPixelFormat_PrPixelFormat_PALDV100_1080i: PrPixelFormat = 829453924;
845pub const PrPixelFormat_PrPixelFormat_Raw: PrPixelFormat = 2004312434;
846pub const PrPixelFormat_PrPixelFormat_Invalid: PrPixelFormat = 1717854562;
847pub const PrPixelFormat_PrPixelFormat_Any: PrPixelFormat = 0;
848#[doc = "\tPremiere supported pixel formats for RenderFrame and PPixs"]
849pub type PrPixelFormat = ::std::os::raw::c_uint;
850pub type plugGetClipVideoFunc = ::std::option::Option<
851    unsafe extern "C" fn(
852        frame: csSDK_int32,
853        thePort: PPixHand,
854        bounds: *mut prRect,
855        flags: csSDK_int32,
856        clipData: PrClipID,
857    ) -> csSDK_int32,
858>;
859pub type plugGetWorkAreaFunc = ::std::option::Option<
860    unsafe extern "C" fn(
861        timelineData: PrTimelineID,
862        workAreaStart: *mut csSDK_int32,
863        workAreaEnd: *mut csSDK_int32,
864    ) -> csSDK_int32,
865>;
866pub type plugGetCurrentTimebaseFunc = ::std::option::Option<
867    unsafe extern "C" fn(
868        timelineData: PrTimelineID,
869        scale: *mut csSDK_uint32,
870        sampleSize: *mut csSDK_int32,
871    ),
872>;
873pub type plugGetCurrentPosFunc =
874    ::std::option::Option<unsafe extern "C" fn(timelineData: PrTimelineID) -> csSDK_int32>;
875pub type plugGetPreviewFrameExFunc = ::std::option::Option<
876    unsafe extern "C" fn(
877        inTimelineData: PrTimelineID,
878        inFrame: csSDK_int32,
879        outRenderedFrame: *mut PPixHand,
880        inFrameRect: *const prRect,
881        inRequestedPixelFormatArray: *mut PrPixelFormat,
882        inRequestedPixelFormatArrayCount: csSDK_int32,
883        inPixelAspectRatioNumerator: csSDK_uint32,
884        inPixelAspectRatioDenominator: csSDK_uint32,
885        inAlwaysRender: bool,
886    ) -> csSDK_int32,
887>;
888pub type plugGetClipVideoBoundsFunc = ::std::option::Option<
889    unsafe extern "C" fn(
890        inClipData: PrClipID,
891        outBounds: *mut prRect,
892        outPixelAspectRatioNumerator: *mut csSDK_uint32,
893        outPixelAspectRatioDenominator: *mut csSDK_uint32,
894    ) -> csSDK_int32,
895>;
896pub type plugGetClipVideoExFunc = ::std::option::Option<
897    unsafe extern "C" fn(
898        inFrame: csSDK_int32,
899        outRenderedFrame: *mut PPixHand,
900        inFrameRect: *const prRect,
901        inRequestedPixelFormatArray: *const PrPixelFormat,
902        inRequestedPixelFormatArrayCount: csSDK_int32,
903        inPixelAspectRatioNumerator: csSDK_uint32,
904        inPixelAspectRatioDenominator: csSDK_uint32,
905        inClipData: PrClipID,
906    ) -> csSDK_int32,
907>;
908#[repr(C, packed)]
909#[derive(Debug, Copy, Clone)]
910pub struct PlugTimelineFuncs {
911    pub unused2: *mut ::std::os::raw::c_void,
912    pub unused3: *mut ::std::os::raw::c_void,
913    pub getClipVideo: plugGetClipVideoFunc,
914    pub unused1: *mut ::std::os::raw::c_void,
915    pub unused8: *mut ::std::os::raw::c_void,
916    pub unused9: *mut ::std::os::raw::c_void,
917    pub unused10: *mut ::std::os::raw::c_void,
918    pub getWorkArea: plugGetWorkAreaFunc,
919    pub unused7: *mut ::std::os::raw::c_void,
920    pub unused4: *mut ::std::os::raw::c_void,
921    pub getCurrentTimebase: plugGetCurrentTimebaseFunc,
922    pub getCurrentPos: plugGetCurrentPosFunc,
923    pub unused5: *mut ::std::os::raw::c_void,
924    pub unused6: *mut ::std::os::raw::c_void,
925    pub getPreviewFrameEx: plugGetPreviewFrameExFunc,
926    pub getClipVideoBounds: plugGetClipVideoBoundsFunc,
927    pub getClipVideoEx: plugGetClipVideoExFunc,
928}
929pub type PlugTimelineFuncsPtr = *mut PlugTimelineFuncs;
930pub type prSuiteError = csSDK_int32;
931pub const suiteError_NoError: prSuiteError = 0;
932pub const suiteError_Fail: prSuiteError = -2147483648;
933pub const suiteError_InvalidParms: prSuiteError = -2147483647;
934pub const suiteError_OutOfMemory: prSuiteError = -2147483646;
935pub const suiteError_InvalidCall: prSuiteError = -2147483645;
936pub const suiteError_NotImplemented: prSuiteError = -2147483644;
937pub const suiteError_IDNotValid: prSuiteError = -2147483643;
938pub const suiteError_RenderPending: prSuiteError = 65536;
939pub const suiteError_RenderedFrameNotFound: prSuiteError = 65537;
940pub const suiteError_RenderedFrameCanceled: prSuiteError = 65538;
941pub const suiteError_RenderInvalidPixelFormat: prSuiteError = -2147418112;
942pub const suiteError_RenderCompletionProcNotSet: prSuiteError = -2147418111;
943pub const suiteError_TimeRoundedAudioRate: prSuiteError = 131072;
944pub const suiteError_CompilerCompileAbort: prSuiteError = 196609;
945pub const suiteError_CompilerCompileDone: prSuiteError = 196610;
946pub const suiteError_CompilerOutputFormatAccept: prSuiteError = 196612;
947pub const suiteError_CompilerOutputFormatDecline: prSuiteError = 196613;
948pub const suiteError_CompilerRebuildCutList: prSuiteError = 196614;
949pub const suiteError_CompilerIterateCompiler: prSuiteError = 196615;
950pub const suiteError_CompilerIterateCompilerDone: prSuiteError = 196616;
951pub const suiteError_CompilerInternalErrorSilent: prSuiteError = 196617;
952pub const suiteError_CompilerIterateCompilerCacheable: prSuiteError = 196618;
953pub const suiteError_CompilerBadFormatIndex: prSuiteError = -2147287040;
954pub const suiteError_CompilerInternalError: prSuiteError = -2147287039;
955pub const suiteError_CompilerOutOfDiskSpace: prSuiteError = -2147287038;
956pub const suiteError_CompilerBufferFull: prSuiteError = -2147287037;
957pub const suiteError_CompilerErrOther: prSuiteError = -2147287036;
958pub const suiteError_CompilerErrMemory: prSuiteError = -2147287035;
959pub const suiteError_CompilerErrFileNotFound: prSuiteError = -2147287034;
960pub const suiteError_CompilerErrTooManyOpenFiles: prSuiteError = -2147287033;
961pub const suiteError_CompilerErrPermErr: prSuiteError = -2147287032;
962pub const suiteError_CompilerErrOpenErr: prSuiteError = -2147287031;
963pub const suiteError_CompilerErrInvalidDrive: prSuiteError = -2147287030;
964pub const suiteError_CompilerErrDupFile: prSuiteError = -2147287029;
965pub const suiteError_CompilerErrIo: prSuiteError = -2147287028;
966pub const suiteError_CompilerErrInUse: prSuiteError = -2147287027;
967pub const suiteError_CompilerErrCodecBadInput: prSuiteError = -2147287026;
968pub const suiteError_ExporterSuspended: prSuiteError = -2147287025;
969pub const suiteError_ExporterNoMoreFrames: prSuiteError = -2147287024;
970pub const suiteError_FileBufferTooSmall: prSuiteError = -2147221504;
971pub const suiteError_FileNotImportableFileType: prSuiteError = -2147221503;
972pub const suiteError_LegacyInvalidVideoRate: prSuiteError = -2147155968;
973pub const suiteError_PlayModuleAudioInitFailure: prSuiteError = -2147090432;
974pub const suiteError_PlayModuleAudioIllegalPlaySetting: prSuiteError = -2147090431;
975pub const suiteError_PlayModuleAudioNotInitialized: prSuiteError = -2147090430;
976pub const suiteError_PlayModuleAudioNotStarted: prSuiteError = -2147090429;
977pub const suiteError_PlayModuleAudioIllegalAction: prSuiteError = -2147090428;
978pub const suiteError_PlayModuleDeviceControlSuiteIllegalCallSequence: prSuiteError = -2147024896;
979pub const suiteError_MediaAcceleratorSuitePathNotFound: prSuiteError = -2146959360;
980pub const suiteError_MediaAcceleratorSuiteRegisterFailure: prSuiteError = -2146959359;
981pub const suiteError_RepositoryReadFailed: prSuiteError = -2146893824;
982pub const suiteError_RepositoryWriteFailed: prSuiteError = -2146893823;
983pub const suiteError_NotActivated: prSuiteError = -2146893822;
984pub const suiteError_DataNotPresent: prSuiteError = -2146893821;
985pub const suiteError_ServerCommunicationFailed: prSuiteError = -2146893820;
986pub const suiteError_Internal: prSuiteError = -2146893819;
987pub const suiteError_StringNotFound: prSuiteError = -2146828288;
988pub const suiteError_StringBufferTooSmall: prSuiteError = -2146828287;
989pub const suiteError_NoKeyframeAfterInTime: prSuiteError = -2146762752;
990pub const suiteError_NoMoreData: prSuiteError = 786432;
991pub const suiteError_InstanceDestroyed: prSuiteError = -2146631680;
992pub const suiteError_HostIORequired: prSuiteError = -2146566144;
993pub const PrRenderQuality_kPrRenderQuality_Max: PrRenderQuality = 4;
994pub const PrRenderQuality_kPrRenderQuality_High: PrRenderQuality = 3;
995pub const PrRenderQuality_kPrRenderQuality_Medium: PrRenderQuality = 2;
996pub const PrRenderQuality_kPrRenderQuality_Low: PrRenderQuality = 1;
997pub const PrRenderQuality_kPrRenderQuality_Draft: PrRenderQuality = 0;
998pub const PrRenderQuality_kPrRenderQuality_Invalid: PrRenderQuality = 4294967295;
999pub const PrRenderQuality_kPrRenderQuality_ForceEnumSize: PrRenderQuality = 4294967295;
1000#[doc = "\tRender qualities"]
1001pub type PrRenderQuality = ::std::os::raw::c_uint;
1002pub const PrPlaybackQuality_kPrPlaybackQuality_Invalid: PrPlaybackQuality = 4;
1003pub const PrPlaybackQuality_kPrPlaybackQuality_High: PrPlaybackQuality = 3;
1004pub const PrPlaybackQuality_kPrPlaybackQuality_Draft: PrPlaybackQuality = 2;
1005pub const PrPlaybackQuality_kPrPlaybackQuality_Auto: PrPlaybackQuality = 1;
1006pub const PrPlaybackQuality_kPrPlaybackQuality_ForceEnumSize: PrPlaybackQuality = 4294967295;
1007#[doc = " Playback qualities"]
1008pub type PrPlaybackQuality = ::std::os::raw::c_uint;
1009pub const PrPlaybackFractionalResolution_kPrPlaybackFractionalResolution_Invalid:
1010    PrPlaybackFractionalResolution = 6;
1011pub const PrPlaybackFractionalResolution_kPrPlaybackFractionalResolution_Sixteenth:
1012    PrPlaybackFractionalResolution = 5;
1013pub const PrPlaybackFractionalResolution_kPrPlaybackFractionalResolution_Eighth:
1014    PrPlaybackFractionalResolution = 4;
1015pub const PrPlaybackFractionalResolution_kPrPlaybackFractionalResolution_Quarter:
1016    PrPlaybackFractionalResolution = 3;
1017pub const PrPlaybackFractionalResolution_kPrPlaybackFractionalResolution_Half:
1018    PrPlaybackFractionalResolution = 2;
1019pub const PrPlaybackFractionalResolution_kPrPlaybackFractionalResolution_Full:
1020    PrPlaybackFractionalResolution = 1;
1021pub const PrPlaybackFractionalResolution_kPrPlaybackFractionalResolution_ForceEnumSize:
1022    PrPlaybackFractionalResolution = 4294967295;
1023#[doc = " Playback Fractional Resolutions"]
1024pub type PrPlaybackFractionalResolution = ::std::os::raw::c_uint;
1025#[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."]
1026pub type PrTime = prInt64;
1027#[doc = "\tRatioTime is used where value that are not representable by ticks are needed."]
1028#[repr(C, packed)]
1029#[derive(Debug, Copy, Clone)]
1030pub struct PrRatioTime {
1031    pub mValue: prInt64,
1032    pub mScale: prInt64,
1033}
1034pub const PrVideoFrameRates_kVideoFrameRate_24Drop: PrVideoFrameRates = 1;
1035pub const PrVideoFrameRates_kVideoFrameRate_24: PrVideoFrameRates = 2;
1036pub const PrVideoFrameRates_kVideoFrameRate_PAL: PrVideoFrameRates = 3;
1037pub const PrVideoFrameRates_kVideoFrameRate_NTSC: PrVideoFrameRates = 4;
1038pub const PrVideoFrameRates_kVideoFrameRate_30: PrVideoFrameRates = 5;
1039pub const PrVideoFrameRates_kVideoFrameRate_PAL_HD: PrVideoFrameRates = 6;
1040pub const PrVideoFrameRates_kVideoFrameRate_NTSC_HD: PrVideoFrameRates = 7;
1041pub const PrVideoFrameRates_kVideoFrameRate_60: PrVideoFrameRates = 8;
1042pub const PrVideoFrameRates_kVideoFrameRate_Max: PrVideoFrameRates = 4294967295;
1043pub type PrVideoFrameRates = ::std::os::raw::c_uint;
1044#[repr(C, packed)]
1045#[derive(Debug, Copy, Clone)]
1046pub struct PrSDKTimeSuite {
1047    #[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."]
1048    pub GetTicksPerSecond:
1049        ::std::option::Option<unsafe extern "C" fn(outTicksPerSec: *mut PrTime) -> prSuiteError>,
1050    #[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."]
1051    pub GetTicksPerVideoFrame: ::std::option::Option<
1052        unsafe extern "C" fn(
1053            inVideoFrameRate: PrVideoFrameRates,
1054            outTicksPerFrame: *mut PrTime,
1055        ) -> prSuiteError,
1056    >,
1057    #[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."]
1058    pub GetTicksPerAudioSample: ::std::option::Option<
1059        unsafe extern "C" fn(inSampleRate: f32, outTicksPerSample: *mut PrTime) -> prSuiteError,
1060    >,
1061}
1062pub type PrRenderCacheType = csSDK_int32;
1063#[repr(C, packed)]
1064#[derive(Debug, Copy, Clone)]
1065pub struct ClipFrameFormat {
1066    pub inPixelFormat: PrPixelFormat,
1067    pub inWidth: csSDK_int32,
1068    pub inHeight: csSDK_int32,
1069}
1070#[repr(C, packed)]
1071#[derive(Debug, Copy, Clone)]
1072pub struct PrSDKClipRenderSuite {
1073    #[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."]
1074    pub SupportsClipRenderSuite: ::std::option::Option<
1075        unsafe extern "C" fn(
1076            inClipID: PrClipID,
1077            outSupported: *mut prBool,
1078            outAsyncIOSupported: *mut prBool,
1079        ) -> prSuiteError,
1080    >,
1081    #[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."]
1082    pub GetNumPixelFormats: ::std::option::Option<
1083        unsafe extern "C" fn(
1084            inClipID: PrClipID,
1085            outNumPixelFormats: *mut csSDK_int32,
1086        ) -> prSuiteError,
1087    >,
1088    #[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."]
1089    pub GetPixelFormat: ::std::option::Option<
1090        unsafe extern "C" fn(
1091            inClipID: PrClipID,
1092            inIndex: csSDK_int32,
1093            outPixelFormat: *mut PrPixelFormat,
1094        ) -> prSuiteError,
1095    >,
1096    #[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."]
1097    pub GetNumPreferredFrameSizes: ::std::option::Option<
1098        unsafe extern "C" fn(
1099            inClipID: PrClipID,
1100            inPixelFormat: PrPixelFormat,
1101            outNumPreferredFrameSizes: *mut csSDK_int32,
1102        ) -> prSuiteError,
1103    >,
1104    #[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."]
1105    pub GetPreferredFrameSize: ::std::option::Option<
1106        unsafe extern "C" fn(
1107            inClipID: PrClipID,
1108            inPixelFormat: PrPixelFormat,
1109            inIndex: csSDK_int32,
1110            outWidth: *mut csSDK_int32,
1111            outHeight: *mut csSDK_int32,
1112        ) -> prSuiteError,
1113    >,
1114    #[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."]
1115    pub InitiateAsyncRead: ::std::option::Option<
1116        unsafe extern "C" fn(
1117            inClipID: PrClipID,
1118            inFrameTime: *const PrTime,
1119            inFormat: *mut ClipFrameFormat,
1120        ) -> prSuiteError,
1121    >,
1122    #[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."]
1123    pub CancelAsyncRead: ::std::option::Option<
1124        unsafe extern "C" fn(
1125            inClipID: PrClipID,
1126            inFrameTime: *const PrTime,
1127            inFormat: *mut ClipFrameFormat,
1128        ) -> prSuiteError,
1129    >,
1130    #[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."]
1131    pub FindFrame: ::std::option::Option<
1132        unsafe extern "C" fn(
1133            inClipID: PrClipID,
1134            inFrameTime: *const PrTime,
1135            inFormats: *mut ClipFrameFormat,
1136            inNumFormats: csSDK_int32,
1137            inSynchronous: bool,
1138            outFrame: *mut PPixHand,
1139        ) -> prSuiteError,
1140    >,
1141    #[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"]
1142    pub GetClipFieldType: ::std::option::Option<
1143        unsafe extern "C" fn(inClipID: PrClipID, outFieldType: *mut prFieldType) -> prSuiteError,
1144    >,
1145    #[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."]
1146    pub GetNumCustomPixelFormats: ::std::option::Option<
1147        unsafe extern "C" fn(
1148            inClipID: PrClipID,
1149            outNumPixelFormats: *mut csSDK_int32,
1150        ) -> prSuiteError,
1151    >,
1152    #[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."]
1153    pub GetCustomPixelFormat: ::std::option::Option<
1154        unsafe extern "C" fn(
1155            inClipID: PrClipID,
1156            inIndex: csSDK_int32,
1157            outPixelFormat: *mut PrPixelFormat,
1158        ) -> prSuiteError,
1159    >,
1160}
1161#[doc = "!Indicates Data Group"]
1162pub const PrDSGroupChildType_kPrDSGroupType_GROUP: PrDSGroupChildType = 0;
1163#[doc = "!Indicates Dynamic Group"]
1164pub const PrDSGroupChildType_kPrDSGroupType_DYNAMIC_DATA: PrDSGroupChildType = 1;
1165#[doc = "!Indicates Static Group"]
1166pub const PrDSGroupChildType_kPrDSGroupType_STATIC_DATA: PrDSGroupChildType = 2;
1167#[doc = "!Indicates invalid entry"]
1168pub const PrDSGroupChildType_kPrDSGroupType_INVALID: PrDSGroupChildType = 3;
1169#[doc = "\tDefines data stream types"]
1170pub type PrDSGroupChildType = ::std::os::raw::c_uint;
1171pub type plugNewPtrFunc =
1172    ::std::option::Option<unsafe extern "C" fn(size: csSDK_uint32) -> *mut ::std::os::raw::c_char>;
1173pub type plugSetPtrSizeFunc =
1174    ::std::option::Option<unsafe extern "C" fn(ptr: *mut PrMemoryPtr, newsize: csSDK_uint32)>;
1175pub type plugGetPtrSizeFunc =
1176    ::std::option::Option<unsafe extern "C" fn(ptr: *mut ::std::os::raw::c_char) -> csSDK_int32>;
1177pub type plugDisposePtrFunc =
1178    ::std::option::Option<unsafe extern "C" fn(ptr: *mut ::std::os::raw::c_char)>;
1179pub type plugNewHandleFunc = ::std::option::Option<
1180    unsafe extern "C" fn(size: csSDK_uint32) -> *mut *mut ::std::os::raw::c_char,
1181>;
1182pub type plugSetHandleSizeFunc = ::std::option::Option<
1183    unsafe extern "C" fn(h: PrMemoryHandle, newsize: csSDK_uint32) -> csSDK_int16,
1184>;
1185pub type plugGetHandleSizeFunc =
1186    ::std::option::Option<unsafe extern "C" fn(h: PrMemoryHandle) -> csSDK_int32>;
1187pub type plugDisposeHandleFunc = ::std::option::Option<unsafe extern "C" fn(h: PrMemoryHandle)>;
1188pub type plugNewPtrClearFunc =
1189    ::std::option::Option<unsafe extern "C" fn(size: csSDK_uint32) -> *mut ::std::os::raw::c_char>;
1190pub type plugNewHandleClearFunc = ::std::option::Option<
1191    unsafe extern "C" fn(size: csSDK_uint32) -> *mut *mut ::std::os::raw::c_char,
1192>;
1193pub type plugLockHandleFunc = ::std::option::Option<unsafe extern "C" fn(h: PrMemoryHandle)>;
1194pub type plugUnlockHandleFunc = ::std::option::Option<unsafe extern "C" fn(h: PrMemoryHandle)>;
1195#[repr(C, packed)]
1196#[derive(Debug, Copy, Clone)]
1197pub struct PlugMemoryFuncs {
1198    pub newPtr: plugNewPtrFunc,
1199    pub setPtrSize: plugSetPtrSizeFunc,
1200    pub getPtrSize: plugGetPtrSizeFunc,
1201    pub disposePtr: plugDisposePtrFunc,
1202    pub newHandle: plugNewHandleFunc,
1203    pub setHandleSize: plugSetHandleSizeFunc,
1204    pub getHandleSize: plugGetHandleSizeFunc,
1205    pub disposeHandle: plugDisposeHandleFunc,
1206    pub newPtrClear: plugNewPtrClearFunc,
1207    pub newHandleClear: plugNewHandleClearFunc,
1208    pub lockHandle: plugLockHandleFunc,
1209    pub unlockHandle: plugUnlockHandleFunc,
1210}
1211pub type PlugMemoryFuncsPtr = *mut PlugMemoryFuncs;
1212pub type plugUpdateAllWindowsFunc = ::std::option::Option<unsafe extern "C" fn()>;
1213pub type plugGetMainWindFunc =
1214    ::std::option::Option<unsafe extern "C" fn() -> *mut ::std::os::raw::c_void>;
1215#[repr(C, packed)]
1216#[derive(Debug, Copy, Clone)]
1217pub struct PlugWindowFuncs {
1218    pub updateAllWindows: plugUpdateAllWindowsFunc,
1219    pub getMainWnd: plugGetMainWindFunc,
1220}
1221pub type PlugWindowFuncsPtr = *mut PlugWindowFuncs;
1222pub type plugppixGetPixelsFunc =
1223    ::std::option::Option<unsafe extern "C" fn(pix: PPixHand) -> *mut ::std::os::raw::c_char>;
1224pub type plugppixGetBoundsFunc =
1225    ::std::option::Option<unsafe extern "C" fn(pix: PPixHand, bounds: *mut prRect)>;
1226pub type plugppixGetRowbytesFunc =
1227    ::std::option::Option<unsafe extern "C" fn(pix: PPixHand) -> ::std::os::raw::c_int>;
1228pub type plugppixNewFunc =
1229    ::std::option::Option<unsafe extern "C" fn(bounds: *mut prRect) -> PPixHand>;
1230pub type plugppixDisposeFunc = ::std::option::Option<unsafe extern "C" fn(ppix: PPixHand)>;
1231pub type plugppixLockFunc = ::std::option::Option<unsafe extern "C" fn(pix: PPixHand)>;
1232pub type plugppixUnlockFunc = ::std::option::Option<unsafe extern "C" fn(pix: PPixHand)>;
1233pub type plugppixGetPixelAspectRatioFunc = ::std::option::Option<
1234    unsafe extern "C" fn(
1235        pix: PPixHand,
1236        num: *mut csSDK_uint32,
1237        den: *mut csSDK_uint32,
1238    ) -> ::std::os::raw::c_int,
1239>;
1240pub type plugppixGetAlphaBounds =
1241    ::std::option::Option<unsafe extern "C" fn(pix: PPixHand, alphaBounds: *mut prRect)>;
1242#[repr(C, packed)]
1243#[derive(Debug, Copy, Clone)]
1244pub struct PlugppixFuncs {
1245    pub ppixGetPixels: plugppixGetPixelsFunc,
1246    pub ppixGetBounds: plugppixGetBoundsFunc,
1247    pub ppixGetRowbytes: plugppixGetRowbytesFunc,
1248    pub ppixNew: plugppixNewFunc,
1249    pub ppixDispose: plugppixDisposeFunc,
1250    pub ppixLockPixels: plugppixLockFunc,
1251    pub ppixUnlockPixels: plugppixUnlockFunc,
1252    pub ppixGetPixelAspectRatio: plugppixGetPixelAspectRatioFunc,
1253    pub ppixGetAlphaBounds: plugppixGetAlphaBounds,
1254}
1255pub type PlugppixFuncsPtr = *mut PlugppixFuncs;
1256pub type SPBoolean = ::std::os::raw::c_uchar;
1257pub type SPErr = ::std::os::raw::c_int;
1258#[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"]
1259#[repr(C)]
1260#[derive(Debug, Copy, Clone)]
1261pub struct SPBasicSuite {
1262    #[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()"]
1263    pub AcquireSuite: ::std::option::Option<
1264        unsafe extern "C" fn(
1265            name: *const ::std::os::raw::c_char,
1266            version: ::std::os::raw::c_int,
1267            suite: *mut *const ::std::os::raw::c_void,
1268        ) -> SPErr,
1269    >,
1270    #[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."]
1271    pub ReleaseSuite: ::std::option::Option<
1272        unsafe extern "C" fn(
1273            name: *const ::std::os::raw::c_char,
1274            version: ::std::os::raw::c_int,
1275        ) -> SPErr,
1276    >,
1277    #[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."]
1278    pub IsEqual: ::std::option::Option<
1279        unsafe extern "C" fn(
1280            token1: *const ::std::os::raw::c_char,
1281            token2: *const ::std::os::raw::c_char,
1282        ) -> SPBoolean,
1283    >,
1284    #[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()"]
1285    pub AllocateBlock: ::std::option::Option<
1286        unsafe extern "C" fn(size: usize, block: *mut *mut ::std::os::raw::c_void) -> SPErr,
1287    >,
1288    #[doc = " Frees a block of memory allocated with \\c #AllocateBlock().\n@param block The block pointer.\n@see \\c #SPBlocksSuite::FreeBlock()"]
1289    pub FreeBlock:
1290        ::std::option::Option<unsafe extern "C" fn(block: *mut ::std::os::raw::c_void) -> SPErr>,
1291    #[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()"]
1292    pub ReallocateBlock: ::std::option::Option<
1293        unsafe extern "C" fn(
1294            block: *mut ::std::os::raw::c_void,
1295            newSize: usize,
1296            newblock: *mut *mut ::std::os::raw::c_void,
1297        ) -> SPErr,
1298    >,
1299    #[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"]
1300    pub Undefined: ::std::option::Option<unsafe extern "C" fn() -> SPErr>,
1301}
1302#[repr(C, packed)]
1303#[derive(Debug, Copy, Clone)]
1304pub struct prTimebaseRec {
1305    pub duration: csSDK_int32,
1306    pub scale: csSDK_int32,
1307    pub sampleSize: csSDK_int32,
1308}
1309#[repr(C, packed)]
1310#[derive(Debug, Copy, Clone)]
1311pub struct prFileSpec {
1312    pub volID: ::std::os::raw::c_int,
1313    pub parID: ::std::os::raw::c_int,
1314    pub name: [::std::os::raw::c_char; 256usize],
1315}
1316pub type plugGetSerialNumberFunc =
1317    ::std::option::Option<unsafe extern "C" fn(result: *mut ::std::os::raw::c_char)>;
1318pub type plugGetFileTimebaseFunc = ::std::option::Option<
1319    unsafe extern "C" fn(
1320        filespec: *mut prFileSpec,
1321        audioOnly: csSDK_int32,
1322        result: *mut prTimebaseRec,
1323    ) -> csSDK_int32,
1324>;
1325pub type plugGetFileVideoFunc = ::std::option::Option<
1326    unsafe extern "C" fn(
1327        filespec: *mut prFileSpec,
1328        frame: csSDK_int32,
1329        thePort: PPixHand,
1330        bounds: *mut prRect,
1331        flags: csSDK_int32,
1332    ) -> csSDK_int32,
1333>;
1334pub type plugGetFileAudioSecondFunc = ::std::option::Option<
1335    unsafe extern "C" fn(
1336        filespec: *mut prFileSpec,
1337        num: csSDK_int32,
1338        buffer: *mut ::std::os::raw::c_char,
1339        flags: ::std::os::raw::c_short,
1340        audrate: csSDK_int32,
1341        speed: ::std::os::raw::c_short,
1342    ) -> csSDK_int32,
1343>;
1344pub type plugGetFileVideoBoundsFunc = ::std::option::Option<
1345    unsafe extern "C" fn(filespec: *mut prFileSpec, bounds: *mut prRect) -> csSDK_int32,
1346>;
1347pub type plugGetSPBasicSuiteFunc =
1348    ::std::option::Option<unsafe extern "C" fn() -> *mut SPBasicSuite>;
1349pub type plugGetFileExtStringFunc = ::std::option::Option<
1350    unsafe extern "C" fn(
1351        fileTypes: csSDK_uint32,
1352        inBuffer: *mut ::std::os::raw::c_char,
1353        inBufferSize: csSDK_uint32,
1354    ) -> csSDK_int32,
1355>;
1356#[repr(C, packed)]
1357#[derive(Debug, Copy, Clone)]
1358pub struct PlugUtilFuncs {
1359    pub unused1: *mut ::std::os::raw::c_void,
1360    pub getSerialNumber: plugGetSerialNumberFunc,
1361    pub getFileTimebase: plugGetFileTimebaseFunc,
1362    pub getFileVideo: plugGetFileVideoFunc,
1363    pub getFileAudioSecond: plugGetFileAudioSecondFunc,
1364    pub unused2: *mut ::std::os::raw::c_void,
1365    pub getFileVideoBounds: plugGetFileVideoBoundsFunc,
1366    pub getSPBasicSuite: plugGetSPBasicSuiteFunc,
1367    pub getFileExtString: plugGetFileExtStringFunc,
1368}
1369pub type PlugUtilFuncsPtr = *mut PlugUtilFuncs;
1370#[repr(C, packed)]
1371#[derive(Debug, Copy, Clone)]
1372pub struct piSuites {
1373    pub piInterfaceVer: ::std::os::raw::c_int,
1374    pub memFuncs: PlugMemoryFuncsPtr,
1375    pub windFuncs: PlugWindowFuncsPtr,
1376    pub ppixFuncs: PlugppixFuncsPtr,
1377    pub utilFuncs: PlugUtilFuncsPtr,
1378    pub timelineFuncs: PlugTimelineFuncsPtr,
1379}
1380pub type piSuitesPtr = *mut piSuites;
1381pub type Print2TapeProcPtr = ::std::option::Option<
1382    unsafe extern "C" fn(
1383        deviceHand: PrMemoryHandle,
1384        selector: ::std::os::raw::c_long,
1385    ) -> csSDK_int32,
1386>;
1387pub const PrDeviceSelector_dsInit: PrDeviceSelector = 0;
1388pub const PrDeviceSelector_dsSetup: PrDeviceSelector = 1;
1389pub const PrDeviceSelector_dsExecute: PrDeviceSelector = 2;
1390pub const PrDeviceSelector_dsCleanup: PrDeviceSelector = 3;
1391pub const PrDeviceSelector_dsRestart: PrDeviceSelector = 4;
1392pub const PrDeviceSelector_dsQuiet: PrDeviceSelector = 5;
1393pub const PrDeviceSelector_dsHasOptions: PrDeviceSelector = 6;
1394pub const PrDeviceSelector_dsSelector_Size: PrDeviceSelector = 4294967295;
1395#[doc = "\tSelectors"]
1396pub type PrDeviceSelector = ::std::os::raw::c_uint;
1397pub const PrTransitionReturnValue_esNoErr: PrTransitionReturnValue = 0;
1398pub const PrTransitionReturnValue_esBadFormatIndex: PrTransitionReturnValue = 1;
1399pub const PrTransitionReturnValue_esDoNotCacheOnLoad: PrTransitionReturnValue = 2;
1400pub const PrTransitionReturnValue_esUnsupported: PrTransitionReturnValue = -100;
1401pub const PrTransitionReturnValue_esErr_Size: PrTransitionReturnValue = 4294967295;
1402#[doc = "\tError Definitions"]
1403pub type PrTransitionReturnValue = ::std::os::raw::c_long;
1404pub const PrFilterReturnValue_fsNoErr: PrFilterReturnValue = 0;
1405pub const PrFilterReturnValue_fsBadFormatIndex: PrFilterReturnValue = 1;
1406pub const PrFilterReturnValue_fsDoNotCacheOnLoad: PrFilterReturnValue = 2;
1407pub const PrFilterReturnValue_fsHasNoSetupDialog: PrFilterReturnValue = 3;
1408pub const PrFilterReturnValue_fsUnsupported: PrFilterReturnValue = -100;
1409pub const PrFilterReturnValue_fsErr_Size: PrFilterReturnValue = 4294967295;
1410pub type PrFilterReturnValue = ::std::os::raw::c_long;
1411pub const PrTransitionSelector_esExecute: PrTransitionSelector = 0;
1412pub const PrTransitionSelector_esSetup: PrTransitionSelector = 1;
1413pub const PrTransitionSelector_esUnused1: PrTransitionSelector = 2;
1414pub const PrTransitionSelector_esUnused2: PrTransitionSelector = 3;
1415pub const PrTransitionSelector_esUnused3: PrTransitionSelector = 4;
1416pub const PrTransitionSelector_esDisposeData: PrTransitionSelector = 5;
1417pub const PrTransitionSelector_esCanHandlePAR: PrTransitionSelector = 6;
1418pub const PrTransitionSelector_esGetPixelFormatsSupported: PrTransitionSelector = 7;
1419pub const PrTransitionSelector_esCacheOnLoad: PrTransitionSelector = 8;
1420pub const PrTransitionSelector_esSelector_Size: PrTransitionSelector = 4294967295;
1421#[doc = "\tSelectors"]
1422pub type PrTransitionSelector = ::std::os::raw::c_uint;
1423pub const PrFilterSelector_fsExecute: PrFilterSelector = 0;
1424pub const PrFilterSelector_fsSetup: PrFilterSelector = 1;
1425pub const PrFilterSelector_fsAbout: PrFilterSelector = 2;
1426pub const PrFilterSelector_fsDisposeData: PrFilterSelector = 3;
1427pub const PrFilterSelector_fsCanHandlePAR: PrFilterSelector = 4;
1428pub const PrFilterSelector_fsInitSpec: PrFilterSelector = 5;
1429pub const PrFilterSelector_fsGetPixelFormatsSupported: PrFilterSelector = 6;
1430pub const PrFilterSelector_fsCacheOnLoad: PrFilterSelector = 7;
1431pub const PrFilterSelector_fsHasSetupDialog: PrFilterSelector = 8;
1432pub const PrFilterSelector_fsSelector_Size: PrFilterSelector = 4294967295;
1433pub type PrFilterSelector = ::std::os::raw::c_uint;
1434#[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."]
1435#[repr(C, packed)]
1436#[derive(Debug, Copy, Clone)]
1437pub struct PrSDKErrorSuite1 {
1438    #[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."]
1439    pub SetErrorString: ::std::option::Option<
1440        unsafe extern "C" fn(
1441            inErrorString: *const ::std::os::raw::c_char,
1442            inContextID: csSDK_uint32,
1443        ) -> prSuiteError,
1444    >,
1445    #[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."]
1446    pub SetWarningString: ::std::option::Option<
1447        unsafe extern "C" fn(
1448            inWarningString: *const ::std::os::raw::c_char,
1449            inContextID: csSDK_uint32,
1450        ) -> prSuiteError,
1451    >,
1452    #[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."]
1453    pub SetInfoString: ::std::option::Option<
1454        unsafe extern "C" fn(
1455            inInfoString: *const ::std::os::raw::c_char,
1456            inContextID: csSDK_uint32,
1457        ) -> prSuiteError,
1458    >,
1459}
1460#[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."]
1461#[repr(C, packed)]
1462#[derive(Debug, Copy, Clone)]
1463pub struct PrSDKErrorSuite2 {
1464    pub SetEventString: ::std::option::Option<
1465        unsafe extern "C" fn(
1466            eventType: csSDK_uint32,
1467            eventTitle: *const ::std::os::raw::c_char,
1468            eventDescription: *const ::std::os::raw::c_char,
1469        ) -> prSuiteError,
1470    >,
1471}
1472pub const PrSDKErrorSuite2_kEventTypeInformational: PrSDKErrorSuite2__bindgen_ty_1 = 1;
1473pub const PrSDKErrorSuite2_kEventTypeWarning: PrSDKErrorSuite2__bindgen_ty_1 = 2;
1474pub const PrSDKErrorSuite2_kEventTypeError: PrSDKErrorSuite2__bindgen_ty_1 = 3;
1475pub type PrSDKErrorSuite2__bindgen_ty_1 = ::std::os::raw::c_uint;
1476#[doc = "\tVersion 3 changes:\n\tAdd UTF16 string support"]
1477#[repr(C, packed)]
1478#[derive(Debug, Copy, Clone)]
1479pub struct PrSDKErrorSuite3 {
1480    pub SetEventStringUnicode: ::std::option::Option<
1481        unsafe extern "C" fn(
1482            eventType: csSDK_uint32,
1483            eventTitle: *mut prUTF16Char,
1484            eventDescription: *mut prUTF16Char,
1485        ) -> prSuiteError,
1486    >,
1487}
1488pub const PrSDKErrorSuite3_kEventTypeInformational: PrSDKErrorSuite3__bindgen_ty_1 = 1;
1489pub const PrSDKErrorSuite3_kEventTypeWarning: PrSDKErrorSuite3__bindgen_ty_1 = 2;
1490pub const PrSDKErrorSuite3_kEventTypeError: PrSDKErrorSuite3__bindgen_ty_1 = 3;
1491pub const PrSDKErrorSuite3_kEventType_Mask: PrSDKErrorSuite3__bindgen_ty_1 = 255;
1492pub const PrSDKErrorSuite3_kEventFlag_DecodeError: PrSDKErrorSuite3__bindgen_ty_1 = 256;
1493pub const PrSDKErrorSuite3_kEventFlag_SubstitutedFrame: PrSDKErrorSuite3__bindgen_ty_1 = 512;
1494pub const PrSDKErrorSuite3_kEventFlag_ImportOperation: PrSDKErrorSuite3__bindgen_ty_1 = 1024;
1495pub type PrSDKErrorSuite3__bindgen_ty_1 = ::std::os::raw::c_uint;
1496#[doc = "\tVersion 3 changes:\n\tAdd UTF16 string support"]
1497pub type PrSDKErrorSuite = PrSDKErrorSuite3;
1498pub const PrGPUDeviceFramework_PrGPUDeviceFramework_CUDA: PrGPUDeviceFramework = 0;
1499pub const PrGPUDeviceFramework_PrGPUDeviceFramework_OpenCL: PrGPUDeviceFramework = 1;
1500pub const PrGPUDeviceFramework_PrGPUDeviceFramework_Metal: PrGPUDeviceFramework = 2;
1501pub const PrGPUDeviceFramework_PrGPUDeviceFramework_DirectX: PrGPUDeviceFramework = 3;
1502pub type PrGPUDeviceFramework = ::std::os::raw::c_uint;
1503#[repr(C, packed)]
1504#[derive(Debug, Copy, Clone)]
1505pub struct PrGPUDeviceInfo {
1506    pub outDeviceFramework: PrGPUDeviceFramework,
1507    pub outMeetsMinimumRequirementsForAcceleration: prBool,
1508    pub outPlatformHandle: *mut ::std::os::raw::c_void,
1509    pub outDeviceHandle: *mut ::std::os::raw::c_void,
1510    pub outContextHandle: *mut ::std::os::raw::c_void,
1511    pub outCommandQueueHandle: *mut ::std::os::raw::c_void,
1512    pub outOffscreenOpenGLContextHandle: *mut ::std::os::raw::c_void,
1513    pub outOffscreenOpenGLDeviceHandle: *mut ::std::os::raw::c_void,
1514}
1515#[doc = "\tAccess CUDA, OpenCL OR DirectX devices.\n\t\tAll CUDA usage is through the CUDA device API."]
1516#[repr(C, packed)]
1517#[derive(Debug, Copy, Clone)]
1518pub struct PrSDKGPUDeviceSuite {
1519    #[doc = "\tDevice enumeration"]
1520    pub GetDeviceCount: ::std::option::Option<
1521        unsafe extern "C" fn(outDeviceCount: *mut csSDK_uint32) -> prSuiteError,
1522    >,
1523    pub GetDeviceInfo: ::std::option::Option<
1524        unsafe extern "C" fn(
1525            inSuiteVersion: csSDK_uint32,
1526            inDeviceIndex: csSDK_uint32,
1527            outDeviceInfo: *mut PrGPUDeviceInfo,
1528        ) -> prSuiteError,
1529    >,
1530    #[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."]
1531    pub AcquireExclusiveDeviceAccess:
1532        ::std::option::Option<unsafe extern "C" fn(inDeviceIndex: csSDK_uint32) -> prSuiteError>,
1533    pub ReleaseExclusiveDeviceAccess:
1534        ::std::option::Option<unsafe extern "C" fn(inDeviceIndex: csSDK_uint32) -> prSuiteError>,
1535    #[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\n\t\tFor DirectX, the memory is ID3D12Resource* created as CommittedResource on Default Heap"]
1536    pub AllocateDeviceMemory: ::std::option::Option<
1537        unsafe extern "C" fn(
1538            inDeviceIndex: csSDK_uint32,
1539            inSizeInBytes: usize,
1540            outMemory: *mut *mut ::std::os::raw::c_void,
1541        ) -> prSuiteError,
1542    >,
1543    pub FreeDeviceMemory: ::std::option::Option<
1544        unsafe extern "C" fn(
1545            inDeviceIndex: csSDK_uint32,
1546            inMemory: *mut ::std::os::raw::c_void,
1547        ) -> prSuiteError,
1548    >,
1549    pub PurgeDeviceMemory: ::std::option::Option<
1550        unsafe extern "C" fn(
1551            inDeviceIndex: csSDK_uint32,
1552            inRequestedBytesToPurge: usize,
1553            outBytesPurged: *mut usize,
1554        ) -> prSuiteError,
1555    >,
1556    #[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.\n\t\tFor DirectX, the memory is ID3D12Resource* created as CommittedResource on Upload Heap"]
1557    pub AllocateHostMemory: ::std::option::Option<
1558        unsafe extern "C" fn(
1559            inDeviceIndex: csSDK_uint32,
1560            inSizeInBytes: usize,
1561            outMemory: *mut *mut ::std::os::raw::c_void,
1562        ) -> prSuiteError,
1563    >,
1564    pub FreeHostMemory: ::std::option::Option<
1565        unsafe extern "C" fn(
1566            inDeviceIndex: csSDK_uint32,
1567            inMemory: *mut ::std::os::raw::c_void,
1568        ) -> prSuiteError,
1569    >,
1570    pub PurgeHostMemory: ::std::option::Option<
1571        unsafe extern "C" fn(
1572            inDeviceIndex: csSDK_uint32,
1573            inRequestedBytesToPurge: usize,
1574            outBytesPurged: *mut usize,
1575        ) -> prSuiteError,
1576    >,
1577    #[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"]
1578    pub CreateGPUPPix: ::std::option::Option<
1579        unsafe extern "C" fn(
1580            inDeviceIndex: csSDK_uint32,
1581            inPixelFormat: PrPixelFormat,
1582            inWidth: ::std::os::raw::c_int,
1583            inHeight: ::std::os::raw::c_int,
1584            inPARNumerator: ::std::os::raw::c_int,
1585            inPARDenominator: ::std::os::raw::c_int,
1586            inFieldType: prFieldType,
1587            outPPixHand: *mut PPixHand,
1588        ) -> prSuiteError,
1589    >,
1590    pub GetGPUPPixData: ::std::option::Option<
1591        unsafe extern "C" fn(
1592            inPPixHand: PPixHand,
1593            outData: *mut *mut ::std::os::raw::c_void,
1594        ) -> prSuiteError,
1595    >,
1596    pub GetGPUPPixDeviceIndex: ::std::option::Option<
1597        unsafe extern "C" fn(
1598            inPPixHand: PPixHand,
1599            outDeviceIndex: *mut csSDK_uint32,
1600        ) -> prSuiteError,
1601    >,
1602    pub GetGPUPPixSize: ::std::option::Option<
1603        unsafe extern "C" fn(inPPixHand: PPixHand, outSize: *mut usize) -> prSuiteError,
1604    >,
1605}
1606pub const PrAudioSampleType_kPrAudioSampleType_8BitInt: PrAudioSampleType = 1;
1607pub const PrAudioSampleType_kPrAudioSampleType_8BitTwosInt: PrAudioSampleType = 2;
1608pub const PrAudioSampleType_kPrAudioSampleType_16BitInt: PrAudioSampleType = 3;
1609pub const PrAudioSampleType_kPrAudioSampleType_24BitInt: PrAudioSampleType = 4;
1610pub const PrAudioSampleType_kPrAudioSampleType_32BitInt: PrAudioSampleType = 5;
1611pub const PrAudioSampleType_kPrAudioSampleType_32BitFloat: PrAudioSampleType = 6;
1612pub const PrAudioSampleType_kPrAudioSampleType_64BitFloat: PrAudioSampleType = 7;
1613pub const PrAudioSampleType_kPrAudioSampleType_16BitIntBigEndian: PrAudioSampleType = 8;
1614pub const PrAudioSampleType_kPrAudioSampleType_24BitIntBigEndian: PrAudioSampleType = 9;
1615pub const PrAudioSampleType_kPrAudioSampleType_32BitIntBigEndian: PrAudioSampleType = 10;
1616pub const PrAudioSampleType_kPrAudioSampleType_32BitFloatBigEndian: PrAudioSampleType = 11;
1617pub const PrAudioSampleType_kPrAudioSampleType_Compressed: PrAudioSampleType = 12;
1618pub const PrAudioSampleType_kPrAudioSampleType_Packed: PrAudioSampleType = 13;
1619pub const PrAudioSampleType_kPrAudioSampleType_Other: PrAudioSampleType = 14;
1620pub const PrAudioSampleType_kPrAudioSampleType_Any: PrAudioSampleType = 15;
1621pub const PrAudioSampleType_kPrAudioSampleType_AudioPeakData: PrAudioSampleType = 16;
1622pub const PrAudioSampleType_kPrAudioSampleType_Max: PrAudioSampleType = 4294967295;
1623#[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}"]
1624pub type PrAudioSampleType = ::std::os::raw::c_uint;
1625pub const PrAudioChannelType_kPrAudioChannelType_Mono: PrAudioChannelType = 1;
1626pub const PrAudioChannelType_kPrAudioChannelType_Stereo: PrAudioChannelType = 2;
1627pub const PrAudioChannelType_kPrAudioChannelType_51: PrAudioChannelType = 3;
1628pub const PrAudioChannelType_kPrAudioChannelType_MaxChannel: PrAudioChannelType = 4;
1629pub const PrAudioChannelType_kPrAudioChannelType_Max: PrAudioChannelType = 4294967295;
1630pub type PrAudioChannelType = ::std::os::raw::c_uint;
1631pub const PrAudioDataType_kPrAudioDataType_Float32: PrAudioDataType = 1;
1632pub const PrAudioDataType_kPrAudioDataType_Int32: PrAudioDataType = 2;
1633pub const PrAudioDataType_kPrAudioDataType_PeakAudio: PrAudioDataType = 3;
1634#[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."]
1635pub type PrAudioDataType = ::std::os::raw::c_uint;
1636pub type PrAudioSample = prInt64;
1637pub const PrAudioChannelLabel_kPrAudioChannelLabel_Discrete: PrAudioChannelLabel = 0;
1638pub const PrAudioChannelLabel_kPrAudioChannelLabel_FrontLeft: PrAudioChannelLabel = 100;
1639pub const PrAudioChannelLabel_kPrAudioChannelLabel_FrontRight: PrAudioChannelLabel = 101;
1640pub const PrAudioChannelLabel_kPrAudioChannelLabel_FrontCenter: PrAudioChannelLabel = 102;
1641pub const PrAudioChannelLabel_kPrAudioChannelLabel_LowFrequency: PrAudioChannelLabel = 103;
1642pub const PrAudioChannelLabel_kPrAudioChannelLabel_BackLeft: PrAudioChannelLabel = 104;
1643pub const PrAudioChannelLabel_kPrAudioChannelLabel_BackRight: PrAudioChannelLabel = 105;
1644pub const PrAudioChannelLabel_kPrAudioChannelLabel_BackCenter: PrAudioChannelLabel = 106;
1645pub const PrAudioChannelLabel_kPrAudioChannelLabel_FrontLeftOfCenter: PrAudioChannelLabel = 107;
1646pub const PrAudioChannelLabel_kPrAudioChannelLabel_FrontRightOfCenter: PrAudioChannelLabel = 108;
1647pub const PrAudioChannelLabel_kPrAudioChannelLabel_SideLeft: PrAudioChannelLabel = 109;
1648pub const PrAudioChannelLabel_kPrAudioChannelLabel_SideRight: PrAudioChannelLabel = 110;
1649pub const PrAudioChannelLabel_kPrAudioChannelLabel_TopCenter: PrAudioChannelLabel = 111;
1650pub const PrAudioChannelLabel_kPrAudioChannelLabel_TopFrontLeft: PrAudioChannelLabel = 112;
1651pub const PrAudioChannelLabel_kPrAudioChannelLabel_TopFrontRight: PrAudioChannelLabel = 113;
1652pub const PrAudioChannelLabel_kPrAudioChannelLabel_TopFrontCenter: PrAudioChannelLabel = 114;
1653pub const PrAudioChannelLabel_kPrAudioChannelLabel_TopBackLeft: PrAudioChannelLabel = 115;
1654pub const PrAudioChannelLabel_kPrAudioChannelLabel_TopBackRight: PrAudioChannelLabel = 116;
1655pub const PrAudioChannelLabel_kPrAudioChannelLabel_TopBackCenter: PrAudioChannelLabel = 117;
1656pub const PrAudioChannelLabel_kPrAudioChannelLabel_FrontLeftWide: PrAudioChannelLabel = 118;
1657pub const PrAudioChannelLabel_kPrAudioChannelLabel_FrontRightWide: PrAudioChannelLabel = 119;
1658pub const PrAudioChannelLabel_kPrAudioChannelLabel_LeftHeight: PrAudioChannelLabel = 127;
1659pub const PrAudioChannelLabel_kPrAudioChannelLabel_RightHeight: PrAudioChannelLabel = 128;
1660pub const PrAudioChannelLabel_kPrAudioChannelLabel_RearSurroundLeft: PrAudioChannelLabel = 129;
1661pub const PrAudioChannelLabel_kPrAudioChannelLabel_RearSurroundRight: PrAudioChannelLabel = 130;
1662pub const PrAudioChannelLabel_kPrAudioChannelLabel_LFE2: PrAudioChannelLabel = 131;
1663pub const PrAudioChannelLabel_kPrAudioChannelLabel_LeftTotal: PrAudioChannelLabel = 132;
1664pub const PrAudioChannelLabel_kPrAudioChannelLabel_RightTotal: PrAudioChannelLabel = 133;
1665pub const PrAudioChannelLabel_kPrAudioChannelLabel_Ambisonic_W: PrAudioChannelLabel = 134;
1666pub const PrAudioChannelLabel_kPrAudioChannelLabel_Ambisonic_X: PrAudioChannelLabel = 135;
1667pub const PrAudioChannelLabel_kPrAudioChannelLabel_Ambisonic_Y: PrAudioChannelLabel = 136;
1668pub const PrAudioChannelLabel_kPrAudioChannelLabel_Ambisonic_Z: PrAudioChannelLabel = 137;
1669pub const PrAudioChannelLabel_kPrAudioChannelLabel_BottomFrontLeft: PrAudioChannelLabel = 138;
1670pub const PrAudioChannelLabel_kPrAudioChannelLabel_BottomFrontCenter: PrAudioChannelLabel = 139;
1671pub const PrAudioChannelLabel_kPrAudioChannelLabel_BottomFrontRight: PrAudioChannelLabel = 140;
1672pub const PrAudioChannelLabel_kPrAudioChannelLabel_ProximityLeft: PrAudioChannelLabel = 141;
1673pub const PrAudioChannelLabel_kPrAudioChannelLabel_ProximityRight: PrAudioChannelLabel = 142;
1674pub type PrAudioChannelLabel = ::std::os::raw::c_uint;
1675#[repr(C)]
1676#[derive(Debug, Copy, Clone)]
1677pub struct PrSDKAudioSuite {
1678    #[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."]
1679    pub ConvertAndInterleaveTo8BitInteger: ::std::option::Option<
1680        unsafe extern "C" fn(
1681            inSource: *mut *mut f32,
1682            inDestination: *mut ::std::os::raw::c_char,
1683            inNumChannels: ::std::os::raw::c_uint,
1684            inNumSampleFrames: ::std::os::raw::c_uint,
1685        ) -> prSuiteError,
1686    >,
1687    pub ConvertAndInterleaveTo16BitInteger: ::std::option::Option<
1688        unsafe extern "C" fn(
1689            inSource: *mut *mut f32,
1690            inDestination: *mut ::std::os::raw::c_short,
1691            inNumChannels: ::std::os::raw::c_uint,
1692            inNumSampleFrames: ::std::os::raw::c_uint,
1693        ) -> prSuiteError,
1694    >,
1695    pub ConvertAndInterleaveTo24BitInteger: ::std::option::Option<
1696        unsafe extern "C" fn(
1697            inSource: *mut *mut f32,
1698            inDestination: *mut ::std::os::raw::c_char,
1699            inNumChannels: ::std::os::raw::c_uint,
1700            inNumSampleFrames: ::std::os::raw::c_uint,
1701        ) -> prSuiteError,
1702    >,
1703    pub ConvertAndInterleaveTo32BitInteger: ::std::option::Option<
1704        unsafe extern "C" fn(
1705            inSource: *mut *mut f32,
1706            inDestination: *mut csSDK_int32,
1707            inNumChannels: ::std::os::raw::c_uint,
1708            inNumSampleFrames: ::std::os::raw::c_uint,
1709        ) -> prSuiteError,
1710    >,
1711    #[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."]
1712    pub UninterleaveAndConvertFrom8BitInteger: ::std::option::Option<
1713        unsafe extern "C" fn(
1714            inSource: *mut ::std::os::raw::c_char,
1715            inDestination: *mut *mut f32,
1716            inNumChannels: ::std::os::raw::c_uint,
1717            inNumSampleFrames: ::std::os::raw::c_uint,
1718        ) -> prSuiteError,
1719    >,
1720    pub UninterleaveAndConvertFrom16BitInteger: ::std::option::Option<
1721        unsafe extern "C" fn(
1722            inSource: *mut ::std::os::raw::c_short,
1723            inDestination: *mut *mut f32,
1724            inNumChannels: ::std::os::raw::c_uint,
1725            inNumSampleFrames: ::std::os::raw::c_uint,
1726        ) -> prSuiteError,
1727    >,
1728    pub UninterleaveAndConvertFrom24BitInteger: ::std::option::Option<
1729        unsafe extern "C" fn(
1730            inSource: *mut ::std::os::raw::c_char,
1731            inDestination: *mut *mut f32,
1732            inNumChannels: ::std::os::raw::c_uint,
1733            inNumSampleFrames: ::std::os::raw::c_uint,
1734        ) -> prSuiteError,
1735    >,
1736    pub UninterleaveAndConvertFrom32BitInteger: ::std::option::Option<
1737        unsafe extern "C" fn(
1738            inSource: *mut csSDK_int32,
1739            inDestination: *mut *mut f32,
1740            inNumChannels: ::std::os::raw::c_uint,
1741            inNumSampleFrames: ::std::os::raw::c_uint,
1742        ) -> prSuiteError,
1743    >,
1744}
1745pub const PrActivationEvent_PrActivationEvent_Unspecified: PrActivationEvent = 0;
1746pub const PrActivationEvent_PrActivationEvent_RecorderActivated: PrActivationEvent = 1;
1747pub const PrActivationEvent_PrActivationEvent_PlayerActivated: PrActivationEvent = 2;
1748pub const PrActivationEvent_PrActivationEvent_ApplicationLostFocus: PrActivationEvent = 3;
1749pub const PrActivationEvent_PrActivationEvent_ForceSize: PrActivationEvent = 4294967295;
1750#[doc = "\tPrActivationEvent - Describes the event that caused activation/deactivation to occur"]
1751pub type PrActivationEvent = ::std::os::raw::c_uint;
1752pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_Undefined:
1753    PrRenderCaptionStreamFormat = 0;
1754pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_Open:
1755    PrRenderCaptionStreamFormat = 1;
1756pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_OP_42:
1757    PrRenderCaptionStreamFormat = 10;
1758pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_OP_47:
1759    PrRenderCaptionStreamFormat = 11;
1760pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_608_CC1:
1761    PrRenderCaptionStreamFormat = 20;
1762pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_608_CC2:
1763    PrRenderCaptionStreamFormat = 21;
1764pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_608_CC3:
1765    PrRenderCaptionStreamFormat = 22;
1766pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_608_CC4:
1767    PrRenderCaptionStreamFormat = 23;
1768pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_608_Text1:
1769    PrRenderCaptionStreamFormat = 24;
1770pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_608_Text2:
1771    PrRenderCaptionStreamFormat = 25;
1772pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_608_Text3:
1773    PrRenderCaptionStreamFormat = 26;
1774pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_608_Text4:
1775    PrRenderCaptionStreamFormat = 27;
1776pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_608_XDS:
1777    PrRenderCaptionStreamFormat = 28;
1778pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_708_Service1:
1779    PrRenderCaptionStreamFormat = 40;
1780pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_708_Service2:
1781    PrRenderCaptionStreamFormat = 41;
1782pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_708_Service3:
1783    PrRenderCaptionStreamFormat = 42;
1784pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_708_Service4:
1785    PrRenderCaptionStreamFormat = 43;
1786pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_708_Service5:
1787    PrRenderCaptionStreamFormat = 44;
1788pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_708_Service6:
1789    PrRenderCaptionStreamFormat = 45;
1790pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_Teletext_Level1:
1791    PrRenderCaptionStreamFormat = 50;
1792pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_Teletext_Level2:
1793    PrRenderCaptionStreamFormat = 51;
1794pub const PrRenderCaptionStreamFormat_kPrRenderCaptionStreamFormat_Open_Subtitling:
1795    PrRenderCaptionStreamFormat = 52;
1796#[doc = "\tDefines the Caption Stream format to render"]
1797pub type PrRenderCaptionStreamFormat = ::std::os::raw::c_uint;
1798pub type PlayModuleDeviceID = csSDK_int32;
1799pub const kPrDeviceControlResult_Success: prSuiteError = 0;
1800pub const kPrDeviceControlResult_GeneralError: prSuiteError = -1;
1801pub const kPrDeviceControlResult_IllegalCallSequence: prSuiteError = -2;
1802#[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."]
1803#[repr(C, packed)]
1804#[derive(Debug, Copy, Clone)]
1805pub struct PrSDKPlayModuleDeviceControlSuite {
1806    #[doc = "\tTell the device to seek to the appropriate location.\n\n\t@return\t\t\t\t\tkPrDeviceControlResult_Success or kPrDeviceControlResult_IllegalCallSequence."]
1807    pub Seek:
1808        ::std::option::Option<unsafe extern "C" fn(inDeviceID: PlayModuleDeviceID) -> prSuiteError>,
1809    #[doc = "\tTell the device to prepare to record.\n\n\t@return\t\t\t\t\tkPrDeviceControlResult_Success or kPrDeviceControlResult_IllegalCallSequence."]
1810    pub Arm:
1811        ::std::option::Option<unsafe extern "C" fn(inDeviceID: PlayModuleDeviceID) -> prSuiteError>,
1812    #[doc = "\tTell the device to start recording.\n\n\t@return\t\t\t\t\tkPrDeviceControlResult_Success or kPrDeviceControlResult_IllegalCallSequence."]
1813    pub Record:
1814        ::std::option::Option<unsafe extern "C" fn(inDeviceID: PlayModuleDeviceID) -> prSuiteError>,
1815    #[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."]
1816    pub Stop:
1817        ::std::option::Option<unsafe extern "C" fn(inDeviceID: PlayModuleDeviceID) -> prSuiteError>,
1818}
1819pub const PrIVProjectionType_kPrIVProjectionType_None: PrIVProjectionType = 0;
1820pub const PrIVProjectionType_kPrIVProjectionType_Equirectangular: PrIVProjectionType = 1;
1821#[doc = "\tDefines how the VR image is projected into a 2D frame."]
1822pub type PrIVProjectionType = ::std::os::raw::c_uint;
1823pub const PrIVFrameLayout_kPrIVFrameLayout_Monoscopic: PrIVFrameLayout = 0;
1824pub const PrIVFrameLayout_kPrIVFrameLayout_StereoscopicOverUnder: PrIVFrameLayout = 1;
1825pub const PrIVFrameLayout_kPrIVFrameLayout_StereoscopicSideBySide: PrIVFrameLayout = 2;
1826#[doc = "\tDefines if the VR image contains a stereoscopic pair, and if so, what type of pair."]
1827pub type PrIVFrameLayout = ::std::os::raw::c_uint;
1828pub const PrIVStereoscopicEye_kPrIVStereoscopicEye_Left: PrIVStereoscopicEye = 0;
1829pub const PrIVStereoscopicEye_kPrIVStereoscopicEye_Right: PrIVStereoscopicEye = 1;
1830pub const PrIVStereoscopicEye_kPrIVStereoscopicEye_Anaglyph: PrIVStereoscopicEye = 2;
1831#[doc = "\tDefines which eye to view when given a VR image with a stereoscopic pair."]
1832pub type PrIVStereoscopicEye = ::std::os::raw::c_uint;
1833pub const PrIVAmbisonicsMonitoringType_kPrIVAmbisonicsMonitoringType_Off:
1834    PrIVAmbisonicsMonitoringType = 0;
1835pub const PrIVAmbisonicsMonitoringType_kPrIVAmbisonicsMonitoringType_Binaural:
1836    PrIVAmbisonicsMonitoringType = 1;
1837#[doc = "\tDefines how ambisonics audio is to be monitored."]
1838pub type PrIVAmbisonicsMonitoringType = ::std::os::raw::c_uint;
1839pub type kPrIVViewRange = csSDK_int32;
1840pub type kPrIVViewAngle = f32;
1841#[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."]
1842pub const kPrIVMinFieldOfView: kPrIVViewRange = 60;
1843pub const kPrIVMaxFieldOfView: kPrIVViewRange = 180;
1844#[doc = " These FOV values roughly approximate an average view when compared\n to a HTC Vive or Oculus Rift."]
1845pub const kPrIVDefaultFieldOfHorizontalView: kPrIVViewRange = 108;
1846pub const kPrIVDefaultFieldOfVerticalView: kPrIVViewRange = 108;
1847pub const kPrIVMinCapturedHorizontalView: kPrIVViewRange = 60;
1848pub const kPrIVMaxCapturedHorizontalView: kPrIVViewRange = 360;
1849pub const kPrIVDefaultCapturedHorizontalView: kPrIVViewRange = 360;
1850pub const kPrIVMinCapturedVerticalView: kPrIVViewRange = 60;
1851pub const kPrIVMaxCapturedVerticalView: kPrIVViewRange = 180;
1852pub const kPrIVDefaultCapturedVerticalView: kPrIVViewRange = 180;
1853#[doc = "\tID for a head-related impulse response when monitoring with PrIVAmbisonicsMonitoring_Binaural."]
1854pub const kPrIVAmbisonicsHRIRLength: usize = 256;
1855pub type PrIVAmbisonicsHRIR = [prUTF8Char; 256usize];
1856pub const PrPlaymodReturnValue_playmod_ErrNone: PrPlaymodReturnValue = 0;
1857pub const PrPlaymodReturnValue_playmod_ErrBadFile: PrPlaymodReturnValue = 1;
1858pub const PrPlaymodReturnValue_playmod_ErrDriver: PrPlaymodReturnValue = 2;
1859pub const PrPlaymodReturnValue_playmod_ErrNotPreferred: PrPlaymodReturnValue = 3;
1860pub const PrPlaymodReturnValue_playmod_BadFormatIndex: PrPlaymodReturnValue = 4;
1861pub const PrPlaymodReturnValue_playmod_DeclinePlay: PrPlaymodReturnValue = 5;
1862pub const PrPlaymodReturnValue_playmod_ListWrongType: PrPlaymodReturnValue = 6;
1863pub const PrPlaymodReturnValue_playmod_ListBadSpeed: PrPlaymodReturnValue = 7;
1864pub const PrPlaymodReturnValue_playmod_CantAddSegment: PrPlaymodReturnValue = 8;
1865pub const PrPlaymodReturnValue_playmod_Unsupported: PrPlaymodReturnValue = 9;
1866pub const PrPlaymodReturnValue_playmod_AudioOverload: PrPlaymodReturnValue = 10;
1867pub const PrPlaymodReturnValue_playmod_OutOfRange: PrPlaymodReturnValue = 11;
1868pub const PrPlaymodReturnValue_playmod_CannotRender: PrPlaymodReturnValue = 12;
1869pub const PrPlaymodReturnValue_playmod_RebuildCutlist: PrPlaymodReturnValue = 13;
1870pub const PrPlaymodReturnValue_playmod_CannotShiftLayer: PrPlaymodReturnValue = 14;
1871pub const PrPlaymodReturnValue_playmod_UnsupportedPlaybackSpeed: PrPlaymodReturnValue = 16;
1872pub const PrPlaymodReturnValue_playmod_BroadcastPrefs: PrPlaymodReturnValue = 17;
1873pub const PrPlaymodReturnValue_playmod_CannotRecord: PrPlaymodReturnValue = 18;
1874pub const PrPlaymodReturnValue_playmod_RenderAndPutFrame: PrPlaymodReturnValue = 19;
1875pub const PrPlaymodReturnValue_pmIsCacheable: PrPlaymodReturnValue = 400;
1876pub const PrPlaymodReturnValue_playmod_ErrorForceSize: PrPlaymodReturnValue = 4294967295;
1877#[doc = "\tError Definitions"]
1878pub type PrPlaymodReturnValue = ::std::os::raw::c_uint;
1879#[doc = "\tType Definitions"]
1880pub type PrPlayID = csSDK_int32;
1881pub const pmFieldDisplay_pmFieldDisplay_ShowFirstField: pmFieldDisplay = 0;
1882pub const pmFieldDisplay_pmFieldDisplay_ShowSecondField: pmFieldDisplay = 1;
1883pub const pmFieldDisplay_pmFieldDisplay_ShowBothFields: pmFieldDisplay = 2;
1884pub const pmFieldDisplay_pmFieldDisplay_ForceSize: pmFieldDisplay = 4294967295;
1885pub type pmFieldDisplay = ::std::os::raw::c_uint;
1886pub const PrPlaymodSelector_playmod_Startup: PrPlaymodSelector = 1;
1887pub const PrPlaymodSelector_playmod_Shutdown: PrPlaymodSelector = 2;
1888pub const PrPlaymodSelector_playmod_Open: PrPlaymodSelector = 3;
1889pub const PrPlaymodSelector_playmod_GetInfo: PrPlaymodSelector = 4;
1890pub const PrPlaymodSelector_playmod_SetDisp: PrPlaymodSelector = 5;
1891pub const PrPlaymodSelector_playmod_Update: PrPlaymodSelector = 6;
1892pub const PrPlaymodSelector_playmod_Stop: PrPlaymodSelector = 10;
1893pub const PrPlaymodSelector_playmod_PlayIdle: PrPlaymodSelector = 11;
1894pub const PrPlaymodSelector_playmod_Close: PrPlaymodSelector = 12;
1895pub const PrPlaymodSelector_playmod_GetIndFormat: PrPlaymodSelector = 14;
1896pub const PrPlaymodSelector_playmod_NewList: PrPlaymodSelector = 21;
1897pub const PrPlaymodSelector_playmod_GetFilePrefs: PrPlaymodSelector = 34;
1898pub const PrPlaymodSelector_playmod_UpdateMarkers: PrPlaymodSelector = 45;
1899pub const PrPlaymodSelector_playmod_SetFilePrefs: PrPlaymodSelector = 46;
1900pub const PrPlaymodSelector_playmod_PutFrame: PrPlaymodSelector = 49;
1901pub const PrPlaymodSelector_playmod_SetQuality: PrPlaymodSelector = 53;
1902pub const PrPlaymodSelector_playmod_SetPlaybackSpeed: PrPlaymodSelector = 54;
1903pub const PrPlaymodSelector_playmod_Play: PrPlaymodSelector = 55;
1904pub const PrPlaymodSelector_playmod_SetPos: PrPlaymodSelector = 56;
1905pub const PrPlaymodSelector_playmod_GetPos: PrPlaymodSelector = 57;
1906pub const PrPlaymodSelector_playmod_Step: PrPlaymodSelector = 59;
1907pub const PrPlaymodSelector_playmod_Preroll: PrPlaymodSelector = 60;
1908pub const PrPlaymodSelector_playmod_AdornSafeAreas: PrPlaymodSelector = 61;
1909pub const PrPlaymodSelector_playmod_Activate: PrPlaymodSelector = 62;
1910pub const PrPlaymodSelector_playmod_EnterScrub: PrPlaymodSelector = 63;
1911pub const PrPlaymodSelector_playmod_LeaveScrub: PrPlaymodSelector = 64;
1912pub const PrPlaymodSelector_playmod_SetView: PrPlaymodSelector = 65;
1913pub const PrPlaymodSelector_playmod_SetDisplayMode: PrPlaymodSelector = 66;
1914pub const PrPlaymodSelector_playmod_PutFrameRequest: PrPlaymodSelector = 67;
1915pub const PrPlaymodSelector_playmod_SetVideoDisplayType: PrPlaymodSelector = 69;
1916pub const PrPlaymodSelector_playmod_DisplayMoving: PrPlaymodSelector = 70;
1917pub const PrPlaymodSelector_playmod_DisplayChanged: PrPlaymodSelector = 71;
1918pub const PrPlaymodSelector_playmod_GetAudioInfo: PrPlaymodSelector = 74;
1919pub const PrPlaymodSelector_playmod_GetAudioChannelInfo: PrPlaymodSelector = 75;
1920pub const PrPlaymodSelector_playmod_PushPlayerSettings: PrPlaymodSelector = 76;
1921pub const PrPlaymodSelector_playmod_EnableDynamicPlayback: PrPlaymodSelector = 77;
1922pub const PrPlaymodSelector_playmod_AllowSetPositionDuringPlayback: PrPlaymodSelector = 78;
1923pub const PrPlaymodSelector_playmod_VideoSequenceHasChanged: PrPlaymodSelector = 79;
1924pub const PrPlaymodSelector_playmod_GetRTStatusForTime: PrPlaymodSelector = 80;
1925pub const PrPlaymodSelector_playmod_SetUseFractionalResolution: PrPlaymodSelector = 81;
1926pub const PrPlaymodSelector_playmod_SetFractionalResolution: PrPlaymodSelector = 82;
1927pub const PrPlaymodSelector_playmod_PutTemporaryTimeline: PrPlaymodSelector = 83;
1928pub const PrPlaymodSelector_playmod_SetDisplayStateProperties: PrPlaymodSelector = 84;
1929pub const PrPlaymodSelector_playmod_AudioOutputMappingUpdate: PrPlaymodSelector = 85;
1930pub const PrPlaymodSelector_playmod_SetDest: PrPlaymodSelector = 86;
1931pub const PrPlaymodSelector_playmod_SetBackgroundColor: PrPlaymodSelector = 87;
1932pub const PrPlaymodSelector_playmod_GetVRSupported: PrPlaymodSelector = 88;
1933pub const PrPlaymodSelector_playmod_SetVRConfiguration: PrPlaymodSelector = 89;
1934pub const PrPlaymodSelector_playmod_GetVRConfiguration: PrPlaymodSelector = 90;
1935pub const PrPlaymodSelector_playmod_SetVREnabled: PrPlaymodSelector = 91;
1936pub const PrPlaymodSelector_playmod_GetVREnabled: PrPlaymodSelector = 92;
1937pub const PrPlaymodSelector_playmod_SetVRView: PrPlaymodSelector = 93;
1938pub const PrPlaymodSelector_playmod_GetVRView: PrPlaymodSelector = 94;
1939pub const PrPlaymodSelector_playmod_CalculateVRDisplayDimensions: PrPlaymodSelector = 95;
1940pub const PrPlaymodSelector_playmod_SetDisplayStateProperties2: PrPlaymodSelector = 96;
1941pub const PrPlaymodSelector_playmod_SelectorsForceSize: PrPlaymodSelector = 4294967295;
1942#[doc = "\tSelectors"]
1943pub type PrPlaymodSelector = ::std::os::raw::c_uint;
1944#[doc = "\tInformation returned from a plugin"]
1945#[repr(C, packed)]
1946#[derive(Debug, Copy, Clone)]
1947pub struct PrGPUFilterInfo {
1948    pub outInterfaceVersion: csSDK_uint32,
1949    pub outMatchName: PrSDKString,
1950}
1951#[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."]
1952#[repr(C, packed)]
1953#[derive(Debug, Copy, Clone)]
1954pub struct PrGPUFilterInstance {
1955    pub piSuites: piSuitesPtr,
1956    pub inDeviceIndex: csSDK_uint32,
1957    pub inTimelineID: PrTimelineID,
1958    pub inNodeID: csSDK_int32,
1959    pub ioPrivatePluginData: *mut ::std::os::raw::c_void,
1960    pub outIsRealtime: prBool,
1961}
1962#[doc = "\tInformation about a frame render"]
1963#[repr(C, packed)]
1964#[derive(Debug, Copy, Clone)]
1965pub struct PrGPUFilterRenderParams {
1966    pub inClipTime: PrTime,
1967    pub inSequenceTime: PrTime,
1968    pub inQuality: PrRenderQuality,
1969    pub inDownsampleFactorX: f32,
1970    pub inDownsampleFactorY: f32,
1971    pub inRenderWidth: csSDK_uint32,
1972    pub inRenderHeight: csSDK_uint32,
1973    pub inRenderPARNum: csSDK_uint32,
1974    pub inRenderPARDen: csSDK_uint32,
1975    pub inRenderFieldType: prFieldType,
1976    pub inRenderTicksPerFrame: PrTime,
1977    pub inRenderField: pmFieldDisplay,
1978}
1979pub const PrGPUFilterFrameDependencyType_PrGPUDependency_InputFrame:
1980    PrGPUFilterFrameDependencyType = 1;
1981pub const PrGPUFilterFrameDependencyType_PrGPUDependency_Precompute:
1982    PrGPUFilterFrameDependencyType = 2;
1983pub const PrGPUFilterFrameDependencyType_PrGPUDependency_FieldSeparation:
1984    PrGPUFilterFrameDependencyType = 4;
1985pub const PrGPUFilterFrameDependencyType_PrGPUDependency_TransitionInputFrame:
1986    PrGPUFilterFrameDependencyType = 8;
1987#[doc = "\tSpecify dependencies to satisfy a render"]
1988pub type PrGPUFilterFrameDependencyType = ::std::os::raw::c_uint;
1989#[repr(C, packed)]
1990#[derive(Debug, Copy, Clone)]
1991pub struct PrGPUFilterFrameDependency {
1992    pub outDependencyType: PrGPUFilterFrameDependencyType,
1993    pub outTrackID: csSDK_int32,
1994    pub outSequenceTime: PrTime,
1995    pub outPrecomputePixelFormat: PrPixelFormat,
1996    pub outPrecomputeFrameWidth: csSDK_uint32,
1997    pub outPrecomputeFrameHeight: csSDK_uint32,
1998    pub outPrecomputeFramePARNumerator: csSDK_uint32,
1999    pub outPrecomputeFramePARDenominator: csSDK_uint32,
2000    pub outPrecomputeFrameFieldType: prFieldType,
2001    pub outPrecomputeCustomDataSize: csSDK_size_t,
2002    pub outNeedsFieldSeparation: prBool,
2003    pub outReadIncomingTransition: prBool,
2004}
2005#[doc = "\tGPU Filter callbacks."]
2006#[repr(C, packed)]
2007#[derive(Debug, Copy, Clone)]
2008pub struct PrGPUFilter {
2009    #[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."]
2010    pub CreateInstance: ::std::option::Option<
2011        unsafe extern "C" fn(ioInstanceData: *mut PrGPUFilterInstance) -> prSuiteError,
2012    >,
2013    pub DisposeInstance: ::std::option::Option<
2014        unsafe extern "C" fn(ioInstanceData: *mut PrGPUFilterInstance) -> prSuiteError,
2015    >,
2016    #[doc = "\tReturn dependency information about a render, or nothing if\n\tonly the current frame is required."]
2017    pub GetFrameDependencies: ::std::option::Option<
2018        unsafe extern "C" fn(
2019            inInstanceData: *mut PrGPUFilterInstance,
2020            inRenderParams: *const PrGPUFilterRenderParams,
2021            ioQueryIndex: *mut csSDK_int32,
2022            outFrameDependencies: *mut PrGPUFilterFrameDependency,
2023        ) -> prSuiteError,
2024    >,
2025    #[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."]
2026    pub Precompute: ::std::option::Option<
2027        unsafe extern "C" fn(
2028            inInstanceData: *mut PrGPUFilterInstance,
2029            inRenderParams: *const PrGPUFilterRenderParams,
2030            inIndex: csSDK_int32,
2031            inFrame: PPixHand,
2032        ) -> prSuiteError,
2033    >,
2034    #[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."]
2035    pub Render: ::std::option::Option<
2036        unsafe extern "C" fn(
2037            inInstanceData: *mut PrGPUFilterInstance,
2038            inRenderParams: *const PrGPUFilterRenderParams,
2039            inFrames: *const PPixHand,
2040            inFrameCount: csSDK_size_t,
2041            outFrame: *mut PPixHand,
2042        ) -> prSuiteError,
2043    >,
2044}
2045pub type PrGPUFilterEntry = ::std::option::Option<
2046    unsafe extern "C" fn(
2047        inHostInterfaceVersion: csSDK_uint32,
2048        ioIndex: *mut csSDK_int32,
2049        inStartup: prBool,
2050        piSuites: piSuitesPtr,
2051        outFilter: *mut PrGPUFilter,
2052        outFilterInfo: *mut PrGPUFilterInfo,
2053    ) -> prSuiteError,
2054>;
2055#[doc = "\tAccess to common GPU image processing algorithms"]
2056#[repr(C, packed)]
2057#[derive(Copy, Clone)]
2058pub struct PrSDKGPUImageProcessingSuite {
2059    #[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"]
2060    pub PixelFormatConvert: ::std::option::Option<
2061        unsafe extern "C" fn(
2062            inDeviceIndex: csSDK_uint32,
2063            inSrc: *const ::std::os::raw::c_void,
2064            inSrcRowBytes: csSDK_int32,
2065            inSrcPixelFormat: PrPixelFormat,
2066            inDest: *mut ::std::os::raw::c_void,
2067            inDestRowBytes: csSDK_int32,
2068            inDestPixelFormat: PrPixelFormat,
2069            inWidth: csSDK_uint32,
2070            inHeight: csSDK_uint32,
2071            inQuality: PrRenderQuality,
2072        ) -> prSuiteError,
2073    >,
2074    #[doc = "\tScale a frame on the GPU\n\t\tinPixelFormat must be PrPixelFormat_GPU_BGRA_4444_16f or PrPixelFormat_GPU_BGRA_4444_32f"]
2075    pub Scale: ::std::option::Option<
2076        unsafe extern "C" fn(
2077            inDeviceIndex: csSDK_uint32,
2078            inSrc: *const ::std::os::raw::c_void,
2079            inSrcRowBytes: csSDK_int32,
2080            inSrcWidth: csSDK_uint32,
2081            inSrcHeight: csSDK_uint32,
2082            inDest: *mut ::std::os::raw::c_void,
2083            inDestRowBytes: csSDK_int32,
2084            inDestWidth: csSDK_uint32,
2085            inDestHeight: csSDK_uint32,
2086            inPixelFormat: PrPixelFormat,
2087            inScaleX: f32,
2088            inScaleY: f32,
2089            inQuality: PrRenderQuality,
2090        ) -> prSuiteError,
2091    >,
2092    #[doc = "\tGaussian blur on the GPU\n\t\tinPixelFormat must be PrPixelFormat_GPU_BGRA_4444_16f or PrPixelFormat_GPU_BGRA_4444_32f"]
2093    pub GaussianBlur: ::std::option::Option<
2094        unsafe extern "C" fn(
2095            inDeviceIndex: csSDK_uint32,
2096            inSrc: *const ::std::os::raw::c_void,
2097            inSrcRowBytes: csSDK_int32,
2098            inSrcWidth: csSDK_uint32,
2099            inSrcHeight: csSDK_uint32,
2100            inDest: *mut ::std::os::raw::c_void,
2101            inDestRowBytes: csSDK_int32,
2102            inDestWidth: csSDK_uint32,
2103            inDestHeight: csSDK_uint32,
2104            inPixelFormat: PrPixelFormat,
2105            inSigmaX: f32,
2106            inSigmaY: f32,
2107            inRepeatEdgePixels: prBool,
2108            inBlurHorizontally: prBool,
2109            inBlurVertically: prBool,
2110            inQuality: PrRenderQuality,
2111        ) -> prSuiteError,
2112    >,
2113}
2114#[repr(C, packed)]
2115#[derive(Debug, Copy, Clone)]
2116pub struct PrSDKMemoryManagerSuiteV1 {
2117    #[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."]
2118    pub ReserveMemory: ::std::option::Option<
2119        unsafe extern "C" fn(inPluginID: csSDK_uint32, inSize: csSDK_uint32) -> prSuiteError,
2120    >,
2121}
2122#[repr(C, packed)]
2123#[derive(Debug, Copy, Clone)]
2124pub struct PrSDKMemoryManagerSuiteV2 {
2125    #[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."]
2126    pub ReserveMemory: ::std::option::Option<
2127        unsafe extern "C" fn(inPluginID: csSDK_uint32, inSize: csSDK_uint32) -> prSuiteError,
2128    >,
2129    pub NewPtrClear:
2130        ::std::option::Option<unsafe extern "C" fn(byteCount: csSDK_uint32) -> PrMemoryPtr>,
2131    pub NewPtr: ::std::option::Option<unsafe extern "C" fn(byteCount: csSDK_uint32) -> PrMemoryPtr>,
2132    pub GetPtrSize: ::std::option::Option<unsafe extern "C" fn(p: PrMemoryPtr) -> csSDK_uint32>,
2133    pub SetPtrSize:
2134        ::std::option::Option<unsafe extern "C" fn(p: *mut PrMemoryPtr, newSize: csSDK_uint32)>,
2135    pub NewHandle:
2136        ::std::option::Option<unsafe extern "C" fn(byteCount: csSDK_uint32) -> PrMemoryHandle>,
2137    pub NewHandleClear:
2138        ::std::option::Option<unsafe extern "C" fn(byteCount: csSDK_uint32) -> PrMemoryHandle>,
2139    pub PrDisposePtr: ::std::option::Option<unsafe extern "C" fn(p: PrMemoryPtr)>,
2140    pub DisposeHandle: ::std::option::Option<unsafe extern "C" fn(h: PrMemoryHandle)>,
2141    pub SetHandleSize: ::std::option::Option<
2142        unsafe extern "C" fn(h: PrMemoryHandle, newSize: csSDK_uint32) -> ::std::os::raw::c_short,
2143    >,
2144    pub GetHandleSize:
2145        ::std::option::Option<unsafe extern "C" fn(h: PrMemoryHandle) -> csSDK_uint32>,
2146    pub HUnlock: ::std::option::Option<unsafe extern "C" fn(h: PrMemoryHandle)>,
2147    pub HLock: ::std::option::Option<unsafe extern "C" fn(h: PrMemoryHandle)>,
2148}
2149pub type PrSDKMemoryManagerSuite_PurgeMemoryFunction = ::std::option::Option<
2150    unsafe extern "C" fn(inPurgeMemoryData: *mut ::std::os::raw::c_void, inMemoryID: csSDK_uint32),
2151>;
2152#[repr(C, packed)]
2153#[derive(Debug, Copy, Clone)]
2154pub struct PrSDKMemoryManagerSuite {
2155    #[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."]
2156    pub ReserveMemory: ::std::option::Option<
2157        unsafe extern "C" fn(inPluginID: csSDK_uint32, inSize: csSDK_uint32) -> prSuiteError,
2158    >,
2159    #[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."]
2160    pub GetMemoryManagerSize: ::std::option::Option<
2161        unsafe extern "C" fn(outMemoryManagerSize: *mut csSDK_uint64) -> prSuiteError,
2162    >,
2163    #[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."]
2164    pub AddBlock: ::std::option::Option<
2165        unsafe extern "C" fn(
2166            inSize: csSDK_size_t,
2167            inPurgeFunction: PrSDKMemoryManagerSuite_PurgeMemoryFunction,
2168            inPurgeMemoryData: *mut ::std::os::raw::c_void,
2169            outID: *mut csSDK_uint32,
2170        ) -> prSuiteError,
2171    >,
2172    #[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."]
2173    pub TouchBlock: ::std::option::Option<unsafe extern "C" fn(inID: csSDK_uint32) -> prSuiteError>,
2174    #[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."]
2175    pub RemoveBlock:
2176        ::std::option::Option<unsafe extern "C" fn(inID: csSDK_uint32) -> prSuiteError>,
2177    pub NewPtrClear:
2178        ::std::option::Option<unsafe extern "C" fn(byteCount: csSDK_uint32) -> PrMemoryPtr>,
2179    pub NewPtr: ::std::option::Option<unsafe extern "C" fn(byteCount: csSDK_uint32) -> PrMemoryPtr>,
2180    pub GetPtrSize: ::std::option::Option<unsafe extern "C" fn(p: PrMemoryPtr) -> csSDK_uint32>,
2181    pub SetPtrSize:
2182        ::std::option::Option<unsafe extern "C" fn(p: *mut PrMemoryPtr, newSize: csSDK_uint32)>,
2183    pub NewHandle:
2184        ::std::option::Option<unsafe extern "C" fn(byteCount: csSDK_uint32) -> PrMemoryHandle>,
2185    pub NewHandleClear:
2186        ::std::option::Option<unsafe extern "C" fn(byteCount: csSDK_uint32) -> PrMemoryHandle>,
2187    pub PrDisposePtr: ::std::option::Option<unsafe extern "C" fn(p: PrMemoryPtr)>,
2188    pub DisposeHandle: ::std::option::Option<unsafe extern "C" fn(h: PrMemoryHandle)>,
2189    pub SetHandleSize: ::std::option::Option<
2190        unsafe extern "C" fn(h: PrMemoryHandle, newSize: csSDK_uint32) -> ::std::os::raw::c_short,
2191    >,
2192    pub GetHandleSize:
2193        ::std::option::Option<unsafe extern "C" fn(h: PrMemoryHandle) -> csSDK_uint32>,
2194    pub AdjustReservedMemorySize: ::std::option::Option<
2195        unsafe extern "C" fn(inPluginID: csSDK_uint32, inSize: csSDK_int64) -> prSuiteError,
2196    >,
2197}
2198#[repr(C, packed)]
2199#[derive(Debug, Copy, Clone)]
2200pub struct PrSDKPixelFormatSuite {
2201    #[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 :"]
2202    pub GetBlackForPixelFormat: ::std::option::Option<
2203        unsafe extern "C" fn(
2204            pixelFormat: PrPixelFormat,
2205            pixelData: *mut ::std::os::raw::c_void,
2206        ) -> prSuiteError,
2207    >,
2208    #[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 :"]
2209    pub GetWhiteForPixelFormat: ::std::option::Option<
2210        unsafe extern "C" fn(
2211            pixelFormat: PrPixelFormat,
2212            pixelData: *mut ::std::os::raw::c_void,
2213        ) -> prSuiteError,
2214    >,
2215    #[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 :"]
2216    pub ConvertColorToPixelFormattedData: ::std::option::Option<
2217        unsafe extern "C" fn(
2218            pixelFormat: PrPixelFormat,
2219            alpha: f32,
2220            red: f32,
2221            green: f32,
2222            blue: f32,
2223            pixelData: *mut ::std::os::raw::c_void,
2224        ) -> prSuiteError,
2225    >,
2226}
2227pub const PrPPixBufferAccess_PrPPixBufferAccess_ReadOnly: PrPPixBufferAccess = 0;
2228pub const PrPPixBufferAccess_PrPPixBufferAccess_WriteOnly: PrPPixBufferAccess = 1;
2229pub const PrPPixBufferAccess_PrPPixBufferAccess_ReadWrite: PrPPixBufferAccess = 2;
2230pub const PrPPixBufferAccess_PrPPixBufferAccess_ForceEnumSize: PrPPixBufferAccess = 4294967295;
2231pub type PrPPixBufferAccess = ::std::os::raw::c_uint;
2232#[repr(C, packed)]
2233#[derive(Debug, Copy, Clone)]
2234pub struct PrSDKPPixSuite {
2235    #[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."]
2236    pub Dispose: ::std::option::Option<unsafe extern "C" fn(inPPixHand: PPixHand) -> prSuiteError>,
2237    #[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."]
2238    pub GetPixels: ::std::option::Option<
2239        unsafe extern "C" fn(
2240            inPPixHand: PPixHand,
2241            inRequestedAccess: PrPPixBufferAccess,
2242            outPixelAddress: *mut *mut ::std::os::raw::c_char,
2243        ) -> prSuiteError,
2244    >,
2245    #[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."]
2246    pub GetBounds: ::std::option::Option<
2247        unsafe extern "C" fn(inPPixHand: PPixHand, inoutBoundingRect: *mut prRect) -> prSuiteError,
2248    >,
2249    #[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."]
2250    pub GetRowBytes: ::std::option::Option<
2251        unsafe extern "C" fn(inPPixHand: PPixHand, outRowBytes: *mut csSDK_int32) -> prSuiteError,
2252    >,
2253    #[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."]
2254    pub GetPixelAspectRatio: ::std::option::Option<
2255        unsafe extern "C" fn(
2256            inPPixHand: PPixHand,
2257            outPixelAspectRatioNumerator: *mut csSDK_uint32,
2258            outPixelAspectRatioDenominator: *mut csSDK_uint32,
2259        ) -> prSuiteError,
2260    >,
2261    #[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."]
2262    pub GetPixelFormat: ::std::option::Option<
2263        unsafe extern "C" fn(
2264            inPPixHand: PPixHand,
2265            outPixelFormat: *mut PrPixelFormat,
2266        ) -> prSuiteError,
2267    >,
2268    #[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."]
2269    pub GetUniqueKey: ::std::option::Option<
2270        unsafe extern "C" fn(
2271            inPPixHand: PPixHand,
2272            inoutKeyBuffer: *mut ::std::os::raw::c_uchar,
2273            inKeyBufferSize: usize,
2274        ) -> prSuiteError,
2275    >,
2276    #[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."]
2277    pub GetUniqueKeySize:
2278        ::std::option::Option<unsafe extern "C" fn(outKeyBufferSize: *mut usize) -> prSuiteError>,
2279    #[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."]
2280    pub GetRenderTime: ::std::option::Option<
2281        unsafe extern "C" fn(
2282            inPPixHand: PPixHand,
2283            outRenderMilliseconds: *mut csSDK_int32,
2284        ) -> prSuiteError,
2285    >,
2286}
2287#[repr(C, packed)]
2288#[derive(Debug, Copy, Clone)]
2289pub struct PrSDKPPix2Suite {
2290    #[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."]
2291    pub GetSize: ::std::option::Option<
2292        unsafe extern "C" fn(inPPixHand: PPixHand, outSize: *mut usize) -> prSuiteError,
2293    >,
2294    #[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."]
2295    pub GetYUV420PlanarBuffers: ::std::option::Option<
2296        unsafe extern "C" fn(
2297            inPPixHand: PPixHand,
2298            inRequestedAccess: PrPPixBufferAccess,
2299            out_Y_PixelAddress: *mut *mut ::std::os::raw::c_char,
2300            out_Y_RowBytes: *mut csSDK_uint32,
2301            out_U_PixelAddress: *mut *mut ::std::os::raw::c_char,
2302            out_U_RowBytes: *mut csSDK_uint32,
2303            out_V_PixelAddress: *mut *mut ::std::os::raw::c_char,
2304            out_V_RowBytes: *mut csSDK_uint32,
2305        ) -> prSuiteError,
2306    >,
2307    pub GetOrigin: ::std::option::Option<
2308        unsafe extern "C" fn(
2309            inPPixHand: PPixHand,
2310            outOriginX: *mut csSDK_int32,
2311            outOriginY: *mut csSDK_int32,
2312        ) -> prSuiteError,
2313    >,
2314    pub GetFieldOrder: ::std::option::Option<
2315        unsafe extern "C" fn(inPPixHand: PPixHand, outFieldType: *mut prFieldType) -> prSuiteError,
2316    >,
2317}
2318#[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."]
2319#[repr(C, packed)]
2320#[derive(Debug, Copy, Clone)]
2321pub struct imFrameFormat {
2322    pub inFrameWidth: csSDK_int32,
2323    pub inFrameHeight: csSDK_int32,
2324    pub inPixelFormat: PrPixelFormat,
2325}
2326#[repr(C, packed)]
2327#[derive(Debug, Copy, Clone)]
2328pub struct PrSDKPPixCacheSuite {
2329    #[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"]
2330    pub AddFrameToCache: ::std::option::Option<
2331        unsafe extern "C" fn(
2332            inImporterID: csSDK_uint32,
2333            inStreamIndex: csSDK_int32,
2334            inPPixHand: PPixHand,
2335            inFrameNumber: csSDK_int32,
2336            inPreferences: *mut ::std::os::raw::c_void,
2337            inPreferencesLength: csSDK_int32,
2338        ) -> prSuiteError,
2339    >,
2340    #[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"]
2341    pub GetFrameFromCache: ::std::option::Option<
2342        unsafe extern "C" fn(
2343            inImporterID: csSDK_uint32,
2344            inStreamIndex: csSDK_int32,
2345            inFrameNumber: csSDK_int32,
2346            inNumFormats: csSDK_int32,
2347            inFormats: *mut imFrameFormat,
2348            outPPixHand: *mut PPixHand,
2349            inPreferences: *mut ::std::os::raw::c_void,
2350            inPreferencesLength: csSDK_int32,
2351        ) -> prSuiteError,
2352    >,
2353    #[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."]
2354    pub AddRawPPixToCache: ::std::option::Option<
2355        unsafe extern "C" fn(
2356            inImporterID: csSDK_uint32,
2357            inPPixHand: PPixHand,
2358            inKey: csSDK_int32,
2359        ) -> prSuiteError,
2360    >,
2361    #[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."]
2362    pub GetRawPPixFromCache: ::std::option::Option<
2363        unsafe extern "C" fn(
2364            inImporterID: csSDK_uint32,
2365            inKey: csSDK_int32,
2366            outPPixHand: *mut PPixHand,
2367        ) -> prSuiteError,
2368    >,
2369    #[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."]
2370    pub AddNamedPPixToCache: ::std::option::Option<
2371        unsafe extern "C" fn(inPPixIdentifier: *const prPluginID, inPPix: PPixHand) -> prSuiteError,
2372    >,
2373    #[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."]
2374    pub GetNamedPPixFromCache: ::std::option::Option<
2375        unsafe extern "C" fn(
2376            inPPixIdentifier: *const prPluginID,
2377            outPPixHand: *mut PPixHand,
2378        ) -> prSuiteError,
2379    >,
2380    #[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."]
2381    pub RegisterDependencyOnNamedPPix: ::std::option::Option<
2382        unsafe extern "C" fn(inPPixIdentifier: *const prPluginID) -> prSuiteError,
2383    >,
2384    #[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."]
2385    pub UnregisterDependencyOnNamedPPix: ::std::option::Option<
2386        unsafe extern "C" fn(inPPixIdentifier: *const prPluginID) -> prSuiteError,
2387    >,
2388    #[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."]
2389    pub ExpireNamedPPixFromCache: ::std::option::Option<
2390        unsafe extern "C" fn(inPPixIdentifier: *const prPluginID) -> prSuiteError,
2391    >,
2392    #[doc = "  This function attempts to flush all ppixes from the cache."]
2393    pub ExpireAllPPixesFromCache: ::std::option::Option<unsafe extern "C" fn() -> prSuiteError>,
2394    #[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."]
2395    pub AddFrameToCacheWithColorProfile: ::std::option::Option<
2396        unsafe extern "C" fn(
2397            inImporterID: csSDK_uint32,
2398            inStreamIndex: csSDK_int32,
2399            inPPixHand: PPixHand,
2400            inFrameNumber: csSDK_int32,
2401            inPreferences: *mut ::std::os::raw::c_void,
2402            inPreferencesLength: csSDK_int32,
2403            inColorProfileName: *mut PrSDKString,
2404            inColorProfileData: *mut ::std::os::raw::c_void,
2405            inColorProfileDataLength: csSDK_int32,
2406        ) -> prSuiteError,
2407    >,
2408    #[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."]
2409    pub GetFrameFromCacheWithColorProfile: ::std::option::Option<
2410        unsafe extern "C" fn(
2411            inImporterID: csSDK_uint32,
2412            inStreamIndex: csSDK_int32,
2413            inFrameNumber: csSDK_int32,
2414            inNumFormats: csSDK_int32,
2415            inFormats: *mut imFrameFormat,
2416            outPPixHand: *mut PPixHand,
2417            inPreferences: *mut ::std::os::raw::c_void,
2418            inPreferencesLength: csSDK_int32,
2419            inColorProfileName: *mut PrSDKString,
2420            inColorProfileData: *mut ::std::os::raw::c_void,
2421            inColorProfileDataSize: csSDK_int32,
2422        ) -> prSuiteError,
2423    >,
2424    #[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."]
2425    pub AddFrameToCacheWithColorProfile2: ::std::option::Option<
2426        unsafe extern "C" fn(
2427            inImporterID: csSDK_uint32,
2428            inStreamIndex: csSDK_int32,
2429            inPPixHand: PPixHand,
2430            inFrameNumber: csSDK_int32,
2431            inQuality: PrRenderQuality,
2432            inPreferences: *mut ::std::os::raw::c_void,
2433            inPreferencesLength: csSDK_int32,
2434            inColorProfileName: *mut PrSDKString,
2435            inColorProfileData: *mut ::std::os::raw::c_void,
2436            inColorProfileDataLength: csSDK_int32,
2437        ) -> prSuiteError,
2438    >,
2439    #[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."]
2440    pub GetFrameFromCacheWithColorProfile2: ::std::option::Option<
2441        unsafe extern "C" fn(
2442            inImporterID: csSDK_uint32,
2443            inStreamIndex: csSDK_int32,
2444            inFrameNumber: csSDK_int32,
2445            inNumFormats: csSDK_int32,
2446            inFormats: *mut imFrameFormat,
2447            outPPixHand: *mut PPixHand,
2448            inQuality: PrRenderQuality,
2449            inPreferences: *mut ::std::os::raw::c_void,
2450            inPreferencesLength: csSDK_int32,
2451            inColorProfileName: *mut PrSDKString,
2452            inColorProfileData: *mut ::std::os::raw::c_void,
2453            inColorProfileDataSize: csSDK_int32,
2454        ) -> prSuiteError,
2455    >,
2456    #[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"]
2457    pub AddFrameToCacheWithColorSpace: ::std::option::Option<
2458        unsafe extern "C" fn(
2459            inImporterID: csSDK_uint32,
2460            inStreamIndex: csSDK_int32,
2461            inPPixHand: PPixHand,
2462            inFrameNumber: csSDK_int32,
2463            inQuality: PrRenderQuality,
2464            inPreferences: *mut ::std::os::raw::c_void,
2465            inPreferencesLength: csSDK_int32,
2466            inPrColorSpaceID: *mut PrSDKColorSpaceID,
2467        ) -> prSuiteError,
2468    >,
2469    #[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"]
2470    pub GetFrameFromCacheWithColorSpace: ::std::option::Option<
2471        unsafe extern "C" fn(
2472            inImporterID: csSDK_uint32,
2473            inStreamIndex: csSDK_int32,
2474            inFrameNumber: csSDK_int32,
2475            inNumFormats: csSDK_int32,
2476            inFormats: *mut imFrameFormat,
2477            outPPixHand: *mut PPixHand,
2478            inQuality: PrRenderQuality,
2479            inPreferences: *mut ::std::os::raw::c_void,
2480            inPreferencesLength: csSDK_int32,
2481            inPrColorSpaceID: *mut PrSDKColorSpaceID,
2482        ) -> prSuiteError,
2483    >,
2484    #[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"]
2485    pub RegisterDependencyOnFrame: ::std::option::Option<
2486        unsafe extern "C" fn(
2487            inImporterID: csSDK_uint32,
2488            inStreamIndex: csSDK_int32,
2489            inFrameNumber: csSDK_int32,
2490            inNumFormats: csSDK_int32,
2491            inFormats: *mut imFrameFormat,
2492            outPPixIdentifier: *mut prPluginID,
2493            inPreferences: *mut ::std::os::raw::c_void,
2494            inPreferencesLength: csSDK_int32,
2495        ) -> prSuiteError,
2496    >,
2497    #[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."]
2498    pub RegisterDependencyOnFrameWithColorProfile: ::std::option::Option<
2499        unsafe extern "C" fn(
2500            inImporterID: csSDK_uint32,
2501            inStreamIndex: csSDK_int32,
2502            inFrameNumber: csSDK_int32,
2503            inNumFormats: csSDK_int32,
2504            inFormats: *mut imFrameFormat,
2505            outPPixIdentifier: *mut prPluginID,
2506            inPreferences: *mut ::std::os::raw::c_void,
2507            inPreferencesLength: csSDK_int32,
2508            inColorProfileName: *mut PrSDKString,
2509            inColorProfileData: *mut ::std::os::raw::c_void,
2510            inColorProfileDataSize: csSDK_int32,
2511        ) -> prSuiteError,
2512    >,
2513    #[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."]
2514    pub RegisterDependencyOnFrameWithColorProfile2: ::std::option::Option<
2515        unsafe extern "C" fn(
2516            inImporterID: csSDK_uint32,
2517            inStreamIndex: csSDK_int32,
2518            inFrameNumber: csSDK_int32,
2519            inNumFormats: csSDK_int32,
2520            inFormats: *mut imFrameFormat,
2521            inQuality: PrRenderQuality,
2522            outPPixIdentifier: *mut prPluginID,
2523            inPreferences: *mut ::std::os::raw::c_void,
2524            inPreferencesLength: csSDK_int32,
2525            inColorProfileName: *mut PrSDKString,
2526            inColorProfileData: *mut ::std::os::raw::c_void,
2527            inColorProfileDataSize: csSDK_int32,
2528        ) -> prSuiteError,
2529    >,
2530    #[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"]
2531    pub RegisterDependencyOnFrameWithColorSpace: ::std::option::Option<
2532        unsafe extern "C" fn(
2533            inImporterID: csSDK_uint32,
2534            inStreamIndex: csSDK_int32,
2535            inFrameNumber: csSDK_int32,
2536            inNumFormats: csSDK_int32,
2537            inFormats: *mut imFrameFormat,
2538            inQuality: PrRenderQuality,
2539            outPPixIdentifier: *mut prPluginID,
2540            inPreferences: *mut ::std::os::raw::c_void,
2541            inPreferencesLength: csSDK_int32,
2542            inPrColorSpaceID: *mut PrSDKColorSpaceID,
2543        ) -> prSuiteError,
2544    >,
2545}
2546#[repr(C, packed)]
2547#[derive(Debug, Copy, Clone)]
2548pub struct PrSDKPPixCacheSuite1 {
2549    #[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."]
2550    pub AddFrameToCache: ::std::option::Option<
2551        unsafe extern "C" fn(
2552            inImporterID: csSDK_uint32,
2553            inStreamIndex: csSDK_int32,
2554            inPPixHand: PPixHand,
2555            inFrameNumber: csSDK_int32,
2556        ) -> prSuiteError,
2557    >,
2558    #[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."]
2559    pub GetFrameFromCache: ::std::option::Option<
2560        unsafe extern "C" fn(
2561            inImporterID: csSDK_uint32,
2562            inStreamIndex: csSDK_int32,
2563            inFrameNumber: csSDK_int32,
2564            inNumFormats: csSDK_int32,
2565            inFormats: *mut imFrameFormat,
2566            outPPixHand: *mut PPixHand,
2567        ) -> prSuiteError,
2568    >,
2569    #[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."]
2570    pub AddRawPPixToCache: ::std::option::Option<
2571        unsafe extern "C" fn(
2572            inImporterID: csSDK_uint32,
2573            inPPixHand: PPixHand,
2574            inKey: csSDK_int32,
2575        ) -> prSuiteError,
2576    >,
2577    #[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."]
2578    pub GetRawPPixFromCache: ::std::option::Option<
2579        unsafe extern "C" fn(
2580            inImporterID: csSDK_uint32,
2581            inKey: csSDK_int32,
2582            outPPixHand: *mut PPixHand,
2583        ) -> prSuiteError,
2584    >,
2585}
2586#[repr(C, packed)]
2587#[derive(Debug, Copy, Clone)]
2588pub struct PrSDKPPixCreator2Suite {
2589    #[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."]
2590    pub CreatePPix: ::std::option::Option<
2591        unsafe extern "C" fn(
2592            outPPixHand: *mut PPixHand,
2593            inRequestedAccess: PrPPixBufferAccess,
2594            inPixelFormat: PrPixelFormat,
2595            inWidth: ::std::os::raw::c_int,
2596            inHeight: ::std::os::raw::c_int,
2597            inUseFields: bool,
2598            inFieldNumber: ::std::os::raw::c_int,
2599            inPARNumerator: ::std::os::raw::c_int,
2600            inPARDenominator: ::std::os::raw::c_int,
2601        ) -> prSuiteError,
2602    >,
2603    #[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."]
2604    pub CreateRawPPix: ::std::option::Option<
2605        unsafe extern "C" fn(
2606            outPPixHand: *mut PPixHand,
2607            inRequestedAccess: PrPPixBufferAccess,
2608            inSize: ::std::os::raw::c_int,
2609            inAlignment: ::std::os::raw::c_int,
2610        ) -> prSuiteError,
2611    >,
2612    #[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."]
2613    pub CreateCustomPPix: ::std::option::Option<
2614        unsafe extern "C" fn(
2615            outPPixHand: *mut PPixHand,
2616            inRequestedAccess: PrPPixBufferAccess,
2617            inPixelFormat: PrPixelFormat,
2618            inWidth: ::std::os::raw::c_int,
2619            inHeight: ::std::os::raw::c_int,
2620            inPARNumerator: ::std::os::raw::c_int,
2621            inPARDenominator: ::std::os::raw::c_int,
2622            inDataBufferSize: ::std::os::raw::c_int,
2623        ) -> prSuiteError,
2624    >,
2625    #[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."]
2626    pub CreateDiskAlignedPPix: ::std::option::Option<
2627        unsafe extern "C" fn(
2628            outPPixHand: *mut PPixHand,
2629            inPixelFormat: PrPixelFormat,
2630            inWidth: ::std::os::raw::c_int,
2631            inHeight: ::std::os::raw::c_int,
2632            inPARNumerator: ::std::os::raw::c_int,
2633            inPARDenominator: ::std::os::raw::c_int,
2634            inMemoryAlignment: ::std::os::raw::c_int,
2635            inSectorSize: ::std::os::raw::c_int,
2636            inOffsetToPixelDataFromFirstSectorStart: ::std::os::raw::c_int,
2637        ) -> prSuiteError,
2638    >,
2639    #[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"]
2640    pub CreateColorManagedPPix: ::std::option::Option<
2641        unsafe extern "C" fn(
2642            outPPixHand: *mut PPixHand,
2643            inRequestedAccess: PrPPixBufferAccess,
2644            inPixelFormat: PrPixelFormat,
2645            inWidth: ::std::os::raw::c_int,
2646            inHeight: ::std::os::raw::c_int,
2647            inUseFields: bool,
2648            inFieldNumber: ::std::os::raw::c_int,
2649            inPARNumerator: ::std::os::raw::c_int,
2650            inPARDenominator: ::std::os::raw::c_int,
2651            inColorSpaceID: PrSDKColorSpaceID,
2652        ) -> prSuiteError,
2653    >,
2654    #[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"]
2655    pub CreateColorManagedCustomPPix: ::std::option::Option<
2656        unsafe extern "C" fn(
2657            outPPixHand: *mut PPixHand,
2658            inRequestedAccess: PrPPixBufferAccess,
2659            inPixelFormat: PrPixelFormat,
2660            inWidth: ::std::os::raw::c_int,
2661            inHeight: ::std::os::raw::c_int,
2662            inPARNumerator: ::std::os::raw::c_int,
2663            inPARDenominator: ::std::os::raw::c_int,
2664            inDataBufferSize: ::std::os::raw::c_int,
2665            inColorSpaceID: PrSDKColorSpaceID,
2666        ) -> prSuiteError,
2667    >,
2668    #[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"]
2669    pub CreateColorManagedDiskAlignedPPix: ::std::option::Option<
2670        unsafe extern "C" fn(
2671            outPPixHand: *mut PPixHand,
2672            inPixelFormat: PrPixelFormat,
2673            inWidth: ::std::os::raw::c_int,
2674            inHeight: ::std::os::raw::c_int,
2675            inPARNumerator: ::std::os::raw::c_int,
2676            inPARDenominator: ::std::os::raw::c_int,
2677            inMemoryAlignment: ::std::os::raw::c_int,
2678            inSectorSize: ::std::os::raw::c_int,
2679            inOffsetToPixelDataFromFirstSectorStart: ::std::os::raw::c_int,
2680            inColorSpaceID: PrSDKColorSpaceID,
2681        ) -> prSuiteError,
2682    >,
2683}
2684#[repr(C, packed)]
2685#[derive(Debug, Copy, Clone)]
2686pub struct PrSDKPPixCreatorSuite {
2687    #[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."]
2688    pub CreatePPix: ::std::option::Option<
2689        unsafe extern "C" fn(
2690            outPPixHand: *mut PPixHand,
2691            inRequestedAccess: PrPPixBufferAccess,
2692            inPixelFormat: PrPixelFormat,
2693            inBoundingRect: *const prRect,
2694        ) -> prSuiteError,
2695    >,
2696    #[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)."]
2697    pub ClonePPix: ::std::option::Option<
2698        unsafe extern "C" fn(
2699            inPPixToClone: PPixHand,
2700            outPPixHand: *mut PPixHand,
2701            inRequestedAccess: PrPPixBufferAccess,
2702        ) -> prSuiteError,
2703    >,
2704}
2705#[repr(C, packed)]
2706#[derive(Debug, Copy, Clone)]
2707pub struct PrSceneTimebaseRec {
2708    pub scale: csSDK_uint32,
2709    pub sampleSize: csSDK_int32,
2710}
2711#[repr(C, packed)]
2712#[derive(Debug, Copy, Clone)]
2713pub struct PrSceneRecord {
2714    pub startTime: csSDK_int32,
2715    pub duration: csSDK_int32,
2716}
2717#[repr(C)]
2718#[derive(Debug, Copy, Clone)]
2719pub struct PrSceneMetaDataRec {
2720    pub timeBase: PrSceneTimebaseRec,
2721    pub scenes: [PrSceneRecord; 1usize],
2722}
2723#[repr(C, packed)]
2724#[derive(Debug, Copy, Clone)]
2725pub struct PrSDKSequenceInfoSuite {
2726    #[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."]
2727    pub GetFrameRect: ::std::option::Option<
2728        unsafe extern "C" fn(inTimelineID: PrTimelineID, outFrameRect: *mut prRect) -> prSuiteError,
2729    >,
2730    #[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."]
2731    pub GetPixelAspectRatio: ::std::option::Option<
2732        unsafe extern "C" fn(
2733            inTimelineID: PrTimelineID,
2734            outNumerator: *mut csSDK_uint32,
2735            outDenominator: *mut csSDK_uint32,
2736        ) -> prSuiteError,
2737    >,
2738    #[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."]
2739    pub GetFrameRate: ::std::option::Option<
2740        unsafe extern "C" fn(
2741            inTimelineID: PrTimelineID,
2742            outTicksPerFrame: *mut PrTime,
2743        ) -> prSuiteError,
2744    >,
2745    #[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."]
2746    pub GetFieldType: ::std::option::Option<
2747        unsafe extern "C" fn(
2748            inTimelineID: PrTimelineID,
2749            outFieldType: *mut prFieldType,
2750        ) -> prSuiteError,
2751    >,
2752    #[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."]
2753    pub GetZeroPoint: ::std::option::Option<
2754        unsafe extern "C" fn(inTimelineID: PrTimelineID, outTime: *mut PrTime) -> prSuiteError,
2755    >,
2756    #[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"]
2757    pub GetTimecodeDropFrame: ::std::option::Option<
2758        unsafe extern "C" fn(inTimelineID: PrTimelineID, outDropFrame: *mut prBool) -> prSuiteError,
2759    >,
2760    #[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"]
2761    pub GetProxyFlag: ::std::option::Option<
2762        unsafe extern "C" fn(inTimelineID: PrTimelineID, outDropFrame: *mut prBool) -> prSuiteError,
2763    >,
2764    #[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)."]
2765    pub GetImmersiveVideoVRConfiguration: ::std::option::Option<
2766        unsafe extern "C" fn(
2767            inTimelineID: PrTimelineID,
2768            outProjectionType: *mut PrIVProjectionType,
2769            outFrameLayout: *mut PrIVFrameLayout,
2770            outHorizontalCapturedView: *mut csSDK_uint32,
2771            outVerticalCapturedView: *mut csSDK_uint32,
2772        ) -> prSuiteError,
2773    >,
2774    #[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"]
2775    pub GetWorkingColorSpace: ::std::option::Option<
2776        unsafe extern "C" fn(
2777            inTimelineID: PrTimelineID,
2778            outPrWorkingColorSpaceID: *mut PrSDKColorSpaceID,
2779        ) -> prSuiteError,
2780    >,
2781    #[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.\n\tFollowing are currently supported values for returned GraphicsWhiteLuminance\n\t\tkSDRReference = 100, \t\t// 1.0 mapped to 100 nits for Rec709\n\t\tkHDRReferenceForHLG = 203, \t// 1.0 mapped to 203 nits for HLG\n\t\tkHDRReferenceForPQ = 300 \t// 1.0 mapped to 300 nits for PQ"]
2782    pub GetGraphicsWhiteLuminance: ::std::option::Option<
2783        unsafe extern "C" fn(
2784            inTimelineID: PrTimelineID,
2785            outGraphicsWhiteLuminance: *mut csSDK_uint32,
2786        ) -> prSuiteError,
2787    >,
2788    #[doc = "\tGet the LUT interpolation mtheod for the sequence.\n\n\t@param\tinTimelineID\tthe timeline instance data\n\t@param\toutLUTInterpolationMethod\t on return, LUT interpolation method for the sequence.\n\tFollowing are currently supported values for returned LUTInterpolationMethod\n\t\tkTriLinear = 0\n\t\tkTetrahedral = 1"]
2789    pub GetLUTInterpolationMethod: ::std::option::Option<
2790        unsafe extern "C" fn(
2791            inTimelineID: PrTimelineID,
2792            outLUTInterpolationMethod: *mut csSDK_uint32,
2793        ) -> prSuiteError,
2794    >,
2795    #[doc = "\tGet the auto tone map enabled setting  for the sequence.\n\n\t@param\tinTimelineID\tthe timeline instance data\n\t@param\toutAutoToneMapEnabled\ton return,  state of auto tone map setting"]
2796    pub GetAutoToneMapEnabled: ::std::option::Option<
2797        unsafe extern "C" fn(
2798            inTimelineID: PrTimelineID,
2799            outAutoToneMapEnabled: *mut prBool,
2800        ) -> prSuiteError,
2801    >,
2802    #[doc = "\tGet the SDR gamma setting  for the sequence.\n\n\t@param\tinTimelineID\tthe timeline instance data\n\t@param\toutSDRGamma\ton return,  SDR Gamma value used for a sequence.\n\tFollowing are currently supported values for returned SDRGamma value\n\t\tkBroadcast = 240 (2.4f)\n\t\tkQuickTime = 196 (1.96f)\n\t\tkWebDelivery = 220 (2.2f)"]
2803    pub GetSDRGamma: ::std::option::Option<
2804        unsafe extern "C" fn(
2805            inTimelineID: PrTimelineID,
2806            outSDRGamma: *mut csSDK_uint32,
2807        ) -> prSuiteError,
2808    >,
2809}
2810pub type PrSDKStreamLabel = *const ::std::os::raw::c_char;
2811#[repr(C, packed)]
2812#[derive(Debug, Copy, Clone)]
2813pub struct SequenceRender_FrameInfoRec {
2814    pub repeatCount: csSDK_int32,
2815}
2816#[repr(C, packed)]
2817#[derive(Debug, Copy, Clone)]
2818pub struct SequenceRender_GetFrameReturnRec {
2819    pub asyncCompletionData: *mut ::std::os::raw::c_void,
2820    pub returnVal: csSDK_int32,
2821    pub repeatCount: csSDK_int32,
2822    pub onMarker: csSDK_int32,
2823    pub outFrame: PPixHand,
2824}
2825#[repr(C, packed)]
2826#[derive(Debug, Copy, Clone)]
2827pub struct SequenceRender_ParamsRec {
2828    pub inRequestedPixelFormatArray: *const PrPixelFormat,
2829    pub inRequestedPixelFormatArrayCount: csSDK_int32,
2830    pub inWidth: csSDK_int32,
2831    pub inHeight: csSDK_int32,
2832    pub inPixelAspectRatioNumerator: csSDK_int32,
2833    pub inPixelAspectRatioDenominator: csSDK_int32,
2834    pub inRenderQuality: PrRenderQuality,
2835    pub inFieldType: prFieldType,
2836    pub inDeinterlace: csSDK_int32,
2837    pub inDeinterlaceQuality: PrRenderQuality,
2838    pub inCompositeOnBlack: csSDK_int32,
2839}
2840#[repr(C, packed)]
2841#[derive(Debug, Copy, Clone)]
2842pub struct SequenceRender_ParamsRecExt {
2843    pub inRequestedPixelFormatArray: *const PrPixelFormat,
2844    pub inRequestedPixelFormatArrayCount: csSDK_int32,
2845    pub inWidth: csSDK_int32,
2846    pub inHeight: csSDK_int32,
2847    pub inPixelAspectRatioNumerator: csSDK_int32,
2848    pub inPixelAspectRatioDenominator: csSDK_int32,
2849    pub inRenderQuality: PrRenderQuality,
2850    pub inFieldType: prFieldType,
2851    pub inDeinterlace: csSDK_int32,
2852    pub inDeinterlaceQuality: PrRenderQuality,
2853    pub inCompositeOnBlack: csSDK_int32,
2854    pub inPrSDKColorSpaceID: PrSDKColorSpaceID,
2855}
2856#[repr(C, packed)]
2857#[derive(Debug, Copy, Clone)]
2858pub struct SequenceRender_ParamsRecExt2 {
2859    pub inRequestedPixelFormatArray: *const PrPixelFormat,
2860    pub inRequestedPixelFormatArrayCount: csSDK_int32,
2861    pub inWidth: csSDK_int32,
2862    pub inHeight: csSDK_int32,
2863    pub inPixelAspectRatioNumerator: csSDK_int32,
2864    pub inPixelAspectRatioDenominator: csSDK_int32,
2865    pub inRenderQuality: PrRenderQuality,
2866    pub inFieldType: prFieldType,
2867    pub inDeinterlace: csSDK_int32,
2868    pub inDeinterlaceQuality: PrRenderQuality,
2869    pub inCompositeOnBlack: csSDK_int32,
2870    pub inPrSDKColorSpaceID: PrSDKColorSpaceID,
2871    pub inPrSDKLUTID: PrSDKLUTID,
2872}
2873pub type PrSDKSequenceAsyncRenderCompletionProc = ::std::option::Option<
2874    unsafe extern "C" fn(
2875        inVideoRenderID: csSDK_uint32,
2876        inCallbackRef: *mut ::std::os::raw::c_void,
2877        inTime: PrTime,
2878        inRenderedFrame: PPixHand,
2879        inGetFrameReturn: *mut SequenceRender_GetFrameReturnRec,
2880    ),
2881>;
2882#[repr(C, packed)]
2883#[derive(Debug, Copy, Clone)]
2884pub struct PrSDKSequenceRenderSuite {
2885    pub MakeVideoRenderer: ::std::option::Option<
2886        unsafe extern "C" fn(
2887            pluginID: csSDK_uint32,
2888            outVideoRenderID: *mut csSDK_uint32,
2889            inFrameRate: PrTime,
2890        ) -> prSuiteError,
2891    >,
2892    pub ReleaseVideoRenderer: ::std::option::Option<
2893        unsafe extern "C" fn(pluginID: csSDK_uint32, inVideoRenderID: csSDK_uint32) -> prSuiteError,
2894    >,
2895    pub RenderVideoFrame: ::std::option::Option<
2896        unsafe extern "C" fn(
2897            inVideoRenderID: csSDK_uint32,
2898            inTime: PrTime,
2899            inRenderParams: *mut SequenceRender_ParamsRec,
2900            inCacheFlags: PrRenderCacheType,
2901            getFrameReturn: *mut SequenceRender_GetFrameReturnRec,
2902        ) -> prSuiteError,
2903    >,
2904    pub QueueAsyncVideoFrameRender: ::std::option::Option<
2905        unsafe extern "C" fn(
2906            inVideoRenderID: csSDK_uint32,
2907            inTime: PrTime,
2908            outRequestID: *mut csSDK_uint32,
2909            inRenderParams: *mut SequenceRender_ParamsRec,
2910            inCacheFlags: PrRenderCacheType,
2911            inAsyncCompletionData: *mut ::std::os::raw::c_void,
2912        ) -> prSuiteError,
2913    >,
2914    pub SetAsyncRenderCompletionProc: ::std::option::Option<
2915        unsafe extern "C" fn(
2916            inVideoRenderID: csSDK_uint32,
2917            asyncGetFrameCallback: PrSDKSequenceAsyncRenderCompletionProc,
2918            callbackRef: *mut ::std::os::raw::c_void,
2919        ) -> prSuiteError,
2920    >,
2921    pub GetFrameInfo: ::std::option::Option<
2922        unsafe extern "C" fn(
2923            inVideoRenderID: csSDK_uint32,
2924            inTime: PrTime,
2925            outFrameInfo: *mut SequenceRender_FrameInfoRec,
2926        ) -> prSuiteError,
2927    >,
2928    #[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."]
2929    pub PrefetchMedia: ::std::option::Option<
2930        unsafe extern "C" fn(inVideoRenderID: csSDK_uint32, inFrame: PrTime) -> prSuiteError,
2931    >,
2932    #[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."]
2933    pub PrefetchMediaWithRenderParameters: ::std::option::Option<
2934        unsafe extern "C" fn(
2935            inVideoRenderID: csSDK_uint32,
2936            inTime: PrTime,
2937            inRenderParams: *mut SequenceRender_ParamsRec,
2938        ) -> prSuiteError,
2939    >,
2940    #[doc = "\tThis will cancel all media pre-fetches that are still outstanding."]
2941    pub CancelAllOutstandingMediaPrefetches:
2942        ::std::option::Option<unsafe extern "C" fn(inVideoRenderID: csSDK_uint32) -> prSuiteError>,
2943    #[doc = "\tIs all the prefetched media ready?"]
2944    pub IsPrefetchedMediaReady: ::std::option::Option<
2945        unsafe extern "C" fn(
2946            inVideoRenderID: csSDK_uint32,
2947            inTime: PrTime,
2948            outMediaReady: *mut prBool,
2949        ) -> prSuiteError,
2950    >,
2951    pub MakeVideoRendererForTimeline: ::std::option::Option<
2952        unsafe extern "C" fn(
2953            inTimeline: PrTimelineID,
2954            outVideoRendererID: *mut csSDK_uint32,
2955        ) -> prSuiteError,
2956    >,
2957    pub MakeVideoRendererForTimelineWithFrameRate: ::std::option::Option<
2958        unsafe extern "C" fn(
2959            inTimeline: PrTimelineID,
2960            inFrameRate: PrTime,
2961            outVideoRendererID: *mut csSDK_uint32,
2962        ) -> prSuiteError,
2963    >,
2964    pub ReleaseVideoRendererForTimeline: ::std::option::Option<
2965        unsafe extern "C" fn(inVideoRendererID: csSDK_uint32) -> prSuiteError,
2966    >,
2967    pub RenderVideoFrameAndConformToPixelFormat: ::std::option::Option<
2968        unsafe extern "C" fn(
2969            inVideoRenderID: csSDK_uint32,
2970            inTime: PrTime,
2971            inRenderParams: *mut SequenceRender_ParamsRec,
2972            inCacheFlags: PrRenderCacheType,
2973            inConformToFormat: PrPixelFormat,
2974            getFrameReturn: *mut SequenceRender_GetFrameReturnRec,
2975        ) -> prSuiteError,
2976    >,
2977    pub MakeVideoRendererForTimelineWithStreamLabel: ::std::option::Option<
2978        unsafe extern "C" fn(
2979            inTimeline: PrTimelineID,
2980            inStreamLabel: PrSDKStreamLabel,
2981            outVideoRendererID: *mut csSDK_uint32,
2982        ) -> prSuiteError,
2983    >,
2984    pub RenderColorManagedVideoFrame: ::std::option::Option<
2985        unsafe extern "C" fn(
2986            inVideoRenderID: csSDK_uint32,
2987            inTime: PrTime,
2988            inRenderParamsExt: *mut SequenceRender_ParamsRecExt,
2989            inCacheFlags: PrRenderCacheType,
2990            getFrameReturn: *mut SequenceRender_GetFrameReturnRec,
2991        ) -> prSuiteError,
2992    >,
2993    pub QueueAsyncColorManagedVideoFrameRender: ::std::option::Option<
2994        unsafe extern "C" fn(
2995            inVideoRenderID: csSDK_uint32,
2996            inTime: PrTime,
2997            outRequestID: *mut csSDK_uint32,
2998            inRenderParamsExt: *mut SequenceRender_ParamsRecExt,
2999            inCacheFlags: PrRenderCacheType,
3000            inAsyncCompletionData: *mut ::std::os::raw::c_void,
3001        ) -> prSuiteError,
3002    >,
3003    pub PrefetchColorManagedMedia: ::std::option::Option<
3004        unsafe extern "C" fn(
3005            inVideoRenderID: csSDK_uint32,
3006            inFrame: PrTime,
3007            inPrSDKColorSpaceID: PrSDKColorSpaceID,
3008        ) -> prSuiteError,
3009    >,
3010    pub PrefetchColorManagedMediaWithRenderParameters: ::std::option::Option<
3011        unsafe extern "C" fn(
3012            inVideoRenderID: csSDK_uint32,
3013            inTime: PrTime,
3014            inRenderParamsExt: *mut SequenceRender_ParamsRecExt,
3015        ) -> prSuiteError,
3016    >,
3017    pub RenderColorManagedVideoFrameAndConformToPixelFormat: ::std::option::Option<
3018        unsafe extern "C" fn(
3019            inVideoRenderID: csSDK_uint32,
3020            inTime: PrTime,
3021            inRenderParamsExt: *mut SequenceRender_ParamsRecExt,
3022            inCacheFlags: PrRenderCacheType,
3023            inConformToFormat: PrPixelFormat,
3024            getFrameReturn: *mut SequenceRender_GetFrameReturnRec,
3025        ) -> prSuiteError,
3026    >,
3027    pub RenderColorManagedVideoFrame2: ::std::option::Option<
3028        unsafe extern "C" fn(
3029            inVideoRenderID: csSDK_uint32,
3030            inTime: PrTime,
3031            inRenderParamsExt2: *mut SequenceRender_ParamsRecExt2,
3032            inCacheFlags: PrRenderCacheType,
3033            outGetFrameReturn: *mut SequenceRender_GetFrameReturnRec,
3034        ) -> prSuiteError,
3035    >,
3036    pub QueueAsyncColorManagedVideoFrameRender2: ::std::option::Option<
3037        unsafe extern "C" fn(
3038            inVideoRenderID: csSDK_uint32,
3039            inTime: PrTime,
3040            outRequestID: *mut csSDK_uint32,
3041            inRenderParamsExt2: *mut SequenceRender_ParamsRecExt2,
3042            inCacheFlags: PrRenderCacheType,
3043            inAsyncCompletionData: *mut ::std::os::raw::c_void,
3044        ) -> prSuiteError,
3045    >,
3046    pub PrefetchColorManagedMediaWithRenderParameters2: ::std::option::Option<
3047        unsafe extern "C" fn(
3048            inVideoRenderID: csSDK_uint32,
3049            inTime: PrTime,
3050            inRenderParamsExt2: *mut SequenceRender_ParamsRecExt2,
3051        ) -> prSuiteError,
3052    >,
3053    pub RenderColorManagedVideoFrameAndConformToPixelFormat2: ::std::option::Option<
3054        unsafe extern "C" fn(
3055            inVideoRenderID: csSDK_uint32,
3056            inTime: PrTime,
3057            inRenderParamsExt2: *mut SequenceRender_ParamsRecExt2,
3058            inCacheFlags: PrRenderCacheType,
3059            inConformToFormat: PrPixelFormat,
3060            outGetFrameReturn: *mut SequenceRender_GetFrameReturnRec,
3061        ) -> prSuiteError,
3062    >,
3063}
3064#[repr(C, packed)]
3065#[derive(Debug, Copy, Clone)]
3066pub struct PrClipSegmentInfo {
3067    pub mClipID: csSDK_int32,
3068    pub mSegmentStartTime: csSDK_int64,
3069    pub mSegmentEndTime: csSDK_int64,
3070    pub mSegmentOffset: csSDK_int64,
3071    pub mClipStartTime: csSDK_int64,
3072    pub mClipEndTime: csSDK_int64,
3073    pub mClipPath: PrSDKString,
3074    pub mMediaStartTime: csSDK_int64,
3075    pub mMediaEndTime: csSDK_int64,
3076}
3077pub type SegmentInfoCallback = ::std::option::Option<
3078    unsafe extern "C" fn(
3079        inCallbackData: *mut ::std::os::raw::c_void,
3080        inClipSegmentInfo: *mut PrClipSegmentInfo,
3081    ),
3082>;
3083#[repr(C, packed)]
3084#[derive(Debug, Copy, Clone)]
3085pub struct PrSDKSmartRenderingSuite {
3086    pub BuildSmartRenderSegmentList: ::std::option::Option<
3087        unsafe extern "C" fn(
3088            inCallbackFunc: SegmentInfoCallback,
3089            inCallbackData: *mut ::std::os::raw::c_void,
3090            inSegmentsID: csSDK_int32,
3091            inTimeBase: PrTime,
3092            inPixelFormat: PrPixelFormat,
3093        ) -> prSuiteError,
3094    >,
3095    pub BuildSmartRenderSegmentListNoPreviewFiles: ::std::option::Option<
3096        unsafe extern "C" fn(
3097            inCallbackFunc: SegmentInfoCallback,
3098            inCallbackData: *mut ::std::os::raw::c_void,
3099            inSegmentsID: csSDK_int32,
3100            inTimeBase: PrTime,
3101            inPixelFormat: PrPixelFormat,
3102        ) -> prSuiteError,
3103    >,
3104    pub BuildAncillaryDataSegmentMap: ::std::option::Option<
3105        unsafe extern "C" fn(
3106            inCallbackFunc: SegmentInfoCallback,
3107            inCallbackData: *mut ::std::os::raw::c_void,
3108            inVideoSegmentsID: csSDK_int32,
3109            inTimeBase: PrTime,
3110            inPixelFormat: PrPixelFormat,
3111        ) -> prSuiteError,
3112    >,
3113    pub BuildColorManagedSmartRenderSegmentList: ::std::option::Option<
3114        unsafe extern "C" fn(
3115            inCallbackFunc: SegmentInfoCallback,
3116            inCallbackData: *mut ::std::os::raw::c_void,
3117            inSegmentsID: csSDK_int32,
3118            inTimeBase: PrTime,
3119            inPixelFormat: PrPixelFormat,
3120            inColorSpaceID: PrSDKColorSpaceID,
3121        ) -> prSuiteError,
3122    >,
3123    pub BuildColorManagedSmartRenderSegmentListNoPreviewFiles: ::std::option::Option<
3124        unsafe extern "C" fn(
3125            inCallbackFunc: SegmentInfoCallback,
3126            inCallbackData: *mut ::std::os::raw::c_void,
3127            inSegmentsID: csSDK_int32,
3128            inTimeBase: PrTime,
3129            inPixelFormat: PrPixelFormat,
3130            inColorSpaceID: PrSDKColorSpaceID,
3131        ) -> prSuiteError,
3132    >,
3133}
3134#[repr(C, packed)]
3135#[derive(Debug, Copy, Clone)]
3136pub struct PrSDKStringSuite {
3137    #[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"]
3138    pub DisposeString: ::std::option::Option<
3139        unsafe extern "C" fn(inSDKString: *const PrSDKString) -> prSuiteError,
3140    >,
3141    #[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"]
3142    pub AllocateFromUTF8: ::std::option::Option<
3143        unsafe extern "C" fn(
3144            inUTF8String: *const prUTF8Char,
3145            outSDKString: *mut PrSDKString,
3146        ) -> prSuiteError,
3147    >,
3148    #[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."]
3149    pub CopyToUTF8String: ::std::option::Option<
3150        unsafe extern "C" fn(
3151            inSDKString: *const PrSDKString,
3152            outUTF8StringBuffer: *mut prUTF8Char,
3153            ioUTF8StringBufferSizeInElements: *mut csSDK_uint32,
3154        ) -> prSuiteError,
3155    >,
3156    #[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"]
3157    pub AllocateFromUTF16: ::std::option::Option<
3158        unsafe extern "C" fn(
3159            inUTF16String: *const prUTF16Char,
3160            outSDKString: *mut PrSDKString,
3161        ) -> prSuiteError,
3162    >,
3163    #[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."]
3164    pub CopyToUTF16String: ::std::option::Option<
3165        unsafe extern "C" fn(
3166            inSDKString: *const PrSDKString,
3167            outUTF16StringBuffer: *mut prUTF16Char,
3168            ioUTF16StringBufferSizeInElements: *mut csSDK_uint32,
3169        ) -> prSuiteError,
3170    >,
3171}
3172pub type ThreadedWorkCallback =
3173    ::std::option::Option<unsafe extern "C" fn(inInstanceData: *mut ::std::os::raw::c_void)>;
3174pub type ThreadedWorkCallbackVersion3 = ::std::option::Option<
3175    unsafe extern "C" fn(
3176        inInstanceData: *mut ::std::os::raw::c_void,
3177        inPluginID: csSDK_int32,
3178        inStatus: prSuiteError,
3179    ),
3180>;
3181pub type ThreadedWorkRegistration = *mut ::std::os::raw::c_void;
3182#[repr(C, packed)]
3183#[derive(Debug, Copy, Clone)]
3184pub struct PrSDKThreadedWorkSuiteVersion2 {
3185    pub RegisterForThreadedWork: ::std::option::Option<
3186        unsafe extern "C" fn(
3187            inCallback: ThreadedWorkCallback,
3188            inInstanceData: *mut ::std::os::raw::c_void,
3189            outRegistrationData: *mut ThreadedWorkRegistration,
3190        ) -> prSuiteError,
3191    >,
3192    pub QueueThreadedWork: ::std::option::Option<
3193        unsafe extern "C" fn(inRegistrationData: ThreadedWorkRegistration) -> prSuiteError,
3194    >,
3195    pub UnregisterForThreadedWork: ::std::option::Option<
3196        unsafe extern "C" fn(inRegistrationData: ThreadedWorkRegistration) -> prSuiteError,
3197    >,
3198    pub RegisterForSingleThreadedWork: ::std::option::Option<
3199        unsafe extern "C" fn(
3200            inCallback: ThreadedWorkCallback,
3201            inInstanceData: *mut ::std::os::raw::c_void,
3202            outRegistrationData: *mut ThreadedWorkRegistration,
3203        ) -> prSuiteError,
3204    >,
3205}
3206#[doc = "\tThe following typedef is provided for short-term backwards compatibility only.\n\tClients should prefer the explicit versioned struct name."]
3207pub type PrSDKThreadedWorkSuite = PrSDKThreadedWorkSuiteVersion2;
3208#[repr(C, packed)]
3209#[derive(Debug, Copy, Clone)]
3210pub struct PrSDKThreadedWorkSuiteVersion3 {
3211    pub RegisterForThreadedWork: ::std::option::Option<
3212        unsafe extern "C" fn(
3213            inCallback: ThreadedWorkCallbackVersion3,
3214            inInstanceData: *mut ::std::os::raw::c_void,
3215            outRegistrationData: *mut ThreadedWorkRegistration,
3216        ) -> prSuiteError,
3217    >,
3218    pub QueueThreadedWork: ::std::option::Option<
3219        unsafe extern "C" fn(
3220            inRegistrationData: ThreadedWorkRegistration,
3221            inPluginID: csSDK_int32,
3222        ) -> prSuiteError,
3223    >,
3224    pub UnregisterForThreadedWork: ::std::option::Option<
3225        unsafe extern "C" fn(inRegistrationData: ThreadedWorkRegistration) -> prSuiteError,
3226    >,
3227    pub RegisterForSingleThreadedWork: ::std::option::Option<
3228        unsafe extern "C" fn(
3229            inCallback: ThreadedWorkCallbackVersion3,
3230            inInstanceData: *mut ::std::os::raw::c_void,
3231            outRegistrationData: *mut ThreadedWorkRegistration,
3232        ) -> prSuiteError,
3233    >,
3234}
3235pub const PrNodeInfoFlag_kPrNodeInfoFlag_IsCompletelyOpaque: PrNodeInfoFlag = 1;
3236pub const PrNodeInfoFlag_kPrNodeInfoFlag_IsCompletelyTransparent: PrNodeInfoFlag = 2;
3237pub const PrNodeInfoFlag_kPrNodeInfoFlag_DoesNotDependOnSequenceTime: PrNodeInfoFlag = 4;
3238pub const PrNodeInfoFlag_kPrNodeInfoFlag_NodeDoesNotDependOnSegmentTime: PrNodeInfoFlag = 8;
3239pub const PrNodeInfoFlag_kPrNodeInfoFlag_NodeDoesNotDependOnClipInOutTime: PrNodeInfoFlag = 16;
3240pub const PrNodeInfoFlag_kPrNodeInfoFlag_IsNOP: PrNodeInfoFlag = 32;
3241pub const PrNodeInfoFlag_kPrNodeInfoFlag_NodeDoesNotDependOnTrackInputs: PrNodeInfoFlag = 64;
3242pub const PrNodeInfoFlag_kPrNodeInfoFlag_IsAdjustment: PrNodeInfoFlag = 128;
3243pub const PrNodeInfoFlag_kPrNodeInfoFlag_MaxSize: PrNodeInfoFlag = 4294967295;
3244pub type PrNodeInfoFlag = ::std::os::raw::c_uint;
3245pub const kMaxNodeTypeStringSize: ::std::os::raw::c_int = 256;
3246pub const PrKeyframeInterpolationModeFlag_kPrInterpolationModeFlag_Linear:
3247    PrKeyframeInterpolationModeFlag = 0;
3248pub const PrKeyframeInterpolationModeFlag_kPrInterpolationModeFlag_Hold:
3249    PrKeyframeInterpolationModeFlag = 4;
3250pub const PrKeyframeInterpolationModeFlag_kPrInterpolationModeFlag_Bezier:
3251    PrKeyframeInterpolationModeFlag = 5;
3252pub const PrKeyframeInterpolationModeFlag_kPrInterpolationModeFlag_Time:
3253    PrKeyframeInterpolationModeFlag = 6;
3254pub const PrKeyframeInterpolationModeFlag_kPrInterpolationModeFlag_TimeTransitionStart:
3255    PrKeyframeInterpolationModeFlag = 7;
3256pub const PrKeyframeInterpolationModeFlag_kPrInterpolationModeFlag_TimeTransitionEnd:
3257    PrKeyframeInterpolationModeFlag = 8;
3258pub const PrKeyframeInterpolationModeFlag_kPrInterpolationModeFlag_MaxSize:
3259    PrKeyframeInterpolationModeFlag = 4294967295;
3260pub type PrKeyframeInterpolationModeFlag = ::std::os::raw::c_uint;
3261pub const PrNodeScalePolicy_kPrNodeScalePolicy_None: PrNodeScalePolicy = 0;
3262pub const PrNodeScalePolicy_kPrNodeScalePolicy_ScaleToFrame: PrNodeScalePolicy = 1;
3263pub const PrNodeScalePolicy_kPrNodeScalePolicy_ScaleToFillCrop: PrNodeScalePolicy = 2;
3264pub const PrNodeScalePolicy_kPrNodeScalePolicy_ScaleToFillDistort: PrNodeScalePolicy = 3;
3265pub type PrNodeScalePolicy = ::std::os::raw::c_uint;
3266#[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"]
3267pub type SegmentNodePropertyCallback = ::std::option::Option<
3268    unsafe extern "C" fn(
3269        inPluginObject: csSDK_int32,
3270        inKey: *const ::std::os::raw::c_char,
3271        inValue: *const prUTF8Char,
3272    ) -> prSuiteError,
3273>;
3274#[repr(C, packed)]
3275#[derive(Debug, Copy, Clone)]
3276pub struct PrSDKVideoSegmentSuite {
3277    #[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"]
3278    pub AcquireVideoSegmentsID: ::std::option::Option<
3279        unsafe extern "C" fn(
3280            inTimelineData: PrTimelineID,
3281            outVideoSegmentsID: *mut csSDK_int32,
3282        ) -> prSuiteError,
3283    >,
3284    #[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."]
3285    pub AcquireVideoSegmentsWithPreviewsID: ::std::option::Option<
3286        unsafe extern "C" fn(
3287            inTimelineData: PrTimelineID,
3288            outVideoSegmentsID: *mut csSDK_int32,
3289        ) -> prSuiteError,
3290    >,
3291    #[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."]
3292    pub AcquireVideoSegmentsWithOpaquePreviewsID: ::std::option::Option<
3293        unsafe extern "C" fn(
3294            inTimelineData: PrTimelineID,
3295            outVideoSegmentsID: *mut csSDK_int32,
3296        ) -> prSuiteError,
3297    >,
3298    #[doc = "\tRelease a Video Segments ID\n\n\t@param\tinVideoSegmentsID\tThe Video Segments ID to release"]
3299    pub ReleaseVideoSegmentsID:
3300        ::std::option::Option<unsafe extern "C" fn(inVideoSegmentsID: csSDK_int32) -> prSuiteError>,
3301    #[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"]
3302    pub GetHash: ::std::option::Option<
3303        unsafe extern "C" fn(
3304            inVideoSegmentsID: csSDK_int32,
3305            outHash: *mut prPluginID,
3306        ) -> prSuiteError,
3307    >,
3308    #[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"]
3309    pub GetSegmentCount: ::std::option::Option<
3310        unsafe extern "C" fn(
3311            inVideoSegmentsID: csSDK_int32,
3312            outNumSegments: *mut csSDK_int32,
3313        ) -> prSuiteError,
3314    >,
3315    #[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"]
3316    pub GetSegmentInfo: ::std::option::Option<
3317        unsafe extern "C" fn(
3318            inVideoSegmentsID: csSDK_int32,
3319            inIndex: csSDK_int32,
3320            outStartTime: *mut PrTime,
3321            outEndTime: *mut PrTime,
3322            outSegmentOffset: *mut PrTime,
3323            outHash: *mut prPluginID,
3324        ) -> prSuiteError,
3325    >,
3326    #[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."]
3327    pub AcquireNodeID: ::std::option::Option<
3328        unsafe extern "C" fn(
3329            inVideoSegmentsID: csSDK_int32,
3330            inHash: *mut prPluginID,
3331            outVideoNodeID: *mut csSDK_int32,
3332        ) -> prSuiteError,
3333    >,
3334    #[doc = "\tRelease a Video Node ID\n\n\t@param\tinVideoNodeID\t\tThe Video Node ID to release"]
3335    pub ReleaseVideoNodeID:
3336        ::std::option::Option<unsafe extern "C" fn(inVideoNodeID: csSDK_int32) -> prSuiteError>,
3337    #[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)"]
3338    pub GetNodeInfo: ::std::option::Option<
3339        unsafe extern "C" fn(
3340            inVideoNodeID: csSDK_int32,
3341            outNodeType: *mut ::std::os::raw::c_char,
3342            outHash: *mut prPluginID,
3343            outFlags: *mut csSDK_int32,
3344        ) -> prSuiteError,
3345    >,
3346    #[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"]
3347    pub GetNodeInputCount: ::std::option::Option<
3348        unsafe extern "C" fn(
3349            inVideoNodeID: csSDK_int32,
3350            outNumInputs: *mut csSDK_int32,
3351        ) -> prSuiteError,
3352    >,
3353    #[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."]
3354    pub AcquireInputNodeID: ::std::option::Option<
3355        unsafe extern "C" fn(
3356            inVideoNodeID: csSDK_int32,
3357            inIndex: csSDK_int32,
3358            outOffset: *mut PrTime,
3359            outInputVideoNodeID: *mut csSDK_int32,
3360        ) -> prSuiteError,
3361    >,
3362    #[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"]
3363    pub GetNodeOperatorCount: ::std::option::Option<
3364        unsafe extern "C" fn(
3365            inVideoNodeID: csSDK_int32,
3366            outNumOperators: *mut csSDK_int32,
3367        ) -> prSuiteError,
3368    >,
3369    #[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."]
3370    pub AcquireOperatorNodeID: ::std::option::Option<
3371        unsafe extern "C" fn(
3372            inVideoNodeID: csSDK_int32,
3373            inIndex: csSDK_int32,
3374            outOperatorVideoNodeID: *mut csSDK_int32,
3375        ) -> prSuiteError,
3376    >,
3377    #[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."]
3378    pub IterateNodeProperties: ::std::option::Option<
3379        unsafe extern "C" fn(
3380            inVideoNodeID: csSDK_int32,
3381            inCallback: SegmentNodePropertyCallback,
3382            inPluginObject: csSDK_int32,
3383        ) -> prSuiteError,
3384    >,
3385    #[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."]
3386    pub GetNodeProperty: ::std::option::Option<
3387        unsafe extern "C" fn(
3388            inVideoNodeID: csSDK_int32,
3389            inKey: *const ::std::os::raw::c_char,
3390            outValue: *mut PrMemoryPtr,
3391        ) -> prSuiteError,
3392    >,
3393    #[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"]
3394    pub GetParamCount: ::std::option::Option<
3395        unsafe extern "C" fn(
3396            inVideoNodeID: csSDK_int32,
3397            outParamCount: *mut csSDK_int32,
3398        ) -> prSuiteError,
3399    >,
3400    #[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"]
3401    pub GetParam: ::std::option::Option<
3402        unsafe extern "C" fn(
3403            inVideoNodeID: csSDK_int32,
3404            inIndex: csSDK_int32,
3405            inTime: PrTime,
3406            outParam: *mut PrParam,
3407        ) -> prSuiteError,
3408    >,
3409    #[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"]
3410    pub GetNextKeyframeTime: ::std::option::Option<
3411        unsafe extern "C" fn(
3412            inVideoNodeID: csSDK_int32,
3413            inIndex: csSDK_int32,
3414            inTime: PrTime,
3415            outKeyframeTime: *mut PrTime,
3416            outKeyframeInterpolationMode: *mut csSDK_int32,
3417        ) -> prSuiteError,
3418    >,
3419    #[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."]
3420    pub TransformNodeTime: ::std::option::Option<
3421        unsafe extern "C" fn(
3422            inVideoNodeID: csSDK_int32,
3423            inTime: PrTime,
3424            outTime: *mut PrTime,
3425        ) -> prSuiteError,
3426    >,
3427    #[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"]
3428    pub GetVideoSegmentsProperties: ::std::option::Option<
3429        unsafe extern "C" fn(
3430            inTimelineData: PrTimelineID,
3431            outBounds: *mut prRect,
3432            outPixelAspectRatioNumerator: *mut csSDK_int32,
3433            outPixelAspectRatioDenominator: *mut csSDK_int32,
3434            outFrameRate: *mut PrTime,
3435            outFieldType: *mut prFieldType,
3436        ) -> prSuiteError,
3437    >,
3438    #[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"]
3439    pub AcquireNodeForTime: ::std::option::Option<
3440        unsafe extern "C" fn(
3441            inVideoSegmentsID: csSDK_int32,
3442            inTime: PrTime,
3443            outVideoNodeID: *mut csSDK_int32,
3444            outSegmentOffset: *mut PrTime,
3445        ) -> prSuiteError,
3446    >,
3447    #[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"]
3448    pub AcquireVideoSegmentsIDWithStreamLabel: ::std::option::Option<
3449        unsafe extern "C" fn(
3450            inTimelineData: PrTimelineID,
3451            inStreamLabel: PrSDKStreamLabel,
3452            outVideoSegmentsID: *mut csSDK_int32,
3453        ) -> prSuiteError,
3454    >,
3455    #[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."]
3456    pub AcquireVideoSegmentsWithPreviewsIDWithStreamLabel: ::std::option::Option<
3457        unsafe extern "C" fn(
3458            inTimelineData: PrTimelineID,
3459            inStreamLabel: PrSDKStreamLabel,
3460            outVideoSegmentsID: *mut csSDK_int32,
3461        ) -> prSuiteError,
3462    >,
3463    #[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."]
3464    pub AcquireVideoSegmentsWithOpaquePreviewsIDWithStreamLabel: ::std::option::Option<
3465        unsafe extern "C" fn(
3466            inTimelineData: PrTimelineID,
3467            inStreamLabel: PrSDKStreamLabel,
3468            outVideoSegmentsID: *mut csSDK_int32,
3469        ) -> prSuiteError,
3470    >,
3471    #[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"]
3472    pub AcquireFirstNodeInTimeRange: ::std::option::Option<
3473        unsafe extern "C" fn(
3474            inVideoSegmentsID: csSDK_int32,
3475            inStartTime: PrTime,
3476            inEndTime: PrTime,
3477            outVideoNodeID: *mut csSDK_int32,
3478            outSegmentOffset: *mut PrTime,
3479        ) -> prSuiteError,
3480    >,
3481    #[doc = "\tAcquire the node owning an operator\n\n\t@param\tinVideoNodeID\t\tThe operator\n\t@param\toutOwnerNodeID\t\tThe owner"]
3482    pub AcquireOperatorOwnerNodeID: ::std::option::Option<
3483        unsafe extern "C" fn(
3484            inVideoNodeID: csSDK_int32,
3485            outOwnerNodeID: *mut csSDK_int32,
3486        ) -> prSuiteError,
3487    >,
3488    #[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)"]
3489    pub GetGraphicsTransformedParams: ::std::option::Option<
3490        unsafe extern "C" fn(
3491            inVideoNodeID: csSDK_int32,
3492            inTime: PrTime,
3493            outPosition: *mut prFPoint64,
3494            outAnchor: *mut prFPoint64,
3495            outScale: *mut prFPoint64,
3496            outRotation: *mut f32,
3497        ) -> prSuiteError,
3498    >,
3499    #[doc = "\tGet graphic layer group ID\n\n\t@param\tinVideoNodeID\t\tThe Video Node ID"]
3500    pub HasGraphicsGroup: ::std::option::Option<
3501        unsafe extern "C" fn(
3502            inVideoNodeID: csSDK_int32,
3503            outHasGraphicGroup: *mut bool,
3504        ) -> prSuiteError,
3505    >,
3506    #[doc = "\tGet graphic layer group ID\n\n\t@param\tinVideoNodeID\t\tThe Video Node ID"]
3507    pub GetGraphicsGroupID: ::std::option::Option<
3508        unsafe extern "C" fn(
3509            inVideoNodeID: csSDK_int32,
3510            outGroupID: *mut csSDK_int32,
3511        ) -> prSuiteError,
3512    >,
3513    #[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"]
3514    pub GetVideoSegmentsPropertiesExt: ::std::option::Option<
3515        unsafe extern "C" fn(
3516            inTimelineData: PrTimelineID,
3517            outBounds: *mut prRect,
3518            outPixelAspectRatioNumerator: *mut csSDK_int32,
3519            outPixelAspectRatioDenominator: *mut csSDK_int32,
3520            outFrameRate: *mut PrTime,
3521            outFieldType: *mut prFieldType,
3522            outColorSpaceID: *mut PrSDKColorSpaceID,
3523        ) -> prSuiteError,
3524    >,
3525    #[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"]
3526    pub AcquireFirstNodeInTimeRangeExt: ::std::option::Option<
3527        unsafe extern "C" fn(
3528            inVideoSegmentsID: csSDK_int32,
3529            inStartTime: PrTime,
3530            inEndTime: PrTime,
3531            outVideoNodeID: *mut csSDK_int32,
3532            outSegmentStartTime: *mut PrTime,
3533            outSegmentEndTime: *mut PrTime,
3534            outSegmentOffset: *mut PrTime,
3535        ) -> prSuiteError,
3536    >,
3537    #[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"]
3538    pub GetNodeTimeScale: ::std::option::Option<
3539        unsafe extern "C" fn(
3540            inVideoNodeID: csSDK_int32,
3541            inTime: PrTime,
3542            outRate: *mut f64,
3543        ) -> prSuiteError,
3544    >,
3545}
3546#[repr(C, packed)]
3547#[derive(Debug, Copy, Clone)]
3548pub struct PrSDKWindowSuite {
3549    pub GetMainWindow: ::std::option::Option<unsafe extern "C" fn() -> prWnd>,
3550    pub UpdateAllWindows: ::std::option::Option<unsafe extern "C" fn()>,
3551}
3552pub type A_long = i32;
3553pub type A_u_long = u32;
3554pub type A_char = ::std::os::raw::c_char;
3555pub type A_FpLong = f64;
3556pub type A_FpShort = f32;
3557pub type A_short = i16;
3558pub type A_u_short = u16;
3559pub type A_u_char = u8;
3560pub type A_Boolean = u8;
3561pub type A_intptr_t = isize;
3562pub type A_u_longlong = u64;
3563pub type UInt32 = ::std::os::raw::c_uint;
3564pub type SInt32 = ::std::os::raw::c_int;
3565pub type Fixed = SInt32;
3566pub type Ptr = *mut ::std::os::raw::c_char;
3567pub type Handle = *mut Ptr;
3568pub type Boolean = ::std::os::raw::c_uchar;
3569pub type ProcPtr = ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_long>;
3570pub type ProcHandle = *mut ProcPtr;
3571#[repr(C, packed(2))]
3572#[derive(Debug, Copy, Clone)]
3573pub struct ProcessSerialNumber {
3574    pub highLongOfPSN: UInt32,
3575    pub lowLongOfPSN: UInt32,
3576}
3577pub type ProcessSerialNumberPtr = *mut ProcessSerialNumber;
3578pub type PFVersionInfo = A_u_long;
3579pub const PF_Stage_DEVELOP: _bindgen_ty_22 = 0;
3580pub const PF_Stage_ALPHA: _bindgen_ty_22 = 1;
3581pub const PF_Stage_BETA: _bindgen_ty_22 = 2;
3582pub const PF_Stage_RELEASE: _bindgen_ty_22 = 3;
3583pub type _bindgen_ty_22 = ::std::os::raw::c_uint;
3584pub type PF_Stage = A_long;
3585pub const PF_Quality_DRAWING_AUDIO: _bindgen_ty_23 = -1;
3586pub const PF_Quality_LO: _bindgen_ty_23 = 0;
3587pub const PF_Quality_HI: _bindgen_ty_23 = 1;
3588pub type _bindgen_ty_23 = ::std::os::raw::c_int;
3589pub type PF_Quality = A_long;
3590pub const PF_MF_Alpha_PREMUL: _bindgen_ty_24 = 0;
3591pub const PF_MF_Alpha_STRAIGHT: _bindgen_ty_24 = 1;
3592pub type _bindgen_ty_24 = ::std::os::raw::c_uint;
3593pub type PF_ModeFlags = A_long;
3594pub const PF_Field_FRAME: _bindgen_ty_25 = 0;
3595pub const PF_Field_UPPER: _bindgen_ty_25 = 1;
3596pub const PF_Field_LOWER: _bindgen_ty_25 = 2;
3597pub type _bindgen_ty_25 = ::std::os::raw::c_uint;
3598pub type PF_Field = A_long;
3599pub const PF_Param_RESERVED: _bindgen_ty_26 = -1;
3600pub const PF_Param_LAYER: _bindgen_ty_26 = 0;
3601pub const PF_Param_SLIDER: _bindgen_ty_26 = 1;
3602pub const PF_Param_FIX_SLIDER: _bindgen_ty_26 = 2;
3603pub const PF_Param_ANGLE: _bindgen_ty_26 = 3;
3604pub const PF_Param_CHECKBOX: _bindgen_ty_26 = 4;
3605pub const PF_Param_COLOR: _bindgen_ty_26 = 5;
3606pub const PF_Param_POINT: _bindgen_ty_26 = 6;
3607pub const PF_Param_POPUP: _bindgen_ty_26 = 7;
3608pub const PF_Param_CUSTOM: _bindgen_ty_26 = 8;
3609pub const PF_Param_NO_DATA: _bindgen_ty_26 = 9;
3610pub const PF_Param_FLOAT_SLIDER: _bindgen_ty_26 = 10;
3611pub const PF_Param_ARBITRARY_DATA: _bindgen_ty_26 = 11;
3612pub const PF_Param_PATH: _bindgen_ty_26 = 12;
3613pub const PF_Param_GROUP_START: _bindgen_ty_26 = 13;
3614pub const PF_Param_GROUP_END: _bindgen_ty_26 = 14;
3615pub const PF_Param_BUTTON: _bindgen_ty_26 = 15;
3616pub const PF_Param_RESERVED2: _bindgen_ty_26 = 16;
3617pub const PF_Param_RESERVED3: _bindgen_ty_26 = 17;
3618pub const PF_Param_POINT_3D: _bindgen_ty_26 = 18;
3619pub type _bindgen_ty_26 = ::std::os::raw::c_int;
3620pub type PF_ParamType = A_long;
3621pub const PF_ParamFlag_RESERVED1: _bindgen_ty_27 = 1;
3622pub const PF_ParamFlag_CANNOT_TIME_VARY: _bindgen_ty_27 = 2;
3623pub const PF_ParamFlag_CANNOT_INTERP: _bindgen_ty_27 = 4;
3624pub const PF_ParamFlag_RESERVED2: _bindgen_ty_27 = 8;
3625pub const PF_ParamFlag_RESERVED3: _bindgen_ty_27 = 16;
3626pub const PF_ParamFlag_COLLAPSE_TWIRLY: _bindgen_ty_27 = 32;
3627pub const PF_ParamFlag_SUPERVISE: _bindgen_ty_27 = 64;
3628pub const PF_ParamFlag_START_COLLAPSED: _bindgen_ty_27 = 32;
3629pub const PF_ParamFlag_USE_VALUE_FOR_OLD_PROJECTS: _bindgen_ty_27 = 128;
3630pub const PF_ParamFlag_LAYER_PARAM_IS_TRACKMATTE: _bindgen_ty_27 = 128;
3631pub const PF_ParamFlag_EXCLUDE_FROM_HAVE_INPUTS_CHANGED: _bindgen_ty_27 = 256;
3632pub const PF_ParamFlag_SKIP_REVEAL_WHEN_UNHIDDEN: _bindgen_ty_27 = 512;
3633pub type _bindgen_ty_27 = ::std::os::raw::c_uint;
3634pub type PF_ParamFlags = A_long;
3635pub const PF_Err_NONE: _bindgen_ty_28 = 0;
3636pub const PF_Err_OUT_OF_MEMORY: _bindgen_ty_28 = 4;
3637pub const PF_Err_INTERNAL_STRUCT_DAMAGED: _bindgen_ty_28 = 512;
3638pub const PF_Err_INVALID_INDEX: _bindgen_ty_28 = 513;
3639pub const PF_Err_UNRECOGNIZED_PARAM_TYPE: _bindgen_ty_28 = 514;
3640pub const PF_Err_INVALID_CALLBACK: _bindgen_ty_28 = 515;
3641pub const PF_Err_BAD_CALLBACK_PARAM: _bindgen_ty_28 = 516;
3642pub const PF_Interrupt_CANCEL: _bindgen_ty_28 = 517;
3643pub const PF_Err_CANNOT_PARSE_KEYFRAME_TEXT: _bindgen_ty_28 = 518;
3644pub type _bindgen_ty_28 = ::std::os::raw::c_uint;
3645pub type PF_Err = A_long;
3646pub const PF_WorldFlag_DEEP: _bindgen_ty_29 = 1;
3647pub const PF_WorldFlag_WRITEABLE: _bindgen_ty_29 = 2;
3648pub const PF_WorldFlag_RESERVED0: _bindgen_ty_29 = 16777216;
3649pub const PF_WorldFlag_RESERVED1: _bindgen_ty_29 = 33554432;
3650pub const PF_WorldFlag_RESERVED2: _bindgen_ty_29 = 67108864;
3651pub const PF_WorldFlag_RESERVED3: _bindgen_ty_29 = 134217728;
3652pub const PF_WorldFlag_RESERVED4: _bindgen_ty_29 = 268435456;
3653pub const PF_WorldFlag_RESERVED5: _bindgen_ty_29 = 536870912;
3654pub const PF_WorldFlag_RESERVED6: _bindgen_ty_29 = 1073741824;
3655pub const PF_WorldFlag_RESERVED: _bindgen_ty_29 = 2147483648;
3656pub type _bindgen_ty_29 = ::std::os::raw::c_uint;
3657pub type PF_WorldFlags = A_long;
3658pub const PF_OutFlag_NONE: _bindgen_ty_30 = 0;
3659pub const PF_OutFlag_KEEP_RESOURCE_OPEN: _bindgen_ty_30 = 1;
3660pub const PF_OutFlag_WIDE_TIME_INPUT: _bindgen_ty_30 = 2;
3661pub const PF_OutFlag_NON_PARAM_VARY: _bindgen_ty_30 = 4;
3662pub const PF_OutFlag_RESERVED6: _bindgen_ty_30 = 8;
3663pub const PF_OutFlag_SEQUENCE_DATA_NEEDS_FLATTENING: _bindgen_ty_30 = 16;
3664pub const PF_OutFlag_I_DO_DIALOG: _bindgen_ty_30 = 32;
3665pub const PF_OutFlag_USE_OUTPUT_EXTENT: _bindgen_ty_30 = 64;
3666pub const PF_OutFlag_SEND_DO_DIALOG: _bindgen_ty_30 = 128;
3667pub const PF_OutFlag_DISPLAY_ERROR_MESSAGE: _bindgen_ty_30 = 256;
3668pub const PF_OutFlag_I_EXPAND_BUFFER: _bindgen_ty_30 = 512;
3669pub const PF_OutFlag_PIX_INDEPENDENT: _bindgen_ty_30 = 1024;
3670pub const PF_OutFlag_I_WRITE_INPUT_BUFFER: _bindgen_ty_30 = 2048;
3671pub const PF_OutFlag_I_SHRINK_BUFFER: _bindgen_ty_30 = 4096;
3672pub const PF_OutFlag_WORKS_IN_PLACE: _bindgen_ty_30 = 8192;
3673pub const PF_OutFlag_RESERVED8: _bindgen_ty_30 = 16384;
3674pub const PF_OutFlag_CUSTOM_UI: _bindgen_ty_30 = 32768;
3675pub const PF_OutFlag_RESERVED7: _bindgen_ty_30 = 65536;
3676pub const PF_OutFlag_REFRESH_UI: _bindgen_ty_30 = 131072;
3677pub const PF_OutFlag_NOP_RENDER: _bindgen_ty_30 = 262144;
3678pub const PF_OutFlag_I_USE_SHUTTER_ANGLE: _bindgen_ty_30 = 524288;
3679pub const PF_OutFlag_I_USE_AUDIO: _bindgen_ty_30 = 1048576;
3680pub const PF_OutFlag_I_AM_OBSOLETE: _bindgen_ty_30 = 2097152;
3681pub const PF_OutFlag_FORCE_RERENDER: _bindgen_ty_30 = 4194304;
3682pub const PF_OutFlag_PiPL_OVERRIDES_OUTDATA_OUTFLAGS: _bindgen_ty_30 = 8388608;
3683pub const PF_OutFlag_I_HAVE_EXTERNAL_DEPENDENCIES: _bindgen_ty_30 = 16777216;
3684pub const PF_OutFlag_DEEP_COLOR_AWARE: _bindgen_ty_30 = 33554432;
3685pub const PF_OutFlag_SEND_UPDATE_PARAMS_UI: _bindgen_ty_30 = 67108864;
3686pub const PF_OutFlag_AUDIO_FLOAT_ONLY: _bindgen_ty_30 = 134217728;
3687pub const PF_OutFlag_AUDIO_IIR: _bindgen_ty_30 = 268435456;
3688pub const PF_OutFlag_I_SYNTHESIZE_AUDIO: _bindgen_ty_30 = 536870912;
3689pub const PF_OutFlag_AUDIO_EFFECT_TOO: _bindgen_ty_30 = 1073741824;
3690pub const PF_OutFlag_AUDIO_EFFECT_ONLY: _bindgen_ty_30 = 2147483648;
3691#[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."]
3692pub type _bindgen_ty_30 = ::std::os::raw::c_uint;
3693pub type PF_OutFlags = A_long;
3694pub const PF_OutFlag2_NONE: _bindgen_ty_31 = 0;
3695pub const PF_OutFlag2_SUPPORTS_QUERY_DYNAMIC_FLAGS: _bindgen_ty_31 = 1;
3696pub const PF_OutFlag2_I_USE_3D_CAMERA: _bindgen_ty_31 = 2;
3697pub const PF_OutFlag2_I_USE_3D_LIGHTS: _bindgen_ty_31 = 4;
3698pub const PF_OutFlag2_PARAM_GROUP_START_COLLAPSED_FLAG: _bindgen_ty_31 = 8;
3699pub const PF_OutFlag2_I_AM_THREADSAFE: _bindgen_ty_31 = 16;
3700pub const PF_OutFlag2_CAN_COMBINE_WITH_DESTINATION: _bindgen_ty_31 = 32;
3701pub const PF_OutFlag2_DOESNT_NEED_EMPTY_PIXELS: _bindgen_ty_31 = 64;
3702pub const PF_OutFlag2_REVEALS_ZERO_ALPHA: _bindgen_ty_31 = 128;
3703pub const PF_OutFlag2_PRESERVES_FULLY_OPAQUE_PIXELS: _bindgen_ty_31 = 256;
3704pub const PF_OutFlag2_SUPPORTS_SMART_RENDER: _bindgen_ty_31 = 1024;
3705pub const PF_OutFlag2_RESERVED9: _bindgen_ty_31 = 2048;
3706pub const PF_OutFlag2_FLOAT_COLOR_AWARE: _bindgen_ty_31 = 4096;
3707pub const PF_OutFlag2_I_USE_COLORSPACE_ENUMERATION: _bindgen_ty_31 = 8192;
3708pub const PF_OutFlag2_I_AM_DEPRECATED: _bindgen_ty_31 = 16384;
3709pub const PF_OutFlag2_PPRO_DO_NOT_CLONE_SEQUENCE_DATA_FOR_RENDER: _bindgen_ty_31 = 32768;
3710pub const PF_OutFlag2_RESERVED10: _bindgen_ty_31 = 65536;
3711pub const PF_OutFlag2_AUTOMATIC_WIDE_TIME_INPUT: _bindgen_ty_31 = 131072;
3712pub const PF_OutFlag2_I_USE_TIMECODE: _bindgen_ty_31 = 262144;
3713pub const PF_OutFlag2_DEPENDS_ON_UNREFERENCED_MASKS: _bindgen_ty_31 = 524288;
3714pub const PF_OutFlag2_OUTPUT_IS_WATERMARKED: _bindgen_ty_31 = 1048576;
3715pub const PF_OutFlag2_I_MIX_GUID_DEPENDENCIES: _bindgen_ty_31 = 2097152;
3716pub const PF_OutFlag2_AE13_5_THREADSAFE: _bindgen_ty_31 = 4194304;
3717pub const PF_OutFlag2_SUPPORTS_GET_FLATTENED_SEQUENCE_DATA: _bindgen_ty_31 = 8388608;
3718pub const PF_OutFlag2_CUSTOM_UI_ASYNC_MANAGER: _bindgen_ty_31 = 16777216;
3719pub const PF_OutFlag2_SUPPORTS_GPU_RENDER_F32: _bindgen_ty_31 = 33554432;
3720pub const PF_OutFlag2_RESERVED12: _bindgen_ty_31 = 67108864;
3721pub const PF_OutFlag2_SUPPORTS_THREADED_RENDERING: _bindgen_ty_31 = 134217728;
3722pub const PF_OutFlag2_MUTABLE_RENDER_SEQUENCE_DATA_SLOWER: _bindgen_ty_31 = 268435456;
3723pub const PF_OutFlag2_SUPPORTS_DIRECTX_RENDERING: _bindgen_ty_31 = 536870912;
3724pub type _bindgen_ty_31 = ::std::os::raw::c_uint;
3725pub type PF_OutFlags2 = A_long;
3726pub const PF_InFlag_NONE: _bindgen_ty_32 = 0;
3727pub const PF_InFlag_PROJECT_IS_RENDER_ONLY: _bindgen_ty_32 = 1;
3728#[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.)"]
3729pub type _bindgen_ty_32 = ::std::os::raw::c_uint;
3730pub type PF_InFlags = A_long;
3731pub const PF_Cmd_ABOUT: _bindgen_ty_33 = 0;
3732pub const PF_Cmd_GLOBAL_SETUP: _bindgen_ty_33 = 1;
3733pub const PF_Cmd_UNUSED_0: _bindgen_ty_33 = 2;
3734pub const PF_Cmd_GLOBAL_SETDOWN: _bindgen_ty_33 = 3;
3735pub const PF_Cmd_PARAMS_SETUP: _bindgen_ty_33 = 4;
3736pub const PF_Cmd_SEQUENCE_SETUP: _bindgen_ty_33 = 5;
3737pub const PF_Cmd_SEQUENCE_RESETUP: _bindgen_ty_33 = 6;
3738pub const PF_Cmd_SEQUENCE_FLATTEN: _bindgen_ty_33 = 7;
3739pub const PF_Cmd_SEQUENCE_SETDOWN: _bindgen_ty_33 = 8;
3740pub const PF_Cmd_DO_DIALOG: _bindgen_ty_33 = 9;
3741pub const PF_Cmd_FRAME_SETUP: _bindgen_ty_33 = 10;
3742pub const PF_Cmd_RENDER: _bindgen_ty_33 = 11;
3743pub const PF_Cmd_FRAME_SETDOWN: _bindgen_ty_33 = 12;
3744pub const PF_Cmd_USER_CHANGED_PARAM: _bindgen_ty_33 = 13;
3745pub const PF_Cmd_UPDATE_PARAMS_UI: _bindgen_ty_33 = 14;
3746pub const PF_Cmd_EVENT: _bindgen_ty_33 = 15;
3747pub const PF_Cmd_GET_EXTERNAL_DEPENDENCIES: _bindgen_ty_33 = 16;
3748pub const PF_Cmd_COMPLETELY_GENERAL: _bindgen_ty_33 = 17;
3749pub const PF_Cmd_QUERY_DYNAMIC_FLAGS: _bindgen_ty_33 = 18;
3750pub const PF_Cmd_AUDIO_RENDER: _bindgen_ty_33 = 19;
3751pub const PF_Cmd_AUDIO_SETUP: _bindgen_ty_33 = 20;
3752pub const PF_Cmd_AUDIO_SETDOWN: _bindgen_ty_33 = 21;
3753pub const PF_Cmd_ARBITRARY_CALLBACK: _bindgen_ty_33 = 22;
3754pub const PF_Cmd_SMART_PRE_RENDER: _bindgen_ty_33 = 23;
3755pub const PF_Cmd_SMART_RENDER: _bindgen_ty_33 = 24;
3756pub const PF_Cmd_RESERVED1: _bindgen_ty_33 = 25;
3757pub const PF_Cmd_RESERVED2: _bindgen_ty_33 = 26;
3758pub const PF_Cmd_RESERVED3: _bindgen_ty_33 = 27;
3759pub const PF_Cmd_GET_FLATTENED_SEQUENCE_DATA: _bindgen_ty_33 = 28;
3760pub const PF_Cmd_TRANSLATE_PARAMS_TO_PREFS: _bindgen_ty_33 = 29;
3761pub const PF_Cmd_RESERVED4: _bindgen_ty_33 = 30;
3762pub const PF_Cmd_SMART_RENDER_GPU: _bindgen_ty_33 = 31;
3763pub const PF_Cmd_GPU_DEVICE_SETUP: _bindgen_ty_33 = 32;
3764pub const PF_Cmd_GPU_DEVICE_SETDOWN: _bindgen_ty_33 = 33;
3765pub const PF_Cmd_NUM_CMDS: _bindgen_ty_33 = 34;
3766#[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!"]
3767pub type _bindgen_ty_33 = ::std::os::raw::c_uint;
3768pub type PF_Cmd = A_long;
3769#[repr(C)]
3770#[derive(Debug, Copy, Clone)]
3771pub struct _PF_LayerAudio {
3772    _unused: [u8; 0],
3773}
3774#[doc = " -------------------- Simple Types --------------------"]
3775pub type PF_LayerAudio = *mut _PF_LayerAudio;
3776pub type PF_SndSamplePtr = *mut ::std::os::raw::c_void;
3777#[repr(C)]
3778#[derive(Debug, Copy, Clone)]
3779pub struct PF_ProgressInfo {
3780    _unused: [u8; 0],
3781}
3782pub type PF_ProgPtr = *mut PF_ProgressInfo;
3783pub type PF_ParamValue = A_long;
3784#[repr(C)]
3785#[derive(Debug, Copy, Clone)]
3786pub struct PF_SpecVersion {
3787    pub major: A_short,
3788    pub minor: A_short,
3789}
3790pub type PF_ParamIndex = A_long;
3791pub type PF_UFixed = A_u_long;
3792pub type PF_Fixed = Fixed;
3793pub type PF_Boolean = Boolean;
3794pub type PF_Handle = Handle;
3795#[repr(C)]
3796#[derive(Copy, Clone)]
3797pub struct PF_Point {
3798    pub __bindgen_anon_1: PF_Point__bindgen_ty_1,
3799    pub __bindgen_anon_2: PF_Point__bindgen_ty_2,
3800}
3801#[repr(C)]
3802#[derive(Copy, Clone)]
3803pub union PF_Point__bindgen_ty_1 {
3804    pub x: A_long,
3805    pub h: A_long,
3806}
3807#[repr(C)]
3808#[derive(Copy, Clone)]
3809pub union PF_Point__bindgen_ty_2 {
3810    pub y: A_long,
3811    pub v: A_long,
3812}
3813#[repr(C)]
3814#[derive(Debug, Copy, Clone)]
3815pub struct PF_LRect {
3816    pub left: A_long,
3817    pub top: A_long,
3818    pub right: A_long,
3819    pub bottom: A_long,
3820}
3821pub type PF_Rect = PF_LRect;
3822pub type PF_UnionableRect = PF_Rect;
3823#[repr(C)]
3824#[derive(Debug, Copy, Clone)]
3825pub struct PF_RationalScale {
3826    pub num: A_long,
3827    pub den: A_u_long,
3828}
3829#[repr(C)]
3830#[derive(Debug, Copy, Clone)]
3831pub struct PF_FixedPoint {
3832    pub x: PF_Fixed,
3833    pub y: PF_Fixed,
3834}
3835#[repr(C)]
3836#[derive(Debug, Copy, Clone)]
3837pub struct PF_FixedRect {
3838    pub left: PF_Fixed,
3839    pub top: PF_Fixed,
3840    pub right: PF_Fixed,
3841    pub bottom: PF_Fixed,
3842}
3843#[repr(C)]
3844#[derive(Debug, Copy, Clone)]
3845pub struct PF_Matrix {
3846    pub mat: [[PF_Fixed; 3usize]; 3usize],
3847}
3848pub type PF_TransferMode = A_long;
3849pub type PF_XferMode = PF_TransferMode;
3850#[repr(C)]
3851#[derive(Debug, Copy, Clone)]
3852pub struct PF_Pixel {
3853    pub alpha: A_u_char,
3854    pub red: A_u_char,
3855    pub green: A_u_char,
3856    pub blue: A_u_char,
3857}
3858pub type PF_Pixel8 = PF_Pixel;
3859pub type PF_UnionablePixel = PF_Pixel;
3860#[repr(C)]
3861#[derive(Debug, Copy, Clone)]
3862pub struct PF_Pixel16 {
3863    pub alpha: A_u_short,
3864    pub red: A_u_short,
3865    pub green: A_u_short,
3866    pub blue: A_u_short,
3867}
3868pub type PF_FpShort = A_FpShort;
3869pub type PF_FpLong = A_FpLong;
3870#[repr(C)]
3871#[derive(Debug, Copy, Clone)]
3872pub struct PF_PixelFloat {
3873    pub alpha: PF_FpShort,
3874    pub red: PF_FpShort,
3875    pub green: PF_FpShort,
3876    pub blue: PF_FpShort,
3877}
3878pub type PF_Pixel32 = PF_PixelFloat;
3879#[repr(C)]
3880#[derive(Debug, Copy, Clone)]
3881pub struct PF_FloatMatrix {
3882    pub mat: [[PF_FpLong; 3usize]; 3usize],
3883}
3884#[repr(C)]
3885#[derive(Debug, Copy, Clone)]
3886pub struct PF_CompositeMode {
3887    pub xfer: PF_TransferMode,
3888    pub rand_seed: A_long,
3889    pub opacity: A_u_char,
3890    pub rgb_only: PF_Boolean,
3891    pub opacitySu: A_u_short,
3892}
3893pub type PF_PixLong = A_u_long;
3894#[repr(C)]
3895#[derive(Debug, Copy, Clone)]
3896pub struct _PF_PixelOpaque {
3897    _unused: [u8; 0],
3898}
3899pub type PF_PixelOpaquePtr = *mut _PF_PixelOpaque;
3900pub type PF_PixelPtr = *mut PF_Pixel;
3901pub type PF_RGB_Pixel = [PF_Fixed; 3usize];
3902pub type PF_YIQ_Pixel = [PF_Fixed; 3usize];
3903pub type PF_HLS_Pixel = [PF_Fixed; 3usize];
3904pub type PF_ChannelType = A_long;
3905pub type PF_DataType = A_long;
3906#[doc = " for enumerating over all the channels"]
3907pub type PF_ChannelIndex = A_long;
3908#[repr(C)]
3909#[derive(Debug, Copy, Clone)]
3910pub struct PF_ChannelDesc {
3911    pub channel_type: PF_ChannelType,
3912    pub name: [A_char; 64usize],
3913    pub data_type: PF_DataType,
3914    pub dimension: A_long,
3915}
3916#[doc = " the opaque type representing the channel data"]
3917#[repr(C)]
3918#[derive(Debug, Copy, Clone)]
3919pub struct PF_ChannelRef {
3920    pub opaque: [A_intptr_t; 8usize],
3921}
3922#[doc = " the opaque type representing the channel data"]
3923pub type PF_ChannelRefPtr = *mut PF_ChannelRef;
3924#[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."]
3925#[repr(C)]
3926#[derive(Debug, Copy, Clone)]
3927pub struct PF_ChannelChunk {
3928    pub channel_ref: PF_ChannelRef,
3929    pub widthL: A_long,
3930    pub heightL: A_long,
3931    pub dimensionL: A_long,
3932    pub row_bytesL: A_long,
3933    pub data_type: PF_DataType,
3934    pub dataH: PF_Handle,
3935    pub dataPV: *mut ::std::os::raw::c_void,
3936}
3937pub const PF_LayerDefault_MYSELF: _bindgen_ty_34 = -1;
3938pub const PF_LayerDefault_NONE: _bindgen_ty_34 = 0;
3939#[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)."]
3940pub type _bindgen_ty_34 = ::std::os::raw::c_int;
3941#[repr(C)]
3942#[derive(Debug, Copy, Clone)]
3943pub struct PF_LayerDef {
3944    pub reserved0: *mut ::std::os::raw::c_void,
3945    pub reserved1: *mut ::std::os::raw::c_void,
3946    pub world_flags: PF_WorldFlags,
3947    pub data: PF_PixelPtr,
3948    pub rowbytes: A_long,
3949    pub width: A_long,
3950    pub height: A_long,
3951    pub extent_hint: PF_UnionableRect,
3952    pub platform_ref: *mut ::std::os::raw::c_void,
3953    pub reserved_long1: A_long,
3954    pub reserved_long4: *mut ::std::os::raw::c_void,
3955    pub pix_aspect_ratio: PF_RationalScale,
3956    pub reserved_long2: *mut ::std::os::raw::c_void,
3957    pub origin_x: A_long,
3958    pub origin_y: A_long,
3959    pub reserved_long3: A_long,
3960    pub dephault: A_long,
3961}
3962pub type PF_EffectWorld = PF_LayerDef;
3963pub const PF_UNSIGNED_PCM: _bindgen_ty_35 = 0;
3964pub const PF_SIGNED_PCM: _bindgen_ty_35 = 1;
3965pub const PF_SIGNED_FLOAT: _bindgen_ty_35 = 2;
3966pub type _bindgen_ty_35 = ::std::os::raw::c_uint;
3967pub type PF_SoundFormat = A_short;
3968pub const PF_SSS_1: _bindgen_ty_36 = 1;
3969pub const PF_SSS_2: _bindgen_ty_36 = 2;
3970pub const PF_SSS_4: _bindgen_ty_36 = 4;
3971pub type _bindgen_ty_36 = ::std::os::raw::c_uint;
3972pub type PF_SoundSampleSize = A_short;
3973pub const PF_Channels_MONO: _bindgen_ty_37 = 1;
3974pub const PF_Channels_STEREO: _bindgen_ty_37 = 2;
3975pub type _bindgen_ty_37 = ::std::os::raw::c_uint;
3976pub type PF_SoundChannels = A_short;
3977#[repr(C)]
3978#[derive(Debug, Copy, Clone)]
3979pub struct PF_SoundFormatInfo {
3980    pub rateF: PF_FpLong,
3981    pub num_channels: PF_SoundChannels,
3982    pub format: PF_SoundFormat,
3983    pub sample_size: PF_SoundSampleSize,
3984}
3985#[repr(C)]
3986#[derive(Debug, Copy, Clone)]
3987pub struct PF_SoundWorld {
3988    pub fi: PF_SoundFormatInfo,
3989    pub num_samples: A_long,
3990    pub dataP: *mut ::std::os::raw::c_void,
3991}
3992pub const PF_ValueDisplayFlag_NONE: _bindgen_ty_38 = 0;
3993pub const PF_ValueDisplayFlag_PERCENT: _bindgen_ty_38 = 1;
3994pub const PF_ValueDisplayFlag_PIXEL: _bindgen_ty_38 = 2;
3995pub const PF_ValueDisplayFlag_RESERVED1: _bindgen_ty_38 = 4;
3996pub const PF_ValueDisplayFlag_REVERSE: _bindgen_ty_38 = 8;
3997pub type _bindgen_ty_38 = ::std::os::raw::c_uint;
3998pub type PF_ValueDisplayFlags = A_short;
3999#[doc = " Slider -- PF_Param_SLIDER"]
4000#[repr(C)]
4001#[derive(Debug, Copy, Clone)]
4002pub struct PF_SliderDef {
4003    pub value: PF_ParamValue,
4004    pub value_str: [A_char; 32usize],
4005    pub value_desc: [A_char; 32usize],
4006    pub valid_min: PF_ParamValue,
4007    pub valid_max: PF_ParamValue,
4008    pub slider_min: PF_ParamValue,
4009    pub slider_max: PF_ParamValue,
4010    pub dephault: PF_ParamValue,
4011}
4012#[doc = " Fixed Point Slider -- PF_Param_FIX_SLIDER"]
4013#[repr(C)]
4014#[derive(Debug, Copy, Clone)]
4015pub struct PF_FixedSliderDef {
4016    pub value: PF_Fixed,
4017    pub value_str: [A_char; 32usize],
4018    pub value_desc: [A_char; 32usize],
4019    pub valid_min: PF_Fixed,
4020    pub valid_max: PF_Fixed,
4021    pub slider_min: PF_Fixed,
4022    pub slider_max: PF_Fixed,
4023    pub dephault: PF_Fixed,
4024    pub precision: A_short,
4025    pub display_flags: PF_ValueDisplayFlags,
4026}
4027pub const PF_FSliderFlag_NONE: _bindgen_ty_39 = 0;
4028pub const PF_FSliderFlag_WANT_PHASE: _bindgen_ty_39 = 1;
4029pub type _bindgen_ty_39 = ::std::os::raw::c_uint;
4030pub type PF_FSliderFlags = A_u_long;
4031#[doc = " Floating Point Slider -- PF_Param_FLOAT_SLIDER"]
4032#[repr(C)]
4033#[derive(Debug, Copy, Clone)]
4034pub struct PF_FloatSliderDef {
4035    pub value: PF_FpLong,
4036    pub phase: PF_FpLong,
4037    pub value_desc: [A_char; 32usize],
4038    pub valid_min: PF_FpShort,
4039    pub valid_max: PF_FpShort,
4040    pub slider_min: PF_FpShort,
4041    pub slider_max: PF_FpShort,
4042    pub dephault: PF_FpShort,
4043    pub precision: A_short,
4044    pub display_flags: PF_ValueDisplayFlags,
4045    pub fs_flags: PF_FSliderFlags,
4046    pub curve_tolerance: PF_FpShort,
4047    pub useExponent: PF_Boolean,
4048    pub exponent: PF_FpShort,
4049}
4050#[doc = " Angle -- PF_Param_ANGLE"]
4051#[repr(C)]
4052#[derive(Debug, Copy, Clone)]
4053pub struct PF_AngleDef {
4054    pub value: PF_Fixed,
4055    pub dephault: PF_Fixed,
4056    pub valid_min: PF_Fixed,
4057    pub valid_max: PF_Fixed,
4058}
4059#[doc = " CheckBox -- PF_Param_CHECKBOX"]
4060#[repr(C)]
4061#[derive(Copy, Clone)]
4062pub struct PF_CheckBoxDef {
4063    pub value: PF_ParamValue,
4064    pub dephault: PF_Boolean,
4065    pub reserved: A_char,
4066    pub reserved1: A_short,
4067    pub u: PF_CheckBoxDef__bindgen_ty_1,
4068}
4069#[repr(C)]
4070#[derive(Copy, Clone)]
4071pub union PF_CheckBoxDef__bindgen_ty_1 {
4072    pub nameptr: *const A_char,
4073}
4074#[doc = " Color -- PF_Param_COLOR"]
4075#[repr(C)]
4076#[derive(Debug, Copy, Clone)]
4077pub struct PF_ColorDef {
4078    pub value: PF_UnionablePixel,
4079    pub dephault: PF_UnionablePixel,
4080}
4081#[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."]
4082#[repr(C)]
4083#[derive(Debug, Copy, Clone)]
4084pub struct PF_PointDef {
4085    pub x_value: PF_Fixed,
4086    pub y_value: PF_Fixed,
4087    pub reserved: [A_char; 3usize],
4088    pub restrict_bounds: PF_Boolean,
4089    pub x_dephault: PF_Fixed,
4090    pub y_dephault: PF_Fixed,
4091}
4092#[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)."]
4093#[repr(C)]
4094#[derive(Debug, Copy, Clone)]
4095pub struct PF_Point3DDef {
4096    pub x_value: PF_FpLong,
4097    pub y_value: PF_FpLong,
4098    pub z_value: PF_FpLong,
4099    pub x_dephault: PF_FpLong,
4100    pub y_dephault: PF_FpLong,
4101    pub z_dephault: PF_FpLong,
4102    pub reserved: [::std::os::raw::c_char; 16usize],
4103}
4104#[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"]
4105#[repr(C)]
4106#[derive(Copy, Clone)]
4107pub struct PF_PopupDef {
4108    pub value: PF_ParamValue,
4109    pub num_choices: A_short,
4110    pub dephault: A_short,
4111    pub u: PF_PopupDef__bindgen_ty_1,
4112}
4113#[repr(C)]
4114#[derive(Copy, Clone)]
4115pub union PF_PopupDef__bindgen_ty_1 {
4116    pub namesptr: *const A_char,
4117}
4118#[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"]
4119#[repr(C)]
4120#[derive(Copy, Clone)]
4121pub struct PF_ButtonDef {
4122    pub value: PF_ParamValue,
4123    pub u: PF_ButtonDef__bindgen_ty_1,
4124}
4125#[repr(C)]
4126#[derive(Copy, Clone)]
4127pub union PF_ButtonDef__bindgen_ty_1 {
4128    pub namesptr: *const A_char,
4129}
4130pub const PF_PathID_NONE: _bindgen_ty_40 = 0;
4131pub type _bindgen_ty_40 = ::std::os::raw::c_uint;
4132pub type PF_PathID = A_u_long;
4133pub const PF_MaskMode_NONE: _bindgen_ty_41 = 0;
4134pub const PF_MaskMode_ADD: _bindgen_ty_41 = 1;
4135pub const PF_MaskMode_SUBTRACT: _bindgen_ty_41 = 2;
4136pub const PF_MaskMode_INTERSECT: _bindgen_ty_41 = 3;
4137pub const PF_MaskMode_LIGHTEN: _bindgen_ty_41 = 4;
4138pub const PF_MaskMode_DARKEN: _bindgen_ty_41 = 5;
4139pub const PF_MaskMode_DIFFERENCE: _bindgen_ty_41 = 6;
4140pub const PF_MaskMode_ACCUM: _bindgen_ty_41 = 7;
4141pub const PF_NUM_MASKMODES: _bindgen_ty_41 = 8;
4142pub type _bindgen_ty_41 = ::std::os::raw::c_uint;
4143pub type PF_MaskMode = A_long;
4144#[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"]
4145#[repr(C)]
4146#[derive(Debug, Copy, Clone)]
4147pub struct PF_PathDef {
4148    pub path_id: PF_PathID,
4149    pub reserved0: A_long,
4150    pub dephault: A_long,
4151}
4152pub type PF_ArbitraryH = PF_Handle;
4153#[repr(C)]
4154#[derive(Debug, Copy, Clone)]
4155pub struct PF_ArbitraryDef {
4156    pub id: A_short,
4157    pub pad: A_short,
4158    pub dephault: PF_ArbitraryH,
4159    pub value: PF_ArbitraryH,
4160    pub refconPV: *mut ::std::os::raw::c_void,
4161}
4162pub const PF_Arbitrary_NEW_FUNC: _bindgen_ty_42 = 0;
4163pub const PF_Arbitrary_DISPOSE_FUNC: _bindgen_ty_42 = 1;
4164pub const PF_Arbitrary_COPY_FUNC: _bindgen_ty_42 = 2;
4165pub const PF_Arbitrary_FLAT_SIZE_FUNC: _bindgen_ty_42 = 3;
4166pub const PF_Arbitrary_FLATTEN_FUNC: _bindgen_ty_42 = 4;
4167pub const PF_Arbitrary_UNFLATTEN_FUNC: _bindgen_ty_42 = 5;
4168pub const PF_Arbitrary_INTERP_FUNC: _bindgen_ty_42 = 6;
4169pub const PF_Arbitrary_COMPARE_FUNC: _bindgen_ty_42 = 7;
4170pub const PF_Arbitrary_PRINT_SIZE_FUNC: _bindgen_ty_42 = 8;
4171pub const PF_Arbitrary_PRINT_FUNC: _bindgen_ty_42 = 9;
4172pub const PF_Arbitrary_SCAN_FUNC: _bindgen_ty_42 = 10;
4173pub type _bindgen_ty_42 = ::std::os::raw::c_uint;
4174pub type PF_FunctionSelector = A_long;
4175pub const PF_ArbCompare_EQUAL: _bindgen_ty_43 = 0;
4176pub const PF_ArbCompare_LESS: _bindgen_ty_43 = 1;
4177pub const PF_ArbCompare_MORE: _bindgen_ty_43 = 2;
4178pub const PF_ArbCompare_NOT_EQUAL: _bindgen_ty_43 = 3;
4179pub type _bindgen_ty_43 = ::std::os::raw::c_uint;
4180pub type PF_ArbCompareResult = A_long;
4181pub const PF_ArbPrint_NONE: _bindgen_ty_44 = 0;
4182pub const PF_ArbPrint_ABBREVIATED: _bindgen_ty_44 = 1;
4183pub type _bindgen_ty_44 = ::std::os::raw::c_uint;
4184pub type PF_ArbPrintFlags = A_long;
4185#[repr(C)]
4186#[derive(Copy, Clone)]
4187pub struct PF_ArbParamsExtra {
4188    pub which_function: PF_FunctionSelector,
4189    pub id: A_short,
4190    pub padding: A_short,
4191    pub u: PF_ArbParamsExtra__bindgen_ty_1,
4192}
4193#[repr(C)]
4194#[derive(Copy, Clone)]
4195pub union PF_ArbParamsExtra__bindgen_ty_1 {
4196    pub new_func_params: PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_1,
4197    pub dispose_func_params: PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_2,
4198    pub copy_func_params: PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_3,
4199    pub flat_size_func_params: PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_4,
4200    pub flatten_func_params: PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_5,
4201    pub unflatten_func_params: PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_6,
4202    pub interp_func_params: PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_7,
4203    pub compare_func_params: PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_8,
4204    pub print_size_func_params: PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_9,
4205    pub print_func_params: PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_10,
4206    pub scan_func_params: PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_11,
4207}
4208#[repr(C)]
4209#[derive(Debug, Copy, Clone)]
4210pub struct PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_1 {
4211    pub refconPV: *mut ::std::os::raw::c_void,
4212    pub arbPH: *mut PF_ArbitraryH,
4213}
4214#[repr(C)]
4215#[derive(Debug, Copy, Clone)]
4216pub struct PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_2 {
4217    pub refconPV: *mut ::std::os::raw::c_void,
4218    pub arbH: PF_ArbitraryH,
4219}
4220#[repr(C)]
4221#[derive(Debug, Copy, Clone)]
4222pub struct PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_3 {
4223    pub refconPV: *mut ::std::os::raw::c_void,
4224    pub src_arbH: PF_ArbitraryH,
4225    pub dst_arbPH: *mut PF_ArbitraryH,
4226}
4227#[repr(C)]
4228#[derive(Debug, Copy, Clone)]
4229pub struct PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_4 {
4230    pub refconPV: *mut ::std::os::raw::c_void,
4231    pub arbH: PF_ArbitraryH,
4232    pub flat_data_sizePLu: *mut A_u_long,
4233}
4234#[repr(C)]
4235#[derive(Debug, Copy, Clone)]
4236pub struct PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_5 {
4237    pub refconPV: *mut ::std::os::raw::c_void,
4238    pub arbH: PF_ArbitraryH,
4239    pub buf_sizeLu: A_u_long,
4240    pub flat_dataPV: *mut ::std::os::raw::c_void,
4241}
4242#[repr(C)]
4243#[derive(Debug, Copy, Clone)]
4244pub struct PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_6 {
4245    pub refconPV: *mut ::std::os::raw::c_void,
4246    pub buf_sizeLu: A_u_long,
4247    pub flat_dataPV: *const ::std::os::raw::c_void,
4248    pub arbPH: *mut PF_ArbitraryH,
4249}
4250#[repr(C)]
4251#[derive(Debug, Copy, Clone)]
4252pub struct PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_7 {
4253    pub refconPV: *mut ::std::os::raw::c_void,
4254    pub left_arbH: PF_ArbitraryH,
4255    pub right_arbH: PF_ArbitraryH,
4256    pub tF: PF_FpLong,
4257    pub interpPH: *mut PF_ArbitraryH,
4258}
4259#[repr(C)]
4260#[derive(Debug, Copy, Clone)]
4261pub struct PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_8 {
4262    pub refconPV: *mut ::std::os::raw::c_void,
4263    pub a_arbH: PF_ArbitraryH,
4264    pub b_arbH: PF_ArbitraryH,
4265    pub compareP: *mut PF_ArbCompareResult,
4266}
4267#[repr(C)]
4268#[derive(Debug, Copy, Clone)]
4269pub struct PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_9 {
4270    pub refconPV: *mut ::std::os::raw::c_void,
4271    pub arbH: PF_ArbitraryH,
4272    pub print_sizePLu: *mut A_u_long,
4273}
4274#[repr(C)]
4275#[derive(Debug, Copy, Clone)]
4276pub struct PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_10 {
4277    pub refconPV: *mut ::std::os::raw::c_void,
4278    pub print_flags: PF_ArbPrintFlags,
4279    pub arbH: PF_ArbitraryH,
4280    pub print_sizeLu: A_u_long,
4281    pub print_bufferPC: *mut A_char,
4282}
4283#[repr(C)]
4284#[derive(Debug, Copy, Clone)]
4285pub struct PF_ArbParamsExtra__bindgen_ty_1__bindgen_ty_11 {
4286    pub refconPV: *mut ::std::os::raw::c_void,
4287    pub bufPC: *const A_char,
4288    pub bytes_to_scanLu: A_u_long,
4289    pub arbPH: *mut PF_ArbitraryH,
4290}
4291#[repr(C)]
4292#[derive(Debug, Copy, Clone)]
4293pub struct PF_UserChangedParamExtra {
4294    pub param_index: PF_ParamIndex,
4295}
4296#[repr(C)]
4297#[derive(Debug, Copy, Clone)]
4298pub struct PF_ImporterPrefsData {
4299    _unused: [u8; 0],
4300}
4301pub type PF_ImporterPrefsDataPtr = *mut PF_ImporterPrefsData;
4302#[repr(C)]
4303#[derive(Debug, Copy, Clone)]
4304pub struct PF_TranslateParamsToPrefsExtra {
4305    pub prefsPC: PF_ImporterPrefsDataPtr,
4306    pub prefs_sizeLu: A_u_long,
4307}
4308pub const PF_DepCheckType_NONE: _bindgen_ty_45 = 0;
4309pub const PF_DepCheckType_ALL_DEPENDENCIES: _bindgen_ty_45 = 1;
4310pub const PF_DepCheckType_MISSING_DEPENDENCIES: _bindgen_ty_45 = 2;
4311pub type _bindgen_ty_45 = ::std::os::raw::c_uint;
4312pub type PF_DepCheckType = A_long;
4313#[repr(C)]
4314#[derive(Debug, Copy, Clone)]
4315pub struct PF_ExtDependenciesExtra {
4316    pub check_type: PF_DepCheckType,
4317    pub dependencies_strH: PF_Handle,
4318}
4319#[repr(C)]
4320#[derive(Copy, Clone)]
4321pub union PF_ParamDefUnion {
4322    pub ld: PF_LayerDef,
4323    pub sd: PF_SliderDef,
4324    pub fd: PF_FixedSliderDef,
4325    pub ad: PF_AngleDef,
4326    pub bd: PF_CheckBoxDef,
4327    pub cd: PF_ColorDef,
4328    pub td: PF_PointDef,
4329    pub pd: PF_PopupDef,
4330    pub fs_d: PF_FloatSliderDef,
4331    pub arb_d: PF_ArbitraryDef,
4332    pub path_d: PF_PathDef,
4333    pub button_d: PF_ButtonDef,
4334    pub point3d_d: PF_Point3DDef,
4335}
4336pub const PF_PUI_NONE: _bindgen_ty_46 = 0;
4337pub const PF_PUI_TOPIC: _bindgen_ty_46 = 1;
4338pub const PF_PUI_CONTROL: _bindgen_ty_46 = 2;
4339pub const PF_PUI_STD_CONTROL_ONLY: _bindgen_ty_46 = 4;
4340pub const PF_PUI_NO_ECW_UI: _bindgen_ty_46 = 8;
4341pub const PF_PUI_ECW_SEPARATOR: _bindgen_ty_46 = 16;
4342pub const PF_PUI_DISABLED: _bindgen_ty_46 = 32;
4343pub const PF_PUI_DONT_ERASE_TOPIC: _bindgen_ty_46 = 64;
4344pub const PF_PUI_DONT_ERASE_CONTROL: _bindgen_ty_46 = 128;
4345pub const PF_PUI_RADIO_BUTTON: _bindgen_ty_46 = 256;
4346pub const PF_PUI_INVISIBLE: _bindgen_ty_46 = 512;
4347pub const PF_PUI_RESERVED: _bindgen_ty_46 = 1024;
4348#[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."]
4349pub type _bindgen_ty_46 = ::std::os::raw::c_uint;
4350pub type PF_ParamUIFlags = A_long;
4351pub const PF_ChangeFlag_NONE: _bindgen_ty_47 = 0;
4352pub const PF_ChangeFlag_CHANGED_VALUE: _bindgen_ty_47 = 1;
4353pub const PF_ChangeFlag_RESERVED: _bindgen_ty_47 = 2;
4354pub const PF_ChangeFlag_SET_TO_VARY: _bindgen_ty_47 = 4;
4355pub const PF_ChangeFlag_SET_TO_CONSTANT: _bindgen_ty_47 = 8;
4356#[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."]
4357pub type _bindgen_ty_47 = ::std::os::raw::c_uint;
4358pub type PF_ChangeFlags = A_long;
4359#[doc = " ParamDef"]
4360#[repr(C)]
4361#[derive(Copy, Clone)]
4362pub struct PF_ParamDef {
4363    pub uu: PF_ParamDef__bindgen_ty_1,
4364    pub ui_flags: PF_ParamUIFlags,
4365    pub ui_width: A_short,
4366    pub ui_height: A_short,
4367    pub param_type: PF_ParamType,
4368    pub name: [A_char; 32usize],
4369    pub flags: PF_ParamFlags,
4370    pub unused: A_long,
4371    pub u: PF_ParamDefUnion,
4372}
4373#[repr(C)]
4374#[derive(Copy, Clone)]
4375pub union PF_ParamDef__bindgen_ty_1 {
4376    pub id: A_long,
4377    pub change_flags: PF_ChangeFlags,
4378}
4379#[doc = " ParamDef"]
4380pub type PF_ParamDefPtr = *mut PF_ParamDef;
4381#[doc = " ParamDef"]
4382pub type PF_ParamDefH = *mut *mut PF_ParamDef;
4383pub type PF_ParamList = *mut *mut PF_ParamDef;
4384pub const PF_ChannelMask_ALPHA: _bindgen_ty_48 = 1;
4385pub const PF_ChannelMask_RED: _bindgen_ty_48 = 2;
4386pub const PF_ChannelMask_GREEN: _bindgen_ty_48 = 4;
4387pub const PF_ChannelMask_BLUE: _bindgen_ty_48 = 8;
4388pub const PF_ChannelMask_ARGB: _bindgen_ty_48 = 15;
4389#[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"]
4390pub type _bindgen_ty_48 = ::std::os::raw::c_uint;
4391pub type PF_ChannelMask = A_long;
4392pub const PF_GPU_Framework_NONE: _bindgen_ty_49 = 0;
4393pub const PF_GPU_Framework_OPENCL: _bindgen_ty_49 = 1;
4394pub const PF_GPU_Framework_METAL: _bindgen_ty_49 = 2;
4395pub const PF_GPU_Framework_CUDA: _bindgen_ty_49 = 3;
4396pub const PF_GPU_Framework_DIRECTX: _bindgen_ty_49 = 4;
4397pub type _bindgen_ty_49 = ::std::os::raw::c_uint;
4398pub type PF_GPU_Framework = A_long;
4399#[repr(C)]
4400#[derive(Debug, Copy, Clone)]
4401pub struct PF_RenderRequest {
4402    pub rect: PF_LRect,
4403    pub field: PF_Field,
4404    pub channel_mask: PF_ChannelMask,
4405    pub preserve_rgb_of_zero_alpha: PF_Boolean,
4406    pub unused: [::std::os::raw::c_char; 3usize],
4407    pub reserved: [A_long; 4usize],
4408}
4409#[repr(C)]
4410#[derive(Debug, Copy, Clone)]
4411pub struct PF_PreRenderInput {
4412    pub output_request: PF_RenderRequest,
4413    pub bitdepth: ::std::os::raw::c_short,
4414    pub gpu_data: *const ::std::os::raw::c_void,
4415    pub what_gpu: PF_GPU_Framework,
4416    pub device_index: A_u_long,
4417}
4418pub type PF_DeletePreRenderDataFunc =
4419    ::std::option::Option<unsafe extern "C" fn(pre_render_data: *mut ::std::os::raw::c_void)>;
4420pub const PF_RenderOutputFlag_RETURNS_EXTRA_PIXELS: _bindgen_ty_50 = 1;
4421pub const PF_RenderOutputFlag_GPU_RENDER_POSSIBLE: _bindgen_ty_50 = 2;
4422pub const PF_RenderOutputFlag_RESERVED1: _bindgen_ty_50 = 4;
4423pub type _bindgen_ty_50 = ::std::os::raw::c_uint;
4424pub type PF_RenderOutputFlags = ::std::os::raw::c_short;
4425#[repr(C)]
4426#[derive(Debug, Copy, Clone)]
4427pub struct PF_PreRenderOutput {
4428    pub result_rect: PF_LRect,
4429    pub max_result_rect: PF_LRect,
4430    pub solid: PF_Boolean,
4431    pub reserved: PF_Boolean,
4432    pub flags: PF_RenderOutputFlags,
4433    pub pre_render_data: *mut ::std::os::raw::c_void,
4434    pub delete_pre_render_data_func: PF_DeletePreRenderDataFunc,
4435}
4436#[repr(C)]
4437#[derive(Debug, Copy, Clone)]
4438pub struct PF_CheckoutResult {
4439    pub result_rect: PF_LRect,
4440    pub max_result_rect: PF_LRect,
4441    pub par: PF_RationalScale,
4442    pub solid: PF_Boolean,
4443    pub reservedB: [PF_Boolean; 3usize],
4444    pub ref_width: A_long,
4445    pub ref_height: A_long,
4446    pub reserved: [A_long; 6usize],
4447}
4448#[repr(C)]
4449#[derive(Debug, Copy, Clone)]
4450pub struct PF_PreRenderCallbacks {
4451    pub checkout_layer: ::std::option::Option<
4452        unsafe extern "C" fn(
4453            effect_ref: PF_ProgPtr,
4454            index: PF_ParamIndex,
4455            checkout_idL: A_long,
4456            req: *const PF_RenderRequest,
4457            what_time: A_long,
4458            time_step: A_long,
4459            time_scale: A_u_long,
4460            checkout_result: *mut PF_CheckoutResult,
4461        ) -> PF_Err,
4462    >,
4463    pub GuidMixInPtr: ::std::option::Option<
4464        unsafe extern "C" fn(
4465            effect_ref: PF_ProgPtr,
4466            buf_sizeLu: A_u_long,
4467            buf: *const ::std::os::raw::c_void,
4468        ) -> PF_Err,
4469    >,
4470}
4471#[repr(C)]
4472#[derive(Debug, Copy, Clone)]
4473pub struct PF_PreRenderExtra {
4474    pub input: *mut PF_PreRenderInput,
4475    pub output: *mut PF_PreRenderOutput,
4476    pub cb: *mut PF_PreRenderCallbacks,
4477}
4478#[repr(C)]
4479#[derive(Debug, Copy, Clone)]
4480pub struct PF_SmartRenderInput {
4481    pub output_request: PF_RenderRequest,
4482    pub bitdepth: ::std::os::raw::c_short,
4483    pub pre_render_data: *mut ::std::os::raw::c_void,
4484    pub gpu_data: *const ::std::os::raw::c_void,
4485    pub what_gpu: PF_GPU_Framework,
4486    pub device_index: A_u_long,
4487}
4488#[repr(C)]
4489#[derive(Debug, Copy, Clone)]
4490pub struct PF_SmartRenderCallbacks {
4491    pub checkout_layer_pixels: ::std::option::Option<
4492        unsafe extern "C" fn(
4493            effect_ref: PF_ProgPtr,
4494            checkout_idL: A_long,
4495            pixels: *mut *mut PF_EffectWorld,
4496        ) -> PF_Err,
4497    >,
4498    pub checkin_layer_pixels: ::std::option::Option<
4499        unsafe extern "C" fn(effect_ref: PF_ProgPtr, checkout_idL: A_long) -> PF_Err,
4500    >,
4501    pub checkout_output: ::std::option::Option<
4502        unsafe extern "C" fn(effect_ref: PF_ProgPtr, output: *mut *mut PF_EffectWorld) -> PF_Err,
4503    >,
4504}
4505#[repr(C)]
4506#[derive(Debug, Copy, Clone)]
4507pub struct PF_SmartRenderExtra {
4508    pub input: *mut PF_SmartRenderInput,
4509    pub cb: *mut PF_SmartRenderCallbacks,
4510}
4511#[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"]
4512#[repr(C)]
4513#[derive(Debug, Copy, Clone)]
4514pub struct PF_GPUDeviceSetupInput {
4515    pub what_gpu: PF_GPU_Framework,
4516    pub device_index: A_u_long,
4517}
4518#[repr(C)]
4519#[derive(Debug, Copy, Clone)]
4520pub struct PF_GPUDeviceSetupOutput {
4521    pub gpu_data: *mut ::std::os::raw::c_void,
4522}
4523#[repr(C)]
4524#[derive(Debug, Copy, Clone)]
4525pub struct PF_GPUDeviceSetupExtra {
4526    pub input: *mut PF_GPUDeviceSetupInput,
4527    pub output: *mut PF_GPUDeviceSetupOutput,
4528}
4529#[repr(C)]
4530#[derive(Debug, Copy, Clone)]
4531pub struct PF_GPUDeviceSetdownInput {
4532    pub gpu_data: *mut ::std::os::raw::c_void,
4533    pub what_gpu: PF_GPU_Framework,
4534    pub device_index: A_u_long,
4535}
4536#[repr(C)]
4537#[derive(Debug, Copy, Clone)]
4538pub struct PF_GPUDeviceSetdownExtra {
4539    pub input: *mut PF_GPUDeviceSetdownInput,
4540}
4541#[repr(C)]
4542#[derive(Debug, Copy, Clone)]
4543pub struct _PF_CustomUIInfo {
4544    _unused: [u8; 0],
4545}
4546#[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."]
4547pub type PF_CustomUIInfo = _PF_CustomUIInfo;
4548#[repr(C)]
4549#[derive(Debug, Copy, Clone)]
4550pub struct PF_InteractCallbacks {
4551    pub checkout_param: ::std::option::Option<
4552        unsafe extern "C" fn(
4553            effect_ref: PF_ProgPtr,
4554            index: PF_ParamIndex,
4555            what_time: A_long,
4556            time_step: A_long,
4557            time_scale: A_u_long,
4558            param: *mut PF_ParamDef,
4559        ) -> PF_Err,
4560    >,
4561    pub checkin_param: ::std::option::Option<
4562        unsafe extern "C" fn(effect_ref: PF_ProgPtr, param: *mut PF_ParamDef) -> PF_Err,
4563    >,
4564    pub add_param: ::std::option::Option<
4565        unsafe extern "C" fn(
4566            effect_ref: PF_ProgPtr,
4567            index: PF_ParamIndex,
4568            def: PF_ParamDefPtr,
4569        ) -> PF_Err,
4570    >,
4571    pub abort: ::std::option::Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr) -> PF_Err>,
4572    pub progress: ::std::option::Option<
4573        unsafe extern "C" fn(effect_ref: PF_ProgPtr, current: A_long, total: A_long) -> PF_Err,
4574    >,
4575    pub register_ui: ::std::option::Option<
4576        unsafe extern "C" fn(effect_ref: PF_ProgPtr, cust_info: *mut PF_CustomUIInfo) -> PF_Err,
4577    >,
4578    pub checkout_layer_audio: ::std::option::Option<
4579        unsafe extern "C" fn(
4580            effect_ref: PF_ProgPtr,
4581            index: PF_ParamIndex,
4582            start_time: A_long,
4583            duration: A_long,
4584            time_scale: A_u_long,
4585            rate: PF_UFixed,
4586            bytes_per_sample: A_long,
4587            num_channels: A_long,
4588            fmt_signed: A_long,
4589            audio: *mut PF_LayerAudio,
4590        ) -> PF_Err,
4591    >,
4592    pub checkin_layer_audio: ::std::option::Option<
4593        unsafe extern "C" fn(effect_ref: PF_ProgPtr, audio: PF_LayerAudio) -> PF_Err,
4594    >,
4595    pub get_audio_data: ::std::option::Option<
4596        unsafe extern "C" fn(
4597            effect_ref: PF_ProgPtr,
4598            audio: PF_LayerAudio,
4599            data0: *mut PF_SndSamplePtr,
4600            num_samples0: *mut A_long,
4601            rate0: *mut PF_UFixed,
4602            bytes_per_sample0: *mut A_long,
4603            num_channels0: *mut A_long,
4604            fmt_signed0: *mut A_long,
4605        ) -> PF_Err,
4606    >,
4607    pub reserved_str: [*mut ::std::os::raw::c_void; 3usize],
4608    pub reserved: [*mut ::std::os::raw::c_void; 10usize],
4609}
4610#[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)."]
4611#[repr(C)]
4612#[derive(Copy, Clone)]
4613pub struct PF_OutData {
4614    pub my_version: A_u_long,
4615    pub name: [A_char; 32usize],
4616    pub global_data: PF_Handle,
4617    pub num_params: A_long,
4618    pub sequence_data: PF_Handle,
4619    pub flat_sdata_size: A_long,
4620    pub frame_data: PF_Handle,
4621    pub width: A_long,
4622    pub height: A_long,
4623    pub origin: PF_Point,
4624    pub out_flags: PF_OutFlags,
4625    pub return_msg: [A_char; 256usize],
4626    pub start_sampL: A_long,
4627    pub dur_sampL: A_long,
4628    pub dest_snd: PF_SoundWorld,
4629    pub out_flags2: PF_OutFlags2,
4630}
4631#[repr(C)]
4632#[derive(Debug, Copy, Clone)]
4633pub struct PF_InData {
4634    pub inter: PF_InteractCallbacks,
4635    pub utils: *mut _PF_UtilCallbacks,
4636    pub effect_ref: PF_ProgPtr,
4637    pub quality: PF_Quality,
4638    pub version: PF_SpecVersion,
4639    pub serial_num: A_long,
4640    pub appl_id: A_long,
4641    pub num_params: A_long,
4642    pub reserved: A_long,
4643    pub what_cpu: A_long,
4644    pub what_fpu: A_long,
4645    pub current_time: A_long,
4646    pub time_step: A_long,
4647    pub total_time: A_long,
4648    pub local_time_step: A_long,
4649    pub time_scale: A_u_long,
4650    pub field: PF_Field,
4651    pub shutter_angle: PF_Fixed,
4652    pub width: A_long,
4653    pub height: A_long,
4654    pub extent_hint: PF_Rect,
4655    pub output_origin_x: A_long,
4656    pub output_origin_y: A_long,
4657    pub downsample_x: PF_RationalScale,
4658    pub downsample_y: PF_RationalScale,
4659    pub pixel_aspect_ratio: PF_RationalScale,
4660    pub in_flags: PF_InFlags,
4661    pub global_data: PF_Handle,
4662    pub sequence_data: PF_Handle,
4663    pub frame_data: PF_Handle,
4664    pub start_sampL: A_long,
4665    pub dur_sampL: A_long,
4666    pub total_sampL: A_long,
4667    pub src_snd: PF_SoundWorld,
4668    pub pica_basicP: *mut SPBasicSuite,
4669    pub pre_effect_source_origin_x: A_long,
4670    pub pre_effect_source_origin_y: A_long,
4671    pub shutter_phase: PF_Fixed,
4672}
4673#[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!"]
4674pub type PF_FilterProc = ::std::option::Option<
4675    unsafe extern "C" fn(
4676        cmd: PF_Cmd,
4677        in_data: *mut PF_InData,
4678        out_data: *mut PF_OutData,
4679        params: PF_ParamList,
4680        output: *mut PF_LayerDef,
4681        extra: *mut ::std::os::raw::c_void,
4682    ) -> PF_Err,
4683>;
4684pub type PF_KernelFlags = A_u_long;
4685pub const PF_SampleEdgeBehav_ZERO: _bindgen_ty_51 = 0;
4686#[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"]
4687pub type _bindgen_ty_51 = ::std::os::raw::c_uint;
4688pub type PF_SampleEdgeBehav = A_u_long;
4689pub const PF_Xfer_NONE: _bindgen_ty_52 = -1;
4690pub const PF_Xfer_COPY: _bindgen_ty_52 = 0;
4691pub const PF_Xfer_BEHIND: _bindgen_ty_52 = 1;
4692pub const PF_Xfer_IN_FRONT: _bindgen_ty_52 = 2;
4693pub const PF_Xfer_DISSOLVE: _bindgen_ty_52 = 3;
4694pub const PF_Xfer_ADD: _bindgen_ty_52 = 4;
4695pub const PF_Xfer_MULTIPLY: _bindgen_ty_52 = 5;
4696pub const PF_Xfer_SCREEN: _bindgen_ty_52 = 6;
4697pub const PF_Xfer_OVERLAY: _bindgen_ty_52 = 7;
4698pub const PF_Xfer_SOFT_LIGHT: _bindgen_ty_52 = 8;
4699pub const PF_Xfer_HARD_LIGHT: _bindgen_ty_52 = 9;
4700pub const PF_Xfer_DARKEN: _bindgen_ty_52 = 10;
4701pub const PF_Xfer_LIGHTEN: _bindgen_ty_52 = 11;
4702pub const PF_Xfer_DIFFERENCE: _bindgen_ty_52 = 12;
4703pub const PF_Xfer_HUE: _bindgen_ty_52 = 13;
4704pub const PF_Xfer_SATURATION: _bindgen_ty_52 = 14;
4705pub const PF_Xfer_COLOR: _bindgen_ty_52 = 15;
4706pub const PF_Xfer_LUMINOSITY: _bindgen_ty_52 = 16;
4707pub const PF_Xfer_MULTIPLY_ALPHA: _bindgen_ty_52 = 17;
4708pub const PF_Xfer_MULTIPLY_ALPHA_LUMA: _bindgen_ty_52 = 18;
4709pub const PF_Xfer_MULTIPLY_NOT_ALPHA: _bindgen_ty_52 = 19;
4710pub const PF_Xfer_MULTIPLY_NOT_ALPHA_LUMA: _bindgen_ty_52 = 20;
4711pub const PF_Xfer_ADDITIVE_PREMUL: _bindgen_ty_52 = 21;
4712pub const PF_Xfer_ALPHA_ADD: _bindgen_ty_52 = 22;
4713pub const PF_Xfer_COLOR_DODGE: _bindgen_ty_52 = 23;
4714pub const PF_Xfer_COLOR_BURN: _bindgen_ty_52 = 24;
4715pub const PF_Xfer_EXCLUSION: _bindgen_ty_52 = 25;
4716pub const PF_Xfer_DIFFERENCE2: _bindgen_ty_52 = 26;
4717pub const PF_Xfer_COLOR_DODGE2: _bindgen_ty_52 = 27;
4718pub const PF_Xfer_COLOR_BURN2: _bindgen_ty_52 = 28;
4719pub const PF_Xfer_LINEAR_DODGE: _bindgen_ty_52 = 29;
4720pub const PF_Xfer_LINEAR_BURN: _bindgen_ty_52 = 30;
4721pub const PF_Xfer_LINEAR_LIGHT: _bindgen_ty_52 = 31;
4722pub const PF_Xfer_VIVID_LIGHT: _bindgen_ty_52 = 32;
4723pub const PF_Xfer_PIN_LIGHT: _bindgen_ty_52 = 33;
4724pub const PF_Xfer_HARD_MIX: _bindgen_ty_52 = 34;
4725pub const PF_Xfer_LIGHTER_COLOR: _bindgen_ty_52 = 35;
4726pub const PF_Xfer_DARKER_COLOR: _bindgen_ty_52 = 36;
4727pub const PF_Xfer_SUBTRACT: _bindgen_ty_52 = 37;
4728pub const PF_Xfer_DIVIDE: _bindgen_ty_52 = 38;
4729pub const PF_Xfer_RESERVED0: _bindgen_ty_52 = 39;
4730pub const PF_Xfer_RESERVED1: _bindgen_ty_52 = 40;
4731pub const PF_Xfer_NUM_MODES: _bindgen_ty_52 = 41;
4732pub type _bindgen_ty_52 = ::std::os::raw::c_int;
4733pub const PF_Xfer_TINT: _bindgen_ty_53 = 29;
4734pub const PF_Xfer_SHADE: _bindgen_ty_53 = 30;
4735pub const PF_Xfer_INTENSE_LIGHT: _bindgen_ty_53 = 32;
4736pub type _bindgen_ty_53 = ::std::os::raw::c_uint;
4737pub const PF_MaskFlag_NONE: _bindgen_ty_54 = 0;
4738pub const PF_MaskFlag_INVERTED: _bindgen_ty_54 = 1;
4739pub const PF_MaskFlag_LUMINANCE: _bindgen_ty_54 = 2;
4740pub type _bindgen_ty_54 = ::std::os::raw::c_uint;
4741pub type PF_MaskFlags = A_long;
4742#[repr(C)]
4743#[derive(Copy, Clone)]
4744pub struct PF_MaskWorld {
4745    pub mask: PF_EffectWorld,
4746    pub offset: PF_Point,
4747    pub what_is_mask: PF_MaskFlags,
4748}
4749#[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."]
4750#[repr(C)]
4751#[derive(Debug, Copy, Clone)]
4752pub struct PF_SampPB {
4753    pub x_radius: PF_Fixed,
4754    pub y_radius: PF_Fixed,
4755    pub area: PF_Fixed,
4756    pub src: *mut PF_EffectWorld,
4757    pub samp_behave: PF_SampleEdgeBehav,
4758    pub allow_asynch: A_long,
4759    pub motion_blur: A_long,
4760    pub comp_mode: PF_CompositeMode,
4761    pub mask0: PF_PixelPtr,
4762    pub fcm_table: *mut A_u_char,
4763    pub fcd_table: *mut A_u_char,
4764    pub reserved: [A_long; 8usize],
4765}
4766pub const PF_Callback_NONE: _bindgen_ty_55 = 0;
4767pub const PF_Callback_BEGIN_SAMPLING: _bindgen_ty_55 = 1;
4768pub const PF_Callback_SUBPIXEL_SAMPLE: _bindgen_ty_55 = 2;
4769pub const PF_Callback_AREA_SAMPLE: _bindgen_ty_55 = 3;
4770pub const PF_Callback_OBSOLETE0: _bindgen_ty_55 = 4;
4771pub const PF_Callback_END_SAMPLING: _bindgen_ty_55 = 5;
4772pub const PF_Callback_COMPOSITE_RECT: _bindgen_ty_55 = 6;
4773pub const PF_Callback_BLEND: _bindgen_ty_55 = 7;
4774pub const PF_Callback_CONVOLVE: _bindgen_ty_55 = 8;
4775pub const PF_Callback_COPY: _bindgen_ty_55 = 9;
4776pub const PF_Callback_FILL: _bindgen_ty_55 = 10;
4777pub const PF_Callback_GAUSSIAN: _bindgen_ty_55 = 11;
4778pub const PF_Callback_ITERATE: _bindgen_ty_55 = 12;
4779pub const PF_Callback_PREMUL: _bindgen_ty_55 = 13;
4780pub const PF_Callback_PREMUL_COLOR: _bindgen_ty_55 = 14;
4781pub const PF_Callback_RGB_TO_HLS: _bindgen_ty_55 = 15;
4782pub const PF_Callback_HLS_TO_RGB: _bindgen_ty_55 = 16;
4783pub const PF_Callback_RGB_TO_YIQ: _bindgen_ty_55 = 17;
4784pub const PF_Callback_YIQ_TO_RGB: _bindgen_ty_55 = 18;
4785pub const PF_Callback_LUMINANCE: _bindgen_ty_55 = 19;
4786pub const PF_Callback_HUE: _bindgen_ty_55 = 20;
4787pub const PF_Callback_LIGHTNESS: _bindgen_ty_55 = 21;
4788pub const PF_Callback_SATURATION: _bindgen_ty_55 = 22;
4789pub const PF_Callback_NEW_WORLD: _bindgen_ty_55 = 23;
4790pub const PF_Callback_DISPOSE_WORLD: _bindgen_ty_55 = 24;
4791pub const PF_Callback_ITERATE_ORIGIN: _bindgen_ty_55 = 25;
4792pub const PF_Callback_ITERATE_LUT: _bindgen_ty_55 = 26;
4793pub const PF_Callback_TRANSFER_RECT: _bindgen_ty_55 = 27;
4794pub const PF_Callback_TRANSFORM_WORLD: _bindgen_ty_55 = 28;
4795pub const PF_Callback_ITERATE_ORIGIN_NON_CLIP_SRC: _bindgen_ty_55 = 29;
4796pub const PF_Callback_ITERATE_GENERIC: _bindgen_ty_55 = 30;
4797pub const PF_Callback_SUBPIXEL_SAMPLE16: _bindgen_ty_55 = 31;
4798pub const PF_Callback_AREA_SAMPLE16: _bindgen_ty_55 = 32;
4799pub const PF_Callback_FILL16: _bindgen_ty_55 = 33;
4800pub const PF_Callback_PREMUL_COLOR16: _bindgen_ty_55 = 34;
4801pub const PF_Callback_ITERATE16: _bindgen_ty_55 = 35;
4802pub const PF_Callback_ITERATE_ORIGIN16: _bindgen_ty_55 = 36;
4803pub const PF_Callback_ITERATE_ORIGIN_NON_CLIP_SRC16: _bindgen_ty_55 = 37;
4804pub const PF_Callback_ITERATE_GENERIC_NO_MAX_THREADS: _bindgen_ty_55 = 38;
4805pub const PF_Callback_ITERATE_NO_MAX_THREADS: _bindgen_ty_55 = 39;
4806pub const PF_Callback_ITERATE_ORIGIN_NO_MAX_THREADS: _bindgen_ty_55 = 40;
4807pub const PF_Callback_ITERATE_ORIGIN_NON_CLIP_SRC_NO_MAX_THREADS: _bindgen_ty_55 = 41;
4808pub const PF_Callback_ITERATE16_NO_MAX_THREADS: _bindgen_ty_55 = 42;
4809pub const PF_Callback_ITERATE_ORIGIN16_NO_MAX_THREADS: _bindgen_ty_55 = 43;
4810pub const PF_Callback_ITERATE_ORIGIN_NON_CLIP_SRC16_NO_MAX_THREADS: _bindgen_ty_55 = 44;
4811#[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."]
4812pub type _bindgen_ty_55 = ::std::os::raw::c_uint;
4813pub type PF_CallbackID = A_long;
4814#[repr(C)]
4815#[derive(Debug, Copy, Clone)]
4816pub struct PF_YouMustCastThisToActualFunctionType {
4817    _unused: [u8; 0],
4818}
4819#[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"]
4820pub type PF_CallbackFunc = *mut PF_YouMustCastThisToActualFunctionType;
4821pub const PF_PlatData_MAIN_WND: _bindgen_ty_56 = 0;
4822pub const PF_PlatData_EXE_FILE_PATH_DEPRECATED: _bindgen_ty_56 = 1;
4823pub const PF_PlatData_RES_FILE_PATH_DEPRECATED: _bindgen_ty_56 = 2;
4824pub const PF_PlatData_RES_REFNUM: _bindgen_ty_56 = 3;
4825pub const PF_PlatData_RES_DLLINSTANCE: _bindgen_ty_56 = 4;
4826pub const PF_PlatData_SP_PLUG_REF: _bindgen_ty_56 = 5;
4827pub const PF_PlatData_BUNDLE_REF: _bindgen_ty_56 = 6;
4828pub const PF_PlatData_EXE_FILE_PATH_W: _bindgen_ty_56 = 7;
4829pub const PF_PlatData_RES_FILE_PATH_W: _bindgen_ty_56 = 8;
4830pub type _bindgen_ty_56 = ::std::os::raw::c_uint;
4831pub type PF_PlatDataID = A_long;
4832pub const PF_Plane_ALPHA: _bindgen_ty_57 = 1;
4833pub const PF_Plane_RED: _bindgen_ty_57 = 2;
4834pub const PF_Plane_GREEN: _bindgen_ty_57 = 4;
4835pub const PF_Plane_BLUE: _bindgen_ty_57 = 8;
4836#[doc = " ---------- Image Plane Selectors ----------\n\nThese constants can be used to specify a subset\nof the planes of the 32-bit image."]
4837pub type _bindgen_ty_57 = ::std::os::raw::c_uint;
4838pub type PF_Plane = A_u_long;
4839#[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."]
4840#[repr(C)]
4841#[derive(Debug, Copy, Clone)]
4842pub struct PF_ANSICallbacks {
4843    pub atan: ::std::option::Option<unsafe extern "C" fn(arg1: A_FpLong) -> A_FpLong>,
4844    pub atan2: ::std::option::Option<unsafe extern "C" fn(y: A_FpLong, x: A_FpLong) -> A_FpLong>,
4845    pub ceil: ::std::option::Option<unsafe extern "C" fn(arg1: A_FpLong) -> A_FpLong>,
4846    pub cos: ::std::option::Option<unsafe extern "C" fn(arg1: A_FpLong) -> A_FpLong>,
4847    pub exp: ::std::option::Option<unsafe extern "C" fn(arg1: A_FpLong) -> A_FpLong>,
4848    pub fabs: ::std::option::Option<unsafe extern "C" fn(arg1: A_FpLong) -> A_FpLong>,
4849    pub floor: ::std::option::Option<unsafe extern "C" fn(arg1: A_FpLong) -> A_FpLong>,
4850    pub fmod: ::std::option::Option<unsafe extern "C" fn(x: A_FpLong, y: A_FpLong) -> A_FpLong>,
4851    pub hypot: ::std::option::Option<unsafe extern "C" fn(x: A_FpLong, y: A_FpLong) -> A_FpLong>,
4852    pub log: ::std::option::Option<unsafe extern "C" fn(arg1: A_FpLong) -> A_FpLong>,
4853    pub log10: ::std::option::Option<unsafe extern "C" fn(arg1: A_FpLong) -> A_FpLong>,
4854    pub pow: ::std::option::Option<unsafe extern "C" fn(x: A_FpLong, y: A_FpLong) -> A_FpLong>,
4855    pub sin: ::std::option::Option<unsafe extern "C" fn(arg1: A_FpLong) -> A_FpLong>,
4856    pub sqrt: ::std::option::Option<unsafe extern "C" fn(arg1: A_FpLong) -> A_FpLong>,
4857    pub tan: ::std::option::Option<unsafe extern "C" fn(arg1: A_FpLong) -> A_FpLong>,
4858    pub sprintf: ::std::option::Option<
4859        unsafe extern "C" fn(arg1: *mut A_char, arg2: *const A_char, ...) -> ::std::os::raw::c_int,
4860    >,
4861    pub strcpy: ::std::option::Option<
4862        unsafe extern "C" fn(arg1: *mut A_char, arg2: *const A_char) -> *mut A_char,
4863    >,
4864    pub asin: ::std::option::Option<unsafe extern "C" fn(arg1: A_FpLong) -> A_FpLong>,
4865    pub acos: ::std::option::Option<unsafe extern "C" fn(arg1: A_FpLong) -> A_FpLong>,
4866    pub ansi_procs: [A_long; 1usize],
4867}
4868#[doc = " ---------- Colorspace Conversion Callbacks\n"]
4869#[repr(C)]
4870#[derive(Debug, Copy, Clone)]
4871pub struct PF_ColorCallbacks {
4872    pub RGBtoHLS: ::std::option::Option<
4873        unsafe extern "C" fn(
4874            effect_ref: PF_ProgPtr,
4875            rgb: *mut PF_Pixel,
4876            hls: *mut PF_Fixed,
4877        ) -> PF_Err,
4878    >,
4879    pub HLStoRGB: ::std::option::Option<
4880        unsafe extern "C" fn(
4881            effect_ref: PF_ProgPtr,
4882            hls: *mut PF_Fixed,
4883            rgb: *mut PF_Pixel,
4884        ) -> PF_Err,
4885    >,
4886    pub RGBtoYIQ: ::std::option::Option<
4887        unsafe extern "C" fn(
4888            effect_ref: PF_ProgPtr,
4889            rgb: *mut PF_Pixel,
4890            yiq: *mut PF_Fixed,
4891        ) -> PF_Err,
4892    >,
4893    pub YIQtoRGB: ::std::option::Option<
4894        unsafe extern "C" fn(
4895            effect_ref: PF_ProgPtr,
4896            yiq: *mut PF_Fixed,
4897            rgb: *mut PF_Pixel,
4898        ) -> PF_Err,
4899    >,
4900    pub Luminance: ::std::option::Option<
4901        unsafe extern "C" fn(
4902            effect_ref: PF_ProgPtr,
4903            rgb: *mut PF_Pixel,
4904            lum100: *mut A_long,
4905        ) -> PF_Err,
4906    >,
4907    pub Hue: ::std::option::Option<
4908        unsafe extern "C" fn(
4909            effect_ref: PF_ProgPtr,
4910            rgb: *mut PF_Pixel,
4911            hue: *mut A_long,
4912        ) -> PF_Err,
4913    >,
4914    pub Lightness: ::std::option::Option<
4915        unsafe extern "C" fn(
4916            effect_ref: PF_ProgPtr,
4917            rgb: *mut PF_Pixel,
4918            lightness: *mut A_long,
4919        ) -> PF_Err,
4920    >,
4921    pub Saturation: ::std::option::Option<
4922        unsafe extern "C" fn(
4923            effect_ref: PF_ProgPtr,
4924            rgb: *mut PF_Pixel,
4925            saturation: *mut A_long,
4926        ) -> PF_Err,
4927    >,
4928}
4929pub type PF_BatchSampleFunc = *mut ::std::os::raw::c_void;
4930pub type PF_BatchSample16Func = *mut ::std::os::raw::c_void;
4931pub const PF_NewWorldFlag_NONE: _bindgen_ty_58 = 0;
4932pub const PF_NewWorldFlag_CLEAR_PIXELS: _bindgen_ty_58 = 1;
4933pub const PF_NewWorldFlag_DEEP_PIXELS: _bindgen_ty_58 = 2;
4934pub const PF_NewWorldFlag_RESERVED0: _bindgen_ty_58 = 4;
4935pub const PF_NewWorldFlag_RESERVED1: _bindgen_ty_58 = 8;
4936pub type _bindgen_ty_58 = ::std::os::raw::c_uint;
4937pub type PF_NewWorldFlags = A_long;
4938#[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"]
4939pub type PF_IteratePixel8Func = ::std::option::Option<
4940    unsafe extern "C" fn(
4941        refconP: *mut ::std::os::raw::c_void,
4942        xL: A_long,
4943        yL: A_long,
4944        inP: *mut PF_Pixel,
4945        outP: *mut PF_Pixel,
4946    ) -> PF_Err,
4947>;
4948pub type PF_IteratePixel16Func = ::std::option::Option<
4949    unsafe extern "C" fn(
4950        refconP: *mut ::std::os::raw::c_void,
4951        xL: A_long,
4952        yL: A_long,
4953        inP: *mut PF_Pixel16,
4954        outP: *mut PF_Pixel16,
4955    ) -> PF_Err,
4956>;
4957pub type PF_IteratePixelFloatFunc = ::std::option::Option<
4958    unsafe extern "C" fn(
4959        refconP: *mut ::std::os::raw::c_void,
4960        xL: A_long,
4961        yL: A_long,
4962        inP: *mut PF_PixelFloat,
4963        outP: *mut PF_PixelFloat,
4964    ) -> PF_Err,
4965>;
4966#[repr(C)]
4967#[derive(Debug, Copy, Clone)]
4968pub struct _PF_UtilCallbacks {
4969    pub begin_sampling: ::std::option::Option<
4970        unsafe extern "C" fn(
4971            effect_ref: PF_ProgPtr,
4972            qual: PF_Quality,
4973            mf: PF_ModeFlags,
4974            params: *mut PF_SampPB,
4975        ) -> PF_Err,
4976    >,
4977    pub subpixel_sample: ::std::option::Option<
4978        unsafe extern "C" fn(
4979            effect_ref: PF_ProgPtr,
4980            x: PF_Fixed,
4981            y: PF_Fixed,
4982            params: *const PF_SampPB,
4983            dst_pixel: *mut PF_Pixel,
4984        ) -> PF_Err,
4985    >,
4986    pub area_sample: ::std::option::Option<
4987        unsafe extern "C" fn(
4988            effect_ref: PF_ProgPtr,
4989            x: PF_Fixed,
4990            y: PF_Fixed,
4991            params: *const PF_SampPB,
4992            dst_pixel: *mut PF_Pixel,
4993        ) -> PF_Err,
4994    >,
4995    pub get_batch_func_is_deprecated: *mut ::std::os::raw::c_void,
4996    pub end_sampling: ::std::option::Option<
4997        unsafe extern "C" fn(
4998            effect_ref: PF_ProgPtr,
4999            qual: PF_Quality,
5000            mf: PF_ModeFlags,
5001            params: *mut PF_SampPB,
5002        ) -> PF_Err,
5003    >,
5004    pub composite_rect: ::std::option::Option<
5005        unsafe extern "C" fn(
5006            effect_ref: PF_ProgPtr,
5007            src_rect: *mut PF_Rect,
5008            src_opacity: A_long,
5009            source_wld: *mut PF_EffectWorld,
5010            dest_x: A_long,
5011            dest_y: A_long,
5012            field_rdr: PF_Field,
5013            xfer_mode: PF_XferMode,
5014            dest_wld: *mut PF_EffectWorld,
5015        ) -> PF_Err,
5016    >,
5017    pub blend: ::std::option::Option<
5018        unsafe extern "C" fn(
5019            effect_ref: PF_ProgPtr,
5020            src1: *const PF_EffectWorld,
5021            src2: *const PF_EffectWorld,
5022            ratio: PF_Fixed,
5023            dst: *mut PF_EffectWorld,
5024        ) -> PF_Err,
5025    >,
5026    pub convolve: ::std::option::Option<
5027        unsafe extern "C" fn(
5028            effect_ref: PF_ProgPtr,
5029            src: *mut PF_EffectWorld,
5030            area: *const PF_Rect,
5031            flags: PF_KernelFlags,
5032            kernel_size: A_long,
5033            a_kernel: *mut ::std::os::raw::c_void,
5034            r_kernel: *mut ::std::os::raw::c_void,
5035            g_kernel: *mut ::std::os::raw::c_void,
5036            b_kernel: *mut ::std::os::raw::c_void,
5037            dst: *mut PF_EffectWorld,
5038        ) -> PF_Err,
5039    >,
5040    pub copy: ::std::option::Option<
5041        unsafe extern "C" fn(
5042            effect_ref: PF_ProgPtr,
5043            src: *mut PF_EffectWorld,
5044            dst: *mut PF_EffectWorld,
5045            src_r: *mut PF_Rect,
5046            dst_r: *mut PF_Rect,
5047        ) -> PF_Err,
5048    >,
5049    pub fill: ::std::option::Option<
5050        unsafe extern "C" fn(
5051            effect_ref: PF_ProgPtr,
5052            color: *const PF_Pixel,
5053            dst_rect: *const PF_Rect,
5054            world: *mut PF_EffectWorld,
5055        ) -> PF_Err,
5056    >,
5057    pub gaussian_kernel: ::std::option::Option<
5058        unsafe extern "C" fn(
5059            effect_ref: PF_ProgPtr,
5060            kRadius: A_FpLong,
5061            flags: PF_KernelFlags,
5062            multiplier: A_FpLong,
5063            diameter: *mut A_long,
5064            kernel: *mut ::std::os::raw::c_void,
5065        ) -> PF_Err,
5066    >,
5067    pub iterate: ::std::option::Option<
5068        unsafe extern "C" fn(
5069            in_data: *mut PF_InData,
5070            progress_base: A_long,
5071            progress_final: A_long,
5072            src: *mut PF_EffectWorld,
5073            area: *const PF_Rect,
5074            refcon: *mut ::std::os::raw::c_void,
5075            pix_fn: PF_IteratePixel8Func,
5076            dst: *mut PF_EffectWorld,
5077        ) -> PF_Err,
5078    >,
5079    pub premultiply: ::std::option::Option<
5080        unsafe extern "C" fn(
5081            effect_ref: PF_ProgPtr,
5082            forward: A_long,
5083            dst: *mut PF_EffectWorld,
5084        ) -> PF_Err,
5085    >,
5086    pub premultiply_color: ::std::option::Option<
5087        unsafe extern "C" fn(
5088            effect_ref: PF_ProgPtr,
5089            src: *mut PF_EffectWorld,
5090            color: *const PF_Pixel,
5091            forward: A_long,
5092            dst: *mut PF_EffectWorld,
5093        ) -> PF_Err,
5094    >,
5095    pub new_world: ::std::option::Option<
5096        unsafe extern "C" fn(
5097            effect_ref: PF_ProgPtr,
5098            width: A_long,
5099            height: A_long,
5100            flags: PF_NewWorldFlags,
5101            world: *mut PF_EffectWorld,
5102        ) -> PF_Err,
5103    >,
5104    pub dispose_world: ::std::option::Option<
5105        unsafe extern "C" fn(effect_ref: PF_ProgPtr, world: *mut PF_EffectWorld) -> PF_Err,
5106    >,
5107    pub iterate_origin: ::std::option::Option<
5108        unsafe extern "C" fn(
5109            in_data: *mut PF_InData,
5110            progress_base: A_long,
5111            progress_final: A_long,
5112            src: *mut PF_EffectWorld,
5113            area: *const PF_Rect,
5114            origin: *const PF_Point,
5115            refcon: *mut ::std::os::raw::c_void,
5116            pix_fn: PF_IteratePixel8Func,
5117            dst: *mut PF_EffectWorld,
5118        ) -> PF_Err,
5119    >,
5120    pub iterate_lut: ::std::option::Option<
5121        unsafe extern "C" fn(
5122            in_data: *mut PF_InData,
5123            progress_base: A_long,
5124            progress_final: A_long,
5125            src: *mut PF_EffectWorld,
5126            area: *const PF_Rect,
5127            a_lut0: *mut A_u_char,
5128            r_lut0: *mut A_u_char,
5129            g_lut0: *mut A_u_char,
5130            b_lut0: *mut A_u_char,
5131            dst: *mut PF_EffectWorld,
5132        ) -> PF_Err,
5133    >,
5134    pub transfer_rect: ::std::option::Option<
5135        unsafe extern "C" fn(
5136            effect_ref: PF_ProgPtr,
5137            quality: PF_Quality,
5138            m_flags: PF_ModeFlags,
5139            field: PF_Field,
5140            src_rec: *const PF_Rect,
5141            src_world: *const PF_EffectWorld,
5142            comp_mode: *const PF_CompositeMode,
5143            mask_world0: *const PF_MaskWorld,
5144            dest_x: A_long,
5145            dest_y: A_long,
5146            dst_world: *mut PF_EffectWorld,
5147        ) -> PF_Err,
5148    >,
5149    pub transform_world: ::std::option::Option<
5150        unsafe extern "C" fn(
5151            effect_ref: PF_ProgPtr,
5152            quality: PF_Quality,
5153            m_flags: PF_ModeFlags,
5154            field: PF_Field,
5155            src_world: *const PF_EffectWorld,
5156            comp_mode: *const PF_CompositeMode,
5157            mask_world0: *const PF_MaskWorld,
5158            matrices: *const PF_FloatMatrix,
5159            num_matrices: A_long,
5160            src2dst_matrix: PF_Boolean,
5161            dest_rect: *const PF_Rect,
5162            dst_world: *mut PF_EffectWorld,
5163        ) -> PF_Err,
5164    >,
5165    pub host_new_handle:
5166        ::std::option::Option<unsafe extern "C" fn(size: A_u_longlong) -> PF_Handle>,
5167    pub host_lock_handle: ::std::option::Option<
5168        unsafe extern "C" fn(pf_handle: PF_Handle) -> *mut ::std::os::raw::c_void,
5169    >,
5170    pub host_unlock_handle: ::std::option::Option<unsafe extern "C" fn(pf_handle: PF_Handle)>,
5171    pub host_dispose_handle: ::std::option::Option<unsafe extern "C" fn(pf_handle: PF_Handle)>,
5172    pub get_callback_addr: ::std::option::Option<
5173        unsafe extern "C" fn(
5174            effect_ref: PF_ProgPtr,
5175            quality: PF_Quality,
5176            mode_flags: PF_ModeFlags,
5177            which_callback: PF_CallbackID,
5178            fn_ptr: *mut PF_CallbackFunc,
5179        ) -> PF_Err,
5180    >,
5181    pub app:
5182        ::std::option::Option<unsafe extern "C" fn(arg1: PF_ProgPtr, arg2: A_long, ...) -> PF_Err>,
5183    pub ansi: PF_ANSICallbacks,
5184    pub colorCB: PF_ColorCallbacks,
5185    pub get_platform_data: ::std::option::Option<
5186        unsafe extern "C" fn(
5187            effect_ref: PF_ProgPtr,
5188            which: PF_PlatDataID,
5189            data: *mut ::std::os::raw::c_void,
5190        ) -> PF_Err,
5191    >,
5192    pub host_get_handle_size:
5193        ::std::option::Option<unsafe extern "C" fn(pf_handle: PF_Handle) -> A_u_longlong>,
5194    pub iterate_origin_non_clip_src: ::std::option::Option<
5195        unsafe extern "C" fn(
5196            in_data: *mut PF_InData,
5197            progress_base: A_long,
5198            progress_final: A_long,
5199            src: *mut PF_EffectWorld,
5200            area: *const PF_Rect,
5201            origin: *const PF_Point,
5202            refcon: *mut ::std::os::raw::c_void,
5203            pix_fn: PF_IteratePixel8Func,
5204            dst: *mut PF_EffectWorld,
5205        ) -> PF_Err,
5206    >,
5207    pub iterate_generic: ::std::option::Option<
5208        unsafe extern "C" fn(
5209            iterationsL: A_long,
5210            refconPV: *mut ::std::os::raw::c_void,
5211            fn_func: ::std::option::Option<
5212                unsafe extern "C" fn(
5213                    refconPV: *mut ::std::os::raw::c_void,
5214                    thread_indexL: A_long,
5215                    i: A_long,
5216                    iterationsL: A_long,
5217                ) -> PF_Err,
5218            >,
5219        ) -> PF_Err,
5220    >,
5221    pub host_resize_handle: ::std::option::Option<
5222        unsafe extern "C" fn(new_sizeL: A_u_longlong, handlePH: *mut PF_Handle) -> PF_Err,
5223    >,
5224    pub subpixel_sample16: ::std::option::Option<
5225        unsafe extern "C" fn(
5226            effect_ref: PF_ProgPtr,
5227            x: PF_Fixed,
5228            y: PF_Fixed,
5229            params: *const PF_SampPB,
5230            dst_pixel: *mut PF_Pixel16,
5231        ) -> PF_Err,
5232    >,
5233    pub area_sample16: ::std::option::Option<
5234        unsafe extern "C" fn(
5235            effect_ref: PF_ProgPtr,
5236            x: PF_Fixed,
5237            y: PF_Fixed,
5238            params: *const PF_SampPB,
5239            dst_pixel: *mut PF_Pixel16,
5240        ) -> PF_Err,
5241    >,
5242    pub fill16: ::std::option::Option<
5243        unsafe extern "C" fn(
5244            effect_ref: PF_ProgPtr,
5245            color: *const PF_Pixel16,
5246            dst_rect: *const PF_Rect,
5247            world: *mut PF_EffectWorld,
5248        ) -> PF_Err,
5249    >,
5250    pub premultiply_color16: ::std::option::Option<
5251        unsafe extern "C" fn(
5252            effect_ref: PF_ProgPtr,
5253            src: *mut PF_EffectWorld,
5254            color: *const PF_Pixel16,
5255            forward: A_long,
5256            dst: *mut PF_EffectWorld,
5257        ) -> PF_Err,
5258    >,
5259    pub iterate16: ::std::option::Option<
5260        unsafe extern "C" fn(
5261            in_data: *mut PF_InData,
5262            progress_base: A_long,
5263            progress_final: A_long,
5264            src: *mut PF_EffectWorld,
5265            area: *const PF_Rect,
5266            refcon: *mut ::std::os::raw::c_void,
5267            pix_fn: PF_IteratePixel16Func,
5268            dst: *mut PF_EffectWorld,
5269        ) -> PF_Err,
5270    >,
5271    pub iterate_origin16: ::std::option::Option<
5272        unsafe extern "C" fn(
5273            in_data: *mut PF_InData,
5274            progress_base: A_long,
5275            progress_final: A_long,
5276            src: *mut PF_EffectWorld,
5277            area: *const PF_Rect,
5278            origin: *const PF_Point,
5279            refcon: *mut ::std::os::raw::c_void,
5280            pix_fn: PF_IteratePixel16Func,
5281            dst: *mut PF_EffectWorld,
5282        ) -> PF_Err,
5283    >,
5284    pub iterate_origin_non_clip_src16: ::std::option::Option<
5285        unsafe extern "C" fn(
5286            in_data: *mut PF_InData,
5287            progress_base: A_long,
5288            progress_final: A_long,
5289            src: *mut PF_EffectWorld,
5290            area: *const PF_Rect,
5291            origin: *const PF_Point,
5292            refcon: *mut ::std::os::raw::c_void,
5293            pix_fn: PF_IteratePixel16Func,
5294            dst: *mut PF_EffectWorld,
5295        ) -> PF_Err,
5296    >,
5297    pub get_pixel_data8: ::std::option::Option<
5298        unsafe extern "C" fn(
5299            worldP: *mut PF_EffectWorld,
5300            pixelsP0: PF_PixelPtr,
5301            pixPP: *mut *mut PF_Pixel8,
5302        ) -> PF_Err,
5303    >,
5304    pub get_pixel_data16: ::std::option::Option<
5305        unsafe extern "C" fn(
5306            worldP: *mut PF_EffectWorld,
5307            pixelsP0: PF_PixelPtr,
5308            pixPP: *mut *mut PF_Pixel16,
5309        ) -> PF_Err,
5310    >,
5311    pub reserved: [A_long; 1usize],
5312}
5313pub type PF_UtilCallbacks = _PF_UtilCallbacks;
5314#[repr(C)]
5315#[derive(Debug, Copy, Clone)]
5316pub struct PF_CacheOnLoadSuite1 {
5317    pub PF_SetNoCacheOnLoad: ::std::option::Option<
5318        unsafe extern "C" fn(
5319            effect_ref: PF_ProgPtr,
5320            effectAvailable: ::std::os::raw::c_long,
5321        ) -> PF_Err,
5322    >,
5323}
5324pub const PF_TimeDisplay_24: _bindgen_ty_59 = 1;
5325pub const PF_TimeDisplay_25: _bindgen_ty_59 = 2;
5326pub const PF_TimeDisplay_30Drop: _bindgen_ty_59 = 3;
5327pub const PF_TimeDisplay_30NonDrop: _bindgen_ty_59 = 4;
5328pub const PF_TimeDisplay_50: _bindgen_ty_59 = 5;
5329pub const PF_TimeDisplay_60Drop: _bindgen_ty_59 = 6;
5330pub const PF_TimeDisplay_60NonDrop: _bindgen_ty_59 = 7;
5331pub const PF_TimeDisplay_NonStandard: _bindgen_ty_59 = 8;
5332pub const PF_TimeDisplay_Invalid: _bindgen_ty_59 = 9;
5333pub type _bindgen_ty_59 = ::std::os::raw::c_uint;
5334pub type PF_TimeDisplay = csSDK_uint32;
5335#[repr(C)]
5336#[derive(Debug, Copy, Clone)]
5337pub struct PF_PixelFormatSuite1 {
5338    pub AddSupportedPixelFormat: ::std::option::Option<
5339        unsafe extern "C" fn(effect_ref: PF_ProgPtr, pixelFormat: PrPixelFormat) -> PF_Err,
5340    >,
5341    pub ClearSupportedPixelFormats:
5342        ::std::option::Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr) -> PF_Err>,
5343    pub NewWorldOfPixelFormat: ::std::option::Option<
5344        unsafe extern "C" fn(
5345            effect_ref: PF_ProgPtr,
5346            width: A_u_long,
5347            height: A_u_long,
5348            flags: PF_NewWorldFlags,
5349            pixelFormat: PrPixelFormat,
5350            world: *mut PF_EffectWorld,
5351        ) -> PF_Err,
5352    >,
5353    pub DisposeWorld: ::std::option::Option<
5354        unsafe extern "C" fn(effect_ref: PF_ProgPtr, world: *mut PF_EffectWorld) -> PF_Err,
5355    >,
5356    pub GetPixelFormat: ::std::option::Option<
5357        unsafe extern "C" fn(
5358            inWorld: *mut PF_EffectWorld,
5359            pixelFormat: *mut PrPixelFormat,
5360        ) -> PF_Err,
5361    >,
5362    pub GetBlackForPixelFormat: ::std::option::Option<
5363        unsafe extern "C" fn(
5364            pixelFormat: PrPixelFormat,
5365            pixelData: *mut ::std::os::raw::c_void,
5366        ) -> PF_Err,
5367    >,
5368    pub GetWhiteForPixelFormat: ::std::option::Option<
5369        unsafe extern "C" fn(
5370            pixelFormat: PrPixelFormat,
5371            pixelData: *mut ::std::os::raw::c_void,
5372        ) -> PF_Err,
5373    >,
5374    pub ConvertColorToPixelFormattedData: ::std::option::Option<
5375        unsafe extern "C" fn(
5376            pixelFormat: PrPixelFormat,
5377            alpha: f32,
5378            red: f32,
5379            green: f32,
5380            blue: f32,
5381            pixelData: *mut ::std::os::raw::c_void,
5382        ) -> PF_Err,
5383    >,
5384}
5385#[repr(C)]
5386#[derive(Debug, Copy, Clone)]
5387pub struct PF_BackgroundFrameSuite1 {
5388    pub AddSupportedBackgroundTransferMode: ::std::option::Option<
5389        unsafe extern "C" fn(
5390            effect_ref: PF_ProgPtr,
5391            supportedTransferMode: PF_TransferMode,
5392            supportedPixelFormat: PrPixelFormat,
5393        ) -> PF_Err,
5394    >,
5395    pub GetBackgroundFrame: ::std::option::Option<
5396        unsafe extern "C" fn(
5397            effect_ref: PF_ProgPtr,
5398            backgroundFrame: *mut *mut PF_LayerDef,
5399            backgroundTransferMode: *mut PF_TransferMode,
5400        ) -> PF_Err,
5401    >,
5402}
5403#[repr(C)]
5404#[derive(Debug, Copy, Clone)]
5405pub struct PF_UtilitySuite4 {
5406    pub GetFilterInstanceID: ::std::option::Option<
5407        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outFilterInstanceID: *mut A_long) -> PF_Err,
5408    >,
5409    pub GetMediaTimecode: ::std::option::Option<
5410        unsafe extern "C" fn(
5411            effect_ref: PF_ProgPtr,
5412            outCurrentFrame: *mut A_long,
5413            outTimeDisplay: *mut PF_TimeDisplay,
5414        ) -> PF_Err,
5415    >,
5416    pub GetClipSpeed: ::std::option::Option<
5417        unsafe extern "C" fn(effect_ref: PF_ProgPtr, speed: *mut f64) -> PF_Err,
5418    >,
5419    pub GetClipDuration: ::std::option::Option<
5420        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
5421    >,
5422    pub GetClipStart: ::std::option::Option<
5423        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
5424    >,
5425    pub GetUnscaledClipDuration: ::std::option::Option<
5426        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
5427    >,
5428    pub GetUnscaledClipStart: ::std::option::Option<
5429        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
5430    >,
5431    pub GetTrackItemStart: ::std::option::Option<
5432        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
5433    >,
5434    pub GetMediaFieldType: ::std::option::Option<
5435        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outFieldType: *mut prFieldType) -> PF_Err,
5436    >,
5437    pub GetMediaFrameRate: ::std::option::Option<
5438        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outTicksPerFrame: *mut PrTime) -> PF_Err,
5439    >,
5440    pub GetContainingTimelineID: ::std::option::Option<
5441        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outTimelineID: *mut PrTimelineID) -> PF_Err,
5442    >,
5443    pub GetClipName: ::std::option::Option<
5444        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outSDKString: *mut PrSDKString) -> PF_Err,
5445    >,
5446    pub EffectWantsCheckedOutFramesToMatchRenderPixelFormat:
5447        ::std::option::Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr) -> PF_Err>,
5448}
5449#[repr(C)]
5450#[derive(Debug, Copy, Clone)]
5451pub struct PF_UtilitySuite {
5452    pub GetFilterInstanceID: ::std::option::Option<
5453        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outFilterInstanceID: *mut A_long) -> PF_Err,
5454    >,
5455    pub GetMediaTimecode: ::std::option::Option<
5456        unsafe extern "C" fn(
5457            effect_ref: PF_ProgPtr,
5458            outCurrentFrame: *mut A_long,
5459            outTimeDisplay: *mut PF_TimeDisplay,
5460        ) -> PF_Err,
5461    >,
5462    pub GetClipSpeed: ::std::option::Option<
5463        unsafe extern "C" fn(effect_ref: PF_ProgPtr, speed: *mut f64) -> PF_Err,
5464    >,
5465    pub GetClipDuration: ::std::option::Option<
5466        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
5467    >,
5468    pub GetClipStart: ::std::option::Option<
5469        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
5470    >,
5471    pub GetUnscaledClipDuration: ::std::option::Option<
5472        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
5473    >,
5474    pub GetUnscaledClipStart: ::std::option::Option<
5475        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
5476    >,
5477    pub GetTrackItemStart: ::std::option::Option<
5478        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
5479    >,
5480    pub GetMediaFieldType: ::std::option::Option<
5481        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outFieldType: *mut prFieldType) -> PF_Err,
5482    >,
5483    pub GetMediaFrameRate: ::std::option::Option<
5484        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outTicksPerFrame: *mut PrTime) -> PF_Err,
5485    >,
5486    pub GetContainingTimelineID: ::std::option::Option<
5487        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outTimelineID: *mut PrTimelineID) -> PF_Err,
5488    >,
5489    pub GetClipName: ::std::option::Option<
5490        unsafe extern "C" fn(
5491            effect_ref: PF_ProgPtr,
5492            inGetMasterClipName: A_Boolean,
5493            outSDKString: *mut PrSDKString,
5494        ) -> PF_Err,
5495    >,
5496    pub EffectWantsCheckedOutFramesToMatchRenderPixelFormat:
5497        ::std::option::Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr) -> PF_Err>,
5498    pub EffectDependsOnClipName: ::std::option::Option<
5499        unsafe extern "C" fn(effect_ref: PF_ProgPtr, inDependsOnClipName: A_Boolean) -> PF_Err,
5500    >,
5501    pub SetEffectInstanceName: ::std::option::Option<
5502        unsafe extern "C" fn(effect_ref: PF_ProgPtr, inSDKString: *const PrSDKString) -> PF_Err,
5503    >,
5504    pub GetFileName: ::std::option::Option<
5505        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outSDKString: *mut PrSDKString) -> PF_Err,
5506    >,
5507    pub GetOriginalClipFrameRate: ::std::option::Option<
5508        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outTicksPerFrame: *mut PrTime) -> PF_Err,
5509    >,
5510    pub GetSourceTrackMediaTimecode: ::std::option::Option<
5511        unsafe extern "C" fn(
5512            effect_ref: PF_ProgPtr,
5513            inLayerParamIndex: csSDK_uint32,
5514            inApplyTransform: bool,
5515            inAddStartTimeOffset: bool,
5516            outCurrentFrame: *mut A_long,
5517        ) -> PF_Err,
5518    >,
5519    pub GetSourceTrackClipName: ::std::option::Option<
5520        unsafe extern "C" fn(
5521            effect_ref: PF_ProgPtr,
5522            inLayerParamIndex: csSDK_uint32,
5523            inGetMasterClipName: A_Boolean,
5524            outSDKString: *mut PrSDKString,
5525        ) -> PF_Err,
5526    >,
5527    pub GetSourceTrackFileName: ::std::option::Option<
5528        unsafe extern "C" fn(
5529            effect_ref: PF_ProgPtr,
5530            inLayerParamIndex: csSDK_uint32,
5531            outSDKString: *mut PrSDKString,
5532        ) -> PF_Err,
5533    >,
5534    pub EffectDependsOnClipName2: ::std::option::Option<
5535        unsafe extern "C" fn(
5536            effect_ref: PF_ProgPtr,
5537            inDependsOnClipName: A_Boolean,
5538            inLayerParamIndex: csSDK_uint32,
5539        ) -> PF_Err,
5540    >,
5541    pub GetMediaTimecode2: ::std::option::Option<
5542        unsafe extern "C" fn(
5543            effect_ref: PF_ProgPtr,
5544            inApplyTrim: bool,
5545            outCurrentFrame: *mut A_long,
5546            outTimeDisplay: *mut PF_TimeDisplay,
5547        ) -> PF_Err,
5548    >,
5549    pub GetSourceTrackMediaTimecode2: ::std::option::Option<
5550        unsafe extern "C" fn(
5551            effect_ref: PF_ProgPtr,
5552            inLayerParamIndex: csSDK_uint32,
5553            inApplyTransform: bool,
5554            inAddStartTimeOffset: bool,
5555            inSequenceTime: PrTime,
5556            outCurrentFrame: *mut A_long,
5557        ) -> PF_Err,
5558    >,
5559    pub GetSourceTrackClipName2: ::std::option::Option<
5560        unsafe extern "C" fn(
5561            effect_ref: PF_ProgPtr,
5562            inLayerParamIndex: csSDK_uint32,
5563            inGetMasterClipName: A_Boolean,
5564            outSDKString: *mut PrSDKString,
5565            inSequenceTime: PrTime,
5566        ) -> PF_Err,
5567    >,
5568    pub GetSourceTrackFileName2: ::std::option::Option<
5569        unsafe extern "C" fn(
5570            effect_ref: PF_ProgPtr,
5571            inLayerParamIndex: csSDK_uint32,
5572            outSDKString: *mut PrSDKString,
5573            inSequenceTime: PrTime,
5574        ) -> PF_Err,
5575    >,
5576    pub GetCommentString: ::std::option::Option<
5577        unsafe extern "C" fn(
5578            inEffectRef: PF_ProgPtr,
5579            inSourceTrack: i32,
5580            inSequenceTime: PrTime,
5581            outSDKString: *mut PrSDKString,
5582        ) -> PF_Err,
5583    >,
5584    pub GetLogNoteString: ::std::option::Option<
5585        unsafe extern "C" fn(
5586            inEffectRef: PF_ProgPtr,
5587            inSourceTrack: i32,
5588            inSequenceTime: PrTime,
5589            outSDKString: *mut PrSDKString,
5590        ) -> PF_Err,
5591    >,
5592    pub GetCameraRollString: ::std::option::Option<
5593        unsafe extern "C" fn(
5594            inEffectRef: PF_ProgPtr,
5595            inSourceTrack: i32,
5596            inSequenceTime: PrTime,
5597            outSDKString: *mut PrSDKString,
5598        ) -> PF_Err,
5599    >,
5600    pub GetClientMetadataString: ::std::option::Option<
5601        unsafe extern "C" fn(
5602            inEffectRef: PF_ProgPtr,
5603            inSourceTrack: i32,
5604            inSequenceTime: PrTime,
5605            outSDKString: *mut PrSDKString,
5606        ) -> PF_Err,
5607    >,
5608    pub GetDailyRollString: ::std::option::Option<
5609        unsafe extern "C" fn(
5610            inEffectRef: PF_ProgPtr,
5611            inSourceTrack: i32,
5612            inSequenceTime: PrTime,
5613            outSDKString: *mut PrSDKString,
5614        ) -> PF_Err,
5615    >,
5616    pub GetDescriptionString: ::std::option::Option<
5617        unsafe extern "C" fn(
5618            inEffectRef: PF_ProgPtr,
5619            inSourceTrack: i32,
5620            inSequenceTime: PrTime,
5621            outSDKString: *mut PrSDKString,
5622        ) -> PF_Err,
5623    >,
5624    pub GetLabRollString: ::std::option::Option<
5625        unsafe extern "C" fn(
5626            inEffectRef: PF_ProgPtr,
5627            inSourceTrack: i32,
5628            inSequenceTime: PrTime,
5629            outSDKString: *mut PrSDKString,
5630        ) -> PF_Err,
5631    >,
5632    pub GetSceneString: ::std::option::Option<
5633        unsafe extern "C" fn(
5634            inEffectRef: PF_ProgPtr,
5635            inSourceTrack: i32,
5636            inSequenceTime: PrTime,
5637            outSDKString: *mut PrSDKString,
5638        ) -> PF_Err,
5639    >,
5640    pub GetShotString: ::std::option::Option<
5641        unsafe extern "C" fn(
5642            inEffectRef: PF_ProgPtr,
5643            inSourceTrack: i32,
5644            inSequenceTime: PrTime,
5645            outSDKString: *mut PrSDKString,
5646        ) -> PF_Err,
5647    >,
5648    pub GetTapeNameString: ::std::option::Option<
5649        unsafe extern "C" fn(
5650            inEffectRef: PF_ProgPtr,
5651            inSourceTrack: i32,
5652            inSequenceTime: PrTime,
5653            outSDKString: *mut PrSDKString,
5654        ) -> PF_Err,
5655    >,
5656    pub GetVideoCodecString: ::std::option::Option<
5657        unsafe extern "C" fn(
5658            inEffectRef: PF_ProgPtr,
5659            inSourceTrack: i32,
5660            inSequenceTime: PrTime,
5661            outSDKString: *mut PrSDKString,
5662        ) -> PF_Err,
5663    >,
5664    pub GetGoodMetadataString: ::std::option::Option<
5665        unsafe extern "C" fn(
5666            inEffectRef: PF_ProgPtr,
5667            inSourceTrack: i32,
5668            inSequenceTime: PrTime,
5669            outSDKString: *mut PrSDKString,
5670        ) -> PF_Err,
5671    >,
5672    pub GetSoundRollString: ::std::option::Option<
5673        unsafe extern "C" fn(
5674            inEffectRef: PF_ProgPtr,
5675            inSourceTrack: i32,
5676            inSequenceTime: PrTime,
5677            outSDKString: *mut PrSDKString,
5678        ) -> PF_Err,
5679    >,
5680    pub GetSequenceTime: ::std::option::Option<
5681        unsafe extern "C" fn(inEffectRef: PF_ProgPtr, outSequenceTime: *mut PrTime) -> PF_Err,
5682    >,
5683    pub GetSoundTimecode: ::std::option::Option<
5684        unsafe extern "C" fn(
5685            inEffectRef: PF_ProgPtr,
5686            inSourceTrack: i32,
5687            inSequenceTime: PrTime,
5688            outCurrentFrame: *mut A_long,
5689        ) -> PF_Err,
5690    >,
5691    pub GetOriginalClipFrameRateForSourceTrack: ::std::option::Option<
5692        unsafe extern "C" fn(
5693            inEffectRef: PF_ProgPtr,
5694            inSourceTrack: i32,
5695            outTicksPerFrame: *mut PrTime,
5696        ) -> PF_Err,
5697    >,
5698    pub GetMediaFrameRateForSourceTrack: ::std::option::Option<
5699        unsafe extern "C" fn(
5700            inEffectRef: PF_ProgPtr,
5701            inSourceTrack: i32,
5702            inSequenceTime: PrTime,
5703            outTicksPerFrame: *mut PrTime,
5704        ) -> PF_Err,
5705    >,
5706    pub GetSourceTrackMediaActualStartTime: ::std::option::Option<
5707        unsafe extern "C" fn(
5708            inEffectRef: PF_ProgPtr,
5709            inLayerParamIndex: csSDK_uint32,
5710            inSequenceTime: PrTime,
5711            outClipActualStartTime: *mut PrTime,
5712        ) -> PF_Err,
5713    >,
5714    pub IsSourceTrackMediaTrimmed: ::std::option::Option<
5715        unsafe extern "C" fn(
5716            inEffectRef: PF_ProgPtr,
5717            inLayerParamIndex: csSDK_uint32,
5718            inSequenceTime: PrTime,
5719            outTrimApplied: *mut bool,
5720        ) -> PF_Err,
5721    >,
5722    pub IsMediaTrimmed: ::std::option::Option<
5723        unsafe extern "C" fn(
5724            inEffectRef: PF_ProgPtr,
5725            inSequenceTime: PrTime,
5726            outTrimApplied: *mut bool,
5727        ) -> PF_Err,
5728    >,
5729    pub IsTrackEmpty: ::std::option::Option<
5730        unsafe extern "C" fn(
5731            inEffectRef: PF_ProgPtr,
5732            inLayerParamIndex: csSDK_uint32,
5733            inSequenceTime: PrTime,
5734            outIsTrackEmpty: *mut bool,
5735        ) -> PF_Err,
5736    >,
5737    pub IsTrackItemEffectAppliedToSynthetic: ::std::option::Option<
5738        unsafe extern "C" fn(
5739            inEffectRef: PF_ProgPtr,
5740            outIsTrackItemEffectAppliedToSynthetic: *mut bool,
5741        ) -> PF_Err,
5742    >,
5743}
5744#[repr(C)]
5745#[derive(Debug, Copy, Clone)]
5746pub struct PF_UtilitySuite10 {
5747    pub GetFilterInstanceID: ::std::option::Option<
5748        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outFilterInstanceID: *mut A_long) -> PF_Err,
5749    >,
5750    pub GetMediaTimecode: ::std::option::Option<
5751        unsafe extern "C" fn(
5752            effect_ref: PF_ProgPtr,
5753            outCurrentFrame: *mut A_long,
5754            outTimeDisplay: *mut PF_TimeDisplay,
5755        ) -> PF_Err,
5756    >,
5757    pub GetClipSpeed: ::std::option::Option<
5758        unsafe extern "C" fn(effect_ref: PF_ProgPtr, speed: *mut f64) -> PF_Err,
5759    >,
5760    pub GetClipDuration: ::std::option::Option<
5761        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
5762    >,
5763    pub GetClipStart: ::std::option::Option<
5764        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
5765    >,
5766    pub GetUnscaledClipDuration: ::std::option::Option<
5767        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
5768    >,
5769    pub GetUnscaledClipStart: ::std::option::Option<
5770        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
5771    >,
5772    pub GetTrackItemStart: ::std::option::Option<
5773        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
5774    >,
5775    pub GetMediaFieldType: ::std::option::Option<
5776        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outFieldType: *mut prFieldType) -> PF_Err,
5777    >,
5778    pub GetMediaFrameRate: ::std::option::Option<
5779        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outTicksPerFrame: *mut PrTime) -> PF_Err,
5780    >,
5781    pub GetContainingTimelineID: ::std::option::Option<
5782        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outTimelineID: *mut PrTimelineID) -> PF_Err,
5783    >,
5784    pub GetClipName: ::std::option::Option<
5785        unsafe extern "C" fn(
5786            effect_ref: PF_ProgPtr,
5787            inGetMasterClipName: A_Boolean,
5788            outSDKString: *mut PrSDKString,
5789        ) -> PF_Err,
5790    >,
5791    pub EffectWantsCheckedOutFramesToMatchRenderPixelFormat:
5792        ::std::option::Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr) -> PF_Err>,
5793    pub EffectDependsOnClipName: ::std::option::Option<
5794        unsafe extern "C" fn(effect_ref: PF_ProgPtr, inDependsOnClipName: A_Boolean) -> PF_Err,
5795    >,
5796    pub SetEffectInstanceName: ::std::option::Option<
5797        unsafe extern "C" fn(effect_ref: PF_ProgPtr, inSDKString: *const PrSDKString) -> PF_Err,
5798    >,
5799    pub GetFileName: ::std::option::Option<
5800        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outSDKString: *mut PrSDKString) -> PF_Err,
5801    >,
5802    pub GetOriginalClipFrameRate: ::std::option::Option<
5803        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outTicksPerFrame: *mut PrTime) -> PF_Err,
5804    >,
5805    pub GetSourceTrackMediaTimecode: ::std::option::Option<
5806        unsafe extern "C" fn(
5807            effect_ref: PF_ProgPtr,
5808            inLayerParamIndex: csSDK_uint32,
5809            inApplyTransform: bool,
5810            inAddStartTimeOffset: bool,
5811            outCurrentFrame: *mut A_long,
5812        ) -> PF_Err,
5813    >,
5814    pub GetSourceTrackClipName: ::std::option::Option<
5815        unsafe extern "C" fn(
5816            effect_ref: PF_ProgPtr,
5817            inLayerParamIndex: csSDK_uint32,
5818            inGetMasterClipName: A_Boolean,
5819            outSDKString: *mut PrSDKString,
5820        ) -> PF_Err,
5821    >,
5822    pub GetSourceTrackFileName: ::std::option::Option<
5823        unsafe extern "C" fn(
5824            effect_ref: PF_ProgPtr,
5825            inLayerParamIndex: csSDK_uint32,
5826            outSDKString: *mut PrSDKString,
5827        ) -> PF_Err,
5828    >,
5829    pub EffectDependsOnClipName2: ::std::option::Option<
5830        unsafe extern "C" fn(
5831            effect_ref: PF_ProgPtr,
5832            inDependsOnClipName: A_Boolean,
5833            inLayerParamIndex: csSDK_uint32,
5834        ) -> PF_Err,
5835    >,
5836    pub GetMediaTimecode2: ::std::option::Option<
5837        unsafe extern "C" fn(
5838            effect_ref: PF_ProgPtr,
5839            inApplyTrim: bool,
5840            outCurrentFrame: *mut A_long,
5841            outTimeDisplay: *mut PF_TimeDisplay,
5842        ) -> PF_Err,
5843    >,
5844    pub GetSourceTrackMediaTimecode2: ::std::option::Option<
5845        unsafe extern "C" fn(
5846            effect_ref: PF_ProgPtr,
5847            inLayerParamIndex: csSDK_uint32,
5848            inApplyTransform: bool,
5849            inAddStartTimeOffset: bool,
5850            inSequenceTime: PrTime,
5851            outCurrentFrame: *mut A_long,
5852        ) -> PF_Err,
5853    >,
5854    pub GetSourceTrackClipName2: ::std::option::Option<
5855        unsafe extern "C" fn(
5856            effect_ref: PF_ProgPtr,
5857            inLayerParamIndex: csSDK_uint32,
5858            inGetMasterClipName: A_Boolean,
5859            outSDKString: *mut PrSDKString,
5860            inSequenceTime: PrTime,
5861        ) -> PF_Err,
5862    >,
5863    pub GetSourceTrackFileName2: ::std::option::Option<
5864        unsafe extern "C" fn(
5865            effect_ref: PF_ProgPtr,
5866            inLayerParamIndex: csSDK_uint32,
5867            outSDKString: *mut PrSDKString,
5868            inSequenceTime: PrTime,
5869        ) -> PF_Err,
5870    >,
5871    pub GetCommentString: ::std::option::Option<
5872        unsafe extern "C" fn(
5873            inEffectRef: PF_ProgPtr,
5874            inSourceTrack: i32,
5875            inSequenceTime: PrTime,
5876            outSDKString: *mut PrSDKString,
5877        ) -> PF_Err,
5878    >,
5879    pub GetLogNoteString: ::std::option::Option<
5880        unsafe extern "C" fn(
5881            inEffectRef: PF_ProgPtr,
5882            inSourceTrack: i32,
5883            inSequenceTime: PrTime,
5884            outSDKString: *mut PrSDKString,
5885        ) -> PF_Err,
5886    >,
5887    pub GetCameraRollString: ::std::option::Option<
5888        unsafe extern "C" fn(
5889            inEffectRef: PF_ProgPtr,
5890            inSourceTrack: i32,
5891            inSequenceTime: PrTime,
5892            outSDKString: *mut PrSDKString,
5893        ) -> PF_Err,
5894    >,
5895    pub GetClientMetadataString: ::std::option::Option<
5896        unsafe extern "C" fn(
5897            inEffectRef: PF_ProgPtr,
5898            inSourceTrack: i32,
5899            inSequenceTime: PrTime,
5900            outSDKString: *mut PrSDKString,
5901        ) -> PF_Err,
5902    >,
5903    pub GetDailyRollString: ::std::option::Option<
5904        unsafe extern "C" fn(
5905            inEffectRef: PF_ProgPtr,
5906            inSourceTrack: i32,
5907            inSequenceTime: PrTime,
5908            outSDKString: *mut PrSDKString,
5909        ) -> PF_Err,
5910    >,
5911    pub GetDescriptionString: ::std::option::Option<
5912        unsafe extern "C" fn(
5913            inEffectRef: PF_ProgPtr,
5914            inSourceTrack: i32,
5915            inSequenceTime: PrTime,
5916            outSDKString: *mut PrSDKString,
5917        ) -> PF_Err,
5918    >,
5919    pub GetLabRollString: ::std::option::Option<
5920        unsafe extern "C" fn(
5921            inEffectRef: PF_ProgPtr,
5922            inSourceTrack: i32,
5923            inSequenceTime: PrTime,
5924            outSDKString: *mut PrSDKString,
5925        ) -> PF_Err,
5926    >,
5927    pub GetSceneString: ::std::option::Option<
5928        unsafe extern "C" fn(
5929            inEffectRef: PF_ProgPtr,
5930            inSourceTrack: i32,
5931            inSequenceTime: PrTime,
5932            outSDKString: *mut PrSDKString,
5933        ) -> PF_Err,
5934    >,
5935    pub GetShotString: ::std::option::Option<
5936        unsafe extern "C" fn(
5937            inEffectRef: PF_ProgPtr,
5938            inSourceTrack: i32,
5939            inSequenceTime: PrTime,
5940            outSDKString: *mut PrSDKString,
5941        ) -> PF_Err,
5942    >,
5943    pub GetTapeNameString: ::std::option::Option<
5944        unsafe extern "C" fn(
5945            inEffectRef: PF_ProgPtr,
5946            inSourceTrack: i32,
5947            inSequenceTime: PrTime,
5948            outSDKString: *mut PrSDKString,
5949        ) -> PF_Err,
5950    >,
5951    pub GetVideoCodecString: ::std::option::Option<
5952        unsafe extern "C" fn(
5953            inEffectRef: PF_ProgPtr,
5954            inSourceTrack: i32,
5955            inSequenceTime: PrTime,
5956            outSDKString: *mut PrSDKString,
5957        ) -> PF_Err,
5958    >,
5959    pub GetGoodMetadataString: ::std::option::Option<
5960        unsafe extern "C" fn(
5961            inEffectRef: PF_ProgPtr,
5962            inSourceTrack: i32,
5963            inSequenceTime: PrTime,
5964            outSDKString: *mut PrSDKString,
5965        ) -> PF_Err,
5966    >,
5967    pub GetSoundRollString: ::std::option::Option<
5968        unsafe extern "C" fn(
5969            inEffectRef: PF_ProgPtr,
5970            inSourceTrack: i32,
5971            inSequenceTime: PrTime,
5972            outSDKString: *mut PrSDKString,
5973        ) -> PF_Err,
5974    >,
5975    pub GetSequenceTime: ::std::option::Option<
5976        unsafe extern "C" fn(inEffectRef: PF_ProgPtr, outSequenceTime: *mut PrTime) -> PF_Err,
5977    >,
5978    pub GetSoundTimecode: ::std::option::Option<
5979        unsafe extern "C" fn(
5980            inEffectRef: PF_ProgPtr,
5981            inSourceTrack: i32,
5982            inSequenceTime: PrTime,
5983            outCurrentFrame: *mut A_long,
5984        ) -> PF_Err,
5985    >,
5986    pub GetOriginalClipFrameRateForSourceTrack: ::std::option::Option<
5987        unsafe extern "C" fn(
5988            inEffectRef: PF_ProgPtr,
5989            inSourceTrack: i32,
5990            outTicksPerFrame: *mut PrTime,
5991        ) -> PF_Err,
5992    >,
5993    pub GetMediaFrameRateForSourceTrack: ::std::option::Option<
5994        unsafe extern "C" fn(
5995            inEffectRef: PF_ProgPtr,
5996            inSourceTrack: i32,
5997            inSequenceTime: PrTime,
5998            outTicksPerFrame: *mut PrTime,
5999        ) -> PF_Err,
6000    >,
6001    pub GetSourceTrackMediaActualStartTime: ::std::option::Option<
6002        unsafe extern "C" fn(
6003            inEffectRef: PF_ProgPtr,
6004            inLayerParamIndex: csSDK_uint32,
6005            inSequenceTime: PrTime,
6006            outClipActualStartTime: *mut PrTime,
6007        ) -> PF_Err,
6008    >,
6009    pub IsSourceTrackMediaTrimmed: ::std::option::Option<
6010        unsafe extern "C" fn(
6011            inEffectRef: PF_ProgPtr,
6012            inLayerParamIndex: csSDK_uint32,
6013            inSequenceTime: PrTime,
6014            outTrimApplied: *mut bool,
6015        ) -> PF_Err,
6016    >,
6017    pub IsMediaTrimmed: ::std::option::Option<
6018        unsafe extern "C" fn(
6019            inEffectRef: PF_ProgPtr,
6020            inSequenceTime: PrTime,
6021            outTrimApplied: *mut bool,
6022        ) -> PF_Err,
6023    >,
6024    pub IsTrackEmpty: ::std::option::Option<
6025        unsafe extern "C" fn(
6026            inEffectRef: PF_ProgPtr,
6027            inLayerParamIndex: csSDK_uint32,
6028            inSequenceTime: PrTime,
6029            outIsTrackEmpty: *mut bool,
6030        ) -> PF_Err,
6031    >,
6032    pub IsTrackItemEffectAppliedToSynthetic: ::std::option::Option<
6033        unsafe extern "C" fn(
6034            inEffectRef: PF_ProgPtr,
6035            outIsTrackItemEffectAppliedToSynthetic: *mut bool,
6036        ) -> PF_Err,
6037    >,
6038    pub GetSourceTrackCurrentMediaTimeInfo: ::std::option::Option<
6039        unsafe extern "C" fn(
6040            effect_ref: PF_ProgPtr,
6041            inLayerParamIndex: csSDK_uint32,
6042            inUseSoundTimecodeAsStartTime: bool,
6043            inSequenceTime: PrTime,
6044            outCurrentMediaTime: *mut PrTime,
6045            outMediaTicksPerFrame: *mut PrTime,
6046            outMediaTimeDisplay: *mut PF_TimeDisplay,
6047        ) -> PF_Err,
6048    >,
6049    pub GetSequenceZeroPoint: ::std::option::Option<
6050        unsafe extern "C" fn(inEffectRef: PF_ProgPtr, outZeroPointTime: *mut PrTime) -> PF_Err,
6051    >,
6052}
6053#[repr(C)]
6054#[derive(Debug, Copy, Clone)]
6055pub struct PF_UtilitySuite11 {
6056    pub GetFilterInstanceID: ::std::option::Option<
6057        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outFilterInstanceID: *mut A_long) -> PF_Err,
6058    >,
6059    pub GetMediaTimecode: ::std::option::Option<
6060        unsafe extern "C" fn(
6061            effect_ref: PF_ProgPtr,
6062            outCurrentFrame: *mut A_long,
6063            outTimeDisplay: *mut PF_TimeDisplay,
6064        ) -> PF_Err,
6065    >,
6066    pub GetClipSpeed: ::std::option::Option<
6067        unsafe extern "C" fn(effect_ref: PF_ProgPtr, speed: *mut f64) -> PF_Err,
6068    >,
6069    pub GetClipDuration: ::std::option::Option<
6070        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
6071    >,
6072    pub GetClipStart: ::std::option::Option<
6073        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
6074    >,
6075    pub GetUnscaledClipDuration: ::std::option::Option<
6076        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
6077    >,
6078    pub GetUnscaledClipStart: ::std::option::Option<
6079        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
6080    >,
6081    pub GetTrackItemStart: ::std::option::Option<
6082        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
6083    >,
6084    pub GetMediaFieldType: ::std::option::Option<
6085        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outFieldType: *mut prFieldType) -> PF_Err,
6086    >,
6087    pub GetMediaFrameRate: ::std::option::Option<
6088        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outTicksPerFrame: *mut PrTime) -> PF_Err,
6089    >,
6090    pub GetContainingTimelineID: ::std::option::Option<
6091        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outTimelineID: *mut PrTimelineID) -> PF_Err,
6092    >,
6093    pub GetClipName: ::std::option::Option<
6094        unsafe extern "C" fn(
6095            effect_ref: PF_ProgPtr,
6096            inGetMasterClipName: A_Boolean,
6097            outSDKString: *mut PrSDKString,
6098        ) -> PF_Err,
6099    >,
6100    pub EffectWantsCheckedOutFramesToMatchRenderPixelFormat:
6101        ::std::option::Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr) -> PF_Err>,
6102    pub EffectDependsOnClipName: ::std::option::Option<
6103        unsafe extern "C" fn(effect_ref: PF_ProgPtr, inDependsOnClipName: A_Boolean) -> PF_Err,
6104    >,
6105    pub SetEffectInstanceName: ::std::option::Option<
6106        unsafe extern "C" fn(effect_ref: PF_ProgPtr, inSDKString: *const PrSDKString) -> PF_Err,
6107    >,
6108    pub GetFileName: ::std::option::Option<
6109        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outSDKString: *mut PrSDKString) -> PF_Err,
6110    >,
6111    pub GetOriginalClipFrameRate: ::std::option::Option<
6112        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outTicksPerFrame: *mut PrTime) -> PF_Err,
6113    >,
6114    pub GetSourceTrackMediaTimecode: ::std::option::Option<
6115        unsafe extern "C" fn(
6116            effect_ref: PF_ProgPtr,
6117            inLayerParamIndex: csSDK_uint32,
6118            inApplyTransform: bool,
6119            inAddStartTimeOffset: bool,
6120            outCurrentFrame: *mut A_long,
6121        ) -> PF_Err,
6122    >,
6123    pub GetSourceTrackClipName: ::std::option::Option<
6124        unsafe extern "C" fn(
6125            effect_ref: PF_ProgPtr,
6126            inLayerParamIndex: csSDK_uint32,
6127            inGetMasterClipName: A_Boolean,
6128            outSDKString: *mut PrSDKString,
6129        ) -> PF_Err,
6130    >,
6131    pub GetSourceTrackFileName: ::std::option::Option<
6132        unsafe extern "C" fn(
6133            effect_ref: PF_ProgPtr,
6134            inLayerParamIndex: csSDK_uint32,
6135            outSDKString: *mut PrSDKString,
6136        ) -> PF_Err,
6137    >,
6138    pub EffectDependsOnClipName2: ::std::option::Option<
6139        unsafe extern "C" fn(
6140            effect_ref: PF_ProgPtr,
6141            inDependsOnClipName: A_Boolean,
6142            inLayerParamIndex: csSDK_uint32,
6143        ) -> PF_Err,
6144    >,
6145    pub GetMediaTimecode2: ::std::option::Option<
6146        unsafe extern "C" fn(
6147            effect_ref: PF_ProgPtr,
6148            inApplyTrim: bool,
6149            outCurrentFrame: *mut A_long,
6150            outTimeDisplay: *mut PF_TimeDisplay,
6151        ) -> PF_Err,
6152    >,
6153    pub GetSourceTrackMediaTimecode2: ::std::option::Option<
6154        unsafe extern "C" fn(
6155            effect_ref: PF_ProgPtr,
6156            inLayerParamIndex: csSDK_uint32,
6157            inApplyTransform: bool,
6158            inAddStartTimeOffset: bool,
6159            inSequenceTime: PrTime,
6160            outCurrentFrame: *mut A_long,
6161        ) -> PF_Err,
6162    >,
6163    pub GetSourceTrackClipName2: ::std::option::Option<
6164        unsafe extern "C" fn(
6165            effect_ref: PF_ProgPtr,
6166            inLayerParamIndex: csSDK_uint32,
6167            inGetMasterClipName: A_Boolean,
6168            outSDKString: *mut PrSDKString,
6169            inSequenceTime: PrTime,
6170        ) -> PF_Err,
6171    >,
6172    pub GetSourceTrackFileName2: ::std::option::Option<
6173        unsafe extern "C" fn(
6174            effect_ref: PF_ProgPtr,
6175            inLayerParamIndex: csSDK_uint32,
6176            outSDKString: *mut PrSDKString,
6177            inSequenceTime: PrTime,
6178        ) -> PF_Err,
6179    >,
6180    pub GetCommentString: ::std::option::Option<
6181        unsafe extern "C" fn(
6182            inEffectRef: PF_ProgPtr,
6183            inSourceTrack: i32,
6184            inSequenceTime: PrTime,
6185            outSDKString: *mut PrSDKString,
6186        ) -> PF_Err,
6187    >,
6188    pub GetLogNoteString: ::std::option::Option<
6189        unsafe extern "C" fn(
6190            inEffectRef: PF_ProgPtr,
6191            inSourceTrack: i32,
6192            inSequenceTime: PrTime,
6193            outSDKString: *mut PrSDKString,
6194        ) -> PF_Err,
6195    >,
6196    pub GetCameraRollString: ::std::option::Option<
6197        unsafe extern "C" fn(
6198            inEffectRef: PF_ProgPtr,
6199            inSourceTrack: i32,
6200            inSequenceTime: PrTime,
6201            outSDKString: *mut PrSDKString,
6202        ) -> PF_Err,
6203    >,
6204    pub GetClientMetadataString: ::std::option::Option<
6205        unsafe extern "C" fn(
6206            inEffectRef: PF_ProgPtr,
6207            inSourceTrack: i32,
6208            inSequenceTime: PrTime,
6209            outSDKString: *mut PrSDKString,
6210        ) -> PF_Err,
6211    >,
6212    pub GetDailyRollString: ::std::option::Option<
6213        unsafe extern "C" fn(
6214            inEffectRef: PF_ProgPtr,
6215            inSourceTrack: i32,
6216            inSequenceTime: PrTime,
6217            outSDKString: *mut PrSDKString,
6218        ) -> PF_Err,
6219    >,
6220    pub GetDescriptionString: ::std::option::Option<
6221        unsafe extern "C" fn(
6222            inEffectRef: PF_ProgPtr,
6223            inSourceTrack: i32,
6224            inSequenceTime: PrTime,
6225            outSDKString: *mut PrSDKString,
6226        ) -> PF_Err,
6227    >,
6228    pub GetLabRollString: ::std::option::Option<
6229        unsafe extern "C" fn(
6230            inEffectRef: PF_ProgPtr,
6231            inSourceTrack: i32,
6232            inSequenceTime: PrTime,
6233            outSDKString: *mut PrSDKString,
6234        ) -> PF_Err,
6235    >,
6236    pub GetSceneString: ::std::option::Option<
6237        unsafe extern "C" fn(
6238            inEffectRef: PF_ProgPtr,
6239            inSourceTrack: i32,
6240            inSequenceTime: PrTime,
6241            outSDKString: *mut PrSDKString,
6242        ) -> PF_Err,
6243    >,
6244    pub GetShotString: ::std::option::Option<
6245        unsafe extern "C" fn(
6246            inEffectRef: PF_ProgPtr,
6247            inSourceTrack: i32,
6248            inSequenceTime: PrTime,
6249            outSDKString: *mut PrSDKString,
6250        ) -> PF_Err,
6251    >,
6252    pub GetTapeNameString: ::std::option::Option<
6253        unsafe extern "C" fn(
6254            inEffectRef: PF_ProgPtr,
6255            inSourceTrack: i32,
6256            inSequenceTime: PrTime,
6257            outSDKString: *mut PrSDKString,
6258        ) -> PF_Err,
6259    >,
6260    pub GetVideoCodecString: ::std::option::Option<
6261        unsafe extern "C" fn(
6262            inEffectRef: PF_ProgPtr,
6263            inSourceTrack: i32,
6264            inSequenceTime: PrTime,
6265            outSDKString: *mut PrSDKString,
6266        ) -> PF_Err,
6267    >,
6268    pub GetGoodMetadataString: ::std::option::Option<
6269        unsafe extern "C" fn(
6270            inEffectRef: PF_ProgPtr,
6271            inSourceTrack: i32,
6272            inSequenceTime: PrTime,
6273            outSDKString: *mut PrSDKString,
6274        ) -> PF_Err,
6275    >,
6276    pub GetSoundRollString: ::std::option::Option<
6277        unsafe extern "C" fn(
6278            inEffectRef: PF_ProgPtr,
6279            inSourceTrack: i32,
6280            inSequenceTime: PrTime,
6281            outSDKString: *mut PrSDKString,
6282        ) -> PF_Err,
6283    >,
6284    pub GetSequenceTime: ::std::option::Option<
6285        unsafe extern "C" fn(inEffectRef: PF_ProgPtr, outSequenceTime: *mut PrTime) -> PF_Err,
6286    >,
6287    pub GetSoundTimecode: ::std::option::Option<
6288        unsafe extern "C" fn(
6289            inEffectRef: PF_ProgPtr,
6290            inSourceTrack: i32,
6291            inSequenceTime: PrTime,
6292            outCurrentFrame: *mut A_long,
6293        ) -> PF_Err,
6294    >,
6295    pub GetOriginalClipFrameRateForSourceTrack: ::std::option::Option<
6296        unsafe extern "C" fn(
6297            inEffectRef: PF_ProgPtr,
6298            inSourceTrack: i32,
6299            outTicksPerFrame: *mut PrTime,
6300        ) -> PF_Err,
6301    >,
6302    pub GetMediaFrameRateForSourceTrack: ::std::option::Option<
6303        unsafe extern "C" fn(
6304            inEffectRef: PF_ProgPtr,
6305            inSourceTrack: i32,
6306            inSequenceTime: PrTime,
6307            outTicksPerFrame: *mut PrTime,
6308        ) -> PF_Err,
6309    >,
6310    pub GetSourceTrackMediaActualStartTime: ::std::option::Option<
6311        unsafe extern "C" fn(
6312            inEffectRef: PF_ProgPtr,
6313            inLayerParamIndex: csSDK_uint32,
6314            inSequenceTime: PrTime,
6315            outClipActualStartTime: *mut PrTime,
6316        ) -> PF_Err,
6317    >,
6318    pub IsSourceTrackMediaTrimmed: ::std::option::Option<
6319        unsafe extern "C" fn(
6320            inEffectRef: PF_ProgPtr,
6321            inLayerParamIndex: csSDK_uint32,
6322            inSequenceTime: PrTime,
6323            outTrimApplied: *mut bool,
6324        ) -> PF_Err,
6325    >,
6326    pub IsMediaTrimmed: ::std::option::Option<
6327        unsafe extern "C" fn(
6328            inEffectRef: PF_ProgPtr,
6329            inSequenceTime: PrTime,
6330            outTrimApplied: *mut bool,
6331        ) -> PF_Err,
6332    >,
6333    pub IsTrackEmpty: ::std::option::Option<
6334        unsafe extern "C" fn(
6335            inEffectRef: PF_ProgPtr,
6336            inLayerParamIndex: csSDK_uint32,
6337            inSequenceTime: PrTime,
6338            outIsTrackEmpty: *mut bool,
6339        ) -> PF_Err,
6340    >,
6341    pub IsTrackItemEffectAppliedToSynthetic: ::std::option::Option<
6342        unsafe extern "C" fn(
6343            inEffectRef: PF_ProgPtr,
6344            outIsTrackItemEffectAppliedToSynthetic: *mut bool,
6345        ) -> PF_Err,
6346    >,
6347    pub GetSourceTrackCurrentMediaTimeInfo: ::std::option::Option<
6348        unsafe extern "C" fn(
6349            effect_ref: PF_ProgPtr,
6350            inLayerParamIndex: csSDK_uint32,
6351            inUseSoundTimecodeAsStartTime: bool,
6352            inSequenceTime: PrTime,
6353            outCurrentMediaTime: *mut PrTime,
6354            outMediaTicksPerFrame: *mut PrTime,
6355            outMediaTimeDisplay: *mut PF_TimeDisplay,
6356        ) -> PF_Err,
6357    >,
6358    pub GetSequenceZeroPoint: ::std::option::Option<
6359        unsafe extern "C" fn(inEffectRef: PF_ProgPtr, outZeroPointTime: *mut PrTime) -> PF_Err,
6360    >,
6361    pub GetSourceTrackCurrentClipDuration: ::std::option::Option<
6362        unsafe extern "C" fn(
6363            inEffectRef: PF_ProgPtr,
6364            inLayerParamIndex: csSDK_uint32,
6365            inSequenceTime: PrTime,
6366            outClipDuration: *mut PrTime,
6367        ) -> PF_Err,
6368    >,
6369    pub GetSequenceDuration: ::std::option::Option<
6370        unsafe extern "C" fn(inEffectRef: PF_ProgPtr, outSequenceDuration: *mut PrTime) -> PF_Err,
6371    >,
6372    pub GetVideoResolutionString: ::std::option::Option<
6373        unsafe extern "C" fn(
6374            inEffectRef: PF_ProgPtr,
6375            inSourceTrack: i32,
6376            inSequenceTime: PrTime,
6377            outSDKString: *mut PrSDKString,
6378        ) -> PF_Err,
6379    >,
6380    pub GetMasterClipName: ::std::option::Option<
6381        unsafe extern "C" fn(
6382            inEffectRef: PF_ProgPtr,
6383            inSourceTrack: i32,
6384            inSequenceTime: PrTime,
6385            outSDKString: *mut PrSDKString,
6386        ) -> PF_Err,
6387    >,
6388    pub GetFileNameByTrackIndex: ::std::option::Option<
6389        unsafe extern "C" fn(
6390            inEffectRef: PF_ProgPtr,
6391            inSourceTrack: i32,
6392            inSequenceTime: PrTime,
6393            outSDKString: *mut PrSDKString,
6394        ) -> PF_Err,
6395    >,
6396    pub GetTrackItemName: ::std::option::Option<
6397        unsafe extern "C" fn(
6398            inEffectRef: PF_ProgPtr,
6399            inSourceTrack: i32,
6400            inSequenceTime: PrTime,
6401            outSDKString: *mut PrSDKString,
6402        ) -> PF_Err,
6403    >,
6404}
6405#[repr(C)]
6406#[derive(Debug, Copy, Clone)]
6407pub struct PF_UtilitySuite12 {
6408    pub GetFilterInstanceID: ::std::option::Option<
6409        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outFilterInstanceID: *mut A_long) -> PF_Err,
6410    >,
6411    pub GetMediaTimecode: ::std::option::Option<
6412        unsafe extern "C" fn(
6413            effect_ref: PF_ProgPtr,
6414            outCurrentFrame: *mut A_long,
6415            outTimeDisplay: *mut PF_TimeDisplay,
6416        ) -> PF_Err,
6417    >,
6418    pub GetClipSpeed: ::std::option::Option<
6419        unsafe extern "C" fn(effect_ref: PF_ProgPtr, speed: *mut f64) -> PF_Err,
6420    >,
6421    pub GetClipDuration: ::std::option::Option<
6422        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
6423    >,
6424    pub GetClipStart: ::std::option::Option<
6425        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
6426    >,
6427    pub GetUnscaledClipDuration: ::std::option::Option<
6428        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
6429    >,
6430    pub GetUnscaledClipStart: ::std::option::Option<
6431        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
6432    >,
6433    pub GetTrackItemStart: ::std::option::Option<
6434        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
6435    >,
6436    pub GetMediaFieldType: ::std::option::Option<
6437        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outFieldType: *mut prFieldType) -> PF_Err,
6438    >,
6439    pub GetMediaFrameRate: ::std::option::Option<
6440        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outTicksPerFrame: *mut PrTime) -> PF_Err,
6441    >,
6442    pub GetContainingTimelineID: ::std::option::Option<
6443        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outTimelineID: *mut PrTimelineID) -> PF_Err,
6444    >,
6445    pub GetClipName: ::std::option::Option<
6446        unsafe extern "C" fn(
6447            effect_ref: PF_ProgPtr,
6448            inGetMasterClipName: A_Boolean,
6449            outSDKString: *mut PrSDKString,
6450        ) -> PF_Err,
6451    >,
6452    pub EffectWantsCheckedOutFramesToMatchRenderPixelFormat:
6453        ::std::option::Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr) -> PF_Err>,
6454    pub EffectDependsOnClipName: ::std::option::Option<
6455        unsafe extern "C" fn(effect_ref: PF_ProgPtr, inDependsOnClipName: A_Boolean) -> PF_Err,
6456    >,
6457    pub SetEffectInstanceName: ::std::option::Option<
6458        unsafe extern "C" fn(effect_ref: PF_ProgPtr, inSDKString: *const PrSDKString) -> PF_Err,
6459    >,
6460    pub GetFileName: ::std::option::Option<
6461        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outSDKString: *mut PrSDKString) -> PF_Err,
6462    >,
6463    pub GetOriginalClipFrameRate: ::std::option::Option<
6464        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outTicksPerFrame: *mut PrTime) -> PF_Err,
6465    >,
6466    pub GetSourceTrackMediaTimecode: ::std::option::Option<
6467        unsafe extern "C" fn(
6468            effect_ref: PF_ProgPtr,
6469            inLayerParamIndex: csSDK_uint32,
6470            inApplyTransform: bool,
6471            inAddStartTimeOffset: bool,
6472            outCurrentFrame: *mut A_long,
6473        ) -> PF_Err,
6474    >,
6475    pub GetSourceTrackClipName: ::std::option::Option<
6476        unsafe extern "C" fn(
6477            effect_ref: PF_ProgPtr,
6478            inLayerParamIndex: csSDK_uint32,
6479            inGetMasterClipName: A_Boolean,
6480            outSDKString: *mut PrSDKString,
6481        ) -> PF_Err,
6482    >,
6483    pub GetSourceTrackFileName: ::std::option::Option<
6484        unsafe extern "C" fn(
6485            effect_ref: PF_ProgPtr,
6486            inLayerParamIndex: csSDK_uint32,
6487            outSDKString: *mut PrSDKString,
6488        ) -> PF_Err,
6489    >,
6490    pub EffectDependsOnClipName2: ::std::option::Option<
6491        unsafe extern "C" fn(
6492            effect_ref: PF_ProgPtr,
6493            inDependsOnClipName: A_Boolean,
6494            inLayerParamIndex: csSDK_uint32,
6495        ) -> PF_Err,
6496    >,
6497    pub GetMediaTimecode2: ::std::option::Option<
6498        unsafe extern "C" fn(
6499            effect_ref: PF_ProgPtr,
6500            inApplyTrim: bool,
6501            outCurrentFrame: *mut A_long,
6502            outTimeDisplay: *mut PF_TimeDisplay,
6503        ) -> PF_Err,
6504    >,
6505    pub GetSourceTrackMediaTimecode2: ::std::option::Option<
6506        unsafe extern "C" fn(
6507            effect_ref: PF_ProgPtr,
6508            inLayerParamIndex: csSDK_uint32,
6509            inApplyTransform: bool,
6510            inAddStartTimeOffset: bool,
6511            inSequenceTime: PrTime,
6512            outCurrentFrame: *mut A_long,
6513        ) -> PF_Err,
6514    >,
6515    pub GetSourceTrackClipName2: ::std::option::Option<
6516        unsafe extern "C" fn(
6517            effect_ref: PF_ProgPtr,
6518            inLayerParamIndex: csSDK_uint32,
6519            inGetMasterClipName: A_Boolean,
6520            outSDKString: *mut PrSDKString,
6521            inSequenceTime: PrTime,
6522        ) -> PF_Err,
6523    >,
6524    pub GetSourceTrackFileName2: ::std::option::Option<
6525        unsafe extern "C" fn(
6526            effect_ref: PF_ProgPtr,
6527            inLayerParamIndex: csSDK_uint32,
6528            outSDKString: *mut PrSDKString,
6529            inSequenceTime: PrTime,
6530        ) -> PF_Err,
6531    >,
6532    pub GetCommentString: ::std::option::Option<
6533        unsafe extern "C" fn(
6534            inEffectRef: PF_ProgPtr,
6535            inSourceTrack: i32,
6536            inSequenceTime: PrTime,
6537            outSDKString: *mut PrSDKString,
6538        ) -> PF_Err,
6539    >,
6540    pub GetLogNoteString: ::std::option::Option<
6541        unsafe extern "C" fn(
6542            inEffectRef: PF_ProgPtr,
6543            inSourceTrack: i32,
6544            inSequenceTime: PrTime,
6545            outSDKString: *mut PrSDKString,
6546        ) -> PF_Err,
6547    >,
6548    pub GetCameraRollString: ::std::option::Option<
6549        unsafe extern "C" fn(
6550            inEffectRef: PF_ProgPtr,
6551            inSourceTrack: i32,
6552            inSequenceTime: PrTime,
6553            outSDKString: *mut PrSDKString,
6554        ) -> PF_Err,
6555    >,
6556    pub GetClientMetadataString: ::std::option::Option<
6557        unsafe extern "C" fn(
6558            inEffectRef: PF_ProgPtr,
6559            inSourceTrack: i32,
6560            inSequenceTime: PrTime,
6561            outSDKString: *mut PrSDKString,
6562        ) -> PF_Err,
6563    >,
6564    pub GetDailyRollString: ::std::option::Option<
6565        unsafe extern "C" fn(
6566            inEffectRef: PF_ProgPtr,
6567            inSourceTrack: i32,
6568            inSequenceTime: PrTime,
6569            outSDKString: *mut PrSDKString,
6570        ) -> PF_Err,
6571    >,
6572    pub GetDescriptionString: ::std::option::Option<
6573        unsafe extern "C" fn(
6574            inEffectRef: PF_ProgPtr,
6575            inSourceTrack: i32,
6576            inSequenceTime: PrTime,
6577            outSDKString: *mut PrSDKString,
6578        ) -> PF_Err,
6579    >,
6580    pub GetLabRollString: ::std::option::Option<
6581        unsafe extern "C" fn(
6582            inEffectRef: PF_ProgPtr,
6583            inSourceTrack: i32,
6584            inSequenceTime: PrTime,
6585            outSDKString: *mut PrSDKString,
6586        ) -> PF_Err,
6587    >,
6588    pub GetSceneString: ::std::option::Option<
6589        unsafe extern "C" fn(
6590            inEffectRef: PF_ProgPtr,
6591            inSourceTrack: i32,
6592            inSequenceTime: PrTime,
6593            outSDKString: *mut PrSDKString,
6594        ) -> PF_Err,
6595    >,
6596    pub GetShotString: ::std::option::Option<
6597        unsafe extern "C" fn(
6598            inEffectRef: PF_ProgPtr,
6599            inSourceTrack: i32,
6600            inSequenceTime: PrTime,
6601            outSDKString: *mut PrSDKString,
6602        ) -> PF_Err,
6603    >,
6604    pub GetTapeNameString: ::std::option::Option<
6605        unsafe extern "C" fn(
6606            inEffectRef: PF_ProgPtr,
6607            inSourceTrack: i32,
6608            inSequenceTime: PrTime,
6609            outSDKString: *mut PrSDKString,
6610        ) -> PF_Err,
6611    >,
6612    pub GetVideoCodecString: ::std::option::Option<
6613        unsafe extern "C" fn(
6614            inEffectRef: PF_ProgPtr,
6615            inSourceTrack: i32,
6616            inSequenceTime: PrTime,
6617            outSDKString: *mut PrSDKString,
6618        ) -> PF_Err,
6619    >,
6620    pub GetGoodMetadataString: ::std::option::Option<
6621        unsafe extern "C" fn(
6622            inEffectRef: PF_ProgPtr,
6623            inSourceTrack: i32,
6624            inSequenceTime: PrTime,
6625            outSDKString: *mut PrSDKString,
6626        ) -> PF_Err,
6627    >,
6628    pub GetSoundRollString: ::std::option::Option<
6629        unsafe extern "C" fn(
6630            inEffectRef: PF_ProgPtr,
6631            inSourceTrack: i32,
6632            inSequenceTime: PrTime,
6633            outSDKString: *mut PrSDKString,
6634        ) -> PF_Err,
6635    >,
6636    pub GetSequenceTime: ::std::option::Option<
6637        unsafe extern "C" fn(inEffectRef: PF_ProgPtr, outSequenceTime: *mut PrTime) -> PF_Err,
6638    >,
6639    pub GetSoundTimecode: ::std::option::Option<
6640        unsafe extern "C" fn(
6641            inEffectRef: PF_ProgPtr,
6642            inSourceTrack: i32,
6643            inSequenceTime: PrTime,
6644            outCurrentFrame: *mut A_long,
6645        ) -> PF_Err,
6646    >,
6647    pub GetOriginalClipFrameRateForSourceTrack: ::std::option::Option<
6648        unsafe extern "C" fn(
6649            inEffectRef: PF_ProgPtr,
6650            inSourceTrack: i32,
6651            outTicksPerFrame: *mut PrTime,
6652        ) -> PF_Err,
6653    >,
6654    pub GetMediaFrameRateForSourceTrack: ::std::option::Option<
6655        unsafe extern "C" fn(
6656            inEffectRef: PF_ProgPtr,
6657            inSourceTrack: i32,
6658            inSequenceTime: PrTime,
6659            outTicksPerFrame: *mut PrTime,
6660        ) -> PF_Err,
6661    >,
6662    pub GetSourceTrackMediaActualStartTime: ::std::option::Option<
6663        unsafe extern "C" fn(
6664            inEffectRef: PF_ProgPtr,
6665            inLayerParamIndex: csSDK_uint32,
6666            inSequenceTime: PrTime,
6667            outClipActualStartTime: *mut PrTime,
6668        ) -> PF_Err,
6669    >,
6670    pub IsSourceTrackMediaTrimmed: ::std::option::Option<
6671        unsafe extern "C" fn(
6672            inEffectRef: PF_ProgPtr,
6673            inLayerParamIndex: csSDK_uint32,
6674            inSequenceTime: PrTime,
6675            outTrimApplied: *mut bool,
6676        ) -> PF_Err,
6677    >,
6678    pub IsMediaTrimmed: ::std::option::Option<
6679        unsafe extern "C" fn(
6680            inEffectRef: PF_ProgPtr,
6681            inSequenceTime: PrTime,
6682            outTrimApplied: *mut bool,
6683        ) -> PF_Err,
6684    >,
6685    pub IsTrackEmpty: ::std::option::Option<
6686        unsafe extern "C" fn(
6687            inEffectRef: PF_ProgPtr,
6688            inLayerParamIndex: csSDK_uint32,
6689            inSequenceTime: PrTime,
6690            outIsTrackEmpty: *mut bool,
6691        ) -> PF_Err,
6692    >,
6693    pub IsTrackItemEffectAppliedToSynthetic: ::std::option::Option<
6694        unsafe extern "C" fn(
6695            inEffectRef: PF_ProgPtr,
6696            outIsTrackItemEffectAppliedToSynthetic: *mut bool,
6697        ) -> PF_Err,
6698    >,
6699    pub GetSourceTrackCurrentMediaTimeInfo: ::std::option::Option<
6700        unsafe extern "C" fn(
6701            effect_ref: PF_ProgPtr,
6702            inLayerParamIndex: csSDK_uint32,
6703            inUseSoundTimecodeAsStartTime: bool,
6704            inSequenceTime: PrTime,
6705            outCurrentMediaTime: *mut PrTime,
6706            outMediaTicksPerFrame: *mut PrTime,
6707            outMediaTimeDisplay: *mut PF_TimeDisplay,
6708        ) -> PF_Err,
6709    >,
6710    pub GetSequenceZeroPoint: ::std::option::Option<
6711        unsafe extern "C" fn(inEffectRef: PF_ProgPtr, outZeroPointTime: *mut PrTime) -> PF_Err,
6712    >,
6713    pub GetSourceTrackCurrentClipDuration: ::std::option::Option<
6714        unsafe extern "C" fn(
6715            inEffectRef: PF_ProgPtr,
6716            inLayerParamIndex: csSDK_uint32,
6717            inSequenceTime: PrTime,
6718            outClipDuration: *mut PrTime,
6719        ) -> PF_Err,
6720    >,
6721    pub GetSequenceDuration: ::std::option::Option<
6722        unsafe extern "C" fn(inEffectRef: PF_ProgPtr, outSequenceDuration: *mut PrTime) -> PF_Err,
6723    >,
6724    pub GetVideoResolutionString: ::std::option::Option<
6725        unsafe extern "C" fn(
6726            inEffectRef: PF_ProgPtr,
6727            inSourceTrack: i32,
6728            inSequenceTime: PrTime,
6729            outSDKString: *mut PrSDKString,
6730        ) -> PF_Err,
6731    >,
6732    pub GetMasterClipName: ::std::option::Option<
6733        unsafe extern "C" fn(
6734            inEffectRef: PF_ProgPtr,
6735            inSourceTrack: i32,
6736            inSequenceTime: PrTime,
6737            outSDKString: *mut PrSDKString,
6738        ) -> PF_Err,
6739    >,
6740    pub GetFileNameByTrackIndex: ::std::option::Option<
6741        unsafe extern "C" fn(
6742            inEffectRef: PF_ProgPtr,
6743            inSourceTrack: i32,
6744            inSequenceTime: PrTime,
6745            outSDKString: *mut PrSDKString,
6746        ) -> PF_Err,
6747    >,
6748    pub GetTrackItemName: ::std::option::Option<
6749        unsafe extern "C" fn(
6750            inEffectRef: PF_ProgPtr,
6751            inSourceTrack: i32,
6752            inSequenceTime: PrTime,
6753            outSDKString: *mut PrSDKString,
6754        ) -> PF_Err,
6755    >,
6756    pub IsOnAdjustmentLayer: ::std::option::Option<
6757        unsafe extern "C" fn(inEffectRef: PF_ProgPtr, outIsOnAdjustmentLayer: *mut bool) -> PF_Err,
6758    >,
6759    pub GetTrackIndexFromID: ::std::option::Option<
6760        unsafe extern "C" fn(
6761            inEffectRef: PF_ProgPtr,
6762            inSourceTrackID: i32,
6763            outTrackIndex: *mut i32,
6764            outIsAudioTrack: *mut bool,
6765        ) -> PF_Err,
6766    >,
6767    pub IsOnTransparentVideo: ::std::option::Option<
6768        unsafe extern "C" fn(inEffectRef: PF_ProgPtr, outIsOnTransparentVideo: *mut bool) -> PF_Err,
6769    >,
6770    pub GetVideoFrameRateOrAudioSampleRate: ::std::option::Option<
6771        unsafe extern "C" fn(
6772            inEffectRef: PF_ProgPtr,
6773            inSourceTrack: i32,
6774            inSequenceTime: PrTime,
6775            outTicksPerFrame: *mut PrTime,
6776            outIsAudioSampleRate: *mut bool,
6777        ) -> PF_Err,
6778    >,
6779}
6780#[repr(C)]
6781#[derive(Debug, Copy, Clone)]
6782pub struct PF_UtilitySuite13 {
6783    pub GetFilterInstanceID: ::std::option::Option<
6784        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outFilterInstanceID: *mut A_long) -> PF_Err,
6785    >,
6786    pub GetMediaTimecode: ::std::option::Option<
6787        unsafe extern "C" fn(
6788            effect_ref: PF_ProgPtr,
6789            outCurrentFrame: *mut A_long,
6790            outTimeDisplay: *mut PF_TimeDisplay,
6791        ) -> PF_Err,
6792    >,
6793    pub GetClipSpeed: ::std::option::Option<
6794        unsafe extern "C" fn(effect_ref: PF_ProgPtr, speed: *mut f64) -> PF_Err,
6795    >,
6796    pub GetClipDuration: ::std::option::Option<
6797        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
6798    >,
6799    pub GetClipStart: ::std::option::Option<
6800        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
6801    >,
6802    pub GetUnscaledClipDuration: ::std::option::Option<
6803        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
6804    >,
6805    pub GetUnscaledClipStart: ::std::option::Option<
6806        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
6807    >,
6808    pub GetTrackItemStart: ::std::option::Option<
6809        unsafe extern "C" fn(effect_ref: PF_ProgPtr, frameDuration: *mut A_long) -> PF_Err,
6810    >,
6811    pub GetMediaFieldType: ::std::option::Option<
6812        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outFieldType: *mut prFieldType) -> PF_Err,
6813    >,
6814    pub GetMediaFrameRate: ::std::option::Option<
6815        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outTicksPerFrame: *mut PrTime) -> PF_Err,
6816    >,
6817    pub GetContainingTimelineID: ::std::option::Option<
6818        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outTimelineID: *mut PrTimelineID) -> PF_Err,
6819    >,
6820    pub GetClipName: ::std::option::Option<
6821        unsafe extern "C" fn(
6822            effect_ref: PF_ProgPtr,
6823            inGetMasterClipName: A_Boolean,
6824            outSDKString: *mut PrSDKString,
6825        ) -> PF_Err,
6826    >,
6827    pub EffectWantsCheckedOutFramesToMatchRenderPixelFormat:
6828        ::std::option::Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr) -> PF_Err>,
6829    pub EffectDependsOnClipName: ::std::option::Option<
6830        unsafe extern "C" fn(effect_ref: PF_ProgPtr, inDependsOnClipName: A_Boolean) -> PF_Err,
6831    >,
6832    pub SetEffectInstanceName: ::std::option::Option<
6833        unsafe extern "C" fn(effect_ref: PF_ProgPtr, inSDKString: *const PrSDKString) -> PF_Err,
6834    >,
6835    pub GetFileName: ::std::option::Option<
6836        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outSDKString: *mut PrSDKString) -> PF_Err,
6837    >,
6838    pub GetOriginalClipFrameRate: ::std::option::Option<
6839        unsafe extern "C" fn(effect_ref: PF_ProgPtr, outTicksPerFrame: *mut PrTime) -> PF_Err,
6840    >,
6841    pub GetSourceTrackMediaTimecode: ::std::option::Option<
6842        unsafe extern "C" fn(
6843            effect_ref: PF_ProgPtr,
6844            inLayerParamIndex: csSDK_uint32,
6845            inApplyTransform: bool,
6846            inAddStartTimeOffset: bool,
6847            outCurrentFrame: *mut A_long,
6848        ) -> PF_Err,
6849    >,
6850    pub GetSourceTrackClipName: ::std::option::Option<
6851        unsafe extern "C" fn(
6852            effect_ref: PF_ProgPtr,
6853            inLayerParamIndex: csSDK_uint32,
6854            inGetMasterClipName: A_Boolean,
6855            outSDKString: *mut PrSDKString,
6856        ) -> PF_Err,
6857    >,
6858    pub GetSourceTrackFileName: ::std::option::Option<
6859        unsafe extern "C" fn(
6860            effect_ref: PF_ProgPtr,
6861            inLayerParamIndex: csSDK_uint32,
6862            outSDKString: *mut PrSDKString,
6863        ) -> PF_Err,
6864    >,
6865    pub EffectDependsOnClipName2: ::std::option::Option<
6866        unsafe extern "C" fn(
6867            effect_ref: PF_ProgPtr,
6868            inDependsOnClipName: A_Boolean,
6869            inLayerParamIndex: csSDK_uint32,
6870        ) -> PF_Err,
6871    >,
6872    pub GetMediaTimecode2: ::std::option::Option<
6873        unsafe extern "C" fn(
6874            effect_ref: PF_ProgPtr,
6875            inApplyTrim: bool,
6876            outCurrentFrame: *mut A_long,
6877            outTimeDisplay: *mut PF_TimeDisplay,
6878        ) -> PF_Err,
6879    >,
6880    pub GetSourceTrackMediaTimecode2: ::std::option::Option<
6881        unsafe extern "C" fn(
6882            effect_ref: PF_ProgPtr,
6883            inLayerParamIndex: csSDK_uint32,
6884            inApplyTransform: bool,
6885            inAddStartTimeOffset: bool,
6886            inSequenceTime: PrTime,
6887            outCurrentFrame: *mut A_long,
6888        ) -> PF_Err,
6889    >,
6890    pub GetSourceTrackClipName2: ::std::option::Option<
6891        unsafe extern "C" fn(
6892            effect_ref: PF_ProgPtr,
6893            inLayerParamIndex: csSDK_uint32,
6894            inGetMasterClipName: A_Boolean,
6895            outSDKString: *mut PrSDKString,
6896            inSequenceTime: PrTime,
6897        ) -> PF_Err,
6898    >,
6899    pub GetSourceTrackFileName2: ::std::option::Option<
6900        unsafe extern "C" fn(
6901            effect_ref: PF_ProgPtr,
6902            inLayerParamIndex: csSDK_uint32,
6903            outSDKString: *mut PrSDKString,
6904            inSequenceTime: PrTime,
6905        ) -> PF_Err,
6906    >,
6907    pub GetCommentString: ::std::option::Option<
6908        unsafe extern "C" fn(
6909            inEffectRef: PF_ProgPtr,
6910            inSourceTrack: i32,
6911            inSequenceTime: PrTime,
6912            outSDKString: *mut PrSDKString,
6913        ) -> PF_Err,
6914    >,
6915    pub GetLogNoteString: ::std::option::Option<
6916        unsafe extern "C" fn(
6917            inEffectRef: PF_ProgPtr,
6918            inSourceTrack: i32,
6919            inSequenceTime: PrTime,
6920            outSDKString: *mut PrSDKString,
6921        ) -> PF_Err,
6922    >,
6923    pub GetCameraRollString: ::std::option::Option<
6924        unsafe extern "C" fn(
6925            inEffectRef: PF_ProgPtr,
6926            inSourceTrack: i32,
6927            inSequenceTime: PrTime,
6928            outSDKString: *mut PrSDKString,
6929        ) -> PF_Err,
6930    >,
6931    pub GetClientMetadataString: ::std::option::Option<
6932        unsafe extern "C" fn(
6933            inEffectRef: PF_ProgPtr,
6934            inSourceTrack: i32,
6935            inSequenceTime: PrTime,
6936            outSDKString: *mut PrSDKString,
6937        ) -> PF_Err,
6938    >,
6939    pub GetDailyRollString: ::std::option::Option<
6940        unsafe extern "C" fn(
6941            inEffectRef: PF_ProgPtr,
6942            inSourceTrack: i32,
6943            inSequenceTime: PrTime,
6944            outSDKString: *mut PrSDKString,
6945        ) -> PF_Err,
6946    >,
6947    pub GetDescriptionString: ::std::option::Option<
6948        unsafe extern "C" fn(
6949            inEffectRef: PF_ProgPtr,
6950            inSourceTrack: i32,
6951            inSequenceTime: PrTime,
6952            outSDKString: *mut PrSDKString,
6953        ) -> PF_Err,
6954    >,
6955    pub GetLabRollString: ::std::option::Option<
6956        unsafe extern "C" fn(
6957            inEffectRef: PF_ProgPtr,
6958            inSourceTrack: i32,
6959            inSequenceTime: PrTime,
6960            outSDKString: *mut PrSDKString,
6961        ) -> PF_Err,
6962    >,
6963    pub GetSceneString: ::std::option::Option<
6964        unsafe extern "C" fn(
6965            inEffectRef: PF_ProgPtr,
6966            inSourceTrack: i32,
6967            inSequenceTime: PrTime,
6968            outSDKString: *mut PrSDKString,
6969        ) -> PF_Err,
6970    >,
6971    pub GetShotString: ::std::option::Option<
6972        unsafe extern "C" fn(
6973            inEffectRef: PF_ProgPtr,
6974            inSourceTrack: i32,
6975            inSequenceTime: PrTime,
6976            outSDKString: *mut PrSDKString,
6977        ) -> PF_Err,
6978    >,
6979    pub GetTapeNameString: ::std::option::Option<
6980        unsafe extern "C" fn(
6981            inEffectRef: PF_ProgPtr,
6982            inSourceTrack: i32,
6983            inSequenceTime: PrTime,
6984            outSDKString: *mut PrSDKString,
6985        ) -> PF_Err,
6986    >,
6987    pub GetVideoCodecString: ::std::option::Option<
6988        unsafe extern "C" fn(
6989            inEffectRef: PF_ProgPtr,
6990            inSourceTrack: i32,
6991            inSequenceTime: PrTime,
6992            outSDKString: *mut PrSDKString,
6993        ) -> PF_Err,
6994    >,
6995    pub GetGoodMetadataString: ::std::option::Option<
6996        unsafe extern "C" fn(
6997            inEffectRef: PF_ProgPtr,
6998            inSourceTrack: i32,
6999            inSequenceTime: PrTime,
7000            outSDKString: *mut PrSDKString,
7001        ) -> PF_Err,
7002    >,
7003    pub GetSoundRollString: ::std::option::Option<
7004        unsafe extern "C" fn(
7005            inEffectRef: PF_ProgPtr,
7006            inSourceTrack: i32,
7007            inSequenceTime: PrTime,
7008            outSDKString: *mut PrSDKString,
7009        ) -> PF_Err,
7010    >,
7011    pub GetSequenceTime: ::std::option::Option<
7012        unsafe extern "C" fn(inEffectRef: PF_ProgPtr, outSequenceTime: *mut PrTime) -> PF_Err,
7013    >,
7014    pub GetSoundTimecode: ::std::option::Option<
7015        unsafe extern "C" fn(
7016            inEffectRef: PF_ProgPtr,
7017            inSourceTrack: i32,
7018            inSequenceTime: PrTime,
7019            outCurrentFrame: *mut A_long,
7020        ) -> PF_Err,
7021    >,
7022    pub GetOriginalClipFrameRateForSourceTrack: ::std::option::Option<
7023        unsafe extern "C" fn(
7024            inEffectRef: PF_ProgPtr,
7025            inSourceTrack: i32,
7026            outTicksPerFrame: *mut PrTime,
7027        ) -> PF_Err,
7028    >,
7029    pub GetMediaFrameRateForSourceTrack: ::std::option::Option<
7030        unsafe extern "C" fn(
7031            inEffectRef: PF_ProgPtr,
7032            inSourceTrack: i32,
7033            inSequenceTime: PrTime,
7034            outTicksPerFrame: *mut PrTime,
7035        ) -> PF_Err,
7036    >,
7037    pub GetSourceTrackMediaActualStartTime: ::std::option::Option<
7038        unsafe extern "C" fn(
7039            inEffectRef: PF_ProgPtr,
7040            inLayerParamIndex: csSDK_uint32,
7041            inSequenceTime: PrTime,
7042            outClipActualStartTime: *mut PrTime,
7043        ) -> PF_Err,
7044    >,
7045    pub IsSourceTrackMediaTrimmed: ::std::option::Option<
7046        unsafe extern "C" fn(
7047            inEffectRef: PF_ProgPtr,
7048            inLayerParamIndex: csSDK_uint32,
7049            inSequenceTime: PrTime,
7050            outTrimApplied: *mut bool,
7051        ) -> PF_Err,
7052    >,
7053    pub IsMediaTrimmed: ::std::option::Option<
7054        unsafe extern "C" fn(
7055            inEffectRef: PF_ProgPtr,
7056            inSequenceTime: PrTime,
7057            outTrimApplied: *mut bool,
7058        ) -> PF_Err,
7059    >,
7060    pub IsTrackEmpty: ::std::option::Option<
7061        unsafe extern "C" fn(
7062            inEffectRef: PF_ProgPtr,
7063            inLayerParamIndex: csSDK_uint32,
7064            inSequenceTime: PrTime,
7065            outIsTrackEmpty: *mut bool,
7066        ) -> PF_Err,
7067    >,
7068    pub IsTrackItemEffectAppliedToSynthetic: ::std::option::Option<
7069        unsafe extern "C" fn(
7070            inEffectRef: PF_ProgPtr,
7071            outIsTrackItemEffectAppliedToSynthetic: *mut bool,
7072        ) -> PF_Err,
7073    >,
7074    pub GetSourceTrackCurrentMediaTimeInfo: ::std::option::Option<
7075        unsafe extern "C" fn(
7076            effect_ref: PF_ProgPtr,
7077            inLayerParamIndex: csSDK_uint32,
7078            inUseSoundTimecodeAsStartTime: bool,
7079            inSequenceTime: PrTime,
7080            outCurrentMediaTime: *mut PrTime,
7081            outMediaTicksPerFrame: *mut PrTime,
7082            outMediaTimeDisplay: *mut PF_TimeDisplay,
7083        ) -> PF_Err,
7084    >,
7085    pub GetSequenceZeroPoint: ::std::option::Option<
7086        unsafe extern "C" fn(inEffectRef: PF_ProgPtr, outZeroPointTime: *mut PrTime) -> PF_Err,
7087    >,
7088    pub GetSourceTrackCurrentClipDuration: ::std::option::Option<
7089        unsafe extern "C" fn(
7090            inEffectRef: PF_ProgPtr,
7091            inLayerParamIndex: csSDK_uint32,
7092            inSequenceTime: PrTime,
7093            outClipDuration: *mut PrTime,
7094        ) -> PF_Err,
7095    >,
7096    pub GetSequenceDuration: ::std::option::Option<
7097        unsafe extern "C" fn(inEffectRef: PF_ProgPtr, outSequenceDuration: *mut PrTime) -> PF_Err,
7098    >,
7099    pub GetVideoResolutionString: ::std::option::Option<
7100        unsafe extern "C" fn(
7101            inEffectRef: PF_ProgPtr,
7102            inSourceTrack: i32,
7103            inSequenceTime: PrTime,
7104            outSDKString: *mut PrSDKString,
7105        ) -> PF_Err,
7106    >,
7107    pub GetMasterClipName: ::std::option::Option<
7108        unsafe extern "C" fn(
7109            inEffectRef: PF_ProgPtr,
7110            inSourceTrack: i32,
7111            inSequenceTime: PrTime,
7112            outSDKString: *mut PrSDKString,
7113        ) -> PF_Err,
7114    >,
7115    pub GetFileNameByTrackIndex: ::std::option::Option<
7116        unsafe extern "C" fn(
7117            inEffectRef: PF_ProgPtr,
7118            inSourceTrack: i32,
7119            inSequenceTime: PrTime,
7120            outSDKString: *mut PrSDKString,
7121        ) -> PF_Err,
7122    >,
7123    pub GetTrackItemName: ::std::option::Option<
7124        unsafe extern "C" fn(
7125            inEffectRef: PF_ProgPtr,
7126            inSourceTrack: i32,
7127            inSequenceTime: PrTime,
7128            outSDKString: *mut PrSDKString,
7129        ) -> PF_Err,
7130    >,
7131    pub IsOnAdjustmentLayer: ::std::option::Option<
7132        unsafe extern "C" fn(inEffectRef: PF_ProgPtr, outIsOnAdjustmentLayer: *mut bool) -> PF_Err,
7133    >,
7134    pub GetTrackIndexFromID: ::std::option::Option<
7135        unsafe extern "C" fn(
7136            inEffectRef: PF_ProgPtr,
7137            inSourceTrackID: i32,
7138            outTrackIndex: *mut i32,
7139            outIsAudioTrack: *mut bool,
7140        ) -> PF_Err,
7141    >,
7142    pub IsOnTransparentVideo: ::std::option::Option<
7143        unsafe extern "C" fn(inEffectRef: PF_ProgPtr, outIsOnTransparentVideo: *mut bool) -> PF_Err,
7144    >,
7145    pub GetVideoFrameRateOrAudioSampleRate: ::std::option::Option<
7146        unsafe extern "C" fn(
7147            inEffectRef: PF_ProgPtr,
7148            inSourceTrack: i32,
7149            inSequenceTime: PrTime,
7150            outTicksPerFrame: *mut PrTime,
7151            outIsAudioSampleRate: *mut bool,
7152        ) -> PF_Err,
7153    >,
7154    pub DoesTrackExist: ::std::option::Option<
7155        unsafe extern "C" fn(
7156            inEffectRef: PF_ProgPtr,
7157            inLayerParamIndex: csSDK_uint32,
7158            outTrackExists: *mut bool,
7159        ) -> PF_Err,
7160    >,
7161}
7162pub type PF_UtilitySuiteVersion1 = PF_UtilitySuite;
7163pub type PF_UtilitySuite2 = PF_UtilitySuite;
7164pub type PF_UtilitySuite3 = PF_UtilitySuite;
7165pub type PF_UtilitySuite5 = PF_UtilitySuite;
7166pub type PF_UtilitySuite6 = PF_UtilitySuite;
7167pub type PF_UtilitySuite7 = PF_UtilitySuite;
7168pub type PF_UtilitySuite8 = PF_UtilitySuite;
7169#[repr(C)]
7170#[derive(Debug, Copy, Clone)]
7171pub struct PF_SourceSettingsSuite {
7172    pub PerformSourceSettingsCommand: ::std::option::Option<
7173        unsafe extern "C" fn(
7174            inEffectRef: PF_ProgPtr,
7175            ioCommandStruct: *mut ::std::os::raw::c_void,
7176            inDataSize: csSDK_uint32,
7177        ) -> PF_Err,
7178    >,
7179    pub SetIsSourceSettingsEffect: ::std::option::Option<
7180        unsafe extern "C" fn(
7181            inEffectRef: PF_ProgPtr,
7182            inIsSourceSettingsEffect: A_Boolean,
7183        ) -> PF_Err,
7184    >,
7185}
7186pub type PF_SourceSettingsSuite2 = PF_SourceSettingsSuite;
7187#[repr(C)]
7188#[derive(Debug, Copy, Clone)]
7189pub struct PF_TransitionSuite {
7190    #[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."]
7191    pub RegisterTransitionInputParam: ::std::option::Option<
7192        unsafe extern "C" fn(inEffectRef: PF_ProgPtr, inIndex: PF_ParamIndex) -> PF_Err,
7193    >,
7194    #[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."]
7195    pub RegisterTransitionStartParam: ::std::option::Option<
7196        unsafe extern "C" fn(inEffectRef: PF_ProgPtr, inIndex: PF_ParamIndex) -> PF_Err,
7197    >,
7198    #[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."]
7199    pub RegisterTransitionEndParam: ::std::option::Option<
7200        unsafe extern "C" fn(inEffectRef: PF_ProgPtr, inIndex: PF_ParamIndex) -> PF_Err,
7201    >,
7202}
7203#[repr(C)]
7204#[derive(Debug, Copy, Clone)]
7205pub struct OpaqueEffectDataType {
7206    _unused: [u8; 0],
7207}
7208#[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."]
7209#[repr(C)]
7210#[derive(Debug, Copy, Clone)]
7211pub struct PrSDKOpaqueEffectDataSuite {
7212    #[doc = "Acquire 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."]
7213    pub AcquireOpaqueEffectData: ::std::option::Option<
7214        unsafe extern "C" fn(
7215            instanceID: csSDK_int32,
7216            outOpaqueEffectDataPP: *mut *mut OpaqueEffectDataType,
7217        ) -> PF_Err,
7218    >,
7219    #[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"]
7220    pub RegisterOpaqueEffectData: ::std::option::Option<
7221        unsafe extern "C" fn(
7222            instanceID: csSDK_int32,
7223            ioOpaqueEffectDataPP: *mut *mut OpaqueEffectDataType,
7224        ) -> PF_Err,
7225    >,
7226    #[doc = "Release 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."]
7227    pub ReleaseOpaqueEffectData: ::std::option::Option<
7228        unsafe extern "C" fn(
7229            instanceID: csSDK_int32,
7230            outDisposeOpaqueEffectDataPP: *mut *mut OpaqueEffectDataType,
7231        ) -> PF_Err,
7232    >,
7233}
7234pub const PrPixelFormatGpu_GPU_BGRA_4444_32f: PrPixelFormatGpu = 1094992704;
7235pub const PrPixelFormatGpu_GPU_BGRA_4444_16f: PrPixelFormatGpu = 1631863616;
7236pub type PrPixelFormatGpu = ::std::os::raw::c_uint;