[−][src]Trait gstreamer_video::VideoEncoderExt
Required methods
fn allocate_output_buffer(&self, size: usize) -> Result<Buffer, BoolError>
Helper function that allocates a buffer to hold an encoded video frame
for self
's current VideoCodecState
.
size
size of the buffer
Returns
allocated buffer
fn get_max_encode_time(&self, frame: &VideoCodecFrame<'_>) -> ClockTimeDiff
Determines maximum possible encoding time for frame
that will
allow it to encode and arrive in time (as determined by QoS events).
In particular, a negative result means encoding in time is no longer possible
and should therefore occur as soon/skippy as possible.
If no QoS events have been received from downstream, or if
VideoEncoder:qos
is disabled this function returns G_MAXINT64
.
Feature: v1_14
frame
a VideoCodecFrame
Returns
max decoding time.
fn get_min_force_key_unit_interval(&self) -> ClockTime
Returns the minimum force-keyunit interval, see VideoEncoderExt::set_min_force_key_unit_interval
for more details.
Feature: v1_18
Returns
the minimum force-keyunit interval
fn is_qos_enabled(&self) -> bool
Checks if self
is currently configured to handle Quality-of-Service
events from downstream.
Feature: v1_14
Returns
true
if the encoder is configured to perform Quality-of-Service.
fn merge_tags(&self, tags: Option<&TagList>, mode: TagMergeMode)
Sets the video encoder tags and how they should be merged with any
upstream stream tags. This will override any tags previously-set
with VideoEncoderExt::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
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 resolution/format/... combinations supported by downstream
elements (e.g. muxers).
caps
initial caps
filter
filter caps
Returns
a gst::Caps
owned by caller
fn set_headers(&self, headers: &[&Buffer])
Set the codec headers to be sent downstream whenever requested.
headers
a list of gst::Buffer
containing the codec header
fn set_min_force_key_unit_interval(&self, interval: ClockTime)
Sets the minimum interval for requesting keyframes based on force-keyunit
events. Setting this to 0 will allow to handle every event, setting this to
GST_CLOCK_TIME_NONE
causes force-keyunit events to be ignored.
Feature: v1_18
interval
minimum interval
fn set_min_pts(&self, min_pts: ClockTime)
Request minimal value for PTS passed to handle_frame.
For streams with reordered frames this can be used to ensure that there is enough time to accommodate first DTS, which may be less than first PTS
min_pts
minimal PTS that will be passed to handle_frame
fn set_qos_enabled(&self, enabled: bool)
Configures self
to handle Quality-of-Service events from downstream.
Feature: v1_14
enabled
the new qos value.
fn get_property_qos(&self) -> bool
fn set_property_qos(&self, qos: bool)
fn connect_property_min_force_key_unit_interval_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
fn connect_property_qos_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
Implementors
impl<O: IsA<VideoEncoder>> VideoEncoderExt for O
[src]
fn allocate_output_buffer(&self, size: usize) -> Result<Buffer, BoolError>
[src]
fn get_max_encode_time(&self, frame: &VideoCodecFrame<'_>) -> ClockTimeDiff
[src]
fn get_min_force_key_unit_interval(&self) -> ClockTime
[src]
fn is_qos_enabled(&self) -> bool
[src]
fn merge_tags(&self, tags: Option<&TagList>, mode: TagMergeMode)
[src]
fn proxy_getcaps(&self, caps: Option<&Caps>, filter: Option<&Caps>) -> Caps
[src]
fn set_headers(&self, headers: &[&Buffer])
[src]
fn set_min_force_key_unit_interval(&self, interval: ClockTime)
[src]
fn set_min_pts(&self, min_pts: ClockTime)
[src]
fn set_qos_enabled(&self, enabled: bool)
[src]
fn get_property_qos(&self) -> bool
[src]
fn set_property_qos(&self, qos: bool)
[src]
fn connect_property_min_force_key_unit_interval_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
[src]
&self,
f: F
) -> SignalHandlerId
fn connect_property_qos_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
[src]
&self,
f: F
) -> SignalHandlerId