core_video_sys/
buffer.rs

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}