AVCaptureTimecode

Struct AVCaptureTimecode 

Source
#[repr(C)]
pub struct AVCaptureTimecode { pub hours: u8, pub minutes: u8, pub seconds: u8, pub frames: u8, pub userBits: u32, pub frameDuration: CMTime, pub sourceType: AVCaptureTimecodeSourceType, }
Available on crate features AVCaptureTimecodeGenerator and objc2-core-media only.
Expand description

This structure represents a timecode, adhering to SMPTE standards, which define precise time information and associated timestamps for video or audio synchronization.

This structure corresponds to the SMPTE 12M-1 Linear Timecode (LTC) format, widely used for professional video and audio synchronization.

See also Apple’s documentation

Fields§

§hours: u8

Time component representing the current timecode in hours.

§minutes: u8

Time component representing the current timecode in minutes.

§seconds: u8

Time component representing the current timecode in seconds.

§frames: u8

Frame component of the timecode, indicating the frame count within the second.

§userBits: u32

A 32-bit field carrying SMPTE user bits, which are not strictly standardized. User bits are often used for additional metadata such as scene-take information, reel numbers, or dates, but their exact usage is application-dependent.

§frameDuration: CMTime

Frame duration of the timecode. If unknown, the value is kCMTimeInvalid.

§sourceType: AVCaptureTimecodeSourceType

Source type of the timecode, indicating the emitter, carriage, or transport mechanism.

Implementations§

Source§

impl AVCaptureTimecode

Source

pub unsafe fn metadata_sample_buffer_associated_with_presentation_time_stamp( self, presentation_time_stamp: CMTime, ) -> Option<CFRetained<CMSampleBuffer>>

Available on crate feature objc2-core-foundation only.

Creates a sample buffer containing Timecode Media Description metadata for integration with a video track.

  • Parameter timecode: The AVCaptureTimecode instance providing the timecode details to encode.
  • Parameter presentationTimeStamp: The presentation time stamp that determines the exact moment in the media timeline where the metadata should be applied. It is embedded in the sample timing info (CMSampleTimingInfo) and ensures that the packaged metadata synchronizes accurately with the corresponding video frame.
  • Returns: A CMSampleBufferRef with the encoded Timecode Media Description metadata for video synchronization, or nil if sample buffer creation fails.
Source

pub unsafe fn metadata_sample_buffer_for_duration( self, duration: CMTime, ) -> Option<CFRetained<CMSampleBuffer>>

Available on crate feature objc2-core-foundation only.

Creates a sample buffer containing Timecode Media Description metadata for a specified duration.

  • Parameter timecode: The AVCaptureTimecode instance providing the timecode details for the metadata sample.
  • Parameter duration: The duration that the metadata sample buffer should represent.
  • Returns: A CMSampleBufferRef with encoded Timecode Media Description metadata for the given duration, or nil if sample buffer creation fails.

Use this function for scenarios where timecode metadata needs to span a custom interval (not just a single frame), such as non-frame-accurate workflows or for describing a segment of media with a consistent timecode.

Source

pub unsafe fn advanced_by_frames(self, frames_to_add: i64) -> AVCaptureTimecode

Generates a new timecode by adding a specified number of frames to the given timecode, handling overflow for seconds, minutes, and hours.

  • Parameter timecode: The original AVCaptureTimecode to be incremented.
  • Parameter framesToAdd: The number of frames to add to the timecode.
  • Returns: A new AVCaptureTimecode struct with the updated time values after adding the specified frames.

Trait Implementations§

Source§

impl Clone for AVCaptureTimecode

Source§

fn clone(&self) -> AVCaptureTimecode

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for AVCaptureTimecode

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Encode for AVCaptureTimecode

Source§

const ENCODING: Encoding

The Objective-C type-encoding for this type.
Source§

impl PartialEq for AVCaptureTimecode

Source§

fn eq(&self, other: &AVCaptureTimecode) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl RefEncode for AVCaptureTimecode

Source§

const ENCODING_REF: Encoding

The Objective-C type-encoding for a reference of this type. Read more
Source§

impl Copy for AVCaptureTimecode

Source§

impl StructuralPartialEq for AVCaptureTimecode

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> EncodeArgument for T
where T: Encode,

Source§

const ENCODING_ARGUMENT: Encoding = T::ENCODING

The Objective-C type-encoding for this type.
Source§

impl<T> EncodeReturn for T
where T: Encode,

Source§

const ENCODING_RETURN: Encoding = T::ENCODING

The Objective-C type-encoding for this type.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> AutoreleaseSafe for T
where T: ?Sized,