Update documentation

This commit is contained in:
Sebastian Dröge 2019-06-24 20:28:25 +03:00
parent 4513eb22c7
commit e10df81166
13 changed files with 2421 additions and 697 deletions

View file

@ -532,6 +532,9 @@ buffers that the appsrc element will push to its source pad. Any
previous caps that were set on appsrc will be replaced by the caps previous caps that were set on appsrc will be replaced by the caps
associated with the sample if not equal. associated with the sample if not equal.
This function does not take ownership of the
sample so the sample needs to be unreffed after calling this function.
When the block property is TRUE, this function can block until free When the block property is TRUE, this function can block until free
space becomes available in the queue. space becomes available in the queue.
## `sample` ## `sample`

View file

@ -278,7 +278,7 @@ Feature: `v1_14`
<!-- impl AudioStreamAlign::fn new --> <!-- impl AudioStreamAlign::fn new -->
Allocate a new `AudioStreamAlign` with the given configuration. All Allocate a new `AudioStreamAlign` with the given configuration. All
processing happens according to sample rate `rate`, until processing happens according to sample rate `rate`, until
`gst_audio_discont_wait_set_rate` is called with a new `rate`. `AudioStreamAlign::set_rate` is called with a new `rate`.
A negative rate can be used for reverse playback. A negative rate can be used for reverse playback.
`alignment_threshold` gives the tolerance in nanoseconds after which a `alignment_threshold` gives the tolerance in nanoseconds after which a
@ -315,6 +315,33 @@ or `AudioStreamAlign::copy`.
Feature: `v1_14` Feature: `v1_14`
<!-- impl AudioStreamAlign::fn get_alignment_threshold -->
Gets the currently configured alignment threshold.
Feature: `v1_14`
# Returns
The currently configured alignment threshold
<!-- impl AudioStreamAlign::fn get_discont_wait -->
Gets the currently configured discont wait.
Feature: `v1_14`
# Returns
The currently configured discont wait
<!-- impl AudioStreamAlign::fn get_rate -->
Gets the currently configured sample rate.
Feature: `v1_14`
# Returns
The currently configured sample rate
<!-- impl AudioStreamAlign::fn get_samples_since_discont --> <!-- impl AudioStreamAlign::fn get_samples_since_discont -->
Returns the number of samples that were processed since the last Returns the number of samples that were processed since the last
discontinuity was detected. discontinuity was detected.
@ -376,6 +403,28 @@ output sample position of the start of the data
# Returns # Returns
`true` if a discontinuity was detected, `false` otherwise. `true` if a discontinuity was detected, `false` otherwise.
<!-- impl AudioStreamAlign::fn set_alignment_threshold -->
Sets `alignment_treshold` as new alignment threshold for the following processing.
Feature: `v1_14`
## `alignment_threshold`
a new alignment threshold
<!-- impl AudioStreamAlign::fn set_discont_wait -->
Sets `alignment_treshold` as new discont wait for the following processing.
Feature: `v1_14`
## `discont_wait`
a new discont wait
<!-- impl AudioStreamAlign::fn set_rate -->
Sets `rate` as new sample rate for the following processing. If the sample
rate differs this implicitely marks the next data as discontinuous.
Feature: `v1_14`
## `rate`
a new sample rate
<!-- struct StreamVolume --> <!-- struct StreamVolume -->
This interface is implemented by elements that provide a stream volume. Examples for This interface is implemented by elements that provide a stream volume. Examples for
such elements are `volume` and `playbin`. such elements are `volume` and `playbin`.

View file

@ -664,6 +664,38 @@ Feature: `v1_14`
## `caps` ## `caps`
The `gst::Caps` to set on the src pad. The `gst::Caps` to set on the src pad.
<!-- trait AggregatorExt::fn simple_get_next_time -->
This is a simple `Aggregator::get_next_time` implementation that
just looks at the `gst::Segment` on the srcpad of the aggregator and bases
the next time on the running time there.
This is the desired behaviour in most cases where you have a live source
and you have a dead line based aggregator subclass.
Feature: `v1_16`
# Returns
The running time based on the position
<!-- trait AggregatorExt::fn get_property_min-upstream-latency -->
Force minimum upstream latency (in nanoseconds). When sources with a
higher latency are expected to be plugged in dynamically after the
aggregator has started playing, this allows overriding the minimum
latency reported by the initial source(s). This is only taken into
account when larger than the actually reported minimum latency.
Feature: `v1_16`
<!-- trait AggregatorExt::fn set_property_min-upstream-latency -->
Force minimum upstream latency (in nanoseconds). When sources with a
higher latency are expected to be plugged in dynamically after the
aggregator has started playing, this allows overriding the minimum
latency reported by the initial source(s). This is only taken into
account when larger than the actually reported minimum latency.
Feature: `v1_16`
<!-- struct AggregatorPad --> <!-- struct AggregatorPad -->
Pads managed by a `GstAggregor` subclass. Pads managed by a `GstAggregor` subclass.
@ -692,6 +724,9 @@ Feature: `v1_14`
TRUE if there was a buffer queued in `self`, or FALSE if not. TRUE if there was a buffer queued in `self`, or FALSE if not.
<!-- trait AggregatorPadExt::fn has_buffer --> <!-- trait AggregatorPadExt::fn has_buffer -->
This checks if a pad has a buffer available that will be returned by
a call to `AggregatorPadExt::peek_buffer` or
`AggregatorPadExt::pop_buffer`.
Feature: `v1_14_1` Feature: `v1_14_1`
@ -727,6 +762,394 @@ Feature: `v1_14`
The buffer in `self` or NULL if no buffer was The buffer in `self` or NULL if no buffer was
queued. You should unref the buffer after usage. queued. You should unref the buffer after usage.
<!-- trait AggregatorPadExt::fn get_property_emit-signals -->
Enables the emission of signals such as `AggregatorPad::buffer-consumed`
Feature: `v1_16`
<!-- trait AggregatorPadExt::fn set_property_emit-signals -->
Enables the emission of signals such as `AggregatorPad::buffer-consumed`
Feature: `v1_16`
<!-- struct BaseParse -->
This base class is for parser elements that process data and splits it
into separate audio/video/whatever frames.
It provides for:
* provides one sink pad and one source pad
* handles state changes
* can operate in pull mode or push mode
* handles seeking in both modes
* handles events (SEGMENT/EOS/FLUSH)
* handles queries (POSITION/DURATION/SEEKING/FORMAT/CONVERT)
* handles flushing
The purpose of this base class is to provide the basic functionality of
a parser and share a lot of rather complex code.
# Description of the parsing mechanism:
## Set-up phase
* `BaseParse` calls `BaseParseClass.start`() to inform subclass
that data processing is about to start now.
* `BaseParse` class calls `BaseParseClass.set_sink_caps`() to
inform the subclass about incoming sinkpad caps. Subclass could
already set the srcpad caps accordingly, but this might be delayed
until calling `BaseParse::finish_frame` with a non-queued frame.
* At least at this point subclass needs to tell the `BaseParse` class
how big data chunks it wants to receive (minimum frame size ). It can
do this with `BaseParseExt::set_min_frame_size`.
* `BaseParse` class sets up appropriate data passing mode (pull/push)
and starts to process the data.
## Parsing phase
* `BaseParse` gathers at least min_frame_size bytes of data either
by pulling it from upstream or collecting buffers in an internal
`Adapter`.
* A buffer of (at least) min_frame_size bytes is passed to subclass
with `BaseParseClass.handle_frame`(). Subclass checks the contents
and can optionally return `gst::FlowReturn::Ok` along with an amount of data
to be skipped to find a valid frame (which will result in a
subsequent DISCONT). If, otherwise, the buffer does not hold a
complete frame, `BaseParseClass.handle_frame`() can merely return
and will be called again when additional data is available. In push
mode this amounts to an additional input buffer (thus minimal
additional latency), in pull mode this amounts to some arbitrary
reasonable buffer size increase.
Of course, `BaseParseExt::set_min_frame_size` could also be used if
a very specific known amount of additional data is required. If,
however, the buffer holds a complete valid frame, it can pass the
size of this frame to `BaseParse::finish_frame`.
If acting as a converter, it can also merely indicate consumed input
data while simultaneously providing custom output data. Note that
baseclass performs some processing (such as tracking overall consumed
data rate versus duration) for each finished frame, but other state
is only updated upon each call to `BaseParseClass.handle_frame`()
(such as tracking upstream input timestamp).
Subclass is also responsible for setting the buffer metadata
(e.g. buffer timestamp and duration, or keyframe if applicable).
(although the latter can also be done by `BaseParse` if it is
appropriately configured, see below). Frame is provided with
timestamp derived from upstream (as much as generally possible),
duration obtained from configuration (see below), and offset
if meaningful (in pull mode).
Note that `BaseParseClass.handle_frame`() might receive any small
amount of input data when leftover data is being drained (e.g. at
EOS).
* As part of finish frame processing, just prior to actually pushing
the buffer in question, it is passed to
`BaseParseClass.pre_push_frame`() which gives subclass yet one last
chance to examine buffer metadata, or to send some custom (tag)
events, or to perform custom (segment) filtering.
* During the parsing process `BaseParseClass` will handle both srcpad
and sinkpad events. They will be passed to subclass if
`BaseParseClass.event`() or `BaseParseClass.src_event`()
implementations have been provided.
## Shutdown phase
* `BaseParse` class calls `BaseParseClass.stop`() to inform the
subclass that data parsing will be stopped.
Subclass is responsible for providing pad template caps for source and
sink pads. The pads need to be named "sink" and "src". It also needs to
set the fixed caps on srcpad, when the format is ensured (e.g. when
base class calls subclass' `BaseParseClass.set_sink_caps`() function).
This base class uses `gst::Format::Default` as a meaning of frames. So,
subclass conversion routine needs to know that conversion from
`gst::Format::Time` to `gst::Format::Default` must return the
frame number that can be found from the given byte position.
`BaseParse` uses subclasses conversion methods also for seeking (or
otherwise uses its own default one, see also below).
Subclass `start` and `stop` functions will be called to inform the beginning
and end of data processing.
Things that subclass need to take care of:
* Provide pad templates
* Fixate the source pad caps when appropriate
* Inform base class how big data chunks should be retrieved. This is
done with `BaseParseExt::set_min_frame_size` function.
* Examine data chunks passed to subclass with
`BaseParseClass.handle_frame`() and pass proper frame(s) to
`BaseParse::finish_frame`, and setting src pad caps and timestamps
on frame.
* Provide conversion functions
* Update the duration information with `BaseParse::set_duration`
* Optionally passthrough using `BaseParseExt::set_passthrough`
* Configure various baseparse parameters using
`BaseParseExt::set_average_bitrate`, `BaseParseExt::set_syncable`
and `BaseParse::set_frame_rate`.
* In particular, if subclass is unable to determine a duration, but
parsing (or specs) yields a frames per seconds rate, then this can be
provided to `BaseParse` to enable it to cater for buffer time
metadata (which will be taken from upstream as much as
possible). Internally keeping track of frame durations and respective
sizes that have been pushed provides `BaseParse` with an estimated
bitrate. A default `BaseParseClass.convert`() (used if not
overridden) will then use these rates to perform obvious conversions.
These rates are also used to update (estimated) duration at regular
frame intervals.
# Implements
[`BaseParseExt`](trait.BaseParseExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- trait BaseParseExt -->
Trait containing all `BaseParse` methods.
# Implementors
[`BaseParse`](struct.BaseParse.html)
<!-- trait BaseParseExt::fn add_index_entry -->
Adds an entry to the index associating `offset` to `ts`. It is recommended
to only add keyframe entries. `force` allows to bypass checks, such as
whether the stream is (upstream) seekable, another entry is already "close"
to the new entry, etc.
## `offset`
offset of entry
## `ts`
timestamp associated with offset
## `key`
whether entry refers to keyframe
## `force`
add entry disregarding sanity checks
# Returns
`gboolean` indicating whether entry was added
<!-- trait BaseParseExt::fn convert_default -->
Default implementation of `BaseParseClass.convert`().
## `src_format`
`gst::Format` describing the source format.
## `src_value`
Source value to be converted.
## `dest_format`
`gst::Format` defining the converted format.
## `dest_value`
Pointer where the conversion result will be put.
# Returns
`true` if conversion was successful.
<!-- trait BaseParseExt::fn drain -->
Drains the adapter until it is empty. It decreases the min_frame_size to
match the current adapter size and calls chain method until the adapter
is emptied or chain returns with error.
Feature: `v1_12`
<!-- trait BaseParseExt::fn finish_frame -->
Collects parsed data and pushes this downstream.
Source pad caps must be set when this is called.
If `frame`'s out_buffer is set, that will be used as subsequent frame data.
Otherwise, `size` samples will be taken from the input and used for output,
and the output's metadata (timestamps etc) will be taken as (optionally)
set by the subclass on `frame`'s (input) buffer (which is otherwise
ignored for any but the above purpose/information).
Note that the latter buffer is invalidated by this call, whereas the
caller retains ownership of `frame`.
## `frame`
a `BaseParseFrame`
## `size`
consumed input data represented by frame
# Returns
a `gst::FlowReturn` that should be escalated to caller (of caller)
<!-- trait BaseParseExt::fn merge_tags -->
Sets the parser subclass's tags and how they should be merged with any
upstream stream tags. This will override any tags previously-set
with `BaseParseExt::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 to unset
previously-set tags
## `mode`
the `gst::TagMergeMode` to use, usually `gst::TagMergeMode::Replace`
<!-- trait BaseParseExt::fn push_frame -->
Pushes the frame's buffer downstream, sends any pending events and
does some timestamp and segment handling. Takes ownership of
frame's buffer, though caller retains ownership of `frame`.
This must be called with sinkpad STREAM_LOCK held.
## `frame`
a `BaseParseFrame`
# Returns
`gst::FlowReturn`
<!-- trait BaseParseExt::fn set_average_bitrate -->
Optionally sets the average bitrate detected in media (if non-zero),
e.g. based on metadata, as it will be posted to the application.
By default, announced average bitrate is estimated. The average bitrate
is used to estimate the total duration of the stream and to estimate
a seek position, if there's no index and the format is syncable
(see `BaseParseExt::set_syncable`).
## `bitrate`
average bitrate in bits/second
<!-- trait BaseParseExt::fn set_duration -->
Sets the duration of the currently playing media. Subclass can use this
when it is able to determine duration and/or notices a change in the media
duration. Alternatively, if `interval` is non-zero (default), then stream
duration is determined based on estimated bitrate, and updated every `interval`
frames.
## `fmt`
`gst::Format`.
## `duration`
duration value.
## `interval`
how often to update the duration estimate based on bitrate, or 0.
<!-- trait BaseParseExt::fn set_frame_rate -->
If frames per second is configured, parser can take care of buffer duration
and timestamping. When performing segment clipping, or seeking to a specific
location, a corresponding decoder might need an initial `lead_in` and a
following `lead_out` number of frames to ensure the desired segment is
entirely filled upon decoding.
## `fps_num`
frames per second (numerator).
## `fps_den`
frames per second (denominator).
## `lead_in`
frames needed before a segment for subsequent decode
## `lead_out`
frames needed after a segment
<!-- trait BaseParseExt::fn set_has_timing_info -->
Set if frames carry timing information which the subclass can (generally)
parse and provide. In particular, intrinsic (rather than estimated) time
can be obtained following a seek.
## `has_timing`
whether frames carry timing information
<!-- trait BaseParseExt::fn set_infer_ts -->
By default, the base class might try to infer PTS from DTS and vice
versa. While this is generally correct for audio data, it may not
be otherwise. Sub-classes implementing such formats should disable
timestamp inferring.
## `infer_ts`
`true` if parser should infer DTS/PTS from each other
<!-- trait BaseParseExt::fn set_latency -->
Sets the minimum and maximum (which may likely be equal) latency introduced
by the parsing process. If there is such a latency, which depends on the
particular parsing of the format, it typically corresponds to 1 frame duration.
## `min_latency`
minimum parse latency
## `max_latency`
maximum parse latency
<!-- trait BaseParseExt::fn set_min_frame_size -->
Subclass can use this function to tell the base class that it needs to
be given buffers of at least `min_size` bytes.
## `min_size`
Minimum size in bytes of the data that this base class should
give to subclass.
<!-- trait BaseParseExt::fn set_passthrough -->
Set if the nature of the format or configuration does not allow (much)
parsing, and the parser should operate in passthrough mode (which only
applies when operating in push mode). That is, incoming buffers are
pushed through unmodified, i.e. no `BaseParseClass.handle_frame`()
will be invoked, but `BaseParseClass.pre_push_frame`() will still be
invoked, so subclass can perform as much or as little is appropriate for
passthrough semantics in `BaseParseClass.pre_push_frame`().
## `passthrough`
`true` if parser should run in passthrough mode
<!-- trait BaseParseExt::fn set_pts_interpolation -->
By default, the base class will guess PTS timestamps using a simple
interpolation (previous timestamp + duration), which is incorrect for
data streams with reordering, where PTS can go backward. Sub-classes
implementing such formats should disable PTS interpolation.
## `pts_interpolate`
`true` if parser should interpolate PTS timestamps
<!-- trait BaseParseExt::fn set_syncable -->
Set if frame starts can be identified. This is set by default and
determines whether seeking based on bitrate averages
is possible for a format/stream.
## `syncable`
set if frame starts can be identified
<!-- trait BaseParseExt::fn set_ts_at_offset -->
This function should only be called from a `handle_frame` implementation.
`BaseParse` creates initial timestamps for frames by using the last
timestamp seen in the stream before the frame starts. In certain
cases, the correct timestamps will occur in the stream after the
start of the frame, but before the start of the actual picture data.
This function can be used to set the timestamps based on the offset
into the frame data that the picture starts.
## `offset`
offset into current buffer
<!-- trait BaseParseExt::fn get_property_disable-passthrough -->
If set to `true`, baseparse will unconditionally force parsing of the
incoming data. This can be required in the rare cases where the incoming
side-data (caps, pts, dts, ...) is not trusted by the user and wants to
force validation and parsing of the incoming data.
If set to `false`, decision of whether to parse the data or not is up to
the implementation (standard behaviour).
<!-- trait BaseParseExt::fn set_property_disable-passthrough -->
If set to `true`, baseparse will unconditionally force parsing of the
incoming data. This can be required in the rare cases where the incoming
side-data (caps, pts, dts, ...) is not trusted by the user and wants to
force validation and parsing of the incoming data.
If set to `false`, decision of whether to parse the data or not is up to
the implementation (standard behaviour).
<!-- struct BaseParseFrame -->
Frame (context) data passed to each frame parsing virtual methods. In
addition to providing the data to be checked for a valid frame or an already
identified frame, it conveys additional metadata or control information
from and to the subclass w.r.t. the particular frame in question (rather
than global parameters). Some of these may apply to each parsing stage, others
only to some a particular one. These parameters are effectively zeroed at start
of each frame's processing, i.e. parsing virtual method invocation sequence.
<!-- impl BaseParseFrame::fn new -->
Allocates a new `BaseParseFrame`. This function is mainly for bindings,
elements written in C should usually allocate the frame on the stack and
then use `BaseParseFrame::init` to initialise it.
## `buffer`
a `gst::Buffer`
## `flags`
the flags
## `overhead`
number of bytes in this frame which should be counted as
metadata overhead, ie. not used to calculate the average bitrate.
Set to -1 to mark the entire frame as metadata. If in doubt, set to 0.
# Returns
a newly-allocated `BaseParseFrame`. Free with
`BaseParseFrame::free` when no longer needed.
<!-- impl BaseParseFrame::fn copy -->
Copies a `BaseParseFrame`.
# Returns
A copy of `self`
<!-- impl BaseParseFrame::fn free -->
Frees the provided `self`.
<!-- impl BaseParseFrame::fn init -->
Sets a `BaseParseFrame` to initial state. Currently this means
all public fields are zero-ed and a private flag is set to make
sure `BaseParseFrame::free` only frees the contents but not
the actual frame. Use this function to initialise a `BaseParseFrame`
allocated on the stack.
<!-- struct BaseSink --> <!-- struct BaseSink -->
`BaseSink` is the base class for sink elements in GStreamer, such as `BaseSink` is the base class for sink elements in GStreamer, such as
xvimagesink or filesink. It is a layer on top of `gst::Element` that provides a xvimagesink or filesink. It is a layer on top of `gst::Element` that provides a
@ -918,6 +1341,17 @@ more details.
The maximum time in nanoseconds that a buffer can be late The maximum time in nanoseconds that a buffer can be late
before it is dropped and not rendered. A value of -1 means an before it is dropped and not rendered. A value of -1 means an
unlimited time. unlimited time.
<!-- trait BaseSinkExt::fn get_processing_deadline -->
Get the processing deadline of `self`. see
`BaseSinkExt::set_processing_deadline` for more information about
the processing deadline.
Feature: `v1_16`
# Returns
the processing deadline
<!-- trait BaseSinkExt::fn get_render_delay --> <!-- trait BaseSinkExt::fn get_render_delay -->
Get the render delay of `self`. see `BaseSinkExt::set_render_delay` for more Get the render delay of `self`. see `BaseSinkExt::set_render_delay` for more
information about the render delay. information about the render delay.
@ -1025,6 +1459,17 @@ buffer timestamp and the current clock time. A value of -1 means
an unlimited time. an unlimited time.
## `max_lateness` ## `max_lateness`
the new max lateness value. the new max lateness value.
<!-- trait BaseSinkExt::fn set_processing_deadline -->
Maximum amount of time (in nanoseconds) that the pipeline can take
for processing the buffer. This is added to the latency of live
pipelines.
This function is usually called by subclasses.
Feature: `v1_16`
## `processing_deadline`
the new processing deadline in nanoseconds.
<!-- trait BaseSinkExt::fn set_qos_enabled --> <!-- trait BaseSinkExt::fn set_qos_enabled -->
Configures `self` to send Quality-of-Service events upstream. Configures `self` to send Quality-of-Service events upstream.
## `enabled` ## `enabled`
@ -1166,6 +1611,20 @@ rendering of the buffers when it would exceed to max-bitrate.
Control the maximum amount of bits that will be rendered per second. Control the maximum amount of bits that will be rendered per second.
Setting this property to a value bigger than 0 will make the sink delay Setting this property to a value bigger than 0 will make the sink delay
rendering of the buffers when it would exceed to max-bitrate. rendering of the buffers when it would exceed to max-bitrate.
<!-- trait BaseSinkExt::fn get_property_processing-deadline -->
Maximum amount of time (in nanoseconds) that the pipeline can take
for processing the buffer. This is added to the latency of live
pipelines.
Feature: `v1_16`
<!-- trait BaseSinkExt::fn set_property_processing-deadline -->
Maximum amount of time (in nanoseconds) that the pipeline can take
for processing the buffer. This is added to the latency of live
pipelines.
Feature: `v1_16`
<!-- trait BaseSinkExt::fn get_property_render-delay --> <!-- trait BaseSinkExt::fn get_property_render-delay -->
The additional delay between synchronisation and actual rendering of the The additional delay between synchronisation and actual rendering of the
media. This property will add additional latency to the device in order to media. This property will add additional latency to the device in order to
@ -1401,6 +1860,12 @@ If `automatic_eos` is `true`, `self` will automatically go EOS if a buffer
after the total size is returned. By default this is `true` but sources after the total size is returned. By default this is `true` but sources
that can't return an authoritative size and only know that they're EOS that can't return an authoritative size and only know that they're EOS
when trying to read more should set this to `false`. when trying to read more should set this to `false`.
When `self` operates in `gst::Format::Time`, `BaseSrc` will send an EOS
when a buffer outside of the currently configured segment is pushed if
`automatic_eos` is `true`. Since 1.16, if `automatic_eos` is `false` an
EOS will be pushed only when the `BaseSrc.create` implementation
returns `gst::FlowReturn::Eos`.
## `automatic_eos` ## `automatic_eos`
automatic eos automatic eos
<!-- trait BaseSrcExt::fn set_blocksize --> <!-- trait BaseSrcExt::fn set_blocksize -->
@ -1730,8 +2195,8 @@ running_time.
<!-- trait BaseTransformExt::fn update_src_caps --> <!-- trait BaseTransformExt::fn update_src_caps -->
Updates the srcpad caps and send the caps downstream. This function Updates the srcpad caps and send the caps downstream. This function
can be used by subclasses when they have already negotiated their caps can be used by subclasses when they have already negotiated their caps
but found a change in them (or computed new informations). This way, but found a change in them (or computed new information). This way,
they can notify downstream about that change without loosing any they can notify downstream about that change without losing any
buffer. buffer.
## `updated_caps` ## `updated_caps`
An updated version of the srcpad caps to be pushed An updated version of the srcpad caps to be pushed
@ -1771,7 +2236,7 @@ These rules are:
* `gst::FlowReturn::Ok`: otherwise * `gst::FlowReturn::Ok`: otherwise
`gst::FlowReturn::Error` or below, GST_FLOW_NOT_NEGOTIATED and GST_FLOW_FLUSHING are `gst::FlowReturn::Error` or below, GST_FLOW_NOT_NEGOTIATED and GST_FLOW_FLUSHING are
returned immediatelly from the `FlowCombiner::update_flow` function. returned immediately from the `FlowCombiner::update_flow` function.
<!-- impl FlowCombiner::fn new --> <!-- impl FlowCombiner::fn new -->
Creates a new `FlowCombiner`, use `FlowCombiner::free` to free it. Creates a new `FlowCombiner`, use `FlowCombiner::free` to free it.

View file

@ -876,7 +876,7 @@ a `guint` describing how many seconds to wait for `waits` to be true
# Returns # Returns
a `gboolean` `true` if the waits have been registered, `false` if not. a `gboolean` `true` if the waits have been registered, `false` if not.
(Could be that it timed out waiting or that more waits then waits was found) (Could be that it timed out waiting or that more waits than waits was found)
<!-- impl Harness::fn new --> <!-- impl Harness::fn new -->
Creates a new harness. Works like `Harness::new_with_padnames`, except it Creates a new harness. Works like `Harness::new_with_padnames`, except it
assumes the `gst::Element` sinkpad is named "sink" and srcpad is named "src" assumes the `gst::Element` sinkpad is named "sink" and srcpad is named "src"
@ -1266,6 +1266,27 @@ which is earlier or equal to the time of the clock as given by
MT safe. MT safe.
## `new_time` ## `new_time`
a `gst::ClockTime` later than that returned by `gst::ClockExt::get_time` a `gst::ClockTime` later than that returned by `gst::ClockExt::get_time`
<!-- impl TestClock::fn timed_wait_for_multiple_pending_ids -->
Blocks until at least `count` clock notifications have been requested from
`self`, or the timeout expires.
MT safe.
Feature: `v1_16`
## `count`
the number of pending clock notifications to wait for
## `timeout_ms`
the timeout in milliseconds
## `pending_list`
Address
of a `glib::List` pointer variable to store the list of pending `GstClockIDs`
that expired, or `None`
# Returns
a `gboolean` `true` if the waits have been registered, `false` if not.
(Could be that it timed out waiting or that more waits than waits was found)
<!-- impl TestClock::fn wait_for_multiple_pending_ids --> <!-- impl TestClock::fn wait_for_multiple_pending_ids -->
Blocks until at least `count` clock notifications have been requested from Blocks until at least `count` clock notifications have been requested from
`self`. There is no timeout for this wait, see the main description of `self`. There is no timeout for this wait, see the main description of

View file

@ -105,6 +105,14 @@ The Identifier or `None`
A reference to the wanted `Asset` or `None` A reference to the wanted `Asset` or `None`
<!-- impl Asset::fn request_async --> <!-- impl Asset::fn request_async -->
The `callback` will be called from a running `glib::MainLoop` which is iterating a `glib::MainContext`.
Note that, users should ensure the `glib::MainContext`, since this method will notify
`callback` from the thread which was associated with a thread default
`glib::MainContext` at calling `ges_init`.
For example, if a user wants non-default `glib::MainContext` to be associated
with `callback`, `ges_init` must be called after g_main_context_push_thread_default ()
with custom `glib::MainContext`.
Request a new `Asset` asyncronously, `callback` will be called when the materail is Request a new `Asset` asyncronously, `callback` will be called when the materail is
ready to be used or if an error occured. ready to be used or if an error occured.
@ -1163,7 +1171,7 @@ Informs you that a `Asset` could not be created. In case of
missing GStreamer plugins, the error will be set to `GST_CORE_ERROR` missing GStreamer plugins, the error will be set to `GST_CORE_ERROR`
`gst::CoreError::MissingPlugin` `gst::CoreError::MissingPlugin`
## `error` ## `error`
The `glib::Error` defining the error that accured, might be `None` The `glib::Error` defining the error that occured, might be `None`
## `id` ## `id`
The `id` of the asset that failed loading The `id` of the asset that failed loading
## `extractable_type` ## `extractable_type`
@ -1515,6 +1523,22 @@ The `TrackElement` for which to choose the tracks it should land into
# Returns # Returns
a `glib::PtrArray` of `Track`-s where that object should be added a `glib::PtrArray` of `Track`-s where that object should be added
<!-- trait TimelineExt::fn connect_snapping_ended -->
Will be emitted when the 2 `TrackElement` ended to snap
## `obj1`
the first `TrackElement` that was snapping.
## `obj2`
the second `TrackElement` that was snapping.
## `position`
the position where the two objects finally snapping.
<!-- trait TimelineExt::fn connect_snapping_started -->
Will be emitted when the 2 `TrackElement` first snapped
## `obj1`
the first `TrackElement` that was snapping.
## `obj2`
the second `TrackElement` that was snapping.
## `position`
the position where the two objects finally snapping.
<!-- trait TimelineExt::fn connect_track_added --> <!-- trait TimelineExt::fn connect_track_added -->
Will be emitted after the track was added to the timeline. Will be emitted after the track was added to the timeline.
## `track` ## `track`
@ -1606,6 +1630,13 @@ The `duration` of `self`
# Returns # Returns
The `inpoint` of `self` The `inpoint` of `self`
<!-- trait TimelineElementExt::fn get_layer_priority -->
# Returns
The priority of the first layer the element is in (note that only
groups can span over several layers). `GES_TIMELINE_ELEMENT_NO_LAYER_PRIORITY`
means that the element is not in a layer.
<!-- trait TimelineElementExt::fn get_max_duration --> <!-- trait TimelineElementExt::fn get_max_duration -->
# Returns # Returns
@ -1787,15 +1818,27 @@ Note that if the timeline snap-distance property of the timeline containing
`self` is set, `self` will properly snap to its neighboors. `self` is set, `self` will properly snap to its neighboors.
## `duration` ## `duration`
the duration in `gst::ClockTime` the duration in `gst::ClockTime`
# Returns
`true` if `duration` could be set.
<!-- trait TimelineElementExt::fn set_inpoint --> <!-- trait TimelineElementExt::fn set_inpoint -->
Set the in-point, that is the moment at which the `self` will start Set the in-point, that is the moment at which the `self` will start
outputting data from its contents. outputting data from its contents.
## `inpoint` ## `inpoint`
the in-point in `gst::ClockTime` the in-point in `gst::ClockTime`
# Returns
`true` if `inpoint` could be set.
<!-- trait TimelineElementExt::fn set_max_duration --> <!-- trait TimelineElementExt::fn set_max_duration -->
Set the maximun duration of the object Set the maximun duration of the object
## `maxduration` ## `maxduration`
the maximum duration in `gst::ClockTime` the maximum duration in `gst::ClockTime`
# Returns
`true` if `maxduration` could be set.
<!-- trait TimelineElementExt::fn set_name --> <!-- trait TimelineElementExt::fn set_name -->
Sets the name of object, or gives `self` a guaranteed unique name (if name is NULL). Sets the name of object, or gives `self` a guaranteed unique name (if name is NULL).
This function makes a copy of the provided name, so the caller retains ownership This function makes a copy of the provided name, so the caller retains ownership
@ -1822,6 +1865,10 @@ To set `Effect` priorities `ClipExt::set_top_effect_index` should
be used. be used.
## `priority` ## `priority`
the priority the priority
# Returns
`true` if `priority` could be set.
<!-- trait TimelineElementExt::fn set_start --> <!-- trait TimelineElementExt::fn set_start -->
Set the position of the object in its containing layer. Set the position of the object in its containing layer.
@ -1829,6 +1876,10 @@ Note that if the snapping-distance property of the timeline containing
`self` is set, `self` will properly snap to the edges around `start`. `self` is set, `self` will properly snap to the edges around `start`.
## `start` ## `start`
the position in `gst::ClockTime` the position in `gst::ClockTime`
# Returns
`true` if `start` could be set.
<!-- trait TimelineElementExt::fn set_timeline --> <!-- trait TimelineElementExt::fn set_timeline -->
Sets the timeline of `self` to `timeline`. Sets the timeline of `self` to `timeline`.
## `timeline` ## `timeline`
@ -2358,7 +2409,9 @@ the `gst::ControlSource` to set on the binding.
## `property_name` ## `property_name`
The name of the property to control. The name of the property to control.
## `binding_type` ## `binding_type`
The type of binding to create. Only "direct" is available for now. The type of binding to create. Currently the following values are valid:
- "direct": See `gst_direct_control_binding_new`
- "direct-absolute": See `gst_direct_control_binding_new_absolute`
# Returns # Returns
@ -2446,7 +2499,7 @@ The location of the file/resource to use.
The `UriClipAsset` is a special `Asset` that lets you handle The `UriClipAsset` is a special `Asset` that lets you handle
the media file to use inside the GStreamer Editing Services. It has APIs that the media file to use inside the GStreamer Editing Services. It has APIs that
let you get information about the medias. Also, the tags found in the media file are let you get information about the medias. Also, the tags found in the media file are
set as Metadatas of the Asser. set as Metadata of the Asset.
# Implements # Implements
@ -2457,6 +2510,14 @@ Trait containing all `UriClipAsset` methods.
# Implementors # Implementors
[`UriClipAsset`](struct.UriClipAsset.html) [`UriClipAsset`](struct.UriClipAsset.html)
<!-- impl UriClipAsset::fn finish -->
Finalize the request of an async `UriClipAsset`
## `res`
The `gio::AsyncResult` from which to get the newly created `UriClipAsset`
# Returns
The `UriClipAsset` previously requested
<!-- impl UriClipAsset::fn new --> <!-- impl UriClipAsset::fn new -->
Creates a `UriClipAsset` for `uri` Creates a `UriClipAsset` for `uri`
@ -2470,7 +2531,7 @@ filesource_asset_loaded_cb (GESAsset * source, GAsyncResult * res, gpointer user
GError *error = NULL; GError *error = NULL;
GESUriClipAsset *filesource_asset; GESUriClipAsset *filesource_asset;
filesource_asset = GES_URI_CLIP_ASSET (ges_asset_request_finish (res, &error)); filesource_asset = ges_uri_clip_asset_finish (res, &error);
if (filesource_asset) { if (filesource_asset) {
g_print ("The file: %s is usable as a FileSource, it is%s an image and lasts %" GST_TIME_FORMAT, g_print ("The file: %s is usable as a FileSource, it is%s an image and lasts %" GST_TIME_FORMAT,
ges_asset_get_id (GES_ASSET (filesource_asset)) ges_asset_get_id (GES_ASSET (filesource_asset))
@ -2504,8 +2565,8 @@ You can also use multi file uris for `MultiFileSource`.
# Returns # Returns
A reference to the requested asset or A reference to the requested asset or `None` if
`None` if an error happened an error happened
<!-- trait UriClipAssetExt::fn get_duration --> <!-- trait UriClipAssetExt::fn get_duration -->
Gets duration of the file represented by `self` Gets duration of the file represented by `self`

View file

@ -5,15 +5,27 @@ context. It also provided some wrappers around `gst_base::BaseTransform`'s
`start`, `stop` and `set_caps` virtual methods that ensure an OpenGL context `start`, `stop` and `set_caps` virtual methods that ensure an OpenGL context
is available and current in the calling thread. is available and current in the calling thread.
Feature: `v1_16`
# Implements # Implements
[`GLBaseFilterExt`](trait.GLBaseFilterExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html) [`GLBaseFilterExt`](trait.GLBaseFilterExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- trait GLBaseFilterExt --> <!-- trait GLBaseFilterExt -->
Trait containing all `GLBaseFilter` methods. Trait containing all `GLBaseFilter` methods.
Feature: `v1_16`
# Implementors # Implementors
[`GLBaseFilter`](struct.GLBaseFilter.html) [`GLBaseFilter`](struct.GLBaseFilter.html)
<!-- trait GLBaseFilterExt::fn find_gl_context -->
Feature: `v1_16`
# Returns
Whether an OpenGL context could be retrieved or created successfully
<!-- struct GLBuffer --> <!-- struct GLBuffer -->
GstGLBuffer is a `gst::Memory` subclass providing support for the mapping of GstGLBuffer is a `gst::Memory` subclass providing support for the mapping of
GL buffers. GL buffers.
@ -44,7 +56,7 @@ a `GLContext`
a new `GLColorConvert` object a new `GLColorConvert` object
<!-- impl GLColorConvert::fn fixate_caps --> <!-- impl GLColorConvert::fn fixate_caps -->
Provides an implementation of `gst_base::BaseTransformClass::fixate_caps`() Provides an implementation of `gst_base::BaseTransformClass.fixate_caps`()
## `context` ## `context`
a `GLContext` to use for transforming `caps` a `GLContext` to use for transforming `caps`
## `direction` ## `direction`
@ -58,7 +70,7 @@ the `gst::Caps` to fixate
the fixated `gst::Caps` the fixated `gst::Caps`
<!-- impl GLColorConvert::fn transform_caps --> <!-- impl GLColorConvert::fn transform_caps -->
Provides an implementation of `gst_base::BaseTransformClass::transform_caps`() Provides an implementation of `gst_base::BaseTransformClass.transform_caps`()
## `context` ## `context`
a `GLContext` to use for transforming `caps` a `GLContext` to use for transforming `caps`
## `direction` ## `direction`
@ -72,7 +84,7 @@ a set of filter `gst::Caps`
the converted `gst::Caps` the converted `gst::Caps`
<!-- impl GLColorConvert::fn decide_allocation --> <!-- impl GLColorConvert::fn decide_allocation -->
Provides an implementation of `GstBaseTransfromClass::decide_allocation`() Provides an implementation of `gst_base::BaseTransformClass.decide_allocation`()
## `query` ## `query`
a completed ALLOCATION `gst::Query` a completed ALLOCATION `gst::Query`
@ -299,7 +311,7 @@ Gets the OpenGL platform that used by `self`.
The platform specific backing OpenGL context The platform specific backing OpenGL context
<!-- trait GLContextExt::fn get_gl_platform_version --> <!-- trait GLContextExt::fn get_gl_platform_version -->
Get the version of the OpenGL platform (GLX, EGL, etc) used. Only valid Get the version of the OpenGL platform (GLX, EGL, etc) used. Only valid
after a call to `gst_gl_context_create_context`. after a call to `GLContextExt::create`.
## `major` ## `major`
return for the major version return for the major version
## `minor` ## `minor`
@ -377,6 +389,30 @@ a `GLSLProfile`
# Returns # Returns
Whether `self` supports the combination of `version` with `profile` Whether `self` supports the combination of `version` with `profile`
<!-- trait GLContextExt::fn supports_precision -->
Feature: `v1_16`
## `version`
a `GLSLVersion`
## `profile`
a `GLSLProfile`
# Returns
whether `self` supports the 'precision' specifier in GLSL shaders
<!-- trait GLContextExt::fn supports_precision_highp -->
Feature: `v1_16`
## `version`
a `GLSLVersion`
## `profile`
a `GLSLProfile`
# Returns
whether `self` supports the 'precision highp' specifier in GLSL shaders
<!-- trait GLContextExt::fn swap_buffers --> <!-- trait GLContextExt::fn swap_buffers -->
Swap the front and back buffers on the window attached to `self`. Swap the front and back buffers on the window attached to `self`.
This will display the frame on the next refresh cycle. This will display the frame on the next refresh cycle.
@ -432,7 +468,7 @@ Trait containing all `GLDisplay` methods.
# Implementors # Implementors
[`GLDisplayEGL`](struct.GLDisplayEGL.html), [`GLDisplay`](struct.GLDisplay.html) [`GLDisplayEGL`](struct.GLDisplayEGL.html), [`GLDisplayWayland`](struct.GLDisplayWayland.html), [`GLDisplayX11`](struct.GLDisplayX11.html), [`GLDisplay`](struct.GLDisplay.html)
<!-- impl GLDisplay::fn new --> <!-- impl GLDisplay::fn new -->
# Returns # Returns
@ -551,6 +587,54 @@ pointer to a display (or 0)
# Returns # Returns
A `EGLDisplay` or `EGL_NO_DISPLAY` A `EGLDisplay` or `EGL_NO_DISPLAY`
<!-- struct GLDisplayWayland -->
the contents of a `GLDisplayWayland` are private and should only be accessed
through the provided API
# Implements
[`GLDisplayExt`](trait.GLDisplayExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- impl GLDisplayWayland::fn new -->
Create a new `GLDisplayWayland` from the wayland display name. See `wl_display_connect`
for details on what is a valid name.
## `name`
a display name
# Returns
a new `GLDisplayWayland` or `None`
<!-- impl GLDisplayWayland::fn new_with_display -->
Creates a new display connection from a wl_display Display.
## `display`
an existing, wayland display
# Returns
a new `GLDisplayWayland`
<!-- struct GLDisplayX11 -->
the contents of a `GLDisplayX11` are private and should only be accessed
through the provided API
# Implements
[`GLDisplayExt`](trait.GLDisplayExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- impl GLDisplayX11::fn new -->
Create a new `GLDisplayX11` from the x11 display name. See XOpenDisplay()
for details on what is a valid name.
## `name`
a display name
# Returns
a new `GLDisplayX11` or `None`
<!-- impl GLDisplayX11::fn new_with_display -->
Creates a new display connection from a X11 Display.
## `display`
an existing, x11 display
# Returns
a new `GLDisplayX11`
<!-- enum GLFormat --> <!-- enum GLFormat -->
<!-- enum GLFormat::variant Luminance --> <!-- enum GLFormat::variant Luminance -->
Single component replicated across R, G, and B textures Single component replicated across R, G, and B textures
@ -575,12 +659,18 @@ Three 8-bit components stored in the R, G, and B
<!-- enum GLFormat::variant Rgb565 --> <!-- enum GLFormat::variant Rgb565 -->
Three components of bit depth 5, 6 and 5 stored in the R, G, Three components of bit depth 5, 6 and 5 stored in the R, G,
and B texture components respectively. and B texture components respectively.
<!-- enum GLFormat::variant Rgb16 -->
Three 16-bit components stored in the R, G, and B
texture components
<!-- enum GLFormat::variant Rgba --> <!-- enum GLFormat::variant Rgba -->
Four components stored in the R, G, B, and A texture Four components stored in the R, G, B, and A texture
components respectively. components respectively.
<!-- enum GLFormat::variant Rgba8 --> <!-- enum GLFormat::variant Rgba8 -->
Four 8-bit components stored in the R, G, B, and A texture Four 8-bit components stored in the R, G, B, and A texture
components respectively. components respectively.
<!-- enum GLFormat::variant Rgba16 -->
Four 16-bit components stored in the R, G, B, and A texture
components respectively.
<!-- enum GLFormat::variant DepthComponent16 --> <!-- enum GLFormat::variant DepthComponent16 -->
A single 16-bit component for depth information. A single 16-bit component for depth information.
<!-- enum GLFormat::variant Depth24Stencil8 --> <!-- enum GLFormat::variant Depth24Stencil8 -->
@ -895,6 +985,58 @@ a `glib::Error`
# Returns # Returns
a new `shader` with the specified stages. a new `shader` with the specified stages.
<!-- impl GLShader::fn string_fragment_external_oes_get_default -->
Feature: `v1_16`
## `context`
a `GLContext`
## `version`
a `GLSLVersion`
## `profile`
a `GLSLProfile`
# Returns
a passthrough shader string for copying an input external-oes
texture to the output
<!-- impl GLShader::fn string_fragment_get_default -->
Feature: `v1_16`
## `context`
a `GLContext`
## `version`
a `GLSLVersion`
## `profile`
a `GLSLProfile`
# Returns
a passthrough shader string for copying an input texture to
the output
<!-- impl GLShader::fn string_get_highest_precision -->
Generates a shader string that defines the precision of float types in
GLSL shaders. This is particularly needed for fragment shaders in a
GLSL ES context where there is no default precision specified.
Practically, this will return the string 'precision mediump float'
or 'precision highp float' depending on if high precision floats are
determined to be supported.
Feature: `v1_16`
## `context`
a `GLContext`
## `version`
a `GLSLVersion`
## `profile`
a `GLSLProfile`
# Returns
a shader string defining the precision of float types based on
`context`, `version` and `profile`
<!-- impl GLShader::fn attach --> <!-- impl GLShader::fn attach -->
Attaches `stage` to `self`. `stage` must have been successfully compiled Attaches `stage` to `self`. `stage` must have been successfully compiled
with `GLSLStage::compile`. with `GLSLStage::compile`.
@ -1221,6 +1363,12 @@ Mark's `self` as being used for the next GL draw command.
Note: must be called in the GL thread and `self` must have been linked. Note: must be called in the GL thread and `self` must have been linked.
<!-- enum GLStereoDownmix --> <!-- enum GLStereoDownmix -->
Output anaglyph type to generate when downmixing to mono Output anaglyph type to generate when downmixing to mono
<!-- enum GLStereoDownmix::variant GreenMagentaDubois -->
Dubois optimised Green-Magenta anaglyph
<!-- enum GLStereoDownmix::variant RedCyanDubois -->
Dubois optimised Red-Cyan anaglyph
<!-- enum GLStereoDownmix::variant AmberBlueDubois -->
Dubois optimised Amber-Blue anaglyph
<!-- enum GLTextureTarget --> <!-- enum GLTextureTarget -->
<!-- enum GLTextureTarget::variant None --> <!-- enum GLTextureTarget::variant None -->
no texture target no texture target
@ -1298,7 +1446,7 @@ Convert stereoscopic/multiview video using fragment shaders.
a new `GLViewConvert` a new `GLViewConvert`
<!-- impl GLViewConvert::fn fixate_caps --> <!-- impl GLViewConvert::fn fixate_caps -->
Provides an implementation of `gst_base::BaseTransformClass::fixate_caps`() Provides an implementation of `gst_base::BaseTransformClass.fixate_caps`()
## `direction` ## `direction`
a `gst::PadDirection` a `gst::PadDirection`
## `caps` ## `caps`
@ -1350,7 +1498,7 @@ a `gst::Buffer`
a `gst::FlowReturn` a `gst::FlowReturn`
<!-- impl GLViewConvert::fn transform_caps --> <!-- impl GLViewConvert::fn transform_caps -->
Provides an implementation of `gst_base::BaseTransformClass::transform_caps`() Provides an implementation of `gst_base::BaseTransformClass.transform_caps`()
## `direction` ## `direction`
a `gst::PadDirection` a `gst::PadDirection`
## `caps` ## `caps`
@ -1381,6 +1529,15 @@ a `GLDisplay`
# Returns # Returns
a new `GLWindow` using `display`'s connection a new `GLWindow` using `display`'s connection
<!-- trait GLWindowExt::fn controls_viewport -->
Checks if `self` controls the GL viewport.
Feature: `v1_16`
# Returns
`true` if `self` controls the GL viewport, otherwise `false`
<!-- trait GLWindowExt::fn draw --> <!-- trait GLWindowExt::fn draw -->
Redraw the window contents. Implementations should invoke the draw callback. Redraw the window contents. Implementations should invoke the draw callback.
<!-- trait GLWindowExt::fn get_context --> <!-- trait GLWindowExt::fn get_context -->
@ -1411,8 +1568,16 @@ for them. This method allows you to disable events handling completely
from the `self`. from the `self`.
## `handle_events` ## `handle_events`
a `gboolean` indicating if events should be handled or not. a `gboolean` indicating if events should be handled or not.
<!-- trait GLWindowExt::fn queue_resize -->
Queue resizing of `self`.
<!-- trait GLWindowExt::fn quit --> <!-- trait GLWindowExt::fn quit -->
Quit the runloop's execution. Quit the runloop's execution.
<!-- trait GLWindowExt::fn resize -->
Resize `self` to the given `width` and `height`.
## `width`
new width
## `height`
new height
<!-- trait GLWindowExt::fn run --> <!-- trait GLWindowExt::fn run -->
Start the execution of the runloop. Start the execution of the runloop.
<!-- trait GLWindowExt::fn send_message --> <!-- trait GLWindowExt::fn send_message -->

View file

@ -522,13 +522,7 @@ Encoding profiles for containers. Keeps track of a list of `EncodingProfile`
# Implements # Implements
[`EncodingContainerProfileExt`](trait.EncodingContainerProfileExt.html), [`EncodingProfileExt`](trait.EncodingProfileExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html) [`EncodingProfileExt`](trait.EncodingProfileExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- trait EncodingContainerProfileExt -->
Trait containing all `EncodingContainerProfile` methods.
# Implementors
[`EncodingContainerProfile`](struct.EncodingContainerProfile.html)
<!-- impl EncodingContainerProfile::fn new --> <!-- impl EncodingContainerProfile::fn new -->
Creates a new `EncodingContainerProfile`. Creates a new `EncodingContainerProfile`.
## `name` ## `name`
@ -544,7 +538,7 @@ The preset to use for this profile.
# Returns # Returns
The newly created `EncodingContainerProfile`. The newly created `EncodingContainerProfile`.
<!-- trait EncodingContainerProfileExt::fn add_profile --> <!-- impl EncodingContainerProfile::fn add_profile -->
Add a `EncodingProfile` to the list of profiles handled by `self`. Add a `EncodingProfile` to the list of profiles handled by `self`.
No copy of `profile` will be made, if you wish to use it elsewhere after this No copy of `profile` will be made, if you wish to use it elsewhere after this
@ -555,7 +549,7 @@ the `EncodingProfile` to add.
# Returns # Returns
`true` if the `stream` was properly added, else `false`. `true` if the `stream` was properly added, else `false`.
<!-- trait EncodingContainerProfileExt::fn contains_profile --> <!-- impl EncodingContainerProfile::fn contains_profile -->
Checks if `self` contains a `EncodingProfile` identical to Checks if `self` contains a `EncodingProfile` identical to
`profile`. `profile`.
## `profile` ## `profile`
@ -565,7 +559,7 @@ a `EncodingProfile`
`true` if `self` contains a `EncodingProfile` identical `true` if `self` contains a `EncodingProfile` identical
to `profile`, else `false`. to `profile`, else `false`.
<!-- trait EncodingContainerProfileExt::fn get_profiles --> <!-- impl EncodingContainerProfile::fn get_profiles -->
# Returns # Returns
@ -610,11 +604,12 @@ The new `EncodingProfile` or `None`.
<!-- trait EncodingProfileExt::fn copy --> <!-- trait EncodingProfileExt::fn copy -->
Makes a deep copy of `self` Makes a deep copy of `self`
Feature: `v1_12`
# Returns # Returns
The copy of `self` The copy of `self`
Since 1.12
<!-- trait EncodingProfileExt::fn get_allow_dynamic_output --> <!-- trait EncodingProfileExt::fn get_allow_dynamic_output -->
Get whether the format that has been negotiated in at some point can be renegotiated Get whether the format that has been negotiated in at some point can be renegotiated
later during the encoding. later during the encoding.
@ -699,8 +694,6 @@ Set `description` as the given description for the `self`. A copy of
the description to set on the profile the description to set on the profile
<!-- trait EncodingProfileExt::fn set_enabled --> <!-- trait EncodingProfileExt::fn set_enabled -->
Set whether the profile should be used or not. Set whether the profile should be used or not.
Since 1.6
## `enabled` ## `enabled`
`false` to disable `profile`, `true` to enable it `false` to disable `profile`, `true` to enable it
<!-- trait EncodingProfileExt::fn set_format --> <!-- trait EncodingProfileExt::fn set_format -->

View file

@ -28,8 +28,6 @@ a `Player` configuration
# Returns # Returns
current position update interval in milliseconds current position update interval in milliseconds
Since 1.10
<!-- impl Player::fn config_get_seek_accurate --> <!-- impl Player::fn config_get_seek_accurate -->
## `config` ## `config`
a `Player` configuration a `Player` configuration
@ -37,8 +35,6 @@ a `Player` configuration
# Returns # Returns
`true` if accurate seeking is enabled `true` if accurate seeking is enabled
Since 1.12
<!-- impl Player::fn config_get_user_agent --> <!-- impl Player::fn config_get_user_agent -->
Return the user agent which has been configured using Return the user agent which has been configured using
`Player::config_set_user_agent` if any. `Player::config_set_user_agent` if any.
@ -48,11 +44,9 @@ a `Player` configuration
# Returns # Returns
the configured agent, or `None` the configured agent, or `None`
Since 1.10
<!-- impl Player::fn config_set_position_update_interval --> <!-- impl Player::fn config_set_position_update_interval -->
set interval in milliseconds between two position-updated signals. set interval in milliseconds between two position-updated signals.
pass 0 to stop updating the position. pass 0 to stop updating the position.
Since 1.10
## `config` ## `config`
a `Player` configuration a `Player` configuration
## `interval` ## `interval`
@ -75,8 +69,6 @@ accurate seek or not
Set the user agent to pass to the server if `player` needs to connect Set the user agent to pass to the server if `player` needs to connect
to a server during playback. This is typically used when playing HTTP to a server during playback. This is typically used when playing HTTP
or RTSP streams. or RTSP streams.
Since 1.10
## `config` ## `config`
a `Player` configuration a `Player` configuration
## `agent` ## `agent`
@ -123,8 +115,6 @@ Retrieve the current value of audio-video-offset property
# Returns # Returns
The current value of audio-video-offset in nanoseconds The current value of audio-video-offset in nanoseconds
Since 1.10
<!-- impl Player::fn get_color_balance --> <!-- impl Player::fn get_color_balance -->
Retrieve the current value of the indicated `type_`. Retrieve the current value of the indicated `type_`.
## `type_` ## `type_`
@ -143,8 +133,6 @@ or it must be freed after usage.
a copy of the current configuration of `self`. Use a copy of the current configuration of `self`. Use
`gst::Structure::free` after usage or `Player::set_config`. `gst::Structure::free` after usage or `Player::set_config`.
Since 1.10
<!-- impl Player::fn get_current_audio_track --> <!-- impl Player::fn get_current_audio_track -->
A Function to get current audio `PlayerAudioInfo` instance. A Function to get current audio `PlayerAudioInfo` instance.
@ -230,6 +218,15 @@ current subtitle URI
URI of the current external subtitle. URI of the current external subtitle.
`g_free` after usage. `g_free` after usage.
<!-- impl Player::fn get_subtitle_video_offset -->
Retrieve the current value of subtitle-video-offset property
Feature: `v1_16`
# Returns
The current value of subtitle-video-offset in nanoseconds
<!-- impl Player::fn get_uri --> <!-- impl Player::fn get_uri -->
Gets the URI of the currently-playing stream. Gets the URI of the currently-playing stream.
@ -252,8 +249,6 @@ Additional configuration
# Returns # Returns
Current video snapshot sample or `None` on failure Current video snapshot sample or `None` on failure
Since 1.12
<!-- impl Player::fn get_volume --> <!-- impl Player::fn get_volume -->
Returns the current volume level, as a percentage between 0 and 1. Returns the current volume level, as a percentage between 0 and 1.
@ -291,8 +286,6 @@ Enable or disable the current audio track.
TRUE or FALSE TRUE or FALSE
<!-- impl Player::fn set_audio_video_offset --> <!-- impl Player::fn set_audio_video_offset -->
Sets audio-video-offset property by value of `offset` Sets audio-video-offset property by value of `offset`
Since 1.10
## `offset` ## `offset`
`gint64` in nanoseconds `gint64` in nanoseconds
<!-- impl Player::fn set_color_balance --> <!-- impl Player::fn set_color_balance -->
@ -318,7 +311,6 @@ a `gst::Structure`
# Returns # Returns
`true` when the configuration could be set. `true` when the configuration could be set.
Since 1.10
<!-- impl Player::fn set_multiview_flags --> <!-- impl Player::fn set_multiview_flags -->
Sets the current value of the indicated mode `type_` to the passed Sets the current value of the indicated mode `type_` to the passed
value. value.
@ -356,6 +348,13 @@ gst_player_set_subtitle_track_enabled(`self`, TRUE) so the subtitles are actuall
rendered. rendered.
## `uri` ## `uri`
subtitle URI subtitle URI
<!-- impl Player::fn set_subtitle_video_offset -->
Sets subtitle-video-offset property by value of `offset`
Feature: `v1_16`
## `offset`
`gint64` in nanoseconds
<!-- impl Player::fn set_uri --> <!-- impl Player::fn set_uri -->
Sets the next URI to play. Sets the next URI to play.
## `uri` ## `uri`
@ -672,12 +671,6 @@ Window handle to use or `None`
Window handle to use or `None` Window handle to use or `None`
## `video_sink` ## `video_sink`
the custom video_sink element to be set for the video renderer the custom video_sink element to be set for the video renderer
# Returns
Since 1.12
<!-- impl PlayerVideoOverlayVideoRenderer::fn expose --> <!-- impl PlayerVideoOverlayVideoRenderer::fn expose -->
Tell an overlay that it has been exposed. This will redraw the current frame Tell an overlay that it has been exposed. This will redraw the current frame
in the drawable even if the pipeline is PAUSED. in the drawable even if the pipeline is PAUSED.

View file

@ -177,6 +177,14 @@ users.
the `RTSPToken` of `self`. `gst_rtsp_token_unref` after the `RTSPToken` of `self`. `gst_rtsp_token_unref` after
usage. usage.
<!-- trait RTSPAuthExt::fn get_realm -->
Feature: `v1_16`
# Returns
the `realm` of `self`
<!-- trait RTSPAuthExt::fn get_supported_methods --> <!-- trait RTSPAuthExt::fn get_supported_methods -->
Gets the supported authentication methods of `self`. Gets the supported authentication methods of `self`.
@ -206,6 +214,24 @@ Get the `gio::TlsDatabase` used for verifying client certificate.
the `gio::TlsDatabase` of `self`. `gobject::ObjectExt::unref` after the `gio::TlsDatabase` of `self`. `gobject::ObjectExt::unref` after
usage. usage.
<!-- trait RTSPAuthExt::fn parse_htdigest -->
Parse the contents of the file at `path` and enable the privileges
listed in `token` for the users it describes.
The format of the file is expected to match the format described by
<https://en.wikipedia.org/wiki/Digest_access_authentication`The_.htdigest_file`>,
as output by the `htdigest` command.
Feature: `v1_16`
## `path`
Path to the htdigest file
## `token`
authorisation token
# Returns
`true` if the file was successfully parsed, `false` otherwise.
<!-- trait RTSPAuthExt::fn remove_basic --> <!-- trait RTSPAuthExt::fn remove_basic -->
Removes `basic` authentication token. Removes `basic` authentication token.
## `basic` ## `basic`
@ -222,6 +248,11 @@ Set the default `RTSPToken` to `token` in `self`. The default token will
be used for unauthenticated users. be used for unauthenticated users.
## `token` ## `token`
a `RTSPToken` a `RTSPToken`
<!-- trait RTSPAuthExt::fn set_realm -->
Set the `realm` of `self`
Feature: `v1_16`
<!-- trait RTSPAuthExt::fn set_supported_methods --> <!-- trait RTSPAuthExt::fn set_supported_methods -->
Sets the supported authentication `methods` for `self`. Sets the supported authentication `methods` for `self`.
@ -244,8 +275,6 @@ a `gio::TlsCertificate`
Sets the certificate database that is used to verify peer certificates. Sets the certificate database that is used to verify peer certificates.
If set to `None` (the default), then peer certificate validation will always If set to `None` (the default), then peer certificate validation will always
set the `gio::TlsCertificateFlags::UnknownCa` error. set the `gio::TlsCertificateFlags::UnknownCa` error.
Since 1.6
## `database` ## `database`
a `gio::TlsDatabase` a `gio::TlsDatabase`
<!-- trait RTSPAuthExt::fn connect_accept_certificate --> <!-- trait RTSPAuthExt::fn connect_accept_certificate -->
@ -397,12 +426,34 @@ sent to the client. `user_data` is passed to `func` and `notify` is called when
By default, the client will send the messages on the `gst_rtsp::RTSPConnection` that By default, the client will send the messages on the `gst_rtsp::RTSPConnection` that
was configured with `RTSPClient::attach` was called. was configured with `RTSPClient::attach` was called.
It is only allowed to set either a `send_func` or a `send_messages_func`
but not both at the same time.
## `func` ## `func`
a `GstRTSPClientSendFunc` a `GstRTSPClientSendFunc`
## `user_data` ## `user_data`
user data passed to `func` user data passed to `func`
## `notify` ## `notify`
called when `user_data` is no longer in use called when `user_data` is no longer in use
<!-- trait RTSPClientExt::fn set_send_messages_func -->
Set `func` as the callback that will be called when new messages needs to be
sent to the client. `user_data` is passed to `func` and `notify` is called when
`user_data` is no longer in use.
By default, the client will send the messages on the `gst_rtsp::RTSPConnection` that
was configured with `RTSPClient::attach` was called.
It is only allowed to set either a `send_func` or a `send_messages_func`
but not both at the same time.
Feature: `v1_16`
## `func`
a `GstRTSPClientSendMessagesFunc`
## `user_data`
user data passed to `func`
## `notify`
called when `user_data` is no longer in use
<!-- trait RTSPClientExt::fn set_session_pool --> <!-- trait RTSPClientExt::fn set_session_pool -->
Set `pool` as the sessionpool for `self` which it will use to find Set `pool` as the sessionpool for `self` which it will use to find
or allocate sessions. the sessionpool is usually inherited from the server or allocate sessions. the sessionpool is usually inherited from the server
@ -587,6 +638,14 @@ current thread that is handling the request for a client.
# Returns # Returns
a `RTSPContext` a `RTSPContext`
<!-- enum RTSPFilterResult -->
Possible return values for `RTSPSessionPoolExt::filter`.
<!-- enum RTSPFilterResult::variant Remove -->
Remove session
<!-- enum RTSPFilterResult::variant Keep -->
Keep session in the pool
<!-- enum RTSPFilterResult::variant Ref -->
Ref session in the result list
<!-- struct RTSPMedia --> <!-- struct RTSPMedia -->
A class that contains the GStreamer element along with a list of A class that contains the GStreamer element along with a list of
`RTSPStream` objects that can produce data. `RTSPStream` objects that can produce data.
@ -627,6 +686,9 @@ element of `self`, and create `GstRTSPStreams` for them.
<!-- trait RTSPMediaExt::fn complete_pipeline --> <!-- trait RTSPMediaExt::fn complete_pipeline -->
Add a receiver and sender parts to the pipeline based on the transport from Add a receiver and sender parts to the pipeline based on the transport from
SETUP. SETUP.
Feature: `v1_14`
## `transports` ## `transports`
a list of `gst_rtsp::RTSPTransport` a list of `gst_rtsp::RTSPTransport`
@ -684,6 +746,14 @@ Get the clock that is used by the pipeline in `self`.
# Returns # Returns
the `gst::Clock` used by `self`. unref after usage. the `gst::Clock` used by `self`. unref after usage.
<!-- trait RTSPMediaExt::fn get_do_retransmission -->
Feature: `v1_16`
# Returns
Whether retransmission requests will be sent
<!-- trait RTSPMediaExt::fn get_element --> <!-- trait RTSPMediaExt::fn get_element -->
Get the element that was used when constructing `self`. Get the element that was used when constructing `self`.
@ -696,6 +766,15 @@ Get the latency that is used for receiving media.
# Returns # Returns
latency in milliseconds latency in milliseconds
<!-- trait RTSPMediaExt::fn get_max_mcast_ttl -->
Get the the maximum time-to-live value of outgoing multicast packets.
Feature: `v1_16`
# Returns
the maximum time-to-live value of outgoing multicast packets.
<!-- trait RTSPMediaExt::fn get_multicast_iface --> <!-- trait RTSPMediaExt::fn get_multicast_iface -->
Get the multicast interface used for `self`. Get the multicast interface used for `self`.
@ -791,6 +870,15 @@ a `gst_sdp::SDPMessage`
# Returns # Returns
TRUE on success. TRUE on success.
<!-- trait RTSPMediaExt::fn is_bind_mcast_address -->
Check if multicast sockets are configured to be bound to multicast addresses.
Feature: `v1_16`
# Returns
`true` if multicast sockets are configured to be bound to multicast addresses.
<!-- trait RTSPMediaExt::fn is_eos_shutdown --> <!-- trait RTSPMediaExt::fn is_eos_shutdown -->
Check if the pipeline for `self` will send an EOS down the pipeline before Check if the pipeline for `self` will send an EOS down the pipeline before
unpreparing. unpreparing.
@ -857,7 +945,11 @@ a `gst_rtsp::RTSPTimeRange`
`true` on success. `true` on success.
<!-- trait RTSPMediaExt::fn seek_full --> <!-- trait RTSPMediaExt::fn seek_full -->
Seek the pipeline of `self` to `range`. `self` must be prepared with Seek the pipeline of `self` to `range`. `self` must be prepared with
`RTSPMediaExt::prepare`. `RTSPMediaExt::prepare`. In order to perform the seek operation,
the pipeline must contain all needed transport parts (transport sinks).
Feature: `v1_14`
## `range` ## `range`
a `gst_rtsp::RTSPTimeRange` a `gst_rtsp::RTSPTimeRange`
## `flags` ## `flags`
@ -866,10 +958,30 @@ The minimal set of `gst::SeekFlags` to use
# Returns # Returns
`true` on success. `true` on success.
<!-- trait RTSPMediaExt::fn seekable -->
Check if the pipeline for `self` seek and up to what point in time,
it can seek.
Feature: `v1_14`
# Returns
-1 if the stream is not seekable, 0 if seekable only to the beginning
and > 0 to indicate the longest duration between any two random access points.
`G_MAXINT64` means any value is possible.
<!-- trait RTSPMediaExt::fn set_address_pool --> <!-- trait RTSPMediaExt::fn set_address_pool -->
configure `pool` to be used as the address pool of `self`. configure `pool` to be used as the address pool of `self`.
## `pool` ## `pool`
a `RTSPAddressPool` a `RTSPAddressPool`
<!-- trait RTSPMediaExt::fn set_bind_mcast_address -->
Decide whether the multicast socket should be bound to a multicast address or
INADDR_ANY.
Feature: `v1_16`
## `bind_mcast_addr`
the new value
<!-- trait RTSPMediaExt::fn set_buffer_size --> <!-- trait RTSPMediaExt::fn set_buffer_size -->
Set the kernel UDP buffer size. Set the kernel UDP buffer size.
## `size` ## `size`
@ -878,6 +990,11 @@ the new value
Configure the clock used for the media. Configure the clock used for the media.
## `clock` ## `clock`
`gst::Clock` to be used `gst::Clock` to be used
<!-- trait RTSPMediaExt::fn set_do_retransmission -->
Set whether retransmission requests will be sent
Feature: `v1_16`
<!-- trait RTSPMediaExt::fn set_eos_shutdown --> <!-- trait RTSPMediaExt::fn set_eos_shutdown -->
Set or unset if an EOS event will be sent to the pipeline for `self` before Set or unset if an EOS event will be sent to the pipeline for `self` before
it is unprepared. it is unprepared.
@ -887,6 +1004,17 @@ the new value
Configure the latency used for receiving media. Configure the latency used for receiving media.
## `latency` ## `latency`
latency in milliseconds latency in milliseconds
<!-- trait RTSPMediaExt::fn set_max_mcast_ttl -->
Set the maximum time-to-live value of outgoing multicast packets.
Feature: `v1_16`
## `ttl`
the new multicast ttl value
# Returns
`true` if the requested ttl has been set successfully.
<!-- trait RTSPMediaExt::fn set_multicast_iface --> <!-- trait RTSPMediaExt::fn set_multicast_iface -->
configure `multicast_iface` to be used for `self`. configure `multicast_iface` to be used for `self`.
## `multicast_iface` ## `multicast_iface`
@ -1083,6 +1211,14 @@ of all medias created from this factory.
# Returns # Returns
The GstClock The GstClock
<!-- trait RTSPMediaFactoryExt::fn get_do_retransmission -->
Feature: `v1_16`
# Returns
Whether retransmission requests will be sent for receiving media
<!-- trait RTSPMediaFactoryExt::fn get_latency --> <!-- trait RTSPMediaFactoryExt::fn get_latency -->
Get the latency that is used for receiving media Get the latency that is used for receiving media
@ -1097,6 +1233,15 @@ default prepare vmethod.
the configured launch description. `g_free` after the configured launch description. `g_free` after
usage. usage.
<!-- trait RTSPMediaFactoryExt::fn get_max_mcast_ttl -->
Get the the maximum time-to-live value of outgoing multicast packets.
Feature: `v1_16`
# Returns
the maximum time-to-live value of outgoing multicast packets.
<!-- trait RTSPMediaFactoryExt::fn get_media_gtype --> <!-- trait RTSPMediaFactoryExt::fn get_media_gtype -->
Return the GType of the GstRTSPMedia subclass this Return the GType of the GstRTSPMedia subclass this
factory will create. factory will create.
@ -1150,6 +1295,15 @@ methods.
# Returns # Returns
The transport mode. The transport mode.
<!-- trait RTSPMediaFactoryExt::fn is_bind_mcast_address -->
Check if multicast sockets are configured to be bound to multicast addresses.
Feature: `v1_16`
# Returns
`true` if multicast sockets are configured to be bound to multicast addresses.
<!-- trait RTSPMediaFactoryExt::fn is_eos_shutdown --> <!-- trait RTSPMediaFactoryExt::fn is_eos_shutdown -->
Get if media created from this factory will have an EOS event sent to the Get if media created from this factory will have an EOS event sent to the
pipeline before shutdown. pipeline before shutdown.
@ -1167,6 +1321,14 @@ Get if media created from this factory can be shared between clients.
configure `pool` to be used as the address pool of `self`. configure `pool` to be used as the address pool of `self`.
## `pool` ## `pool`
a `RTSPAddressPool` a `RTSPAddressPool`
<!-- trait RTSPMediaFactoryExt::fn set_bind_mcast_address -->
Decide whether the multicast socket should be bound to a multicast address or
INADDR_ANY.
Feature: `v1_16`
## `bind_mcast_addr`
the new value
<!-- trait RTSPMediaFactoryExt::fn set_buffer_size --> <!-- trait RTSPMediaFactoryExt::fn set_buffer_size -->
Set the kernel UDP buffer size. Set the kernel UDP buffer size.
## `size` ## `size`
@ -1176,6 +1338,12 @@ Configures a specific clock to be used by the pipelines
of all medias created from this factory. of all medias created from this factory.
## `clock` ## `clock`
the clock to be used by the media factory the clock to be used by the media factory
<!-- trait RTSPMediaFactoryExt::fn set_do_retransmission -->
Set whether retransmission requests will be sent for
receiving media
Feature: `v1_16`
<!-- trait RTSPMediaFactoryExt::fn set_eos_shutdown --> <!-- trait RTSPMediaFactoryExt::fn set_eos_shutdown -->
Configure if media created from this factory will have an EOS sent to the Configure if media created from this factory will have an EOS sent to the
pipeline before shutdown. pipeline before shutdown.
@ -1197,6 +1365,17 @@ The description should return a pipeline with payloaders named pay0, pay1,
etc.. Each of the payloaders will result in a stream. etc.. Each of the payloaders will result in a stream.
## `launch` ## `launch`
the launch description the launch description
<!-- trait RTSPMediaFactoryExt::fn set_max_mcast_ttl -->
Set the maximum time-to-live value of outgoing multicast packets.
Feature: `v1_16`
## `ttl`
the new multicast ttl value
# Returns
`true` if the requested ttl has been set successfully.
<!-- trait RTSPMediaFactoryExt::fn set_media_gtype --> <!-- trait RTSPMediaFactoryExt::fn set_media_gtype -->
Configure the GType of the GstRTSPMedia subclass to Configure the GType of the GstRTSPMedia subclass to
create (by default, overridden construct vmethods create (by default, overridden construct vmethods
@ -1787,6 +1966,9 @@ valid until the session of `self` is unreffed.
<!-- trait RTSPSessionMediaExt::fn get_transports --> <!-- trait RTSPSessionMediaExt::fn get_transports -->
Get a list of all available `RTSPStreamTransport` in this session. Get a list of all available `RTSPStreamTransport` in this session.
Feature: `v1_14`
# Returns # Returns
a a
@ -1952,6 +2134,25 @@ a `gst::Pad`
# Returns # Returns
a new `RTSPStream` a new `RTSPStream`
<!-- trait RTSPStreamExt::fn add_multicast_client_address -->
Add multicast client address to stream. At this point, the sockets that
will stream RTP and RTCP data to `destination` are supposed to be
allocated.
Feature: `v1_16`
## `destination`
a multicast address to add
## `rtp_port`
RTP port
## `rtcp_port`
RTCP port
## `family`
socket family
# Returns
`true` if `destination` can be addedd and handled by `self`.
<!-- trait RTSPStreamExt::fn add_transport --> <!-- trait RTSPStreamExt::fn add_transport -->
Add the transport in `trans` to `self`. The media of `self` will Add the transport in `trans` to `self`. The media of `self` will
then also be send to the values configured in `trans`. then also be send to the values configured in `trans`.
@ -1980,6 +2181,9 @@ Whether to use client settings or not
<!-- trait RTSPStreamExt::fn complete_stream --> <!-- trait RTSPStreamExt::fn complete_stream -->
Add a receiver and sender part to the pipeline based on the transport from Add a receiver and sender part to the pipeline based on the transport from
SETUP. SETUP.
Feature: `v1_14`
## `transport` ## `transport`
a `gst_rtsp::RTSPTransport` a `gst_rtsp::RTSPTransport`
@ -2030,6 +2234,15 @@ Get the previous joined bin with `RTSPStreamExt::join_bin` or NULL.
# Returns # Returns
the joined bin or NULL. the joined bin or NULL.
<!-- trait RTSPStreamExt::fn get_max_mcast_ttl -->
Get the the maximum time-to-live value of outgoing multicast packets.
Feature: `v1_16`
# Returns
the maximum time-to-live value of outgoing multicast packets.
<!-- trait RTSPStreamExt::fn get_mtu --> <!-- trait RTSPStreamExt::fn get_mtu -->
Get the configured MTU in the payloader of `self`. Get the configured MTU in the payloader of `self`.
@ -2048,6 +2261,15 @@ the `gio::SocketFamily`
the `RTSPAddress` of `self` the `RTSPAddress` of `self`
or `None` when no address could be allocated. `RTSPAddress::free` or `None` when no address could be allocated. `RTSPAddress::free`
after usage. after usage.
<!-- trait RTSPStreamExt::fn get_multicast_client_addresses -->
Get all multicast client addresses that RTP data will be sent to
Feature: `v1_16`
# Returns
A comma separated list of host:port pairs with destinations
<!-- trait RTSPStreamExt::fn get_multicast_iface --> <!-- trait RTSPStreamExt::fn get_multicast_iface -->
Get the multicast interface used for `self`. Get the multicast interface used for `self`.
@ -2093,6 +2315,9 @@ Get the amount of time to store retransmission data.
the amount of time to store retransmission data. the amount of time to store retransmission data.
<!-- trait RTSPStreamExt::fn get_rtcp_multicast_socket --> <!-- trait RTSPStreamExt::fn get_rtcp_multicast_socket -->
Get the multicast RTCP socket from `self` for a `family`. Get the multicast RTCP socket from `self` for a `family`.
Feature: `v1_14`
## `family` ## `family`
the socket family the socket family
@ -2119,6 +2344,7 @@ the socket family
# Returns # Returns
the multicast RTP socket or `None` if no the multicast RTP socket or `None` if no
socket could be allocated for `family`. Unref after usage socket could be allocated for `family`. Unref after usage
<!-- trait RTSPStreamExt::fn get_rtp_socket --> <!-- trait RTSPStreamExt::fn get_rtp_socket -->
Get the RTP socket from `self` for a `family`. Get the RTP socket from `self` for a `family`.
@ -2182,6 +2408,30 @@ Get the SSRC used by the RTP session of this stream. This function can only
be called when `self` has been joined. be called when `self` has been joined.
## `ssrc` ## `ssrc`
result ssrc result ssrc
<!-- trait RTSPStreamExt::fn get_ulpfec_percentage -->
Feature: `v1_16`
# Returns
the amount of redundancy applied when creating ULPFEC
protection packets.
<!-- trait RTSPStreamExt::fn get_ulpfec_pt -->
Feature: `v1_16`
# Returns
the payload type used for ULPFEC protection packets
<!-- trait RTSPStreamExt::fn handle_keymgmt -->
Parse and handle a KeyMgmt header.
Feature: `v1_16`
## `keymgmt`
a keymgmt header
<!-- trait RTSPStreamExt::fn has_control --> <!-- trait RTSPStreamExt::fn has_control -->
Check if `self` has the control string `control`. Check if `self` has the control string `control`.
## `control` ## `control`
@ -2190,6 +2440,15 @@ a control string
# Returns # Returns
`true` is `self` has `control` as the control string `true` is `self` has `control` as the control string
<!-- trait RTSPStreamExt::fn is_bind_mcast_address -->
Check if multicast sockets are configured to be bound to multicast addresses.
Feature: `v1_16`
# Returns
`true` if multicast sockets are configured to be bound to multicast addresses.
<!-- trait RTSPStreamExt::fn is_blocking --> <!-- trait RTSPStreamExt::fn is_blocking -->
Check if `self` is blocking on a `gst::Buffer`. Check if `self` is blocking on a `gst::Buffer`.
@ -2207,18 +2466,27 @@ Checks whether the stream is complete, contains the receiver and the sender
parts. As the stream contains sink(s) element(s), it's possible to perform parts. As the stream contains sink(s) element(s), it's possible to perform
seek operations on it. seek operations on it.
Feature: `v1_14`
# Returns # Returns
`true` if the stream contains at least one sink element. `true` if the stream contains at least one sink element.
<!-- trait RTSPStreamExt::fn is_receiver --> <!-- trait RTSPStreamExt::fn is_receiver -->
Checks whether the stream is a receiver. Checks whether the stream is a receiver.
Feature: `v1_14`
# Returns # Returns
`true` if the stream is a receiver and `false` otherwise. `true` if the stream is a receiver and `false` otherwise.
<!-- trait RTSPStreamExt::fn is_sender --> <!-- trait RTSPStreamExt::fn is_sender -->
Checks whether the stream is a sender. Checks whether the stream is a sender.
Feature: `v1_14`
# Returns # Returns
`true` if the stream is a sender and `false` otherwise. `true` if the stream is a sender and `false` otherwise.
@ -2308,11 +2576,40 @@ a `RTSPStreamTransport`
# Returns # Returns
`true` if `trans` was removed `true` if `trans` was removed
<!-- trait RTSPStreamExt::fn request_aux_receiver -->
Creating a rtxreceive bin
Feature: `v1_16`
## `sessid`
the session id
# Returns
a `gst::Element`.
<!-- trait RTSPStreamExt::fn request_aux_sender --> <!-- trait RTSPStreamExt::fn request_aux_sender -->
Creating a rtxsend bin Creating a rtxsend bin
## `sessid` ## `sessid`
the session id the session id
# Returns
a `gst::Element`.
<!-- trait RTSPStreamExt::fn request_ulpfec_decoder -->
Creating a rtpulpfecdec element
Feature: `v1_16`
# Returns
a `gst::Element`.
<!-- trait RTSPStreamExt::fn request_ulpfec_encoder -->
Creating a rtpulpfecenc element
Feature: `v1_16`
# Returns # Returns
a `gst::Element`. a `gst::Element`.
@ -2332,10 +2629,14 @@ a TTL
# Returns # Returns
the `RTSPAddress` of `self` or `None` when the `RTSPAddress` of `self` or `None` when
the address could be reserved. `RTSPAddress::free` after usage. the address could not be reserved. `RTSPAddress::free` after
usage.
<!-- trait RTSPStreamExt::fn seekable --> <!-- trait RTSPStreamExt::fn seekable -->
Checks whether the individual `self` is seekable. Checks whether the individual `self` is seekable.
Feature: `v1_14`
# Returns # Returns
`true` if `self` is seekable, else `false`. `true` if `self` is seekable, else `false`.
@ -2343,6 +2644,14 @@ Checks whether the individual `self` is seekable.
configure `pool` to be used as the address pool of `self`. configure `pool` to be used as the address pool of `self`.
## `pool` ## `pool`
a `RTSPAddressPool` a `RTSPAddressPool`
<!-- trait RTSPStreamExt::fn set_bind_mcast_address -->
Decide whether the multicast socket should be bound to a multicast address or
INADDR_ANY.
Feature: `v1_16`
## `bind_mcast_addr`
the new value
<!-- trait RTSPStreamExt::fn set_blocked --> <!-- trait RTSPStreamExt::fn set_blocked -->
Blocks or unblocks the dataflow on `self`. Blocks or unblocks the dataflow on `self`.
## `blocked` ## `blocked`
@ -2373,6 +2682,17 @@ a control string
Configure the dscp qos of the outgoing sockets to `dscp_qos`. Configure the dscp qos of the outgoing sockets to `dscp_qos`.
## `dscp_qos` ## `dscp_qos`
a new dscp qos value (0-63, or -1 to disable) a new dscp qos value (0-63, or -1 to disable)
<!-- trait RTSPStreamExt::fn set_max_mcast_ttl -->
Set the maximum time-to-live value of outgoing multicast packets.
Feature: `v1_16`
## `ttl`
the new multicast ttl value
# Returns
`true` if the requested ttl has been set successfully.
<!-- trait RTSPStreamExt::fn set_mtu --> <!-- trait RTSPStreamExt::fn set_mtu -->
Configure the mtu in the payloader of `self` to `mtu`. Configure the mtu in the payloader of `self` to `mtu`.
## `mtu` ## `mtu`
@ -2407,6 +2727,17 @@ a `guint`
Set the amount of time to store retransmission packets. Set the amount of time to store retransmission packets.
## `time` ## `time`
a `gst::ClockTime` a `gst::ClockTime`
<!-- trait RTSPStreamExt::fn set_ulpfec_percentage -->
Sets the amount of redundancy to apply when creating ULPFEC
protection packets.
Feature: `v1_16`
<!-- trait RTSPStreamExt::fn set_ulpfec_pt -->
Set the payload type to be used for ULPFEC protection packets
Feature: `v1_16`
<!-- trait RTSPStreamExt::fn transport_filter --> <!-- trait RTSPStreamExt::fn transport_filter -->
Call `func` for each transport managed by `self`. The result value of `func` Call `func` for each transport managed by `self`. The result value of `func`
determines what happens to the transport. `func` will be called with `self` determines what happens to the transport. `func` will be called with `self`
@ -2445,6 +2776,17 @@ a `gst::Caps` with crypto info
# Returns # Returns
`true` if `crypto` could be updated `true` if `crypto` could be updated
<!-- trait RTSPStreamExt::fn verify_mcast_ttl -->
Check if the requested multicast ttl value is allowed.
Feature: `v1_16`
## `ttl`
a requested multicast ttl
# Returns
TRUE if the requested ttl value is allowed.
<!-- struct RTSPStreamTransport --> <!-- struct RTSPStreamTransport -->
A Transport description for a stream A Transport description for a stream
@ -2506,6 +2848,11 @@ Check if `self` is timed out.
`true` if `self` timed out. `true` if `self` timed out.
<!-- trait RTSPStreamTransportExt::fn keep_alive --> <!-- trait RTSPStreamTransportExt::fn keep_alive -->
Signal the installed keep_alive callback for `self`. Signal the installed keep_alive callback for `self`.
<!-- trait RTSPStreamTransportExt::fn message_sent -->
Signal the installed message_sent callback for `self`.
Feature: `v1_16`
<!-- trait RTSPStreamTransportExt::fn recv_data --> <!-- trait RTSPStreamTransportExt::fn recv_data -->
Receive `buffer` on `channel` `self`. Receive `buffer` on `channel` `self`.
## `channel` ## `channel`
@ -2524,6 +2871,17 @@ a `gst::Buffer`
# Returns # Returns
`true` on success
<!-- trait RTSPStreamTransportExt::fn send_rtcp_list -->
Send `buffer_list` to the installed RTCP callback for `self`.
Feature: `v1_16`
## `buffer_list`
a `gst::Buffer`
# Returns
`true` on success `true` on success
<!-- trait RTSPStreamTransportExt::fn send_rtp --> <!-- trait RTSPStreamTransportExt::fn send_rtp -->
Send `buffer` to the installed RTP callback for `self`. Send `buffer` to the installed RTP callback for `self`.
@ -2532,6 +2890,17 @@ a `gst::Buffer`
# Returns # Returns
`true` on success
<!-- trait RTSPStreamTransportExt::fn send_rtp_list -->
Send `buffer_list` to the installed RTP callback for `self`.
Feature: `v1_16`
## `buffer_list`
a `gst::BufferList`
# Returns
`true` on success `true` on success
<!-- trait RTSPStreamTransportExt::fn set_active --> <!-- trait RTSPStreamTransportExt::fn set_active -->
Activate or deactivate datatransfer configured in `self`. Activate or deactivate datatransfer configured in `self`.
@ -2561,6 +2930,28 @@ a callback called when the receiver is active
user data passed to callback user data passed to callback
## `notify` ## `notify`
called with the user_data when no longer needed. called with the user_data when no longer needed.
<!-- trait RTSPStreamTransportExt::fn set_list_callbacks -->
Install callbacks that will be called when data for a stream should be sent
to a client. This is usually used when sending RTP/RTCP over TCP.
Feature: `v1_16`
## `send_rtp_list`
a callback called when RTP should be sent
## `send_rtcp_list`
a callback called when RTCP should be sent
## `user_data`
user data passed to callbacks
## `notify`
called with the user_data when no longer needed.
<!-- trait RTSPStreamTransportExt::fn set_message_sent -->
Install a callback that will be called when a message has been sent on `self`.
## `message_sent`
a callback called when a message has been sent
## `user_data`
user data passed to callback
## `notify`
called with the user_data when no longer needed
<!-- trait RTSPStreamTransportExt::fn set_timed_out --> <!-- trait RTSPStreamTransportExt::fn set_timed_out -->
Set the timed out state of `self` to `timedout` Set the timed out state of `self` to `timedout`
## `timedout` ## `timedout`

View file

@ -8,6 +8,7 @@ basic authentication
<!-- enum RTSPAuthMethod::variant Digest --> <!-- enum RTSPAuthMethod::variant Digest -->
digest authentication digest authentication
<!-- struct RTSPAuthParam --> <!-- struct RTSPAuthParam -->
RTSP Authentication parameter
<!-- enum RTSPFamily --> <!-- enum RTSPFamily -->
The possible network families. The possible network families.
<!-- enum RTSPFamily::variant None --> <!-- enum RTSPFamily::variant None -->

View file

@ -1,565 +1 @@
<!-- file * --> <!-- file * -->
<!-- enum MIKEYCacheType -->
The different cache types
<!-- enum MIKEYCacheType::variant None -->
The envelope key MUST NOT be cached
<!-- enum MIKEYCacheType::variant Always -->
The envelope key MUST be cached
<!-- enum MIKEYCacheType::variant ForCsb -->
The envelope key MUST be cached, but only
to be used for the specific CSB.
<!-- enum MIKEYEncAlg -->
The encryption algorithm used to encrypt the Encr data field
<!-- enum MIKEYEncAlg::variant Null -->
no encryption
<!-- enum MIKEYEncAlg::variant AesCm128 -->
AES-CM using a 128-bit key
<!-- enum MIKEYEncAlg::variant AesKw128 -->
AES Key Wrap using a 128-bit key
<!-- enum MIKEYKVType -->
The key validity type
<!-- enum MIKEYKVType::variant Null -->
No specific usage rule
<!-- enum MIKEYKVType::variant Spi -->
The key is associated with the SPI/MKI
<!-- enum MIKEYKVType::variant Interval -->
The key has a start and expiration time
<!-- enum MIKEYKeyDataType -->
The type of key.
<!-- enum MIKEYKeyDataType::variant Tgk -->
a TEK Generation Key
<!-- enum MIKEYKeyDataType::variant Tek -->
Traffic-Encrypting Key
<!-- enum MIKEYMacAlg -->
Specifies the authentication algorithm used
<!-- enum MIKEYMacAlg::variant Null -->
no authentication
<!-- enum MIKEYMacAlg::variant HmacSha1160 -->
HMAC-SHA-1-160
<!-- enum MIKEYMapType -->
Specifies the method of uniquely mapping Crypto Sessions to the security
protocol sessions.
<!-- struct MIKEYMessage -->
Structure holding the information of the MIKEY message
<!-- impl MIKEYMessage::fn new -->
Make a new MIKEY message.
# Returns
a new `MIKEYMessage` on success
<!-- impl MIKEYMessage::fn new_from_bytes -->
Make a new `MIKEYMessage` from `bytes`.
## `bytes`
a `glib::Bytes`
## `info`
a `MIKEYDecryptInfo`
# Returns
a new `MIKEYMessage`
<!-- impl MIKEYMessage::fn new_from_caps -->
Makes mikey message including:
- Security Policy Payload
- Key Data Transport Payload
- Key Data Sub-Payload
## `caps`
a `gst::Caps`, including SRTP parameters (srtp/srtcp cipher, authorization, key data)
# Returns
a `MIKEYMessage`,
or `None` if there is no srtp information in the caps.
<!-- impl MIKEYMessage::fn new_from_data -->
Parse `size` bytes from `data` into a `MIKEYMessage`. `info` contains the
parameters to decrypt and verify the data.
## `data`
bytes to read
## `size`
length of `data`
## `info`
`MIKEYDecryptInfo`
# Returns
a `MIKEYMessage` on success or `None` when parsing failed and
`error` will be set.
<!-- impl MIKEYMessage::fn add_cs_srtp -->
Add a Crypto policy for SRTP to `self`.
## `policy`
The security policy applied for the stream with `ssrc`
## `ssrc`
the SSRC that must be used for the stream
## `roc`
current rollover counter
# Returns
`true` on success
<!-- impl MIKEYMessage::fn add_payload -->
Add a new payload to `self`.
## `payload`
a `MIKEYPayload`
# Returns
`true` on success
<!-- impl MIKEYMessage::fn add_pke -->
Add a new PKE payload to `self` with the given parameters.
## `C`
envelope key cache indicator
## `data_len`
the length of `data`
## `data`
the encrypted envelope key
# Returns
`true` on success
<!-- impl MIKEYMessage::fn add_rand -->
Add a new RAND payload to `self` with the given parameters.
## `len`
the length of `rand`
## `rand`
random data
# Returns
`true` on success
<!-- impl MIKEYMessage::fn add_rand_len -->
Add a new RAND payload to `self` with `len` random bytes.
## `len`
length
# Returns
`true` on success
<!-- impl MIKEYMessage::fn add_t -->
Add a new T payload to `self` with the given parameters.
## `type_`
specifies the timestamp type used
## `ts_value`
The timestamp value of the specified `type_`
# Returns
`true` on success
<!-- impl MIKEYMessage::fn add_t_now_ntp_utc -->
Add a new T payload to `self` that contains the current time
in NTP-UTC format.
# Returns
`true` on success
<!-- impl MIKEYMessage::fn base64_encode -->
# Returns
a `gchar`, base64-encoded data
<!-- impl MIKEYMessage::fn find_payload -->
Find the `nth` occurence of the payload with `type_` in `self`.
## `type_`
a `MIKEYPayloadType`
## `nth`
payload to find
# Returns
the `nth` `MIKEYPayload` of `type_`.
<!-- impl MIKEYMessage::fn get_cs_srtp -->
Get the policy information of `self` at `idx`.
## `idx`
an index
# Returns
a `MIKEYMapSRTP`
<!-- impl MIKEYMessage::fn get_n_cs -->
Get the number of crypto sessions in `self`.
# Returns
the number of crypto sessions
<!-- impl MIKEYMessage::fn get_n_payloads -->
Get the number of payloads in `self`.
# Returns
the number of payloads in `self`
<!-- impl MIKEYMessage::fn get_payload -->
Get the `MIKEYPayload` at `idx` in `self`
## `idx`
an index
# Returns
the `MIKEYPayload` at `idx`. The payload
remains valid for as long as it is part of `self`.
<!-- impl MIKEYMessage::fn insert_cs_srtp -->
Insert a Crypto Session map for SRTP in `self` at `idx`
When `idx` is -1, the policy will be appended.
## `idx`
the index to insert at
## `map`
the map info
# Returns
`true` on success
<!-- impl MIKEYMessage::fn insert_payload -->
Insert the `payload` at index `idx` in `self`. If `idx` is -1, the payload
will be appended to `self`.
## `idx`
an index
## `payload`
a `MIKEYPayload`
# Returns
`true` on success
<!-- impl MIKEYMessage::fn remove_cs_srtp -->
Remove the SRTP policy at `idx`.
## `idx`
the index to remove
# Returns
`true` on success
<!-- impl MIKEYMessage::fn remove_payload -->
Remove the payload in `self` at `idx`
## `idx`
an index
# Returns
`true` on success
<!-- impl MIKEYMessage::fn replace_cs_srtp -->
Replace a Crypto Session map for SRTP in `self` at `idx` with `map`.
## `idx`
the index to insert at
## `map`
the map info
# Returns
`true` on success
<!-- impl MIKEYMessage::fn replace_payload -->
Replace the payload at `idx` in `self` with `payload`.
## `idx`
an index
## `payload`
a `MIKEYPayload`
# Returns
`true` on success
<!-- impl MIKEYMessage::fn set_info -->
Set the information in `self`.
## `version`
a version
## `type_`
a `MIKEYType`
## `V`
verify flag
## `prf_func`
the `MIKEYPRFFunc` function to use
## `CSB_id`
the Crypto Session Bundle id
## `map_type`
the `GstMIKEYCSIDMapType`
# Returns
`true` on success
<!-- impl MIKEYMessage::fn to_bytes -->
Convert `self` to a `glib::Bytes`.
## `info`
a `MIKEYEncryptInfo`
# Returns
a new `glib::Bytes` for `self`.
<!-- impl MIKEYMessage::fn to_caps -->
Feature: `v1_8_1`
## `caps`
a `gst::Caps` to be filled with SRTP parameters (srtp/srtcp cipher, authorization, key data)
# Returns
`true` on success
<!-- enum MIKEYPRFFunc -->
The PRF function that has been/will be used for key derivation
<!-- enum MIKEYPRFFunc::variant MikeyPrfMikey1 -->
MIKEY-1 PRF function
<!-- struct MIKEYPayload -->
Hold the common fields for all payloads
<!-- impl MIKEYPayload::fn new -->
Make a new `MIKEYPayload` with `type_`.
## `type_`
a `MIKEYPayloadType`
# Returns
a new `MIKEYPayload` or `None` on failure.
<!-- impl MIKEYPayload::fn kemac_add_sub -->
Add a new sub payload to `self`.
## `newpay`
a `MIKEYPayload` to add
# Returns
`true` on success.
<!-- impl MIKEYPayload::fn kemac_get_n_sub -->
Get the number of sub payloads of `self`. `self` should be of type
`MIKEYPayloadType::Kemac`.
# Returns
the number of sub payloads in `self`
<!-- impl MIKEYPayload::fn kemac_get_sub -->
Get the sub payload of `self` at `idx`. `self` should be of type
`MIKEYPayloadType::Kemac`.
## `idx`
an index
# Returns
the `MIKEYPayload` at `idx`.
<!-- impl MIKEYPayload::fn kemac_remove_sub -->
Remove the sub payload at `idx` in `self`.
## `idx`
the index to remove
# Returns
`true` on success.
<!-- impl MIKEYPayload::fn kemac_set -->
Set the KEMAC parameters. `self` should point to a `MIKEYPayloadType::Kemac`
payload.
## `enc_alg`
the `MIKEYEncAlg`
## `mac_alg`
a `MIKEYMacAlg`
# Returns
`true` on success
<!-- impl MIKEYPayload::fn key_data_set_interval -->
Set the key validity period in the `MIKEYPayloadType::KeyData` `self`.
## `vf_len`
the length of `vf_data`
## `vf_data`
the Valid From data
## `vt_len`
the length of `vt_data`
## `vt_data`
the Valid To data
# Returns
`true` on success
<!-- impl MIKEYPayload::fn key_data_set_key -->
Set `key_len` bytes of `key_data` of type `key_type` as the key for the
`MIKEYPayloadType::KeyData` `self`.
## `key_type`
a `MIKEYKeyDataType`
## `key_len`
the length of `key_data`
## `key_data`
the key of type `key_type`
# Returns
`true` on success
<!-- impl MIKEYPayload::fn key_data_set_salt -->
Set the salt key data. If `salt_len` is 0 and `salt_data` is `None`, the
salt data will be removed.
## `salt_len`
the length of `salt_data`
## `salt_data`
the salt
# Returns
`true` on success
<!-- impl MIKEYPayload::fn key_data_set_spi -->
Set the SPI/MKI validity in the `MIKEYPayloadType::KeyData` `self`.
## `spi_len`
the length of `spi_data`
## `spi_data`
the SPI/MKI data
# Returns
`true` on success
<!-- impl MIKEYPayload::fn pke_set -->
Set the PKE values in `self`. `self` must be of type
`MIKEYPayloadType::Pke`.
## `C`
envelope key cache indicator
## `data_len`
the length of `data`
## `data`
the encrypted envelope key
# Returns
`true` on success
<!-- impl MIKEYPayload::fn rand_set -->
Set the random values in a `MIKEYPayloadType::Rand` `self`.
## `len`
the length of `rand`
## `rand`
random values
# Returns
`true` on success
<!-- impl MIKEYPayload::fn sp_add_param -->
Add a new parameter to the `MIKEYPayloadType::Sp` `self` with `type_`, `len`
and `val`.
## `type_`
a type
## `len`
a length
## `val`
`len` bytes of data
# Returns
`true` on success
<!-- impl MIKEYPayload::fn sp_get_n_params -->
Get the number of security policy parameters in a `MIKEYPayloadType::Sp`
`self`.
# Returns
the number of parameters in `self`
<!-- impl MIKEYPayload::fn sp_get_param -->
Get the Security Policy parameter in a `MIKEYPayloadType::Sp` `self`
at `idx`.
## `idx`
an index
# Returns
the `MIKEYPayloadSPParam` at `idx` in `self`
<!-- impl MIKEYPayload::fn sp_remove_param -->
Remove the Security Policy parameters from a `MIKEYPayloadType::Sp`
`self` at `idx`.
## `idx`
an index
# Returns
`true` on success
<!-- impl MIKEYPayload::fn sp_set -->
Set the Security Policy parameters for `self`.
## `policy`
the policy number
## `proto`
a `MIKEYSecProto`
# Returns
`true` on success
<!-- impl MIKEYPayload::fn t_set -->
Set the timestamp in a `MIKEYPayloadType::T` `self`.
## `type_`
the `MIKEYTSType`
## `ts_value`
the timestamp value
# Returns
`true` on success
<!-- enum MIKEYPayloadType -->
Different MIKEY Payload types.
<!-- enum MIKEYPayloadType::variant Last -->
Last payload
<!-- enum MIKEYPayloadType::variant Kemac -->
Key data transport payload
<!-- enum MIKEYPayloadType::variant Pke -->
Envelope data payload
<!-- enum MIKEYPayloadType::variant Dh -->
DH data payload
<!-- enum MIKEYPayloadType::variant Sign -->
Signature payload
<!-- enum MIKEYPayloadType::variant T -->
Timestamp payload
<!-- enum MIKEYPayloadType::variant Id -->
ID payload
<!-- enum MIKEYPayloadType::variant Cert -->
Certificate Payload
<!-- enum MIKEYPayloadType::variant Chash -->
Cert hash payload
<!-- enum MIKEYPayloadType::variant V -->
Verfication message payload
<!-- enum MIKEYPayloadType::variant Sp -->
Security Policy payload
<!-- enum MIKEYPayloadType::variant Rand -->
RAND payload
<!-- enum MIKEYPayloadType::variant Err -->
Error payload
<!-- enum MIKEYPayloadType::variant KeyData -->
Key data sub-payload
<!-- enum MIKEYPayloadType::variant GenExt -->
General Extension Payload
<!-- enum MIKEYSecProto -->
Specifies the security protocol
<!-- enum MIKEYSecSRTP -->
This policy specifies the parameters for SRTP and SRTCP
<!-- enum MIKEYSecSRTP::variant EncAlg -->
Encryption algorithm
<!-- enum MIKEYSecSRTP::variant EncKeyLen -->
Session Encr. key length
<!-- enum MIKEYSecSRTP::variant AuthAlg -->
Authentication algorithm
<!-- enum MIKEYSecSRTP::variant AuthKeyLen -->
Session Auth. key length
<!-- enum MIKEYSecSRTP::variant SaltKeyLen -->
Session Salt key length
<!-- enum MIKEYSecSRTP::variant Prf -->
SRTP Pseudo Random Function
<!-- enum MIKEYSecSRTP::variant KeyDerivRate -->
Key derivation rate
<!-- enum MIKEYSecSRTP::variant SrtpEnc -->
SRTP encryption off/on, 0 if off, 1 if on
<!-- enum MIKEYSecSRTP::variant SrtcpEnc -->
SRTCP encryption off/on, 0 if off, 1 if on
<!-- enum MIKEYSecSRTP::variant FecOrder -->
sender's FEC order
<!-- enum MIKEYSecSRTP::variant SrtpAuth -->
SRTP authentication off/on, 0 if off, 1 if on
<!-- enum MIKEYSecSRTP::variant AuthTagLen -->
Authentication tag length
<!-- enum MIKEYSecSRTP::variant SrtpPrefixLen -->
SRTP prefix length
<!-- enum MIKEYTSType -->
Specifies the timestamp type.
<!-- enum MIKEYTSType::variant NtpUtc -->
an NTP time in UTC timezone
<!-- enum MIKEYTSType::variant Ntp -->
an NTP time
<!-- enum MIKEYTSType::variant Counter -->
a counter
<!-- enum MIKEYType -->
Different MIKEY data types.
<!-- enum MIKEYType::variant Invalid -->
Invalid type
<!-- enum MIKEYType::variant PskInit -->
Initiator's pre-shared key message
<!-- enum MIKEYType::variant PskVerify -->
Verification message of a Pre-shared key message
<!-- enum MIKEYType::variant PkInit -->
Initiator's public-key transport message
<!-- enum MIKEYType::variant PkVerify -->
Verification message of a public-key message
<!-- enum MIKEYType::variant DhInit -->
Initiator's DH exchange message
<!-- enum MIKEYType::variant DhResp -->
Responder's DH exchange message
<!-- enum MIKEYType::variant Error -->
Error message

File diff suppressed because it is too large Load diff

View file

@ -1,4 +1,74 @@
<!-- file * --> <!-- file * -->
<!-- struct Allocator -->
Memory is usually created by allocators with a `AllocatorExt::alloc`
method call. When `None` is used as the allocator, the default allocator will
be used.
New allocators can be registered with `Allocator::register`.
Allocators are identified by name and can be retrieved with
`Allocator::find`. `AllocatorExt::set_default` can be used to change the
default allocator.
New memory can be created with `Memory::new_wrapped` that wraps the memory
allocated elsewhere.
# Implements
[`AllocatorExt`](trait.AllocatorExt.html), [`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- trait AllocatorExt -->
Trait containing all `Allocator` methods.
# Implementors
[`Allocator`](struct.Allocator.html)
<!-- impl Allocator::fn find -->
Find a previously registered allocator with `name`. When `name` is `None`, the
default allocator will be returned.
## `name`
the name of the allocator
# Returns
a `Allocator` or `None` when
the allocator with `name` was not registered. Use `GstObjectExt::unref`
to release the allocator after usage.
<!-- impl Allocator::fn register -->
Registers the memory `allocator` with `name`. This function takes ownership of
`allocator`.
## `name`
the name of the allocator
## `allocator`
`Allocator`
<!-- trait AllocatorExt::fn alloc -->
Use `self` to allocate a new memory block with memory that is at least
`size` big.
The optional `params` can specify the prefix and padding for the memory. If
`None` is passed, no flags, no extra prefix/padding and a default alignment is
used.
The prefix/padding will be filled with 0 if flags contains
`MemoryFlags::ZeroPrefixed` and `MemoryFlags::ZeroPadded` respectively.
When `self` is `None`, the default allocator will be used.
The alignment in `params` is given as a bitmask so that `align` + 1 equals
the amount of bytes to align to. For example, to align to 8 bytes,
use an alignment of 7.
## `size`
size of the visible memory area
## `params`
optional parameters
# Returns
a new `Memory`.
<!-- trait AllocatorExt::fn free -->
Free `memory` that was previously allocated with `AllocatorExt::alloc`.
## `memory`
the memory to free
<!-- trait AllocatorExt::fn set_default -->
Set the default allocator. This function takes ownership of `self`.
<!-- struct Bin --> <!-- struct Bin -->
`Bin` is an element that can contain other `Element`, allowing them to be `Bin` is an element that can contain other `Element`, allowing them to be
managed as a group. managed as a group.
@ -487,7 +557,7 @@ to hold a reference to another buffer that is only released when the child
Typically, `ParentBufferMeta` is used when the child buffer is directly Typically, `ParentBufferMeta` is used when the child buffer is directly
using the `Memory` of the parent buffer, and wants to prevent the parent using the `Memory` of the parent buffer, and wants to prevent the parent
buffer from being returned to a buffer pool until the `Memory` is available buffer from being returned to a buffer pool until the `Memory` is available
for re-use. (Since 1.6) for re-use. (Since: 1.6)
<!-- impl Buffer::fn new --> <!-- impl Buffer::fn new -->
Creates a newly allocated buffer without any data. Creates a newly allocated buffer without any data.
@ -531,6 +601,20 @@ allocated size of `data`
# Returns # Returns
a new `Buffer` a new `Buffer`
<!-- impl Buffer::fn new_wrapped_bytes -->
Creates a new `Buffer` that wraps the given `bytes`. The data inside
`bytes` cannot be `None` and the resulting buffer will be marked as read only.
MT safe.
Feature: `v1_16`
## `bytes`
a `glib::Bytes` to wrap
# Returns
a new `Buffer` wrapping `bytes`
<!-- impl Buffer::fn new_wrapped_full --> <!-- impl Buffer::fn new_wrapped_full -->
Allocate a new buffer that wraps the given memory. `data` must point to Allocate a new buffer that wraps the given memory. `data` must point to
`maxsize` of memory, the wrapped buffer will have the region from `offset` and `maxsize` of memory, the wrapped buffer will have the region from `offset` and
@ -2111,9 +2195,25 @@ a `Caps` to intersect
# Returns # Returns
`true` if intersection would be not empty `true` if intersection would be not empty
<!-- impl Caps::fn copy -->
Creates a new `Caps` as a copy of the old `self`. The new caps will have a
refcount of 1, owned by the caller. The structures are copied as well.
Note that this function is the semantic equivalent of a `gst_caps_ref`
followed by a `gst_caps_make_writable`. If you only want to hold on to a
reference to the data, you should use `gst_caps_ref`.
When you are finished with the caps, call `gst_caps_unref` on it.
# Returns
the new `Caps`
<!-- impl Caps::fn copy_nth --> <!-- impl Caps::fn copy_nth -->
Creates a new `Caps` and appends a copy of the nth structure Creates a new `Caps` and appends a copy of the nth structure
contained in `self`. contained in `self`.
Feature: `v1_16`
## `nth` ## `nth`
the nth structure to copy the nth structure to copy
@ -2373,6 +2473,13 @@ Index of the structure to remove
Sets the `CapsFeatures` `features` for the structure at `index`. Sets the `CapsFeatures` `features` for the structure at `index`.
## `index` ## `index`
the index of the structure the index of the structure
## `features`
the `CapsFeatures` to set
<!-- impl Caps::fn set_features_simple -->
Sets the `CapsFeatures` `features` for all the structures of `self`.
Feature: `v1_16`
## `features` ## `features`
the `CapsFeatures` to set the `CapsFeatures` to set
<!-- impl Caps::fn set_simple --> <!-- impl Caps::fn set_simple -->
@ -2722,6 +2829,20 @@ A `ClockID` to compare with
negative value if a < b; zero if a = b; positive value if a > b negative value if a < b; zero if a = b; positive value if a > b
MT safe.
<!-- impl Clock::fn id_get_clock -->
This function returns the underlying clock.
Feature: `v1_16`
## `id`
a `ClockID`
# Returns
a `Clock` or `None` when the
underlying clock has been freed. Unref after usage.
MT safe. MT safe.
<!-- impl Clock::fn id_get_time --> <!-- impl Clock::fn id_get_time -->
Get the time of the clock ID Get the time of the clock ID
@ -2759,6 +2880,24 @@ async notifications, you need to create a new `ClockID`.
MT safe. MT safe.
## `id` ## `id`
The id to unschedule The id to unschedule
<!-- impl Clock::fn id_uses_clock -->
This function returns whether `id` uses `clock` as the underlying clock.
`clock` can be NULL, in which case the return value indicates whether
the underlying clock has been freed. If this is the case, the `id` is
no longer usable and should be freed.
Feature: `v1_16`
## `id`
a `ClockID` to check
## `clock`
a `Clock` to compare against
# Returns
whether the clock `id` uses the same underlying `Clock` `clock`.
MT safe.
<!-- impl Clock::fn id_wait --> <!-- impl Clock::fn id_wait -->
Perform a blocking wait on `id`. Perform a blocking wait on `id`.
`id` should have been created with `ClockExt::new_single_shot_id` `id` should have been created with `ClockExt::new_single_shot_id`
@ -3186,7 +3325,7 @@ time since Epoch
monotonic time since some unspecified starting monotonic time since some unspecified starting
point point
<!-- enum ClockType::variant Other --> <!-- enum ClockType::variant Other -->
some other time source is used (Since 1.0.5) some other time source is used (Since: 1.0.5)
<!-- struct Context --> <!-- struct Context -->
`Context` is a container object used to store contexts like a device `Context` is a container object used to store contexts like a device
context, a display server connection and similar concepts that should context, a display server connection and similar concepts that should
@ -3501,7 +3640,7 @@ the day of the gregorian month
the newly created `DateTime` the newly created `DateTime`
<!-- impl DateTime::fn get_day --> <!-- impl DateTime::fn get_day -->
Returns the day of the month of this `DateTime`. Returns the day of the month of this `DateTime`.
Call gst_date_time_has_day before, to avoid warnings. Call `DateTime::has_day` before, to avoid warnings.
# Returns # Returns
@ -3509,7 +3648,7 @@ The day of this `DateTime`
<!-- impl DateTime::fn get_hour --> <!-- impl DateTime::fn get_hour -->
Retrieves the hour of the day represented by `self` in the gregorian Retrieves the hour of the day represented by `self` in the gregorian
calendar. The return is in the range of 0 to 23. calendar. The return is in the range of 0 to 23.
Call gst_date_time_has_haur before, to avoid warnings. Call `DateTime::has_time` before, to avoid warnings.
# Returns # Returns
@ -3524,14 +3663,14 @@ the microsecond of the second
<!-- impl DateTime::fn get_minute --> <!-- impl DateTime::fn get_minute -->
Retrieves the minute of the hour represented by `self` in the gregorian Retrieves the minute of the hour represented by `self` in the gregorian
calendar. calendar.
Call gst_date_time_has_minute before, to avoid warnings. Call `DateTime::has_time` before, to avoid warnings.
# Returns # Returns
the minute of the hour the minute of the hour
<!-- impl DateTime::fn get_month --> <!-- impl DateTime::fn get_month -->
Returns the month of this `DateTime`. January is 1, February is 2, etc.. Returns the month of this `DateTime`. January is 1, February is 2, etc..
Call gst_date_time_has_month before, to avoid warnings. Call `DateTime::has_month` before, to avoid warnings.
# Returns # Returns
@ -3539,7 +3678,7 @@ The month of this `DateTime`
<!-- impl DateTime::fn get_second --> <!-- impl DateTime::fn get_second -->
Retrieves the second of the minute represented by `self` in the gregorian Retrieves the second of the minute represented by `self` in the gregorian
calendar. calendar.
Call gst_date_time_has_second before, to avoid warnings. Call `DateTime::has_time` before, to avoid warnings.
# Returns # Returns
@ -3555,7 +3694,7 @@ If `self` represents UTC time, then the offset is zero.
the offset from UTC in hours the offset from UTC in hours
<!-- impl DateTime::fn get_year --> <!-- impl DateTime::fn get_year -->
Returns the year of this `DateTime` Returns the year of this `DateTime`
Call gst_date_time_has_year before, to avoid warnings. Call `DateTime::has_year` before, to avoid warnings.
# Returns # Returns
@ -3911,7 +4050,7 @@ will be emitted on the bus when the list of devices changes.
Stops monitoring the devices. Stops monitoring the devices.
<!-- struct DeviceProvider --> <!-- struct DeviceProvider -->
A `DeviceProvider` subclass is provided by a plugin that handles devices A `DeviceProvider` subclass is provided by a plugin that handles devices
if there is a way to programatically list connected devices. It can also if there is a way to programmatically list connected devices. It can also
optionally provide updates to the list of connected devices. optionally provide updates to the list of connected devices.
Each `DeviceProvider` subclass is a singleton, a plugin should Each `DeviceProvider` subclass is a singleton, a plugin should
@ -3955,6 +4094,19 @@ This is for use by subclasses.
will be removed (see `Object::ref_sink`). will be removed (see `Object::ref_sink`).
## `device` ## `device`
a `Device` that has been added a `Device` that has been added
<!-- trait DeviceProviderExt::fn device_changed -->
This function is used when `changed_device` was modified into its new form
`device`. This will post a `DEVICE_CHANGED` message on the bus to let
the application know that the device was modified. `Device` is immutable
for MT. safety purposes so this is an "atomic" way of letting the application
know when a device was modified.
Feature: `v1_16`
## `device`
the new version of `changed_device`
## `changed_device`
the old version of the device that has been udpated
<!-- trait DeviceProviderExt::fn device_remove --> <!-- trait DeviceProviderExt::fn device_remove -->
Posts a message on the provider's `Bus` to inform applications that Posts a message on the provider's `Bus` to inform applications that
a device has been removed. a device has been removed.
@ -4250,9 +4402,8 @@ MT safe.
Adds a pad (link point) to `self`. `pad`'s parent will be set to `self`; Adds a pad (link point) to `self`. `pad`'s parent will be set to `self`;
see `GstObjectExt::set_parent` for refcounting information. see `GstObjectExt::set_parent` for refcounting information.
Pads are not automatically activated so elements should perform the needed Pads are automatically activated when added in the PAUSED or PLAYING
steps to activate the pad in case this pad is added in the PAUSED or PLAYING state.
state. See `PadExt::set_active` for more information about activating pads.
The pad and the element should be unlocked when calling this function. The pad and the element should be unlocked when calling this function.
@ -4503,7 +4654,7 @@ Retrieves the factory that was used to create this element.
# Returns # Returns
the `ElementFactory` used for creating this the `ElementFactory` used for creating this
element. no refcounting is needed. element or `None` if element has not been registered (static element). no refcounting is needed.
<!-- trait ElementExt::fn get_metadata --> <!-- trait ElementExt::fn get_metadata -->
Get metadata with `key` in `klass`. Get metadata with `key` in `klass`.
@ -5113,6 +5264,10 @@ the `Context` to set.
Locks the state of an element, so state changes of the parent don't affect Locks the state of an element, so state changes of the parent don't affect
this element anymore. this element anymore.
Note that this is racy if the state lock of the parent bin is not taken.
The parent bin might've just checked the flag in another thread and as the
next step proceed to change the child element's state.
MT safe. MT safe.
## `locked_state` ## `locked_state`
`true` to lock the element's state `true` to lock the element's state
@ -6106,6 +6261,12 @@ result location for the start position expressed in `format`
result location for the `SeekType` of the stop position result location for the `SeekType` of the stop position
## `stop` ## `stop`
result location for the stop position expressed in `format` result location for the stop position expressed in `format`
<!-- impl Event::fn parse_seek_trickmode_interval -->
Retrieve the trickmode interval that may have been set on a
seek event with `Event::set_seek_trickmode_interval`.
Feature: `v1_16`
<!-- impl Event::fn parse_segment --> <!-- impl Event::fn parse_segment -->
Parses a segment `self` and stores the result in the given `segment` location. Parses a segment `self` and stores the result in the given `segment` location.
`segment` remains valid only until the `self` is freed. Don't modify the segment `segment` remains valid only until the `self` is freed. Don't modify the segment
@ -6148,7 +6309,7 @@ Parse a stream-start `self` and extract the `Stream` from it.
Feature: `v1_10` Feature: `v1_10`
## `stream` ## `stream`
adress of variable to store the stream address of variable to store the stream
<!-- impl Event::fn parse_stream_collection --> <!-- impl Event::fn parse_stream_collection -->
Retrieve new `StreamCollection` from STREAM_COLLECTION event `self`. Retrieve new `StreamCollection` from STREAM_COLLECTION event `self`.
@ -6208,6 +6369,13 @@ Set the running time offset of a event. See
MT safe. MT safe.
## `offset` ## `offset`
A the new running time offset A the new running time offset
<!-- impl Event::fn set_seek_trickmode_interval -->
Sets a trickmode interval on a (writable) seek event. Elements
that support TRICKMODE_KEY_UNITS seeks SHOULD use this as the minimal
interval between each frame they may output.
Feature: `v1_16`
<!-- impl Event::fn set_seqnum --> <!-- impl Event::fn set_seqnum -->
Set the sequence number of a event. Set the sequence number of a event.
@ -6268,7 +6436,7 @@ A new media segment follows in the dataflow. The
converting buffer timestamps to running-time and converting buffer timestamps to running-time and
stream-time. stream-time.
<!-- enum EventType::variant StreamCollection --> <!-- enum EventType::variant StreamCollection -->
A new `StreamCollection` is available (Since 1.10) A new `StreamCollection` is available (Since: 1.10)
<!-- enum EventType::variant Tag --> <!-- enum EventType::variant Tag -->
A new set of metadata tags has been found in the stream. A new set of metadata tags has been found in the stream.
<!-- enum EventType::variant Buffersize --> <!-- enum EventType::variant Buffersize -->
@ -6281,7 +6449,7 @@ An event that sinks turn into a message. Used to
<!-- enum EventType::variant StreamGroupDone --> <!-- enum EventType::variant StreamGroupDone -->
Indicates that there is no more data for Indicates that there is no more data for
the stream group ID in the message. Sent before EOS the stream group ID in the message. Sent before EOS
in some instances and should be handled mostly the same. (Since 1.10) in some instances and should be handled mostly the same. (Since: 1.10)
<!-- enum EventType::variant Eos --> <!-- enum EventType::variant Eos -->
End-Of-Stream. No more data is to be expected to follow End-Of-Stream. No more data is to be expected to follow
without either a STREAM_START event, or a FLUSH_STOP and a SEGMENT without either a STREAM_START event, or a FLUSH_STOP and a SEGMENT
@ -6318,7 +6486,7 @@ A request for upstream renegotiating caps and reconfiguring.
A request for a new playback position based on TOC A request for a new playback position based on TOC
entry's UID. entry's UID.
<!-- enum EventType::variant SelectStreams --> <!-- enum EventType::variant SelectStreams -->
A request to select one or more streams (Since 1.10) A request to select one or more streams (Since: 1.10)
<!-- enum EventType::variant CustomUpstream --> <!-- enum EventType::variant CustomUpstream -->
Upstream custom event Upstream custom event
<!-- enum EventType::variant CustomDownstream --> <!-- enum EventType::variant CustomDownstream -->
@ -6693,6 +6861,22 @@ The new `Device`
# Returns # Returns
a newly allocated `Message`
<!-- impl Message::fn new_device_changed -->
Creates a new device-changed message. The device-changed message is produced
by `DeviceProvider` or a `DeviceMonitor`. They announce that a device
properties has changed and `device` represent the new modified version of `changed_device`.
Feature: `v1_16`
## `src`
The `Object` that created the message
## `device`
The newly created device representing `replaced_device`
with its new configuration.
# Returns
a newly allocated `Message` a newly allocated `Message`
<!-- impl Message::fn new_device_removed --> <!-- impl Message::fn new_device_removed -->
Creates a new device-removed message. The device-removed message is produced Creates a new device-removed message. The device-removed message is produced
@ -6779,7 +6963,7 @@ The GError for this message.
## `debug` ## `debug`
A debugging string. A debugging string.
## `details` ## `details`
(allow-none): A GstStructure with details A GstStructure with details
# Returns # Returns
@ -6824,7 +7008,7 @@ The GError for this message.
## `debug` ## `debug`
A debugging string. A debugging string.
## `details` ## `details`
(allow-none): A GstStructure with details A GstStructure with details
# Returns # Returns
@ -7258,7 +7442,7 @@ The GError for this message.
## `debug` ## `debug`
A debugging string. A debugging string.
## `details` ## `details`
(allow-none): A GstStructure with details A GstStructure with details
# Returns # Returns
@ -7388,6 +7572,20 @@ of monitored devices.
## `device` ## `device`
A location where to store a A location where to store a
pointer to the new `Device`, or `None` pointer to the new `Device`, or `None`
<!-- impl Message::fn parse_device_changed -->
Parses a device-changed message. The device-changed message is produced by
`DeviceProvider` or a `DeviceMonitor`. It announces the
disappearance of monitored devices. * It announce that a device properties has
changed and `device` represents the new modified version of `changed_device`.
Feature: `v1_16`
## `device`
A location where to store a
pointer to the updated version of the `Device`, or `None`
## `changed_device`
A location where to store a
pointer to the old version of the `Device`, or `None`
<!-- impl Message::fn parse_device_removed --> <!-- impl Message::fn parse_device_removed -->
Parses a device-removed message. The device-removed message is produced by Parses a device-removed message. The device-removed message is produced by
`DeviceProvider` or a `DeviceMonitor`. It announces the `DeviceProvider` or a `DeviceMonitor`. It announces the
@ -7931,7 +8129,7 @@ Trait containing all `Object` methods.
# Implementors # Implementors
[`BufferPool`](struct.BufferPool.html), [`Bus`](struct.Bus.html), [`Clock`](struct.Clock.html), [`DeviceMonitor`](struct.DeviceMonitor.html), [`DeviceProvider`](struct.DeviceProvider.html), [`Device`](struct.Device.html), [`Element`](struct.Element.html), [`Object`](struct.Object.html), [`PadTemplate`](struct.PadTemplate.html), [`Pad`](struct.Pad.html), [`PluginFeature`](struct.PluginFeature.html), [`Plugin`](struct.Plugin.html), [`Registry`](struct.Registry.html), [`StreamCollection`](struct.StreamCollection.html), [`Stream`](struct.Stream.html) [`Allocator`](struct.Allocator.html), [`BufferPool`](struct.BufferPool.html), [`Bus`](struct.Bus.html), [`Clock`](struct.Clock.html), [`DeviceMonitor`](struct.DeviceMonitor.html), [`DeviceProvider`](struct.DeviceProvider.html), [`Device`](struct.Device.html), [`Element`](struct.Element.html), [`Object`](struct.Object.html), [`PadTemplate`](struct.PadTemplate.html), [`Pad`](struct.Pad.html), [`PluginFeature`](struct.PluginFeature.html), [`Plugin`](struct.Plugin.html), [`Registry`](struct.Registry.html), [`StreamCollection`](struct.StreamCollection.html), [`Stream`](struct.Stream.html)
<!-- impl Object::fn check_uniqueness --> <!-- impl Object::fn check_uniqueness -->
Checks to see if there is any object named `name` in `list`. This function Checks to see if there is any object named `name` in `list`. This function
does not do any locking of any kind. You might want to protect the does not do any locking of any kind. You might want to protect the
@ -8012,7 +8210,7 @@ the `ControlBinding` that should be used
has been setup for a non suitable property, `true` otherwise. has been setup for a non suitable property, `true` otherwise.
<!-- trait GstObjectExt::fn default_error --> <!-- trait GstObjectExt::fn default_error -->
A default error function that uses `g_printerr` to display the error message A default error function that uses `g_printerr` to display the error message
and the optional debug sting.. and the optional debug string..
The default handler will simply print the error string using g_print. The default handler will simply print the error string using g_print.
## `error` ## `error`
@ -8032,7 +8230,7 @@ the `ControlBinding` for
<!-- trait GstObjectExt::fn get_control_rate --> <!-- trait GstObjectExt::fn get_control_rate -->
Obtain the control-rate for this `self`. Audio processing `Element` Obtain the control-rate for this `self`. Audio processing `Element`
objects will use this rate to sub-divide their processing loop and call objects will use this rate to sub-divide their processing loop and call
`GstObjectExt::sync_values` inbetween. The length of the processing segment `GstObjectExt::sync_values` in between. The length of the processing segment
should be up to `control`-rate nanoseconds. should be up to `control`-rate nanoseconds.
If the `self` is not under property control, this will return If the `self` is not under property control, this will return
@ -8221,7 +8419,7 @@ or not.
<!-- trait GstObjectExt::fn set_control_rate --> <!-- trait GstObjectExt::fn set_control_rate -->
Change the control-rate for this `self`. Audio processing `Element` Change the control-rate for this `self`. Audio processing `Element`
objects will use this rate to sub-divide their processing loop and call objects will use this rate to sub-divide their processing loop and call
`GstObjectExt::sync_values` inbetween. The length of the processing segment `GstObjectExt::sync_values` in between. The length of the processing segment
should be up to `control`-rate nanoseconds. should be up to `control`-rate nanoseconds.
The control-rate should not change if the element is in `State::Paused` or The control-rate should not change if the element is in `State::Paused` or
@ -9430,6 +9628,10 @@ notify called when `query` will not be used anymore.
<!-- trait PadExt::fn set_unlink_function_full --> <!-- trait PadExt::fn set_unlink_function_full -->
Sets the given unlink function for the pad. It will be called Sets the given unlink function for the pad. It will be called
when the pad is unlinked. when the pad is unlinked.
Note that the pad's lock is already held when the unlink
function is called, so most pad functions cannot be called
from within the callback.
## `unlink` ## `unlink`
the `GstPadUnlinkFunction` to set. the `GstPadUnlinkFunction` to set.
## `user_data` ## `user_data`
@ -10417,7 +10619,7 @@ a list of presets individual presets are read and overlaid in 1) system,
2) application and 3) user order. Whenever an earlier entry is newer, the 2) application and 3) user order. Whenever an earlier entry is newer, the
later entries will be updated. Since 1.8 you can also provide extra paths later entries will be updated. Since 1.8 you can also provide extra paths
where to find presets through the GST_PRESET_PATH environment variable. where to find presets through the GST_PRESET_PATH environment variable.
Presets found in those paths will be concidered as "app presets". Presets found in those paths will be considered as "app presets".
# Implements # Implements
@ -10822,6 +11024,17 @@ the negotiated caps
## `need_pool` ## `need_pool`
return a pool return a pool
# Returns
a new `Query`
<!-- impl Query::fn new_bitrate -->
Constructs a new query object for querying the bitrate.
Free-function: `gst_query_unref`
Feature: `v1_16`
# Returns # Returns
a new `Query` a new `Query`
@ -11138,6 +11351,13 @@ Pool details can be retrieved using `Query::get_n_allocation_pools` and
The `Caps` The `Caps`
## `need_pool` ## `need_pool`
Whether a `BufferPool` is needed Whether a `BufferPool` is needed
<!-- impl Query::fn parse_bitrate -->
Get the results of a bitrate query. See also `Query::set_bitrate`.
Feature: `v1_16`
## `nominal_bitrate`
The resulting bitrate in bits per second
<!-- impl Query::fn parse_buffering_percent --> <!-- impl Query::fn parse_buffering_percent -->
Get the percentage of buffered data. This is a value between 0 and 100. Get the percentage of buffered data. This is a value between 0 and 100.
The `busy` indicator is `true` when the buffering is in progress. The `busy` indicator is `true` when the buffering is in progress.
@ -11374,6 +11594,15 @@ position in the allocation pool array to remove
Set `result` as the result for the `self`. Set `result` as the result for the `self`.
## `result` ## `result`
the result to set the result to set
<!-- impl Query::fn set_bitrate -->
Set the results of a bitrate query. The nominal bitrate is the average
bitrate expected over the length of the stream as advertised in file
headers (or similar).
Feature: `v1_16`
## `nominal_bitrate`
the nominal bitrate in bits per second
<!-- impl Query::fn set_buffering_percent --> <!-- impl Query::fn set_buffering_percent -->
Set the percentage of buffered data. This is a value between 0 and 100. Set the percentage of buffered data. This is a value between 0 and 100.
The `busy` indicator is `true` when the buffering is in progress. The `busy` indicator is `true` when the buffering is in progress.
@ -11875,7 +12104,7 @@ used when the resource has no space left.
<!-- enum ResourceError::variant NotAuthorized --> <!-- enum ResourceError::variant NotAuthorized -->
used when the resource can't be opened used when the resource can't be opened
due to missing authorization. due to missing authorization.
(Since 1.2.4) (Since: 1.2.4)
<!-- enum ResourceError::variant NumErrors --> <!-- enum ResourceError::variant NumErrors -->
the number of resource error types. the number of resource error types.
<!-- struct Sample --> <!-- struct Sample -->
@ -11939,10 +12168,39 @@ Get the segment associated with `self`
the segment of `self`. the segment of `self`.
The segment remains valid as long as `self` is valid. The segment remains valid as long as `self` is valid.
<!-- impl Sample::fn set_buffer -->
Set the buffer associated with `self`. `self` must be writable.
Feature: `v1_16`
## `buffer`
A `Buffer`
<!-- impl Sample::fn set_buffer_list --> <!-- impl Sample::fn set_buffer_list -->
Set the buffer list associated with `self` Set the buffer list associated with `self`. `self` must be writable.
## `buffer_list` ## `buffer_list`
a `BufferList` a `BufferList`
<!-- impl Sample::fn set_caps -->
Set the caps associated with `self`. `self` must be writable.
Feature: `v1_16`
## `caps`
A `Caps`
<!-- impl Sample::fn set_info -->
Set the info structure associated with `self`. `self` must be writable,
and `info` must not have a parent set already.
Feature: `v1_16`
## `info`
A `Structure`
<!-- impl Sample::fn set_segment -->
Set the segment associated with `self`. `self` must be writable.
Feature: `v1_16`
## `segment`
A `Segment`
<!-- enum SeekType --> <!-- enum SeekType -->
The different types of seek events. When constructing a seek event with The different types of seek events. When constructing a seek event with
`Event::new_seek` or when doing gst_segment_do_seek (). `Event::new_seek` or when doing gst_segment_do_seek ().
@ -12259,7 +12517,7 @@ segment. Compared to `Segment::to_running_time` this function can return
negative running-time. negative running-time.
This function is typically used by elements that need to synchronize buffers This function is typically used by elements that need to synchronize buffers
against the clock or eachother. against the clock or each other.
`position` can be any value and the result of this function for values outside `position` can be any value and the result of this function for values outside
of the segment is extrapolated. of the segment is extrapolated.
@ -12305,7 +12563,7 @@ segment. Compared to `Segment::to_stream_time` this function can return
negative stream-time. negative stream-time.
This function is typically used by elements that need to synchronize buffers This function is typically used by elements that need to synchronize buffers
against the clock or eachother. against the clock or each other.
`position` can be any value and the result of this function for values outside `position` can be any value and the result of this function for values outside
of the segment is extrapolated. of the segment is extrapolated.
@ -12406,17 +12664,17 @@ state change from READY to NULL.
* Elements close devices * Elements close devices
* Elements reset any internal state. * Elements reset any internal state.
<!-- enum StateChange::variant NullToNull --> <!-- enum StateChange::variant NullToNull -->
state change from NULL to NULL. (Since 1.14) state change from NULL to NULL. (Since: 1.14)
<!-- enum StateChange::variant ReadyToReady --> <!-- enum StateChange::variant ReadyToReady -->
state change from READY to READY, state change from READY to READY,
This might happen when going to PAUSED asynchronously failed, in that case This might happen when going to PAUSED asynchronously failed, in that case
elements should make sure they are in a proper, coherent READY state. (Since 1.14) elements should make sure they are in a proper, coherent READY state. (Since: 1.14)
<!-- enum StateChange::variant PausedToPaused --> <!-- enum StateChange::variant PausedToPaused -->
state change from PAUSED to PAUSED. state change from PAUSED to PAUSED.
This might happen when elements were in PLAYING state and 'lost state', This might happen when elements were in PLAYING state and 'lost state',
they should make sure to go back to real 'PAUSED' state (prerolling for example). (Since 1.14) they should make sure to go back to real 'PAUSED' state (prerolling for example). (Since: 1.14)
<!-- enum StateChange::variant PlayingToPlaying --> <!-- enum StateChange::variant PlayingToPlaying -->
state change from PLAYING to PLAYING. (Since 1.14) state change from PLAYING to PLAYING. (Since: 1.14)
<!-- enum StateChangeReturn --> <!-- enum StateChangeReturn -->
The possible return values from a state change function such as The possible return values from a state change function such as
`Element::set_state`. Only `StateChangeReturn::Failure` is a real failure. `Element::set_state`. Only `StateChangeReturn::Failure` is a real failure.
@ -12982,9 +13240,9 @@ the name of the first field to read
than the type specified), otherwise `true`. than the type specified), otherwise `true`.
<!-- impl Structure::fn get_array --> <!-- impl Structure::fn get_array -->
This is useful in language bindings where unknown `gobject::Value` types are not This is useful in language bindings where unknown `gobject::Value` types are not
supported. This function will convert the `GST_TYPE_ARRAY` and supported. This function will convert the `GST_TYPE_ARRAY` into a newly
`GST_TYPE_LIST` into a newly allocated `gobject::ValueArray` and return it through allocated `gobject::ValueArray` and return it through `array`. Be aware that this is
`array`. Be aware that this is slower then getting the `gobject::Value` directly. slower then getting the `gobject::Value` directly.
## `fieldname` ## `fieldname`
the name of a field the name of a field
## `array` ## `array`
@ -12993,8 +13251,8 @@ a pointer to a `gobject::ValueArray`
# Returns # Returns
`true` if the value could be set correctly. If there was no field `true` if the value could be set correctly. If there was no field
with `fieldname` or the existing field did not contain an int, this function with `fieldname` or the existing field did not contain a `GST_TYPE_ARRAY`,
returns `false`. this function returns `false`.
<!-- impl Structure::fn get_boolean --> <!-- impl Structure::fn get_boolean -->
Sets the boolean pointed to by `value` corresponding to the value of the Sets the boolean pointed to by `value` corresponding to the value of the
given field. Caller is responsible for making sure the field exists given field. Caller is responsible for making sure the field exists
@ -13162,9 +13420,12 @@ with `fieldname` or the existing field did not contain a `gint64`, this function
returns `false`. returns `false`.
<!-- impl Structure::fn get_list --> <!-- impl Structure::fn get_list -->
This is useful in language bindings where unknown `gobject::Value` types are not This is useful in language bindings where unknown `gobject::Value` types are not
supported. This function will convert the `GST_TYPE_ARRAY` and supported. This function will convert the `GST_TYPE_LIST` into a newly
`GST_TYPE_LIST` into a newly allocated GValueArray and return it through allocated GValueArray and return it through `array`. Be aware that this is
`array`. Be aware that this is slower then getting the `gobject::Value` directly. slower then getting the `gobject::Value` directly.
Feature: `v1_12`
## `fieldname` ## `fieldname`
the name of a field the name of a field
## `array` ## `array`
@ -13173,10 +13434,8 @@ a pointer to a `gobject::ValueArray`
# Returns # Returns
`true` if the value could be set correctly. If there was no field `true` if the value could be set correctly. If there was no field
with `fieldname` or the existing field did not contain an int, this function with `fieldname` or the existing field did not contain a `GST_TYPE_LIST`, this
returns `false`. function returns `false`.
Since 1.12
<!-- impl Structure::fn get_name --> <!-- impl Structure::fn get_name -->
Get the name of `self` as a string. Get the name of `self` as a string.
@ -13455,18 +13714,20 @@ supported. This function will convert a `array` to `GST_TYPE_ARRAY` and set
the field specified by `fieldname`. Be aware that this is slower then using the field specified by `fieldname`. Be aware that this is slower then using
`GST_TYPE_ARRAY` in a `gobject::Value` directly. `GST_TYPE_ARRAY` in a `gobject::Value` directly.
Since 1.12 Feature: `v1_12`
## `fieldname` ## `fieldname`
the name of a field the name of a field
## `array` ## `array`
a pointer to a `gobject::ValueArray` a pointer to a `gobject::ValueArray`
<!-- impl Structure::fn set_list --> <!-- impl Structure::fn set_list -->
This is useful in language bindings where unknown GValue types are not This is useful in language bindings where unknown GValue types are not
supported. This function will convert a `array` to `GST_TYPE_ARRAY` and set supported. This function will convert a `array` to `GST_TYPE_LIST` and set
the field specified by `fieldname`. Be aware that this is slower then using the field specified by `fieldname`. Be aware that this is slower then using
`GST_TYPE_ARRAY` in a `gobject::Value` directly. `GST_TYPE_LIST` in a `gobject::Value` directly.
Feature: `v1_12`
Since 1.12
## `fieldname` ## `fieldname`
the name of a field the name of a field
## `array` ## `array`
@ -14263,6 +14524,13 @@ keep existing tags
keep all existing tags keep all existing tags
<!-- enum TagMergeMode::variant Count --> <!-- enum TagMergeMode::variant Count -->
the number of merge modes the number of merge modes
<!-- enum TagScope -->
GstTagScope specifies if a taglist applies to the complete
medium or only to one single stream.
<!-- enum TagScope::variant Stream -->
tags specific to this single stream
<!-- enum TagScope::variant Global -->
global tags for the complete medium
<!-- struct TagSetter --> <!-- struct TagSetter -->
Element interface that allows setting of media metadata. Element interface that allows setting of media metadata.
@ -14685,7 +14953,7 @@ unreffed before setting a new one.
## `toc` ## `toc`
a `Toc` to set. a `Toc` to set.
<!-- struct TypeFindFactory --> <!-- struct TypeFindFactory -->
These functions allow querying informations about registered typefind These functions allow querying information about registered typefind
functions. How to create and register these functions is described in functions. How to create and register these functions is described in
the section <link linkend="gstreamer-Writing-typefind-functions"> the section <link linkend="gstreamer-Writing-typefind-functions">
"Writing typefind functions"`</link>`. "Writing typefind functions"`</link>`.