Struct gstreamer_audio::AudioStreamAlign[][src]

pub struct AudioStreamAlign(_);

crate::AudioStreamAlign provides a helper object that helps tracking audio stream alignment and discontinuities, and detects discontinuities if possible.

See Self::new() for a description of its parameters and Self::process() for the details of the processing.

Implementations

impl AudioStreamAlign[src]

pub fn new(
    rate: i32,
    alignment_threshold: ClockTime,
    discont_wait: ClockTime
) -> AudioStreamAlign
[src]

This is supported on crate feature v1_14 only.

Allocate a new crate::AudioStreamAlign with the given configuration. All processing happens according to sample rate rate, until Self::set_rate() is called with a new rate. A negative rate can be used for reverse playback.

alignment_threshold gives the tolerance in nanoseconds after which a timestamp difference is considered a discontinuity. Once detected, discont_wait nanoseconds have to pass without going below the threshold again until the output buffer is marked as a discontinuity. These can later be re-configured with Self::set_alignment_threshold() and Self::set_discont_wait().

rate

a sample rate

alignment_threshold

a alignment threshold in nanoseconds

discont_wait

discont wait in nanoseconds

Returns

a new crate::AudioStreamAlign. free with [Self::free()].

pub fn alignment_threshold(&self) -> ClockTime[src]

This is supported on crate feature v1_14 only.

pub fn discont_wait(&self) -> ClockTime[src]

This is supported on crate feature v1_14 only.

pub fn rate(&self) -> i32[src]

This is supported on crate feature v1_14 only.

pub fn samples_since_discont(&self) -> u64[src]

This is supported on crate feature v1_14 only.

pub fn timestamp_at_discont(&self) -> ClockTime[src]

This is supported on crate feature v1_14 only.

pub fn mark_discont(&mut self)[src]

This is supported on crate feature v1_14 only.

Marks the next buffer as discontinuous and resets timestamp tracking.

pub fn set_alignment_threshold(&mut self, alignment_threshold: ClockTime)[src]

This is supported on crate feature v1_14 only.

Sets alignment_treshold as new alignment threshold for the following processing.

alignment_threshold

a new alignment threshold

pub fn set_discont_wait(&mut self, discont_wait: ClockTime)[src]

This is supported on crate feature v1_14 only.

Sets alignment_treshold as new discont wait for the following processing.

discont_wait

a new discont wait

pub fn set_rate(&mut self, rate: i32)[src]

This is supported on crate feature v1_14 only.

Sets rate as new sample rate for the following processing. If the sample rate differs this implicitly marks the next data as discontinuous.

rate

a new sample rate

impl AudioStreamAlign[src]

pub fn process(
    &mut self,
    discont: bool,
    timestamp: ClockTime,
    n_samples: u32
) -> (bool, ClockTime, ClockTime, u64)
[src]

This is supported on crate feature v1_14 only.

Processes data with timestamp and n_samples, and returns the output timestamp, duration and sample position together with a boolean to signal whether a discontinuity was detected or not. All non-discontinuous data will have perfect timestamps and durations.

A discontinuity is detected once the difference between the actual timestamp and the timestamp calculated from the sample count since the last discontinuity differs by more than the alignment threshold for a duration longer than discont wait.

Note: In reverse playback, every buffer is considered discontinuous in the context of buffer flags because the last sample of the previous buffer is discontinuous with the first sample of the current one. However for this function they are only considered discontinuous in reverse playback if the first sample of the previous buffer is discontinuous with the last sample of the current one.

discont

if this data is considered to be discontinuous

timestamp

a crate::gst::ClockTime of the start of the data

n_samples

number of samples to process

out_timestamp

output timestamp of the data

out_duration

output duration of the data

out_sample_position

output sample position of the start of the data

Returns

true if a discontinuity was detected, false otherwise.

Trait Implementations

impl Clone for AudioStreamAlign[src]

This is supported on crate feature v1_14 only.

fn clone(&self) -> AudioStreamAlign[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for AudioStreamAlign[src]

This is supported on crate feature v1_14 only.

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

Formats the value using the given formatter. Read more

impl Hash for AudioStreamAlign[src]

This is supported on crate feature v1_14 only.

fn hash<__H: Hasher>(&self, state: &mut __H)[src]

Feeds this value into the given Hasher. Read more

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0[src]

Feeds a slice of this type into the given Hasher. Read more

impl Ord for AudioStreamAlign[src]

This is supported on crate feature v1_14 only.

fn cmp(&self, other: &AudioStreamAlign) -> Ordering[src]

This method returns an Ordering between self and other. Read more

#[must_use]
fn max(self, other: Self) -> Self
1.21.0[src]

Compares and returns the maximum of two values. Read more

#[must_use]
fn min(self, other: Self) -> Self
1.21.0[src]

Compares and returns the minimum of two values. Read more

#[must_use]
fn clamp(self, min: Self, max: Self) -> Self
1.50.0[src]

Restrict a value to a certain interval. Read more

impl PartialEq<AudioStreamAlign> for AudioStreamAlign[src]

This is supported on crate feature v1_14 only.

fn eq(&self, other: &AudioStreamAlign) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

fn ne(&self, other: &AudioStreamAlign) -> bool[src]

This method tests for !=.

impl PartialOrd<AudioStreamAlign> for AudioStreamAlign[src]

This is supported on crate feature v1_14 only.

fn partial_cmp(&self, other: &AudioStreamAlign) -> Option<Ordering>[src]

This method returns an ordering between self and other values if one exists. Read more

#[must_use]
fn lt(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests less than (for self and other) and is used by the < operator. Read more

#[must_use]
fn le(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

#[must_use]
fn gt(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests greater than (for self and other) and is used by the > operator. Read more

#[must_use]
fn ge(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl StaticType for AudioStreamAlign[src]

This is supported on crate feature v1_14 only.

fn static_type() -> Type[src]

Returns the type identifier of Self.

impl Eq for AudioStreamAlign[src]

This is supported on crate feature v1_14 only.

impl Send for AudioStreamAlign[src]

This is supported on crate feature v1_14 only.

impl StructuralEq for AudioStreamAlign[src]

This is supported on crate feature v1_14 only.

impl StructuralPartialEq for AudioStreamAlign[src]

This is supported on crate feature v1_14 only.

impl Sync for AudioStreamAlign[src]

This is supported on crate feature v1_14 only.

Auto Trait Implementations

impl RefUnwindSafe for AudioStreamAlign

impl Unpin for AudioStreamAlign

impl UnwindSafe for AudioStreamAlign

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

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

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

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

impl<T> ToSendValue for T where
    T: Send + ToValue + ?Sized
[src]

pub fn to_send_value(&self) -> SendValue[src]

Returns a SendValue clone of self.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<'a, T, C> FromValueOptional<'a> for T where
    C: ValueTypeChecker<Error = ValueTypeMismatchOrNoneError>,
    T: FromValue<'a, Checker = C>, 
[src]