pub struct VTRAWProcessingSession { /* private fields */ }VTRAWProcessingSession only.Expand description
A reference to a Video Toolbox RAW Processing Session.
A RAW processing session supports processing of frames that have been output from decoders in camera native formats, for example RAW or bayer formats. The session reference is a reference-counted CF object.
See also Apple’s documentation
Implementations§
Source§impl VTRAWProcessingSession
impl VTRAWProcessingSession
Sourcepub unsafe fn create(
allocator: Option<&CFAllocator>,
format_description: &CMVideoFormatDescription,
output_pixel_buffer_attributes: Option<&CFDictionary>,
processing_session_options: Option<&CFDictionary>,
processing_session_out: NonNull<*mut VTRAWProcessingSession>,
) -> i32
Available on crate feature objc2-core-media only.
pub unsafe fn create( allocator: Option<&CFAllocator>, format_description: &CMVideoFormatDescription, output_pixel_buffer_attributes: Option<&CFDictionary>, processing_session_options: Option<&CFDictionary>, processing_session_out: NonNull<*mut VTRAWProcessingSession>, ) -> i32
objc2-core-media only.Creates a RAW video frame processing session.
.
Parameter allocator: An allocator for the session. Pass NULL to use the default allocator.
Parameter formatDescription: The CMVideoFormatDescription corresponding to the original media samples, containing sequence-level processing parameters.
Parameter outputPixelBufferAttributes: A CoreVideo pixel buffer attributes dictionary describing the client’s requirements for pixel buffers for output frames.
Pass NULL to receive the RAW processor’s native output format.
Parameter processingSessionOptions: A dictionary of creation-time options for the VTRAWProcessingSession.
Parameter processingSessionOut: Points to a variable to receive the new RAW processing session.
When you are done with the session, call VTRAWProcessingSessionInvalidate
to tear it down and then CFRelease to release your object reference.
§Safety
output_pixel_buffer_attributesgenerics must be of the correct type.processing_session_optionsgenerics must be of the correct type.processing_session_outmust be a valid pointer.
Sourcepub unsafe fn invalidate(&self)
pub unsafe fn invalidate(&self)
Tears down a RAW processing session.
When you are done with a decompression session you created, call VTRAWProcessingSessionInvalidate to tear it down and then CFRelease to release your object reference. When a 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 VTRAWProcessingSessionInvalidate ensures a deterministic, orderly teardown.
Source§impl VTRAWProcessingSession
impl VTRAWProcessingSession
Sourcepub unsafe fn set_parameter_changed_handler(
&self,
parameter_change_handler: VTRAWProcessingParameterChangeHandler,
) -> i32
Available on crate feature block2 only.
pub unsafe fn set_parameter_changed_handler( &self, parameter_change_handler: VTRAWProcessingParameterChangeHandler, ) -> i32
block2 only.Provides a block which will be called when the VTRAWProcessingPlugin changes the set of processing parameters..
This block will be called the VTRAWProcessingPlugin either changes the set of available processing parameters, or changes the current value of parameters. The VTRAWProcessingPlugin may change parameters based on metadata associated with input frames, or in response to other parameters configured by VTRAWProcessingSessionSetProcessingParameters. This optional and does not need to be configured if the client is not driving UI based on these parameters, or otherwise does not need this.
Parameter session: The RAW processing session.
Parameter parameterChangeHandler: A VTRAWProcessingParameterChangeHandler block which will be called when the set of processing parameters changes, or the value of a parameter changes without the client explicitly requesting it.
Setting this to NULL removes the current handler.
§Safety
parameter_change_handler must be a valid pointer or null.
Sourcepub unsafe fn set_parameter_changed_hander(
&self,
parameter_change_handler: VTRAWProcessingParameterChangeHandler,
) -> i32
👎DeprecatedAvailable on crate feature block2 only.
pub unsafe fn set_parameter_changed_hander( &self, parameter_change_handler: VTRAWProcessingParameterChangeHandler, ) -> i32
block2 only.§Safety
parameter_change_handler must be a valid pointer or null.
Source§impl VTRAWProcessingSession
impl VTRAWProcessingSession
Sourcepub unsafe fn process_frame(
&self,
input_pixel_buffer: &CVPixelBuffer,
frame_options: Option<&CFDictionary>,
output_handler: VTRAWProcessingOutputHandler,
) -> i32
Available on crate features block2 and objc2-core-video only.
pub unsafe fn process_frame( &self, input_pixel_buffer: &CVPixelBuffer, frame_options: Option<&CFDictionary>, output_handler: VTRAWProcessingOutputHandler, ) -> i32
block2 and objc2-core-video only.Call this function to submit RAW frames for format-specific processing using sequence and frame level parameters.
Processed frames may or may not be output before the function returns, The client should not modify the input pixel data after making this call. The RAW Processor will retain the input pixel buffer as long as necessary.
For any RAW processor, there is a finite number of frames that can be presented to VTRAWProcessingSessionProcessFrame before the function will block until the output callback is invoked.
Parameter session: The RAW processing session.
Parameter inputPixelBuffer: A CVPixelBuffer containing an input video frame to be processed.
Parameter frameOptions: Contains key/value pairs specifying additional properties for processing this frame.
No keys currently. Pass NULL.
Parameter outputHandler: A VTRAWProcessingOutputHandler block which will be called once when processing is complete.
§Safety
frame_optionsgenerics must be of the correct type.output_handlermust be a valid pointer.
Sourcepub unsafe fn complete_frames(&self) -> i32
pub unsafe fn complete_frames(&self) -> i32
Forces the RAW Processor to complete processing frames.
Call this after calling a set of VTRAWProcessingSessionProcessFrame calls to ensure that all frames have been processed. Before VTRAWProcessingSessionCompleteFrames returns, the output handler will be invoked for all pending frames.
Parameter session: The RAW processing session.
Sourcepub unsafe fn copy_processing_parameters(
&self,
out_parameter_array: NonNull<*const CFArray>,
) -> i32
pub unsafe fn copy_processing_parameters( &self, out_parameter_array: NonNull<*const CFArray>, ) -> i32
Copies an array of dictionaries describing the parameters provided by the RAW Processor for frame processing
This will return an array of dictionaries, one dictionary for each parameter that can be controlled in the RAW Processing operation. The dictionary for each parameter will contain a set of kVTRAWProcessingParameter keys whose values provide a name, value type, value range, and current value for each parameter.
The returned values can be used to contruct dynamic UI presenting RAW Processing controls allowing the various knobs for this specific RAW Processor to be viewed and manipulated.
Parameter session: The RAW processing session.
Parameter outParameterArray: Pointer for receiving the RAW Processing parameter array..
§Safety
out_parameter_array must be a valid pointer.
Sourcepub unsafe fn set_processing_parameters(
&self,
processing_parameters: &CFDictionary,
) -> i32
pub unsafe fn set_processing_parameters( &self, processing_parameters: &CFDictionary, ) -> i32
Sets a collection of RAW Processing parameters
This call will set a collection of RAW Processing parameters on the RAW Processor. These are set as a dictionary where the keys match kVTRAWProcessingParameter_Key values that were returned in VTRAWProcessingSessionCopyProcessingParameters and where values conform to the type and range defined in the kVTRAWProcessingParameter dictionary for each parameter.
Not all parameters from the RAWProcessingParameter array need to be set at any given time. Changining the parameters will not change processing on frames already submitted for processing, it will only impact frames where VTRAWProcessingSessionProcessFrame is called after VTRAWProcessingSessionSetProcessingParameters returns.
If any parameters specified are not in the array reported by VTRAWProcessingSessionCopyProcessingParameters, or are the wrong type or are out of range, kVTParameterErr will be returned and none of the parameters will be applied.
Parameter session: The RAW processing session.
Parameter processingParameters: A dictionary of keys and values setting parameters reported by VTRAWProcessingSessionCopyProcessingParameters.
Returns: Returns an error if any of the provided parameters are invalid, disabled or outside of the declared valid range. None of the provided parameters will be set on the processor if an error is returned.
§Safety
processing_parameters generics must be of the correct type.
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 VTRAWProcessingSession
impl AsRef<AnyObject> for VTRAWProcessingSession
Source§impl AsRef<CFType> for VTRAWProcessingSession
impl AsRef<CFType> for VTRAWProcessingSession
Source§impl Borrow<AnyObject> for VTRAWProcessingSession
impl Borrow<AnyObject> for VTRAWProcessingSession
Source§impl Borrow<CFType> for VTRAWProcessingSession
impl Borrow<CFType> for VTRAWProcessingSession
Source§impl Debug for VTRAWProcessingSession
impl Debug for VTRAWProcessingSession
Source§impl Deref for VTRAWProcessingSession
impl Deref for VTRAWProcessingSession
Source§impl Hash for VTRAWProcessingSession
impl Hash for VTRAWProcessingSession
Source§impl Message for VTRAWProcessingSession
impl Message for VTRAWProcessingSession
Source§impl PartialEq for VTRAWProcessingSession
impl PartialEq for VTRAWProcessingSession
Source§impl RefEncode for VTRAWProcessingSession
impl RefEncode for VTRAWProcessingSession
Source§const ENCODING_REF: Encoding
const ENCODING_REF: Encoding
Source§impl Type for VTRAWProcessingSession
impl Type for VTRAWProcessingSession
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