Trait gstreamer_audio::prelude::AudioEncoderExt
source · pub trait AudioEncoderExt:
IsA<AudioEncoder>
+ Sealed
+ 'static {
Show 32 methods
// Provided methods
fn allocate_output_buffer(&self, size: usize) -> Buffer { ... }
fn finish_frame(
&self,
buffer: Option<Buffer>,
samples: i32,
) -> Result<FlowSuccess, FlowError> { ... }
fn audio_info(&self) -> AudioInfo { ... }
fn is_drainable(&self) -> bool { ... }
fn frame_max(&self) -> i32 { ... }
fn frame_samples_max(&self) -> i32 { ... }
fn frame_samples_min(&self) -> i32 { ... }
fn is_hard_min(&self) -> bool { ... }
fn is_hard_resync(&self) -> bool { ... }
fn latency(&self) -> (ClockTime, Option<ClockTime>) { ... }
fn lookahead(&self) -> i32 { ... }
fn is_mark_granule(&self) -> bool { ... }
fn is_perfect_timestamp(&self) -> bool { ... }
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_frame_max(&self, num: i32) { ... }
fn set_frame_samples_max(&self, num: i32) { ... }
fn set_frame_samples_min(&self, num: i32) { ... }
fn set_hard_min(&self, enabled: bool) { ... }
fn set_hard_resync(&self, enabled: bool) { ... }
fn set_latency(&self, min: ClockTime, max: impl Into<Option<ClockTime>>) { ... }
fn set_lookahead(&self, num: i32) { ... }
fn set_mark_granule(&self, enabled: bool) { ... }
fn set_perfect_timestamp(&self, enabled: bool) { ... }
fn set_tolerance(&self, tolerance: ClockTime) { ... }
fn connect_hard_resync_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F,
) -> SignalHandlerId { ... }
fn connect_mark_granule_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F,
) -> SignalHandlerId { ... }
fn connect_perfect_timestamp_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
Provided Methods§
sourcefn allocate_output_buffer(&self, size: usize) -> Buffer
fn allocate_output_buffer(&self, size: usize) -> Buffer
sourcefn finish_frame(
&self,
buffer: Option<Buffer>,
samples: i32,
) -> Result<FlowSuccess, FlowError>
fn finish_frame( &self, buffer: Option<Buffer>, samples: i32, ) -> Result<FlowSuccess, FlowError>
Collects encoded data and pushes encoded data downstream. Source pad caps must be set when this is called.
If samples
< 0, then best estimate is all samples provided to encoder
(subclass) so far. buf
may be NULL, in which case next number of samples
are considered discarded, e.g. as a result of discontinuous transmission,
and a discontinuity is marked.
Note that samples received in GstAudioEncoderClass.handle_frame()
may be invalidated by a call to this function.
§buffer
encoded data
§samples
number of samples (per channel) represented by encoded data
§Returns
a gst::FlowReturn
that should be escalated to caller (of caller)
sourcefn audio_info(&self) -> AudioInfo
fn audio_info(&self) -> AudioInfo
sourcefn is_drainable(&self) -> bool
fn is_drainable(&self) -> bool
sourcefn frame_samples_max(&self) -> i32
fn frame_samples_max(&self) -> i32
§Returns
currently maximum requested samples per frame
sourcefn frame_samples_min(&self) -> i32
fn frame_samples_min(&self) -> i32
§Returns
currently minimum requested samples per frame
sourcefn is_hard_min(&self) -> bool
fn is_hard_min(&self) -> bool
fn is_hard_resync(&self) -> bool
sourcefn is_mark_granule(&self) -> bool
fn is_mark_granule(&self) -> bool
Queries if the encoder will handle granule marking.
§Returns
TRUE if granule marking is enabled.
MT safe.
sourcefn is_perfect_timestamp(&self) -> bool
fn is_perfect_timestamp(&self) -> bool
Queries encoder perfect timestamp behaviour.
§Returns
TRUE if perfect timestamp setting enabled.
MT safe.
sourcefn tolerance(&self) -> ClockTime
fn tolerance(&self) -> ClockTime
Queries current audio jitter tolerance threshold.
§Returns
encoder audio jitter tolerance threshold.
MT safe.
Sets the audio encoder 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.
MT safe.
§tags
a gst::TagList
to merge, or NULL to unset
previously-set tags
§mode
the gst::TagMergeMode
to use, usually gst::TagMergeMode::Replace
sourcefn set_allocation_caps(&self, allocation_caps: Option<&Caps>)
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
AudioEncoderExtManual::negotiate()
. Setting to None
the allocation
query will use the caps from the pad.
§allocation_caps
sourcefn set_drainable(&self, enabled: bool)
fn set_drainable(&self, enabled: bool)
Configures encoder drain handling. If drainable, subclass might be handed a NULL buffer to have it return any leftover encoded data. Otherwise, it is not considered so capable and will only ever be passed real data.
MT safe.
§enabled
new state
sourcefn set_frame_max(&self, num: i32)
fn set_frame_max(&self, num: i32)
Sets max number of frames accepted at once (assumed minimally 1).
Requires frame_samples_min
and frame_samples_max
to be the equal.
Note: This value will be reset to 0 every time before
GstAudioEncoderClass.set_format()
is called.
§num
number of frames
sourcefn set_frame_samples_max(&self, num: i32)
fn set_frame_samples_max(&self, num: i32)
Sets number of samples (per channel) subclass needs to be handed, at most or will be handed all available if 0.
If an exact number of samples is required, set_frame_samples_min()
must be called with the same number.
Note: This value will be reset to 0 every time before
GstAudioEncoderClass.set_format()
is called.
§num
number of samples per frame
sourcefn set_frame_samples_min(&self, num: i32)
fn set_frame_samples_min(&self, num: i32)
Sets number of samples (per channel) subclass needs to be handed, at least or will be handed all available if 0.
If an exact number of samples is required, set_frame_samples_max()
must be called with the same number.
Note: This value will be reset to 0 every time before
GstAudioEncoderClass.set_format()
is called.
§num
number of samples per frame
sourcefn set_hard_min(&self, enabled: bool)
fn set_hard_min(&self, enabled: bool)
Configures encoder hard minimum handling. If enabled, subclass will never be handed less samples than it configured, which otherwise might occur near end-of-data handling. Instead, the leftover samples will simply be discarded.
MT safe.
§enabled
new state
fn set_hard_resync(&self, enabled: bool)
sourcefn set_lookahead(&self, num: i32)
fn set_lookahead(&self, num: i32)
Sets encoder lookahead (in units of input rate samples)
Note: This value will be reset to 0 every time before
GstAudioEncoderClass.set_format()
is called.
§num
lookahead