1use core_foundation_sys::{base::CFTypeRef, dictionary::CFDictionaryRef, string::CFStringRef};
2
3#[derive(Debug, Copy, Clone)]
4pub enum __CVBuffer {}
5pub type CVBufferRef = *mut __CVBuffer;
6
7pub type CVAttachmentMode = u32;
8pub const kCVAttachmentMode_ShouldNotPropagate: CVAttachmentMode = 0;
9pub const kCVAttachmentMode_ShouldPropagate: CVAttachmentMode = 1;
10
11extern "C" {
12 pub static kCVBufferPropagatedAttachmentsKey: CFStringRef;
13 pub static kCVBufferNonPropagatedAttachmentsKey: CFStringRef;
14
15 pub static kCVBufferMovieTimeKey: CFStringRef;
16 pub static kCVBufferTimeValueKey: CFStringRef;
17 pub static kCVBufferTimeScaleKey: CFStringRef;
18
19 pub fn CVBufferRetain(buffer: CVBufferRef) -> CVBufferRef;
20 pub fn CVBufferRelease(buffer: CVBufferRef);
21 pub fn CVBufferSetAttachment(
22 buffer: CVBufferRef,
23 key: CFStringRef,
24 value: CFTypeRef,
25 attachmentMode: CVAttachmentMode,
26 );
27 pub fn CVBufferGetAttachment(
28 buffer: CVBufferRef,
29 key: CFStringRef,
30 attachmentMode: *mut CVAttachmentMode,
31 ) -> CFTypeRef;
32 pub fn CVBufferRemoveAttachment(buffer: CVBufferRef, key: CFStringRef);
33 pub fn CVBufferRemoveAllAttachments(buffer: CVBufferRef);
34 pub fn CVBufferGetAttachments(
35 buffer: CVBufferRef,
36 attachmentMode: CVAttachmentMode,
37 ) -> CFDictionaryRef;
38 pub fn CVBufferSetAttachments(
39 buffer: CVBufferRef,
40 theAttachments: CFDictionaryRef,
41 attachmentMode: CVAttachmentMode,
42 );
43 pub fn CVBufferPropagateAttachments(sourceBuffer: CVBufferRef, destinationBuffer: CVBufferRef);
44
45}