core_media_sys/
sample_buffer.rs

1use crate::libc::c_void;
2use crate::core_foundation_sys::base::{OSStatus, Boolean, CFAllocatorRef, CFTypeID, CFTypeRef};
3use crate::core_foundation_sys::dictionary::CFDictionaryRef;
4use crate::core_foundation_sys::string::CFStringRef;
5
6use crate::base::CMItemIndex;
7use crate::sync::CMClockRef;
8use crate::time::CMTime;
9
10
11pub type CMSampleBufferRef = *mut c_void;
12pub type CMSampleBufferMakeDataReadyCallback = extern "C" fn(sbuf: CMSampleBufferRef, 
13                                                             makeDataReadyRefcon: *mut c_void) -> OSStatus;
14
15
16#[repr(C)]
17#[derive(Debug, Copy, Clone)]
18pub struct CMSampleTimingInfo {
19    pub duration: CMTime,
20    pub presentation_time_stamp: CMTime,
21    pub decode_time_stamp: CMTime,
22}
23
24
25extern "C" {
26    pub fn CMSampleBufferGetSampleTimingInfo(sbuf: CMSampleBufferRef,
27                                             sampleIndex: CMItemIndex,
28                                             timingInfoOut: *mut CMSampleTimingInfo) -> OSStatus;
29}