core_media_sys/
time.rs

1use crate::core_foundation_sys::base::{OSStatus, Boolean, CFAllocatorRef, CFTypeID, CFTypeRef};
2use crate::core_foundation_sys::dictionary::CFDictionaryRef;
3use crate::core_foundation_sys::string::CFStringRef;
4
5use crate::sync::CMClockRef;
6
7
8pub type CMTimeValue = i64;
9pub type CMTimeScale = i32;
10pub type CMTimeEpoch = i64;
11pub type CMTimeFlags = u32;
12
13pub const kCMTimeFlags_Valid: CMTimeFlags = 1<<0;
14pub const kCMTimeFlags_HasBeenRounded: CMTimeFlags = 1<<1;
15pub const kCMTimeFlags_PositiveInfinity: CMTimeFlags = 1<<2;
16pub const kCMTimeFlags_NegativeInfinity: CMTimeFlags = 1<<3;
17pub const kCMTimeFlags_Indefinite: CMTimeFlags = 1<<4;
18pub const kCMTimeFlags_ImpliedValueFlagsMask: CMTimeFlags = kCMTimeFlags_PositiveInfinity 
19                                                            | kCMTimeFlags_NegativeInfinity
20                                                            | kCMTimeFlags_Indefinite;
21
22
23#[repr(C)]
24#[derive(Debug, Copy, Clone)]
25pub struct CMTime {
26    pub value: CMTimeValue,
27    pub timescale: CMTimeScale,
28    pub flags: CMTimeFlags,
29    pub epoch: CMTimeEpoch,
30}
31
32
33extern "C" {
34    pub static kCMTimeInvalid: CMTime;
35    pub static kCMTimeIndefinite: CMTime;
36    pub static kCMTimePositiveInfinity: CMTime;
37    pub static kCMTimeNegativeInfinity: CMTime;
38    pub static kCMTimeZero: CMTime;
39    
40
41}