pub trait AudioDecoderExt: IsA<AudioDecoder> + Sealed + 'static {
Show 32 methods // Provided methods fn allocate_output_buffer(&self, size: usize) -> Buffer { ... } fn finish_frame( &self, buf: Option<Buffer>, frames: i32 ) -> Result<FlowSuccess, FlowError> { ... } fn finish_subframe( &self, buf: Option<Buffer> ) -> Result<FlowSuccess, FlowError> { ... } fn audio_info(&self) -> AudioInfo { ... } fn delay(&self) -> i32 { ... } fn is_drainable(&self) -> bool { ... } fn estimate_rate(&self) -> i32 { ... } fn latency(&self) -> (ClockTime, Option<ClockTime>) { ... } fn max_errors(&self) -> i32 { ... } fn min_latency(&self) -> ClockTime { ... } fn needs_format(&self) -> bool { ... } fn parse_state(&self) -> (bool, bool) { ... } fn is_plc(&self) -> bool { ... } fn plc_aware(&self) -> i32 { ... } fn tolerance(&self) -> ClockTime { ... } fn merge_tags(&self, tags: Option<&TagList>, mode: TagMergeMode) { ... } fn proxy_getcaps(&self, caps: Option<&Caps>, filter: Option<&Caps>) -> Caps { ... } fn set_allocation_caps(&self, allocation_caps: Option<&Caps>) { ... } fn set_drainable(&self, enabled: bool) { ... } fn set_estimate_rate(&self, enabled: bool) { ... } fn set_latency(&self, min: ClockTime, max: impl Into<Option<ClockTime>>) { ... } fn set_max_errors(&self, num: i32) { ... } fn set_min_latency(&self, num: ClockTime) { ... } fn set_needs_format(&self, enabled: bool) { ... } fn set_plc(&self, enabled: bool) { ... } fn set_plc_aware(&self, plc: bool) { ... } fn set_tolerance(&self, tolerance: ClockTime) { ... } fn set_use_default_pad_acceptcaps(&self, use_: bool) { ... } fn connect_max_errors_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F ) -> SignalHandlerId { ... } fn connect_min_latency_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F ) -> SignalHandlerId { ... } fn connect_plc_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F ) -> SignalHandlerId { ... } fn connect_tolerance_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F ) -> SignalHandlerId { ... }
}
Expand description

Trait containing all AudioDecoder methods.

§Implementors

AudioDecoder

Provided Methods§

source

fn allocate_output_buffer(&self, size: usize) -> Buffer

Helper function that allocates a buffer to hold an audio frame for self’s current output format.

§size

size of the buffer

§Returns

allocated buffer

source

fn finish_frame( &self, buf: Option<Buffer>, frames: i32 ) -> Result<FlowSuccess, FlowError>

Collects decoded data and pushes it downstream.

buf may be NULL in which case the indicated number of frames are discarded and considered to have produced no output (e.g. lead-in or setup frames). Otherwise, source pad caps must be set when it is called with valid data in buf.

Note that a frame received in GstAudioDecoderClass.handle_frame() may be invalidated by a call to this function.

§buf

decoded data

§frames

number of decoded frames represented by decoded data

§Returns

a gst::FlowReturn that should be escalated to caller (of caller)

source

fn finish_subframe(&self, buf: Option<Buffer>) -> Result<FlowSuccess, FlowError>

Collects decoded data and pushes it downstream. This function may be called multiple times for a given input frame.

buf may be NULL in which case it is assumed that the current input frame is finished. This is equivalent to calling finish_subframe() with a NULL buffer and frames=1 after having pushed out all decoded audio subframes using this function.

When called with valid data in buf the source pad caps must have been set already.

Note that a frame received in GstAudioDecoderClass.handle_frame() may be invalidated by a call to this function.

§buf

decoded data

§Returns

a gst::FlowReturn that should be escalated to caller (of caller)

source

fn audio_info(&self) -> AudioInfo

§Returns

a AudioInfo describing the input audio format

source

fn delay(&self) -> i32

§Returns

currently configured decoder delay

source

fn is_drainable(&self) -> bool

Queries decoder drain handling.

§Returns

TRUE if drainable handling is enabled.

MT safe.

source

fn estimate_rate(&self) -> i32

§Returns

currently configured byte to time conversion setting

source

fn latency(&self) -> (ClockTime, Option<ClockTime>)

Sets the variables pointed to by min and max to the currently configured latency.

§Returns
§min

a pointer to storage to hold minimum latency

§max

a pointer to storage to hold maximum latency

source

fn max_errors(&self) -> i32

§Returns

currently configured decoder tolerated error count.

source

fn min_latency(&self) -> ClockTime

Queries decoder’s latency aggregation.

§Returns

aggregation latency.

MT safe.

source

fn needs_format(&self) -> bool

Queries decoder required format handling.

§Returns

TRUE if required format handling is enabled.

MT safe.

source

fn parse_state(&self) -> (bool, bool)

Return current parsing (sync and eos) state.

§Returns
§sync

a pointer to a variable to hold the current sync state

§eos

a pointer to a variable to hold the current eos state

source

fn is_plc(&self) -> bool

Queries decoder packet loss concealment handling.

§Returns

TRUE if packet loss concealment is enabled.

MT safe.

source

fn plc_aware(&self) -> i32

§Returns

currently configured plc handling

source

fn tolerance(&self) -> ClockTime

Queries current audio jitter tolerance threshold.

§Returns

decoder audio jitter tolerance threshold.

MT safe.

source

fn merge_tags(&self, tags: Option<&TagList>, mode: TagMergeMode)

Sets the audio decoder tags and how they should be merged with any upstream stream tags. This will override any tags previously-set with merge_tags().

Note that this is provided for convenience, and the subclass is not required to use this and can still do tag handling on its own.

§tags

a gst::TagList to merge, or NULL

§mode

the gst::TagMergeMode to use, usually gst::TagMergeMode::Replace

source

fn proxy_getcaps(&self, caps: Option<&Caps>, filter: Option<&Caps>) -> Caps

Returns caps that express caps (or sink template caps if caps == NULL) restricted to rate/channels/… combinations supported by downstream elements.

§caps

initial caps

§filter

filter caps

§Returns

a gst::Caps owned by caller

source

fn set_allocation_caps(&self, allocation_caps: Option<&Caps>)

Sets a caps in allocation query which are different from the set pad’s caps. Use this function before calling AudioDecoderExtManual::negotiate(). Setting to None the allocation query will use the caps from the pad.

§allocation_caps

a gst::Caps or None

source

fn set_drainable(&self, enabled: bool)

Configures decoder drain handling. If drainable, subclass might be handed a NULL buffer to have it return any leftover decoded data. Otherwise, it is not considered so capable and will only ever be passed real data.

MT safe.

§enabled

new state

source

fn set_estimate_rate(&self, enabled: bool)

Allows baseclass to perform byte to time estimated conversion.

§enabled

whether to enable byte to time conversion

source

fn set_latency(&self, min: ClockTime, max: impl Into<Option<ClockTime>>)

Sets decoder latency. If the provided values changed from previously provided ones, this will also post a LATENCY message on the bus so the pipeline can reconfigure its global latency.

§min

minimum latency

§max

maximum latency

source

fn set_max_errors(&self, num: i32)

Sets numbers of tolerated decoder errors, where a tolerated one is then only warned about, but more than tolerated will lead to fatal error. You can set -1 for never returning fatal errors. Default is set to GST_AUDIO_DECODER_MAX_ERRORS.

§num

max tolerated errors

source

fn set_min_latency(&self, num: ClockTime)

Sets decoder minimum aggregation latency.

MT safe.

§num

new minimum latency

source

fn set_needs_format(&self, enabled: bool)

Configures decoder format needs. If enabled, subclass needs to be negotiated with format caps before it can process any data. It will then never be handed any data before it has been configured. Otherwise, it might be handed data without having been configured and is then expected being able to do so either by default or based on the input data.

MT safe.

§enabled

new state

source

fn set_plc(&self, enabled: bool)

Enable or disable decoder packet loss concealment, provided subclass and codec are capable and allow handling plc.

MT safe.

§enabled

new state

source

fn set_plc_aware(&self, plc: bool)

Indicates whether or not subclass handles packet loss concealment (plc).

§plc

new plc state

source

fn set_tolerance(&self, tolerance: ClockTime)

Configures decoder audio jitter tolerance threshold.

MT safe.

§tolerance

new tolerance

source

fn set_use_default_pad_acceptcaps(&self, use_: bool)

Lets AudioDecoder sub-classes decide if they want the sink pad to use the default pad query handler to reply to accept-caps queries.

By setting this to true it is possible to further customize the default handler with GST_PAD_SET_ACCEPT_INTERSECT and GST_PAD_SET_ACCEPT_TEMPLATE

§use_

if the default pad accept-caps query handling should be used

source

fn connect_max_errors_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F ) -> SignalHandlerId

source

fn connect_min_latency_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F ) -> SignalHandlerId

source

fn connect_plc_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F ) -> SignalHandlerId

source

fn connect_tolerance_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F ) -> SignalHandlerId

Object Safety§

This trait is not object safe.

Implementors§