objc2_core_video/generated/
CVBase.rs1use core::ffi::*;
4#[cfg(feature = "objc2")]
5use objc2::__framework_prelude::*;
6
7use crate::*;
8
9pub type CVOptionFlags = u64;
15
16#[repr(C)]
38#[derive(Clone, Copy, Debug, PartialEq)]
39pub struct CVSMPTETime {
40 pub subframes: i16,
41 pub subframeDivisor: i16,
42 pub counter: u32,
43 pub r#type: u32,
44 pub flags: u32,
45 pub hours: i16,
46 pub minutes: i16,
47 pub seconds: i16,
48 pub frames: i16,
49}
50
51#[cfg(feature = "objc2")]
52unsafe impl Encode for CVSMPTETime {
53 const ENCODING: Encoding = Encoding::Struct(
54 "CVSMPTETime",
55 &[
56 <i16>::ENCODING,
57 <i16>::ENCODING,
58 <u32>::ENCODING,
59 <u32>::ENCODING,
60 <u32>::ENCODING,
61 <i16>::ENCODING,
62 <i16>::ENCODING,
63 <i16>::ENCODING,
64 <i16>::ENCODING,
65 ],
66 );
67}
68
69#[cfg(feature = "objc2")]
70unsafe impl RefEncode for CVSMPTETime {
71 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
72}
73
74#[repr(transparent)]
95#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
96pub struct CVSMPTETimeType(pub u32);
97impl CVSMPTETimeType {
98 #[doc(alias = "kCVSMPTETimeType24")]
99 pub const Type24: Self = Self(0);
100 #[doc(alias = "kCVSMPTETimeType25")]
101 pub const Type25: Self = Self(1);
102 #[doc(alias = "kCVSMPTETimeType30Drop")]
103 pub const Type30Drop: Self = Self(2);
104 #[doc(alias = "kCVSMPTETimeType30")]
105 pub const Type30: Self = Self(3);
106 #[doc(alias = "kCVSMPTETimeType2997")]
107 pub const Type2997: Self = Self(4);
108 #[doc(alias = "kCVSMPTETimeType2997Drop")]
109 pub const Type2997Drop: Self = Self(5);
110 #[doc(alias = "kCVSMPTETimeType60")]
111 pub const Type60: Self = Self(6);
112 #[doc(alias = "kCVSMPTETimeType5994")]
113 pub const Type5994: Self = Self(7);
114}
115
116#[cfg(feature = "objc2")]
117unsafe impl Encode for CVSMPTETimeType {
118 const ENCODING: Encoding = u32::ENCODING;
119}
120
121#[cfg(feature = "objc2")]
122unsafe impl RefEncode for CVSMPTETimeType {
123 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
124}
125
126#[repr(transparent)]
135#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
136pub struct CVSMPTETimeFlags(pub u32);
137bitflags::bitflags! {
138 impl CVSMPTETimeFlags: u32 {
139 #[doc(alias = "kCVSMPTETimeValid")]
140 const Valid = 1<<0;
141 #[doc(alias = "kCVSMPTETimeRunning")]
142 const Running = 1<<1;
143 }
144}
145
146#[cfg(feature = "objc2")]
147unsafe impl Encode for CVSMPTETimeFlags {
148 const ENCODING: Encoding = u32::ENCODING;
149}
150
151#[cfg(feature = "objc2")]
152unsafe impl RefEncode for CVSMPTETimeFlags {
153 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
154}
155
156#[repr(transparent)]
159#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
160pub struct CVTimeFlags(pub i32);
161bitflags::bitflags! {
162 impl CVTimeFlags: i32 {
163 #[doc(alias = "kCVTimeIsIndefinite")]
164 const IsIndefinite = 1<<0;
165 }
166}
167
168#[cfg(feature = "objc2")]
169unsafe impl Encode for CVTimeFlags {
170 const ENCODING: Encoding = i32::ENCODING;
171}
172
173#[cfg(feature = "objc2")]
174unsafe impl RefEncode for CVTimeFlags {
175 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
176}
177
178#[repr(C)]
180#[derive(Clone, Copy, Debug, PartialEq)]
181pub struct CVTime {
182 pub timeValue: i64,
183 pub timeScale: i32,
184 pub flags: i32,
185}
186
187#[cfg(feature = "objc2")]
188unsafe impl Encode for CVTime {
189 const ENCODING: Encoding =
190 Encoding::Struct("?", &[<i64>::ENCODING, <i32>::ENCODING, <i32>::ENCODING]);
191}
192
193#[cfg(feature = "objc2")]
194unsafe impl RefEncode for CVTime {
195 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
196}
197
198#[repr(C)]
225#[derive(Clone, Copy, Debug, PartialEq)]
226pub struct CVTimeStamp {
227 pub version: u32,
228 pub videoTimeScale: i32,
229 pub videoTime: i64,
230 pub hostTime: u64,
231 pub rateScalar: c_double,
232 pub videoRefreshPeriod: i64,
233 pub smpteTime: CVSMPTETime,
234 pub flags: u64,
235 pub reserved: u64,
236}
237
238#[cfg(feature = "objc2")]
239unsafe impl Encode for CVTimeStamp {
240 const ENCODING: Encoding = Encoding::Struct(
241 "?",
242 &[
243 <u32>::ENCODING,
244 <i32>::ENCODING,
245 <i64>::ENCODING,
246 <u64>::ENCODING,
247 <c_double>::ENCODING,
248 <i64>::ENCODING,
249 <CVSMPTETime>::ENCODING,
250 <u64>::ENCODING,
251 <u64>::ENCODING,
252 ],
253 );
254}
255
256#[cfg(feature = "objc2")]
257unsafe impl RefEncode for CVTimeStamp {
258 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
259}
260
261#[repr(transparent)]
264#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
265pub struct CVTimeStampFlags(pub u64);
266bitflags::bitflags! {
267 impl CVTimeStampFlags: u64 {
268 #[doc(alias = "kCVTimeStampVideoTimeValid")]
269 const VideoTimeValid = 1<<0;
270 #[doc(alias = "kCVTimeStampHostTimeValid")]
271 const HostTimeValid = 1<<1;
272 #[doc(alias = "kCVTimeStampSMPTETimeValid")]
273 const SMPTETimeValid = 1<<2;
274 #[doc(alias = "kCVTimeStampVideoRefreshPeriodValid")]
275 const VideoRefreshPeriodValid = 1<<3;
276 #[doc(alias = "kCVTimeStampRateScalarValid")]
277 const RateScalarValid = 1<<4;
278 #[doc(alias = "kCVTimeStampTopField")]
279 const TopField = 1<<16;
280 #[doc(alias = "kCVTimeStampBottomField")]
281 const BottomField = 1<<17;
282 #[doc(alias = "kCVTimeStampVideoHostTimeValid")]
283 const VideoHostTimeValid = CVTimeStampFlags::VideoTimeValid.0|CVTimeStampFlags::HostTimeValid.0;
284 #[doc(alias = "kCVTimeStampIsInterlaced")]
285 const IsInterlaced = CVTimeStampFlags::TopField.0|CVTimeStampFlags::BottomField.0;
286 }
287}
288
289#[cfg(feature = "objc2")]
290unsafe impl Encode for CVTimeStampFlags {
291 const ENCODING: Encoding = u64::ENCODING;
292}
293
294#[cfg(feature = "objc2")]
295unsafe impl RefEncode for CVTimeStampFlags {
296 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
297}
298
299extern "C" {
300 pub static kCVZeroTime: CVTime;
302}
303
304extern "C" {
305 pub static kCVIndefiniteTime: CVTime;
307}