pub struct VTPixelRotationSession { /* private fields */ }VTPixelRotationSession only.Expand description
A reference to a Video Toolbox Pixel Rotation Session.
A pixel rotation session supports the rotating of images from source CVPixelBuffers to destination CVPixelBuffers. The session reference is a reference-counted CF object. To create an image rotation session, call VTPixelRotationSessionCreate; then you can optionally configure the session using VTSessionSetProperty; then to transfer pixels, call VTPixelRotationSessionRotateImage. When you are done with the session, you should call CFRelease to tear it down and release your object reference.
See also Apple’s documentation
Implementations§
Source§impl VTPixelRotationSession
impl VTPixelRotationSession
Sourcepub unsafe fn create(
allocator: Option<&CFAllocator>,
pixel_rotation_session_out: NonNull<*mut VTPixelRotationSession>,
) -> i32
pub unsafe fn create( allocator: Option<&CFAllocator>, pixel_rotation_session_out: NonNull<*mut VTPixelRotationSession>, ) -> i32
Creates a session for rotating images between CVPixelBuffers.
Parameter allocator: An allocator for the session. Pass NULL to use the default allocator.
Parameter pixelRotationSessionOut: Points to a variable to receive the new pixel rotation session.
§Safety
pixel_rotation_session_out must be a valid pointer.
Sourcepub unsafe fn invalidate(&self)
pub unsafe fn invalidate(&self)
Tears down a pixel rotation session.
When you are done with an image rotation session you created, call VTPixelRotationSessionInvalidate to tear it down and then CFRelease to release your object reference. When an pixel rotation 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 VTPixelRotationSessionInvalidate ensures a deterministic, orderly teardown.
Source§impl VTPixelRotationSession
impl VTPixelRotationSession
Sourcepub unsafe fn rotate_image(
&self,
source_buffer: &CVPixelBuffer,
destination_buffer: &CVPixelBuffer,
) -> i32
Available on crate feature objc2-core-video only.
pub unsafe fn rotate_image( &self, source_buffer: &CVPixelBuffer, destination_buffer: &CVPixelBuffer, ) -> i32
objc2-core-video only.Rotates a pixel buffer.
Rotates sourceBuffer and places the output in destinationBuffer. For 90 and 270 degree rotations, the width and height of destinationBuffer must be the inverse of sourceBuffer. For 180 degree rotations, the width and height of destinationBuffer and sourceBuffer must match. 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 may modify this behaviour; see VTPixelRotationProperties.h for more details.
Parameter session: The pixel rotation session.
Parameter sourceBuffer: The source buffer.
Parameter destinationBuffer: The destination buffer.
Returns: If the transfer was successful, noErr; otherwise an error code, such as kVTPixelRotationNotSupportedErr.
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 VTPixelRotationSession
impl AsRef<AnyObject> for VTPixelRotationSession
Source§impl AsRef<CFType> for VTPixelRotationSession
impl AsRef<CFType> for VTPixelRotationSession
Source§impl Borrow<AnyObject> for VTPixelRotationSession
impl Borrow<AnyObject> for VTPixelRotationSession
Source§impl Borrow<CFType> for VTPixelRotationSession
impl Borrow<CFType> for VTPixelRotationSession
Source§impl Debug for VTPixelRotationSession
impl Debug for VTPixelRotationSession
Source§impl Deref for VTPixelRotationSession
impl Deref for VTPixelRotationSession
Source§impl Hash for VTPixelRotationSession
impl Hash for VTPixelRotationSession
Source§impl Message for VTPixelRotationSession
impl Message for VTPixelRotationSession
Source§impl PartialEq for VTPixelRotationSession
impl PartialEq for VTPixelRotationSession
Source§impl RefEncode for VTPixelRotationSession
impl RefEncode for VTPixelRotationSession
Source§const ENCODING_REF: Encoding
const ENCODING_REF: Encoding
Source§impl Type for VTPixelRotationSession
impl Type for VTPixelRotationSession
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