pub struct VTPixelTransferSession { /* private fields */ }VTPixelTransferSession only.Expand description
A reference to a Video Toolbox Pixel Transfer Session.
A pixel transfer session supports the copying and/or conversion of images from source CVPixelBuffers to destination CVPixelBuffers. The session reference is a reference-counted CF object. To create a pixel transfer session, call VTPixelTransferSessionCreate; then you can optionally configure the session using VTSessionSetProperty; then to transfer pixels, call VTPixelTransferSessionTransferImage. When you are done with the session, you should call VTPixelTransferSessionInvalidate to tear it down and CFRelease to release your object reference.
See also Apple’s documentation
Implementations§
Source§impl VTPixelTransferSession
impl VTPixelTransferSession
Sourcepub unsafe fn create(
allocator: Option<&CFAllocator>,
pixel_transfer_session_out: NonNull<*mut VTPixelTransferSession>,
) -> i32
pub unsafe fn create( allocator: Option<&CFAllocator>, pixel_transfer_session_out: NonNull<*mut VTPixelTransferSession>, ) -> i32
Creates a session for transferring images between CVPixelBuffers.
The function creates a session for transferring images between CVPixelBuffers.
Parameter allocator: An allocator for the session. Pass NULL to use the default allocator.
Parameter pixelTransferSessionOut: Points to a variable to receive the new pixel transfer session.
§Safety
pixel_transfer_session_out must be a valid pointer.
Sourcepub unsafe fn invalidate(&self)
pub unsafe fn invalidate(&self)
Tears down a pixel transfer session.
When you are done with a pixel transfer session you created, call VTPixelTransferSessionInvalidate to tear it down and then CFRelease to release your object reference. When a pixel transfer session’s retain count reaches zero, it is automatically invalidated, but since sessions may be retained by multiple parties, it can be hard to predict when this will happen. Calling VTPixelTransferSessionInvalidate ensures a deterministic, orderly teardown.
Source§impl VTPixelTransferSession
impl VTPixelTransferSession
Sourcepub unsafe fn transfer_image(
&self,
source_buffer: &CVPixelBuffer,
destination_buffer: &CVPixelBuffer,
) -> i32
Available on crate feature objc2-core-video only.
pub unsafe fn transfer_image( &self, source_buffer: &CVPixelBuffer, destination_buffer: &CVPixelBuffer, ) -> i32
objc2-core-video only.Copies and/or converts an image from one pixel buffer to another.
By default, the full width and height of sourceBuffer are scaled to the full width and height of destinationBuffer. By default, all existing attachments on destinationBuffer are removed and new attachments are set describing the transferred image. Unrecognised attachments on sourceBuffer will be propagated to destinationBuffer. Some properties will modify this behaviour; see VTPixelTransferProperties.h for more details.
Parameter session: The pixel transfer session.
Parameter sourceBuffer: The source buffer.
Parameter destinationBuffer: The destination buffer.
Returns: If the transfer was successful, noErr; otherwise an error code, such as kVTPixelTransferNotSupportedErr.
Methods from Deref<Target = CFType>§
Sourcepub fn downcast_ref<T>(&self) -> Option<&T>where
T: ConcreteType,
Available on crate feature VTSession only.
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: ConcreteType,
VTSession only.Attempt to downcast the type to that of type T.
This is the reference-variant. Use CFRetained::downcast if you
want to convert a retained type. See also ConcreteType for more
details on which types support being converted to.
Sourcepub fn retain_count(&self) -> usize
Available on crate feature VTSession only.
pub fn retain_count(&self) -> usize
VTSession only.Get the reference count of the object.
This function may be useful for debugging. You normally do not use this function otherwise.
Beware that some things (like CFNumbers, small CFStrings etc.) may
not have a normal retain count for optimization purposes, and can
return usize::MAX in that case.
Trait Implementations§
Source§impl AsRef<AnyObject> for VTPixelTransferSession
impl AsRef<AnyObject> for VTPixelTransferSession
Source§impl AsRef<CFType> for VTPixelTransferSession
impl AsRef<CFType> for VTPixelTransferSession
Source§impl Borrow<AnyObject> for VTPixelTransferSession
impl Borrow<AnyObject> for VTPixelTransferSession
Source§impl Borrow<CFType> for VTPixelTransferSession
impl Borrow<CFType> for VTPixelTransferSession
Source§impl Debug for VTPixelTransferSession
impl Debug for VTPixelTransferSession
Source§impl Deref for VTPixelTransferSession
impl Deref for VTPixelTransferSession
Source§impl Hash for VTPixelTransferSession
impl Hash for VTPixelTransferSession
Source§impl Message for VTPixelTransferSession
impl Message for VTPixelTransferSession
Source§impl PartialEq for VTPixelTransferSession
impl PartialEq for VTPixelTransferSession
Source§impl RefEncode for VTPixelTransferSession
impl RefEncode for VTPixelTransferSession
Source§const ENCODING_REF: Encoding
const ENCODING_REF: Encoding
Source§impl Type for VTPixelTransferSession
impl Type for VTPixelTransferSession
Source§fn retain(&self) -> CFRetained<Self>where
Self: Sized,
fn retain(&self) -> CFRetained<Self>where
Self: Sized,
Source§fn as_concrete_TypeRef(&self) -> &Self
fn as_concrete_TypeRef(&self) -> &Self
core-foundation crate.Source§unsafe fn wrap_under_get_rule(ptr: *const Self) -> CFRetained<Self>where
Self: Sized,
unsafe fn wrap_under_get_rule(ptr: *const Self) -> CFRetained<Self>where
Self: Sized,
core-foundation crate. Read moreSource§fn as_CFTypeRef(&self) -> &CFType
fn as_CFTypeRef(&self) -> &CFType
core-foundation crate.Source§unsafe fn wrap_under_create_rule(ptr: *const Self) -> CFRetained<Self>where
Self: Sized,
unsafe fn wrap_under_create_rule(ptr: *const Self) -> CFRetained<Self>where
Self: Sized,
core-foundation crate. Read more