Update documentation

This commit is contained in:
Sebastian Dröge 2020-06-19 12:49:13 +03:00
parent 8dfbc9e811
commit 740f668658
14 changed files with 5018 additions and 2727 deletions

View file

@ -54,7 +54,7 @@ Get the configured caps on `self`.
# Returns
the `gst::Caps` accepted by the sink. `gst_caps_unref` after usage.
the `gst::Caps` accepted by the sink. `gst::Caps::unref` after usage.
<!-- impl AppSink::fn get_drop -->
Check if `self` will drop old buffers when the maximum amount of queued
buffers is reached.
@ -68,7 +68,7 @@ Check if appsink will emit the "new-preroll" and "new-sample" signals.
# Returns
`true` if `self` is emiting the "new-preroll" and "new-sample"
`true` if `self` is emitting the "new-preroll" and "new-sample"
signals.
<!-- impl AppSink::fn get_max_buffers -->
Get the maximum amount of buffers that can be queued in `self`.
@ -117,7 +117,7 @@ element is set to the READY/NULL state.
# Returns
a `gst::Sample` or NULL when the appsink is stopped or EOS.
Call `gst_sample_unref` after usage.
Call `gst::Sample::unref` after usage.
<!-- impl AppSink::fn pull_sample -->
This function blocks until a sample or EOS becomes available or the appsink
element is set to the READY/NULL state.
@ -134,7 +134,7 @@ If an EOS event was received before any buffers, this function returns
# Returns
a `gst::Sample` or NULL when the appsink is stopped or EOS.
Call `gst_sample_unref` after usage.
Call `gst::Sample::unref` after usage.
<!-- impl AppSink::fn set_buffer_list_support -->
Instruct `self` to enable or disable buffer list support.
@ -152,6 +152,9 @@ less expensive, but also less flexible.
If callbacks are installed, no signals will be emitted for performance
reasons.
Before 1.16.3 it was not possible to change the callbacks in a thread-safe
way.
## `callbacks`
the callbacks
## `user_data`
@ -215,7 +218,7 @@ the maximum amount of time to wait for the preroll sample
# Returns
a `gst::Sample` or NULL when the appsink is stopped or EOS or the timeout expires.
Call `gst_sample_unref` after usage.
Call `gst::Sample::unref` after usage.
<!-- impl AppSink::fn try_pull_sample -->
This function blocks until a sample or EOS becomes available or the appsink
element is set to the READY/NULL state or the timeout expires.
@ -238,7 +241,7 @@ the maximum amount of time to wait for a sample
# Returns
a `gst::Sample` or NULL when the appsink is stopped or EOS or the timeout expires.
Call `gst_sample_unref` after usage.
Call `gst::Sample::unref` after usage.
<!-- impl AppSink::fn connect_eos -->
Signal that the end-of-stream has been reached. This signal is emitted from
the streaming thread.
@ -414,7 +417,7 @@ mode when implementing various network protocols or hardware devices.
The pull mode, in which the need-data signal triggers the next push-buffer call.
This mode is typically used in the "random-access" stream-type. Use this
mode for file access or other randomly accessable sources. In this mode, a
mode for file access or other randomly accessible sources. In this mode, a
buffer of exactly the amount of bytes given by the need-data signal should be
pushed into appsrc.
@ -437,14 +440,14 @@ element is the last buffer of the stream.
# Returns
`gst::FlowReturn::Ok` when the EOS was successfuly queued.
`gst::FlowReturn::Ok` when the EOS was successfully queued.
`gst::FlowReturn::Flushing` when `self` is not PAUSED or PLAYING.
<!-- impl AppSrc::fn get_caps -->
Get the configured caps on `self`.
# Returns
the `gst::Caps` produced by the source. `gst_caps_unref` after usage.
the `gst::Caps` produced by the source. `gst::Caps::unref` after usage.
<!-- impl AppSrc::fn get_current_level_bytes -->
Get the number of currently queued bytes inside `self`.
@ -505,9 +508,9 @@ a `gst::Buffer` to push
# Returns
`gst::FlowReturn::Ok` when the buffer was successfuly queued.
`gst::FlowReturn::Ok` when the buffer was successfully queued.
`gst::FlowReturn::Flushing` when `self` is not PAUSED or PLAYING.
`gst::FlowReturn::Eos` when EOS occured.
`gst::FlowReturn::Eos` when EOS occurred.
<!-- impl AppSrc::fn push_buffer_list -->
Adds a buffer list to the queue of buffers and buffer lists that the
appsrc element will push to its source pad. This function takes ownership
@ -523,9 +526,9 @@ a `gst::BufferList` to push
# Returns
`gst::FlowReturn::Ok` when the buffer list was successfuly queued.
`gst::FlowReturn::Ok` when the buffer list was successfully queued.
`gst::FlowReturn::Flushing` when `self` is not PAUSED or PLAYING.
`gst::FlowReturn::Eos` when EOS occured.
`gst::FlowReturn::Eos` when EOS occurred.
<!-- impl AppSrc::fn push_sample -->
Extract a buffer from the provided sample and adds it to the queue of
buffers that the appsrc element will push to its source pad. Any
@ -543,9 +546,9 @@ extracted
# Returns
`gst::FlowReturn::Ok` when the buffer was successfuly queued.
`gst::FlowReturn::Ok` when the buffer was successfully queued.
`gst::FlowReturn::Flushing` when `self` is not PAUSED or PLAYING.
`gst::FlowReturn::Eos` when EOS occured.
`gst::FlowReturn::Eos` when EOS occurred.
<!-- impl AppSrc::fn set_callbacks -->
Set callbacks which will be executed when data is needed, enough data has
been collected or when a seek should be performed.
@ -554,6 +557,9 @@ less expensive, but also less flexible.
If callbacks are installed, no signals will be emitted for performance
reasons.
Before 1.16.3 it was not possible to change the callbacks in a thread-safe
way.
## `callbacks`
the callbacks
## `user_data`

View file

@ -180,7 +180,7 @@ This is expressed in caps by having a single channel and no channel mask.
This is expressed in caps by having a channel mask with no bits set.
As another special case it is allowed to have two channels without a channel mask.
This implicitely means that this is a stereo stream with a front left and front right
This implicitly means that this is a stereo stream with a front left and front right
channel.
<!-- enum AudioChannelPosition::variant None -->
used for position-less channels, e.g.
@ -340,7 +340,7 @@ Things that subclass need to take care of:
# Implements
[`AudioDecoderExt`](trait.AudioDecoderExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
[`AudioDecoderExt`](trait.AudioDecoderExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`AudioDecoderExtManual`](prelude/trait.AudioDecoderExtManual.html)
<!-- trait AudioDecoderExt -->
Trait containing all `AudioDecoder` methods.
@ -715,7 +715,7 @@ Things that subclass need to take care of:
# Implements
[`AudioEncoderExt`](trait.AudioEncoderExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
[`AudioEncoderExt`](trait.AudioEncoderExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`AudioEncoderExtManual`](prelude/trait.AudioEncoderExtManual.html)
<!-- trait AudioEncoderExt -->
Trait containing all `AudioEncoder` methods.
@ -1063,8 +1063,6 @@ encoded audio format
32-bit floating point samples, native endianness
<!-- enum AudioFormat::variant F64 -->
64-bit floating point samples, native endianness
<!-- struct AudioFormatInfo -->
Information for an audio format.
<!-- struct AudioInfo -->
Information describing audio properties. This information can be filled
in from GstCaps with `AudioInfo::from_caps`.
@ -1376,7 +1374,7 @@ Feature: `v1_14`
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.
rate differs this implicitly marks the next data as discontinuous.
Feature: `v1_14`

View file

@ -84,8 +84,8 @@ at the last discontinuity, which can be retrieved with
since then can be queried with `Adapter::distance_from_discont`.
A last thing to note is that while `Adapter` is pretty optimized,
merging buffers still might be an operation that requires a `malloc` and
`memcpy` operation, and these operations are not the fastest. Because of
merging buffers still might be an operation that requires a `malloc()` and
`memcpy()` operation, and these operations are not the fastest. Because of
this, some functions like `Adapter::available_fast` are provided to help
speed up such cases should you want to. To avoid repeated memory allocations,
`Adapter::copy` can be used to copy data into a (statically allocated)
@ -97,7 +97,7 @@ of `Adapter` is inside one pad's chain function, in which case access is
serialized via the pad's STREAM_LOCK.
Note that `Adapter::push` takes ownership of the buffer passed. Use
`gst_buffer_ref` before pushing it into the adapter if you still want to
`gst::Buffer::ref` before pushing it into the adapter if you still want to
access the buffer later. The adapter will never modify the data in the
buffer pushed in it.
@ -178,7 +178,7 @@ Returns a `gst::Buffer` containing the first `nbytes` of the `self`, but
does not flush them from the adapter. See `Adapter::take_buffer`
for details.
Caller owns a reference to the returned buffer. `gst_buffer_unref` after
Caller owns a reference to the returned buffer. `gst::Buffer::unref` after
usage.
Free-function: gst_buffer_unref
@ -189,13 +189,13 @@ the number of bytes to get
a `gst::Buffer` containing the first
`nbytes` of the adapter, or `None` if `nbytes` bytes are not available.
`gst_buffer_unref` when no longer needed.
`gst::Buffer::unref` when no longer needed.
<!-- impl Adapter::fn get_buffer_fast -->
Returns a `gst::Buffer` containing the first `nbytes` of the `self`, but
does not flush them from the adapter. See `Adapter::take_buffer_fast`
for details.
Caller owns a reference to the returned buffer. `gst_buffer_unref` after
Caller owns a reference to the returned buffer. `gst::Buffer::unref` after
usage.
Free-function: gst_buffer_unref
@ -206,13 +206,13 @@ the number of bytes to get
a `gst::Buffer` containing the first
`nbytes` of the adapter, or `None` if `nbytes` bytes are not available.
`gst_buffer_unref` when no longer needed.
`gst::Buffer::unref` when no longer needed.
<!-- impl Adapter::fn get_buffer_list -->
Returns a `gst::BufferList` of buffers containing the first `nbytes` bytes of
the `self` but does not flush them from the adapter. See
`Adapter::take_buffer_list` for details.
Caller owns the returned list. Call `gst_buffer_list_unref` to free
Caller owns the returned list. Call `gst::BufferList::unref` to free
the list after usage.
## `nbytes`
the number of bytes to get
@ -227,7 +227,7 @@ Returns a `glib::List` of buffers containing the first `nbytes` bytes of the
`self`, but does not flush them from the adapter. See
`Adapter::take_list` for details.
Caller owns returned list and contained buffers. `gst_buffer_unref` each
Caller owns returned list and contained buffers. `gst::Buffer::unref` each
buffer in the list before freeing the list after usage.
## `nbytes`
the number of bytes to get
@ -468,7 +468,7 @@ unset.
Since 1.6 this will also copy over all GstMeta of the input buffers except
for meta with the `gst::MetaFlags::Pooled` flag or with the "memory" tag.
Caller owns a reference to the returned buffer. `gst_buffer_unref` after
Caller owns a reference to the returned buffer. `gst::Buffer::unref` after
usage.
Free-function: gst_buffer_unref
@ -479,7 +479,7 @@ the number of bytes to take
a `gst::Buffer` containing the first
`nbytes` of the adapter, or `None` if `nbytes` bytes are not available.
`gst_buffer_unref` when no longer needed.
`gst::Buffer::unref` when no longer needed.
<!-- impl Adapter::fn take_buffer_fast -->
Returns a `gst::Buffer` containing the first `nbytes` of the `self`.
The returned bytes will be flushed from the adapter. This function
@ -500,7 +500,7 @@ for meta with the `gst::MetaFlags::Pooled` flag or with the "memory" tag.
This function can return buffer up to the return value of
`Adapter::available` without making copies if possible.
Caller owns a reference to the returned buffer. `gst_buffer_unref` after
Caller owns a reference to the returned buffer. `gst::Buffer::unref` after
usage.
Free-function: gst_buffer_unref
@ -511,14 +511,14 @@ the number of bytes to take
a `gst::Buffer` containing the first
`nbytes` of the adapter, or `None` if `nbytes` bytes are not available.
`gst_buffer_unref` when no longer needed.
`gst::Buffer::unref` when no longer needed.
<!-- impl Adapter::fn take_buffer_list -->
Returns a `gst::BufferList` of buffers containing the first `nbytes` bytes of
the `self`. The returned bytes will be flushed from the adapter.
When the caller can deal with individual buffers, this function is more
performant because no memory should be copied.
Caller owns the returned list. Call `gst_buffer_list_unref` to free
Caller owns the returned list. Call `gst::BufferList::unref` to free
the list after usage.
## `nbytes`
the number of bytes to take
@ -534,7 +534,7 @@ Returns a `glib::List` of buffers containing the first `nbytes` bytes of the
When the caller can deal with individual buffers, this function is more
performant because no memory should be copied.
Caller owns returned list and contained buffers. `gst_buffer_unref` each
Caller owns returned list and contained buffers. `gst::Buffer::unref` each
buffer in the list before freeing the list after usage.
## `nbytes`
the number of bytes to take
@ -592,7 +592,7 @@ Feature: `v1_14`
# Implements
[`AggregatorExt`](trait.AggregatorExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
[`AggregatorExt`](trait.AggregatorExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`AggregatorExtManual`](prelude/trait.AggregatorExtManual.html)
<!-- trait AggregatorExt -->
Trait containing all `Aggregator` methods.
@ -646,6 +646,17 @@ Feature: `v1_14`
# Returns
The latency or `GST_CLOCK_TIME_NONE` if the element does not sync
<!-- trait AggregatorExt::fn negotiate -->
Negotiates src pad caps with downstream elements.
Unmarks GST_PAD_FLAG_NEED_RECONFIGURE in any case. But marks it again
if `AggregatorClass.negotiate`() fails.
Feature: `v1_18`
# Returns
`true` if the negotiation succeeded, else `false`.
<!-- trait AggregatorExt::fn set_latency -->
Lets `Aggregator` sub-classes tell the baseclass what their internal
latency is. Will also post a LATENCY message on the bus so the pipeline
@ -665,7 +676,7 @@ Feature: `v1_14`
## `caps`
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
This is a simple `AggregatorClass.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.
@ -678,6 +689,13 @@ Feature: `v1_16`
# Returns
The running time based on the position
<!-- trait AggregatorExt::fn update_segment -->
Subclasses should use this to update the segment on their
source pad, instead of directly pushing new segment events
downstream.
Feature: `v1_18`
<!-- 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
@ -697,7 +715,7 @@ account when larger than the actually reported minimum latency.
Feature: `v1_16`
<!-- struct AggregatorPad -->
Pads managed by a `GstAggregor` subclass.
Pads managed by a `Aggregator` subclass.
This class used to live in gst-plugins-bad and was moved to core.
@ -705,7 +723,7 @@ Feature: `v1_14`
# Implements
[`AggregatorPadExt`](trait.AggregatorPadExt.html), [`gst::PadExt`](../gst/trait.PadExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
[`AggregatorPadExt`](trait.AggregatorPadExt.html), [`gst::PadExt`](../gst/trait.PadExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`AggregatorPadExtManual`](prelude/trait.AggregatorPadExtManual.html)
<!-- trait AggregatorPadExt -->
Trait containing all `AggregatorPad` methods.
@ -857,7 +875,7 @@ a parser and share a lot of rather complex code.
* 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`()
`BaseParseClass.sink_event`() or `BaseParseClass.src_event`()
implementations have been provided.
## Shutdown phase
@ -911,7 +929,7 @@ Things that subclass need to take care of:
# 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)
[`BaseParseExt`](trait.BaseParseExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`BaseParseExtManual`](prelude/trait.BaseParseExtManual.html)
<!-- trait BaseParseExt -->
Trait containing all `BaseParse` methods.
@ -1268,7 +1286,7 @@ with non-synchronized streams or sparse streams.
# Implements
[`BaseSinkExt`](trait.BaseSinkExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
[`BaseSinkExt`](trait.BaseSinkExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`BaseSinkExtManual`](prelude/trait.BaseSinkExtManual.html)
<!-- trait BaseSinkExt -->
Trait containing all `BaseSink` methods.
@ -1317,7 +1335,7 @@ Free-function: gst_sample_unref
# Returns
a `gst::Sample`. `gst_sample_unref` after
a `gst::Sample`. `gst::Sample::unref` after
usage. This function returns `None` when no buffer has arrived in the
sink yet or when the sink is not in PAUSED or PLAYING.
<!-- trait BaseSinkExt::fn get_latency -->
@ -1359,6 +1377,20 @@ information about the render delay.
# Returns
the render delay of `self`.
<!-- trait BaseSinkExt::fn get_stats -->
Return various `BaseSink` statistics. This function returns a `gst::Structure`
with name `application/x-gst-base-sink-stats` with the following fields:
- "average-rate" G_TYPE_DOUBLE average frame rate
- "dropped" G_TYPE_UINT64 Number of dropped frames
- "rendered" G_TYPE_UINT64 Number of rendered frames
Feature: `v1_18`
# Returns
pointer to `gst::Structure`
<!-- trait BaseSinkExt::fn get_sync -->
Checks if `self` is currently configured to synchronize against the
clock.
@ -1633,6 +1665,16 @@ make other sinks compensate for the delay.
The additional delay between synchronisation and actual rendering of the
media. This property will add additional latency to the device in order to
make other sinks compensate for the delay.
<!-- trait BaseSinkExt::fn get_property_stats -->
Various `BaseSink` statistics. This property returns a `gst::Structure`
with name `application/x-gst-base-sink-stats` with the following fields:
- "average-rate" G_TYPE_DOUBLE average frame rate
- "dropped" G_TYPE_UINT64 Number of dropped frames
- "rendered" G_TYPE_UINT64 Number of rendered frames
Feature: `v1_18`
<!-- trait BaseSinkExt::fn get_property_throttle_time -->
The time to insert between buffers. This property can be used to control
the maximum amount of buffers per second to render. Setting this property
@ -1766,7 +1808,7 @@ received, it may safely shut down the entire pipeline.
# Implements
[`BaseSrcExt`](trait.BaseSrcExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
[`BaseSrcExt`](trait.BaseSrcExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`BaseSrcExtManual`](prelude/trait.BaseSrcExtManual.html)
<!-- trait BaseSrcExt -->
Trait containing all `BaseSrc` methods.
@ -1814,9 +1856,24 @@ Check if an element is in live mode.
# Returns
`true` if element is in live mode.
<!-- trait BaseSrcExt::fn negotiate -->
Negotiates src pad caps with downstream elements.
Unmarks GST_PAD_FLAG_NEED_RECONFIGURE in any case. But marks it again
if `BaseSrcClass.negotiate`() fails.
Do not call this in the `BaseSrcClass.fill`() vmethod. Call this in
`BaseSrcClass.create`() or in `BaseSrcClass.alloc`(), _before_ any
buffer is allocated.
Feature: `v1_18`
# Returns
`true` if the negotiation succeeded, else `false`.
<!-- trait BaseSrcExt::fn new_seamless_segment -->
Prepare a new seamless segment for emission downstream. This function must
only be called by derived sub-classes, and only from the `create` function,
only be called by derived sub-classes, and only from the `BaseSrcClass::create` function,
as the stream-lock needs to be held.
The format for the new segment will be the current format of the source, as
@ -1864,7 +1921,7 @@ 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
EOS will be pushed only when the `BaseSrcClass.create`() implementation
returns `gst::FlowReturn::Eos`.
## `automatic_eos`
automatic eos
@ -2071,7 +2128,7 @@ It provides for:
# Implements
[`BaseTransformExt`](trait.BaseTransformExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
[`BaseTransformExt`](trait.BaseTransformExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`BaseTransformExtManual`](prelude/trait.BaseTransformExtManual.html)
<!-- trait BaseTransformExt -->
Trait containing all `BaseTransform` methods.
@ -2079,10 +2136,10 @@ Trait containing all `BaseTransform` methods.
[`BaseTransform`](struct.BaseTransform.html)
<!-- trait BaseTransformExt::fn get_allocator -->
Lets `BaseTransform` sub-classes to know the memory `allocator`
Lets `BaseTransform` sub-classes know the memory `allocator`
used by the base class and its `params`.
Unref the `allocator` after use it.
Unref the `allocator` after use.
## `allocator`
the `gst::Allocator`
used
@ -2094,13 +2151,13 @@ the
# Returns
the instance of the `gst::BufferPool` used
by `self`; free it after use it
by `self`; free it after use
<!-- trait BaseTransformExt::fn is_in_place -->
See if `self` is configured as a in_place transform.
# Returns
`true` is the transform is configured in in_place mode.
`true` if the transform is configured in in_place mode.
MT safe.
<!-- trait BaseTransformExt::fn is_passthrough -->
@ -2108,7 +2165,7 @@ See if `self` is configured as a passthrough transform.
# Returns
`true` is the transform is configured in passthrough mode.
`true` if the transform is configured in passthrough mode.
MT safe.
<!-- trait BaseTransformExt::fn is_qos_enabled -->
@ -2119,6 +2176,28 @@ Queries if the transform will handle QoS.
`true` if QoS is enabled.
MT safe.
<!-- trait BaseTransformExt::fn reconfigure -->
Negotiates src pad caps with downstream elements if the source pad is
marked as needing reconfiguring. Unmarks GST_PAD_FLAG_NEED_RECONFIGURE in
any case. But marks it again if negotiation fails.
Do not call this in the `BaseTransformClass.transform`() or
`BaseTransformClass.transform_ip`() vmethod. Call this in
`BaseTransformClass.submit_input_buffer`(),
`BaseTransformClass.prepare_output_buffer`() or in
`BaseTransformClass.generate_output`() _before_ any output buffer is
allocated.
It will be default be called when handling an ALLOCATION query or at the
very beginning of the default `BaseTransformClass.submit_input_buffer`()
implementation.
Feature: `v1_18`
# Returns
`true` if the negotiation succeeded, else `false`.
<!-- trait BaseTransformExt::fn reconfigure_sink -->
Instructs `self` to request renegotiation upstream. This function is
typically called after properties on the transform were set that
@ -2154,7 +2233,7 @@ Set passthrough mode for this filter by default. This is mostly
useful for filters that do not care about negotiation.
Always `true` for filters which don't implement either a transform
or transform_ip method.
or transform_ip or generate_output method.
MT safe.
## `passthrough`
@ -2193,7 +2272,7 @@ the diff against the clock
the timestamp of the buffer generating the QoS expressed in
running_time.
<!-- trait BaseTransformExt::fn update_src_caps -->
Updates the srcpad caps and send the caps downstream. This function
Updates the srcpad caps and sends the caps downstream. This function
can be used by subclasses when they have already negotiated their caps
but found a change in them (or computed new information). This way,
they can notify downstream about that change without losing any
@ -2204,7 +2283,7 @@ downstream
# Returns
`true` if the caps could be send downstream `false` otherwise
`true` if the caps could be sent downstream `false` otherwise
<!-- struct FlowCombiner -->
Utility struct to help handling `gst::FlowReturn` combination. Useful for
`gst::Element`<!-- -->s that have multiple source pads and need to combine
@ -2323,4 +2402,4 @@ base class.
# Implements
[`BaseSrcExt`](trait.BaseSrcExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
[`BaseSrcExt`](trait.BaseSrcExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`BaseSrcExtManual`](prelude/trait.BaseSrcExtManual.html)

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -2,8 +2,8 @@
<!-- struct GLBaseFilter -->
`GLBaseFilter` handles the nitty gritty details of retrieving an OpenGL
context. It also provided some wrappers around `gst_base::BaseTransform`'s
`start`, `stop` and `set_caps` virtual methods that ensure an OpenGL context
is available and current in the calling thread.
`start()`, `stop()` and `set_caps()` virtual methods that ensure an OpenGL
context is available and current in the calling thread.
Feature: `v1_16`
@ -26,14 +26,14 @@ Feature: `v1_16`
# Returns
Whether an OpenGL context could be retrieved or created successfully
<!-- struct GLBuffer -->
GstGLBuffer is a `gst::Memory` subclass providing support for the mapping of
GL buffers.
<!-- trait GLBaseFilterExt::fn get_gl_context -->
Data is uploaded or downloaded from the GPU as is necessary.
<!-- impl GLBuffer::fn init_once -->
Initializes the GL Buffer allocator. It is safe to call this function
multiple times. This must be called before any other `GLBuffer` operation.
Feature: `v1_18`
# Returns
the `GLContext` found by `self`
<!-- struct GLColorConvert -->
`GLColorConvert` is an object that converts between color spaces and/or
formats using OpenGL Shaders.
@ -113,7 +113,7 @@ specified and must only be activated in a single thread.
# Implements
[`GLContextExt`](trait.GLContextExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
[`GLContextExt`](trait.GLContextExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`GLContextExtManual`](prelude/trait.GLContextExtManual.html)
<!-- trait GLContextExt -->
Trait containing all `GLContext` methods.
@ -134,6 +134,10 @@ Wraps an existing OpenGL context into a `GLContext`.
Note: The caller is responsible for ensuring that the OpenGL context
represented by `handle` stays alive while the returned `GLContext` is
active.
`context_type` must not be `GLPlatform::None` or `GLPlatform::Any`
`available_apis` must not be `GLAPI::None` or `GLAPI::Any`
## `display`
a `GLDisplay`
## `handle`
@ -188,7 +192,7 @@ a `GLPlatform` specifying the type of context to retrieve
The OpenGL context handle current in the calling thread or `None`
<!-- impl GLContext::fn get_proc_address_with_platform -->
Attempts to use the `context_type` specific GetProcAddress implementations
to retreive `name`.
to retrieve `name`.
See also `GLContext::get_proc_address`.
## `context_type`
@ -318,7 +322,7 @@ return for the major version
return for the minor version
<!-- trait GLContextExt::fn get_gl_version -->
Returns the OpenGL version implemented by `self`. See
`GLContextExt::get_gl_api` for retreiving the OpenGL api implemented by
`GLContextExt::get_gl_api` for retrieving the OpenGL api implemented by
`self`.
## `maj`
resulting major version
@ -328,7 +332,7 @@ resulting minor version
Get a function pointer to a specified opengl function, `name`. If the the
specific function does not exist, NULL is returned instead.
Platform specfic functions (names starting 'egl', 'glX', 'wgl', etc) can also
Platform specific functions (names starting 'egl', 'glX', 'wgl', etc) can also
be retrieved using this method.
Note: This function may return valid function pointers that may not be valid
@ -440,7 +444,7 @@ glXCreateContext (or similar) failed
A resource is not available
<!-- struct GLDisplay -->
`GLDisplay` represents a connection to the underlying windowing system.
Elements are required to make use of `gst::Context` to share and propogate
Elements are required to make use of `gst::Context` to share and propagate
a `GLDisplay`.
There are a number of environment variables that influence the choice of
@ -495,7 +499,6 @@ resulting `GLContext`
whether a new context could be created.
<!-- trait GLDisplayExt::fn create_window -->
It requires the display's object lock to be held.
# Returns
@ -503,13 +506,15 @@ a new `GLWindow` for `self` or `None`.
<!-- trait GLDisplayExt::fn filter_gl_api -->
limit the use of OpenGL to the requested `gl_api`. This is intended to allow
application and elements to request a specific set of OpenGL API's based on
what they support. See `GLContextExt::get_gl_api` for the retreiving the
what they support. See `GLContextExt::get_gl_api` for the retrieving the
API supported by a `GLContext`.
## `gl_api`
a `GLAPI` to filter with
<!-- trait GLDisplayExt::fn find_window -->
Deprecated for `GLDisplayExt::retrieve_window`.
Execute `compare_func` over the list of windows stored by `self`. The
first argment to `compare_func` is the `GLWindow` being checked and the
first argument to `compare_func` is the `GLWindow` being checked and the
second argument is `data`.
## `data`
some data to pass to `compare_func`
@ -520,6 +525,14 @@ a comparison function to run
The first `GLWindow` that causes a match
from `compare_func`
<!-- trait GLDisplayExt::fn get_foreign_display -->
Feature: `v1_18`
# Returns
whether the context belongs to a foreign display
<!-- trait GLDisplayExt::fn get_gl_api -->
see `GLDisplayExt::filter_gl_api` for what the returned value represents
@ -545,6 +558,13 @@ the native handle for the display
# Returns
the `GLDisplayType` of `self`
<!-- trait GLDisplayExt::fn remove_context -->
Must be called with the object lock held.
Feature: `v1_18`
## `context`
the `GLContext` to remove
<!-- trait GLDisplayExt::fn remove_window -->
## `window`
a `GLWindow` to remove
@ -552,6 +572,22 @@ a `GLWindow` to remove
# Returns
if `window` could be removed from `self`
<!-- trait GLDisplayExt::fn retrieve_window -->
Execute `compare_func` over the list of windows stored by `self`. The
first argument to `compare_func` is the `GLWindow` being checked and the
second argument is `data`.
Feature: `v1_18`
## `data`
some data to pass to `compare_func`
## `compare_func`
a comparison function to run
# Returns
The first `GLWindow` that causes a match
from `compare_func`
<!-- trait GLDisplayExt::fn connect_create_context -->
Overrides the `GLContext` creation mechanism.
It can be called in any thread and it is emitted with
@ -595,7 +631,7 @@ through the provided API
[`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`
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
@ -619,7 +655,7 @@ through the provided API
[`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()
Create a new `GLDisplayX11` from the x11 display name. See `XOpenDisplay`()
for details on what is a valid name.
## `name`
a display name
@ -676,6 +712,10 @@ A single 16-bit component for depth information.
<!-- enum GLFormat::variant Depth24Stencil8 -->
A 24-bit component for depth information and
a 8-bit component for stencil informat.
<!-- enum GLFormat::variant R16 -->
Single 16-bit component stored in the R texture component
<!-- enum GLFormat::variant Rg16 -->
Two 16-bit components stored in the R and G texture components
<!-- struct GLFramebuffer -->
A `GLFramebuffer` represents and holds an OpenGL framebuffer object with
it's associated attachments.
@ -737,7 +777,7 @@ data to pass to `func`
the result of executing `func`
<!-- trait GLFramebufferExt::fn get_effective_dimensions -->
Retreive the effective dimensions from the current attachments attached to
Retrieve the effective dimensions from the current attachments attached to
`self`.
## `width`
output width
@ -754,54 +794,6 @@ Opaque `GLOverlayCompositor` object
# Implements
[`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- struct GLQuery -->
A `GLQuery` represents and holds an OpenGL query object. Various types of
queries can be run or counters retrieved.
<!-- impl GLQuery::fn counter -->
Record the result of a counter
<!-- impl GLQuery::fn end -->
End counting the query
<!-- impl GLQuery::fn free -->
Frees a `GLQuery`
<!-- impl GLQuery::fn init -->
## `context`
a `GLContext`
## `query_type`
the `GLQueryType`
<!-- impl GLQuery::fn result -->
# Returns
the result of the query
<!-- impl GLQuery::fn start -->
Start counting the query
<!-- impl GLQuery::fn unset -->
Free any dynamically allocated resources
<!-- impl GLQuery::fn local_gl_context -->
Performs a GST_QUERY_CONTEXT query of type "gst.gl.local_context" on all
`GstPads` in `element` of `direction` for the local OpenGL context used by
GStreamer elements.
## `element`
a `gst::Element` to query from
## `direction`
the `gst::PadDirection` to query
## `context_ptr`
location containing the current and/or resulting
`GLContext`
# Returns
whether `context_ptr` contains a `GLContext`
<!-- impl GLQuery::fn new -->
Free with `GLQuery::free`
## `context`
a `GLContext`
## `query_type`
the `GLQueryType` to create
# Returns
a new `GLQuery`
<!-- enum GLQueryType -->
<!-- enum GLQueryType::variant None -->
no query
@ -812,11 +804,11 @@ query the current time
<!-- enum GLSLError -->
Compilation stage that caused an error
<!-- enum GLSLError::variant Compile -->
Compilation error occured
Compilation error occurred
<!-- enum GLSLError::variant Link -->
Link error occured
Link error occurred
<!-- enum GLSLError::variant Program -->
General program error occured
General program error occurred
<!-- struct GLSLStage -->
`GLSLStage` holds and represents a single OpenGL shader stage.
@ -869,7 +861,7 @@ a new `GLSLStage` of the specified `type_`
# Returns
whether the compilation suceeded
whether the compilation succeeded
<!-- impl GLSLStage::fn get_handle -->
# Returns
@ -1061,14 +1053,14 @@ a `GLSLStage` to attach
whether `stage` could be attached to `self`
<!-- impl GLShader::fn bind_attribute_location -->
Bind attribute `name` to the specified location `index` using
glBindAttributeLocation().
`glBindAttributeLocation()`.
## `index`
attribute index to set
## `name`
name of the attribute
<!-- impl GLShader::fn bind_frag_data_location -->
Bind attribute `name` to the specified location `index` using
glBindFragDataLocation().
`glBindFragDataLocation()`.
## `index`
attribute index to set
## `name`
@ -1132,13 +1124,13 @@ Releases the shader and stages.
Note: must be called in the GL thread
<!-- impl GLShader::fn set_uniform_1f -->
Perform glUniform1f() for `name` on `self`
Perform `glUniform1f()` for `name` on `self`
## `name`
name of the uniform
## `value`
value to set
<!-- impl GLShader::fn set_uniform_1fv -->
Perform glUniform1fv() for `name` on `self`
Perform `glUniform1fv()` for `name` on `self`
## `name`
name of the uniform
## `count`
@ -1146,13 +1138,13 @@ number of values to set
## `value`
values to set
<!-- impl GLShader::fn set_uniform_1i -->
Perform glUniform1i() for `name` on `self`
Perform `glUniform1i()` for `name` on `self`
## `name`
name of the uniform
## `value`
value to set
<!-- impl GLShader::fn set_uniform_1iv -->
Perform glUniform1iv() for `name` on `self`
Perform `glUniform1iv()` for `name` on `self`
## `name`
name of the uniform
## `count`
@ -1160,7 +1152,7 @@ number of values to set
## `value`
values to set
<!-- impl GLShader::fn set_uniform_2f -->
Perform glUniform2f() for `name` on `self`
Perform `glUniform2f()` for `name` on `self`
## `name`
name of the uniform
## `v0`
@ -1168,7 +1160,7 @@ first value to set
## `v1`
second value to set
<!-- impl GLShader::fn set_uniform_2fv -->
Perform glUniform2fv() for `name` on `self`
Perform `glUniform2fv()` for `name` on `self`
## `name`
name of the uniform
## `count`
@ -1176,7 +1168,7 @@ number of values to set
## `value`
values to set
<!-- impl GLShader::fn set_uniform_2i -->
Perform glUniform2i() for `name` on `self`
Perform `glUniform2i()` for `name` on `self`
## `name`
name of the uniform
## `v0`
@ -1184,7 +1176,7 @@ first value to set
## `v1`
second value to set
<!-- impl GLShader::fn set_uniform_2iv -->
Perform glUniform2iv() for `name` on `self`
Perform `glUniform2iv()` for `name` on `self`
## `name`
name of the uniform
## `count`
@ -1192,7 +1184,7 @@ number of values to set
## `value`
values to set
<!-- impl GLShader::fn set_uniform_3f -->
Perform glUniform3f() for `name` on `self`
Perform `glUniform3f()` for `name` on `self`
## `name`
name of the uniform
## `v0`
@ -1202,7 +1194,7 @@ second value to set
## `v2`
third value to set
<!-- impl GLShader::fn set_uniform_3fv -->
Perform glUniform3fv() for `name` on `self`
Perform `glUniform3fv()` for `name` on `self`
## `name`
name of the uniform
## `count`
@ -1210,7 +1202,7 @@ number of values to set
## `value`
values to set
<!-- impl GLShader::fn set_uniform_3i -->
Perform glUniform3i() for `name` on `self`
Perform `glUniform3i()` for `name` on `self`
## `name`
name of the uniform
## `v0`
@ -1220,7 +1212,7 @@ second value to set
## `v2`
third value to set
<!-- impl GLShader::fn set_uniform_3iv -->
Perform glUniform3iv() for `name` on `self`
Perform `glUniform3iv()` for `name` on `self`
## `name`
name of the uniform
## `count`
@ -1228,7 +1220,7 @@ number of values to set
## `value`
values to set
<!-- impl GLShader::fn set_uniform_4f -->
Perform glUniform4f() for `name` on `self`
Perform `glUniform4f()` for `name` on `self`
## `name`
name of the uniform
## `v0`
@ -1240,7 +1232,7 @@ third value to set
## `v3`
fourth value to set
<!-- impl GLShader::fn set_uniform_4fv -->
Perform glUniform4fv() for `name` on `self`
Perform `glUniform4fv()` for `name` on `self`
## `name`
name of the uniform
## `count`
@ -1248,7 +1240,7 @@ number of values to set
## `value`
values to set
<!-- impl GLShader::fn set_uniform_4i -->
Perform glUniform4i() for `name` on `self`
Perform `glUniform4i()` for `name` on `self`
## `name`
name of the uniform
## `v0`
@ -1260,7 +1252,7 @@ third value to set
## `v3`
fourth value to set
<!-- impl GLShader::fn set_uniform_4iv -->
Perform glUniform4iv() for `name` on `self`
Perform `glUniform4iv()` for `name` on `self`
## `name`
name of the uniform
## `count`
@ -1268,7 +1260,7 @@ number of values to set
## `value`
values to set
<!-- impl GLShader::fn set_uniform_matrix_2fv -->
Perform glUniformMatrix2fv() for `name` on `self`
Perform `glUniformMatrix2fv()` for `name` on `self`
## `name`
name of the uniform
## `count`
@ -1278,7 +1270,7 @@ transpose the matrix
## `value`
matrix to set
<!-- impl GLShader::fn set_uniform_matrix_2x3fv -->
Perform glUniformMatrix2x3fv() for `name` on `self`
Perform `glUniformMatrix2x3fv()` for `name` on `self`
## `name`
name of the uniform
## `count`
@ -1288,7 +1280,7 @@ transpose the matrix
## `value`
values to set
<!-- impl GLShader::fn set_uniform_matrix_2x4fv -->
Perform glUniformMatrix2x4fv() for `name` on `self`
Perform `glUniformMatrix2x4fv()` for `name` on `self`
## `name`
name of the uniform
## `count`
@ -1298,7 +1290,7 @@ transpose the matrix
## `value`
values to set
<!-- impl GLShader::fn set_uniform_matrix_3fv -->
Perform glUniformMatrix3fv() for `name` on `self`
Perform `glUniformMatrix3fv()` for `name` on `self`
## `name`
name of the uniform
## `count`
@ -1308,7 +1300,7 @@ transpose the matrix
## `value`
values to set
<!-- impl GLShader::fn set_uniform_matrix_3x2fv -->
Perform glUniformMatrix3x2fv() for `name` on `self`
Perform `glUniformMatrix3x2fv()` for `name` on `self`
## `name`
name of the uniform
## `count`
@ -1318,7 +1310,7 @@ transpose the matrix
## `value`
values to set
<!-- impl GLShader::fn set_uniform_matrix_3x4fv -->
Perform glUniformMatrix3x4fv() for `name` on `self`
Perform `glUniformMatrix3x4fv()` for `name` on `self`
## `name`
name of the uniform
## `count`
@ -1328,7 +1320,7 @@ transpose the matrix
## `value`
values to set
<!-- impl GLShader::fn set_uniform_matrix_4fv -->
Perform glUniformMatrix4fv() for `name` on `self`
Perform `glUniformMatrix4fv()` for `name` on `self`
## `name`
name of the uniform
## `count`
@ -1338,7 +1330,7 @@ transpose the matrix
## `value`
values to set
<!-- impl GLShader::fn set_uniform_matrix_4x2fv -->
Perform glUniformMatrix4x2fv() for `name` on `self`
Perform `glUniformMatrix4x2fv()` for `name` on `self`
## `name`
name of the uniform
## `count`
@ -1348,7 +1340,7 @@ transpose the matrix
## `value`
values to set
<!-- impl GLShader::fn set_uniform_matrix_4x3fv -->
Perform glUniformMatrix4x3fv() for `name` on `self`
Perform `glUniformMatrix4x3fv()` for `name` on `self`
## `name`
name of the uniform
## `count`
@ -1429,11 +1421,13 @@ whether `in_caps` and `out_caps` could be set on `self`
<!-- enum GLUploadReturn::variant Done -->
No further processing required
<!-- enum GLUploadReturn::variant Error -->
An unspecified error occured
An unspecified error occurred
<!-- enum GLUploadReturn::variant Unsupported -->
The configuration is unsupported.
<!-- enum GLUploadReturn::variant Reconfigure -->
This element requires a reconfiguration.
<!-- enum GLUploadReturn::variant UnsharedGlContext -->
private return value.
<!-- struct GLViewConvert -->
Convert stereoscopic/multiview video using fragment shaders.
@ -1568,6 +1562,15 @@ for them. This method allows you to disable events handling completely
from the `self`.
## `handle_events`
a `gboolean` indicating if events should be handled or not.
<!-- trait GLWindowExt::fn has_output_surface -->
Query whether `self` has output surface or not
Feature: `v1_18`
# Returns
`true` if `self` has useable output surface
<!-- trait GLWindowExt::fn queue_resize -->
Queue resizing of `self`.
<!-- trait GLWindowExt::fn quit -->
@ -1581,7 +1584,7 @@ new height
<!-- trait GLWindowExt::fn run -->
Start the execution of the runloop.
<!-- trait GLWindowExt::fn send_message -->
Invoke `callback` with data on the window thread. `callback` is guarenteed to
Invoke `callback` with data on the window thread. `callback` is guaranteed to
have executed when this function returns.
## `callback`
function to invoke
@ -1596,6 +1599,20 @@ function to invoke
data to invoke `callback` with
## `destroy`
called when `data` is not needed anymore
<!-- trait GLWindowExt::fn send_scroll_event -->
Notify a `self` about a scroll event. A scroll signal holding the event
coordinates will be emitted.
Feature: `v1_18`
## `posx`
x position of the mouse cursor
## `posy`
y position of the mouse cursor
## `delta_x`
the x offset of the scroll event
## `delta_y`
the y offset of the scroll event
<!-- trait GLWindowExt::fn set_close_callback -->
Sets the callback called when the window is about to close.
## `callback`
@ -1605,7 +1622,7 @@ data to invoke `callback` with
## `destroy_notify`
called when `data` is not needed any more
<!-- trait GLWindowExt::fn set_draw_callback -->
Sets the draw callback called everytime `GLWindowExt::draw` is called
Sets the draw callback called every time `GLWindowExt::draw` is called
## `callback`
function to invoke
## `data`
@ -1635,7 +1652,7 @@ height
whether the specified region could be set
<!-- trait GLWindowExt::fn set_resize_callback -->
Sets the resize callback called everytime a resize of the window occurs.
Sets the resize callback called every time a resize of the window occurs.
## `callback`
function to invoke
## `data`
@ -1665,6 +1682,19 @@ the id of the button
the x coordinate of the mouse event
## `y`
the y coordinate of the mouse event
<!-- trait GLWindowExt::fn connect_scroll_event -->
Will be emitted when a mouse scroll event is received by the GstGLwindow.
Feature: `v1_18`
## `x`
the x coordinate of the mouse event
## `y`
the y coordinate of the mouse event
## `delta_x`
the x offset of the scroll event
## `delta_y`
the y offset of the scroll event
<!-- enum GLWindowError -->
<!-- enum GLWindowError::variant Failed -->
failed for a unspecified reason

View file

@ -27,7 +27,7 @@ statistics about clock accuracy and network traffic.
[`gst::ClockExt`](../gst/trait.ClockExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- impl NetClientClock::fn new -->
Create a new `GstNetClientInternalClock` that will report the time
Create a new `NetClientClock` that will report the time
provided by the `NetTimeProvider` on `remote_address` and
`remote_port`.
## `name`

View file

@ -231,7 +231,7 @@ Get the installer details for missing elements
# Returns
An array of strings
containing informations about how to install the various missing elements
containing information about how to install the various missing elements
for `self` to be usable. If you wish to use the strings after the life-time
of `self`, you will need to copy them.
<!-- impl DiscovererInfo::fn get_result -->
@ -367,7 +367,7 @@ a `glib::List` of `DiscovererStreamInfo`
# Returns
the `gst::Caps` of the stream. Unref with
`gst_caps_unref` after usage.
`gst::Caps::unref` after usage.
<!-- trait DiscovererStreamInfoExt::fn get_misc -->
# Deprecated
@ -509,7 +509,7 @@ the `gst::Caps`
the preset(s) to use on the encoder, can be `None`
## `restriction`
the `gst::Caps` used to restrict the input to the encoder, can be
NULL. See `EncodingProfileExt::get_restriction` for more details.
NULL. See `EncodingProfile::get_restriction` for more details.
## `presence`
the number of time this stream must be used. 0 means any number of
times (including never)
@ -635,7 +635,7 @@ Computes the full output caps that this `self` will be able to consume.
# Returns
The full caps the given `self` can consume. Call
`gst_caps_unref` when you are done with the caps.
`gst::Caps::unref` when you are done with the caps.
<!-- trait EncodingProfileExt::fn get_name -->
# Returns
@ -668,6 +668,16 @@ properties of the raw stream (that is before encoding), such as height and
width for video and depth and sampling rate for audio. Does not apply to
`EncodingContainerProfile` (since there is no corresponding raw stream).
Can be `None`. Unref after usage.
<!-- trait EncodingProfileExt::fn get_single_segment -->
Feature: `v1_18`
# Returns
`true` if the stream represented by `self` should use a single
segment before the encoder, `false` otherwise. This means that buffers will be retimestamped
and segments will be eat so as to appear as one segment.
<!-- trait EncodingProfileExt::fn get_type_nick -->
# Returns
@ -695,7 +705,7 @@ the description to set on the profile
<!-- trait EncodingProfileExt::fn set_enabled -->
Set whether the profile should be used or not.
## `enabled`
`false` to disable `profile`, `true` to enable it
`false` to disable `self`, `true` to enable it
<!-- trait EncodingProfileExt::fn set_format -->
Sets the media format used in the profile.
## `format`
@ -722,10 +732,19 @@ Sets the name of the `gst::Preset`'s factory to be used in the profile.
The name of the preset to use in this `self`.
<!-- trait EncodingProfileExt::fn set_restriction -->
Set the restriction `gst::Caps` to apply before the encoder
that will be used in the profile. See `EncodingProfileExt::get_restriction`
that will be used in the profile. See `EncodingProfile::get_restriction`
for more about restrictions. Does not apply to `EncodingContainerProfile`.
## `restriction`
the restriction to apply
<!-- trait EncodingProfileExt::fn set_single_segment -->
If using a single segment, buffers will be retimestamped
and segments will be eat so as to appear as one segment.
Feature: `v1_18`
## `single_segment`
`true` if the stream represented by `self` should use a single
segment before the encoder `false` otherwise.
<!-- struct EncodingTarget -->
Collection of `EncodingProfile` for a specific target or use-case.
@ -742,9 +761,9 @@ The name and category can only consist of lowercase ASCII letters for the
first character, followed by either lowercase ASCII letters, digits or
hyphens ('-').
The `category` `<emphasis>`should`</emphasis>` be one of the existing
The `category` *should* be one of the existing
well-defined categories, like `GST_ENCODING_CATEGORY_DEVICE`, but it
`<emphasis>`can`</emphasis>` be a application or user specific category if
*can* be a application or user specific category if
needed.
## `name`
The name of the target.
@ -867,7 +886,7 @@ the `gst::Caps`
the preset(s) to use on the encoder, can be `None`
## `restriction`
the `gst::Caps` used to restrict the input to the encoder, can be
NULL. See `EncodingProfileExt::get_restriction` for more details.
NULL. See `EncodingProfile::get_restriction` for more details.
## `presence`
the number of time this stream must be used. 0 means any number of
times (including never)

View file

@ -337,7 +337,7 @@ stream index
`true` or `false`
Sets the subtitle strack `stream_index`.
Sets the subtitle stack `stream_index`.
<!-- impl Player::fn set_subtitle_track_enabled -->
Enable or disable the current subtitle track.
## `enabled`
@ -444,7 +444,7 @@ generic error.
[`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`PlayerSignalDispatcherExt`](trait.PlayerSignalDispatcherExt.html)
<!-- impl PlayerGMainContextSignalDispatcher::fn new -->
Creates a new GstPlayerSignalDispatcher that uses `application_context`,
or the thread default one if `None` is used. See `gst_player_new_full`.
or the thread default one if `None` is used. See `Player::new`.
## `application_context`
GMainContext to use or `None`
@ -475,7 +475,7 @@ the container format.
duration of the media.
<!-- impl PlayerMediaInfo::fn get_image_sample -->
Function to get the image (or preview-image) stored in taglist.
Application can use gst_sample_*`_` API's to get caps, buffer etc.
Application can use `gst_sample_*_()` API's to get caps, buffer etc.
# Returns
@ -567,7 +567,7 @@ the player is paused.
the player is currently playing a
stream.
<!-- struct PlayerStreamInfo -->
Base structure for information concering a media stream. Depending on
Base structure for information concerning a media stream. Depending on
the stream type, one can find more media-specific information in
`PlayerVideoInfo`, `PlayerAudioInfo`, `PlayerSubtitleInfo`.

View file

@ -15,7 +15,7 @@ An address pool, all member are private
# Implements
[`RTSPAddressPoolExt`](trait.RTSPAddressPoolExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
[`RTSPAddressPoolExt`](trait.RTSPAddressPoolExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`RTSPAddressPoolExtManual`](prelude/trait.RTSPAddressPoolExtManual.html)
<!-- trait RTSPAddressPoolExt -->
Trait containing all `RTSPAddressPool` methods.
@ -118,7 +118,7 @@ The authentication structure.
# Implements
[`RTSPAuthExt`](trait.RTSPAuthExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
[`RTSPAuthExt`](trait.RTSPAuthExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`RTSPAuthExtManual`](prelude/trait.RTSPAuthExtManual.html)
<!-- trait RTSPAuthExt -->
Trait containing all `RTSPAuth` methods.
@ -298,7 +298,7 @@ The client object represents the connection and its state with a client.
# Implements
[`RTSPClientExt`](trait.RTSPClientExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
[`RTSPClientExt`](trait.RTSPClientExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`RTSPClientExtManual`](prelude/trait.RTSPClientExtManual.html)
<!-- trait RTSPClientExt -->
Trait containing all `RTSPClient` methods.
@ -340,6 +340,15 @@ Get the `gst_rtsp::RTSPConnection` of `self`.
the `gst_rtsp::RTSPConnection` of `self`.
The connection object returned remains valid until the client is freed.
<!-- trait RTSPClientExt::fn get_content_length_limit -->
Get the Content-Length limit of `self`.
Feature: `v1_18`
# Returns
the Content-Length limit.
<!-- trait RTSPClientExt::fn get_mount_points -->
Get the `RTSPMountPoints` object that `self` uses to manage its sessions.
@ -352,6 +361,19 @@ Get the `RTSPSessionPool` object that `self` uses to manage its sessions.
# Returns
a `RTSPSessionPool`, unref after usage.
<!-- trait RTSPClientExt::fn get_stream_transport -->
This is useful when providing a send function through
`RTSPClientExt::set_send_func` when doing RTSP over TCP:
the send function must call gst_rtsp_stream_transport_message_sent ()
on the appropriate transport when data has been received for streaming
to continue.
Feature: `v1_18`
# Returns
the `RTSPStreamTransport` associated with `channel`.
<!-- trait RTSPClientExt::fn get_thread_pool -->
Get the `RTSPThreadPool` used as the thread pool of `self`.
@ -413,6 +435,16 @@ a `gst_rtsp::RTSPConnection`
# Returns
`true` on success.
<!-- trait RTSPClientExt::fn set_content_length_limit -->
Configure `self` to use the specified Content-Length limit.
Define an appropriate request size limit and reject requests exceeding the
limit with response status 413 Request Entity Too Large
Feature: `v1_18`
## `limit`
Content-Length limit
<!-- trait RTSPClientExt::fn set_mount_points -->
Set `mounts` as the mount points for `self` which it will use to map urls
to media streams. These mount points are usually inherited from the server that
@ -622,21 +654,6 @@ a `RTSPContext`
a `RTSPContext`
<!-- trait RTSPClientExt::fn connect_teardown_request -->
## `ctx`
a `RTSPContext`
<!-- struct RTSPContext -->
Information passed around containing the context of a request.
<!-- impl RTSPContext::fn pop_current -->
Pops `self` off the context stack (verifying that `self`
is on the top of the stack).
<!-- impl RTSPContext::fn push_current -->
Pushes `self` onto the context stack. The current
context can then be received using `RTSPContext::get_current`.
<!-- impl RTSPContext::fn get_current -->
Get the current `RTSPContext`. This object is retrieved from the
current thread that is handling the request for a client.
# Returns
a `RTSPContext`
<!-- enum RTSPFilterResult -->
Possible return values for `RTSPSessionPoolExt::filter`.
@ -654,7 +671,7 @@ This object is usually created from a `RTSPMediaFactory`.
# Implements
[`RTSPMediaExt`](trait.RTSPMediaExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
[`RTSPMediaExt`](trait.RTSPMediaExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`RTSPMediaExtManual`](prelude/trait.RTSPMediaExtManual.html)
<!-- trait RTSPMediaExt -->
Trait containing all `RTSPMedia` methods.
@ -754,6 +771,15 @@ Feature: `v1_16`
# Returns
Whether retransmission requests will be sent
<!-- trait RTSPMediaExt::fn get_dscp_qos -->
Get the configured DSCP QoS of attached media.
Feature: `v1_18`
# Returns
the DSCP QoS value of attached streams or -1 if disabled.
<!-- trait RTSPMediaExt::fn get_element -->
Get the element that was used when constructing `self`.
@ -817,6 +843,30 @@ the unit to use for the string
# Returns
The range as a string, `g_free` after usage.
<!-- trait RTSPMediaExt::fn get_rate_control -->
Feature: `v1_18`
# Returns
whether `self` will follow the Rate-Control=no behaviour as specified
in the ONVIF replay spec.
<!-- trait RTSPMediaExt::fn get_rates -->
Get the rate and applied_rate of the current segment.
Feature: `v1_18`
## `rate`
the rate of the current segment
## `applied_rate`
the applied_rate of the current segment
# Returns
`false` if looking up the rate and applied rate failed. Otherwise
`true` is returned and `rate` and `applied_rate` are set to the rate and
applied_rate of the current segment.
<!-- trait RTSPMediaExt::fn get_retransmission_time -->
Get the amount of time to store retransmission data.
@ -870,6 +920,15 @@ a `gst_sdp::SDPMessage`
# Returns
TRUE on success.
<!-- trait RTSPMediaExt::fn has_completed_sender -->
See `RTSPStreamExt::is_complete`, `RTSPStreamExt::is_sender`.
Feature: `v1_18`
# Returns
whether `self` has at least one complete sender stream.
<!-- trait RTSPMediaExt::fn is_bind_mcast_address -->
Check if multicast sockets are configured to be bound to multicast addresses.
@ -886,6 +945,14 @@ unpreparing.
# Returns
`true` if the media will send EOS before unpreparing.
<!-- trait RTSPMediaExt::fn is_receive_only -->
Feature: `v1_18`
# Returns
`true` if `self` is receive-only, `false` otherwise.
<!-- trait RTSPMediaExt::fn is_reusable -->
Check if the pipeline for `self` can be reused after an unprepare.
@ -914,6 +981,19 @@ Use `RTSPMediaExt::get_time_provider` to get the network clock.
# Returns
`true` if `self` can provide a `gst_net::NetTimeProvider`.
<!-- trait RTSPMediaExt::fn lock -->
Lock the entire media. This is needed by callers such as rtsp_client to
protect the media when it is shared by many clients.
The lock prevents that concurrent clients alters the shared media,
while one client already is working with it.
Typically the lock is taken in external RTSP API calls that uses shared media
such as DESCRIBE, SETUP, ANNOUNCE, TEARDOWN, PLAY, PAUSE.
As best practice take the lock as soon as the function get hold of a shared
media object. Release the lock right before the function returns.
Feature: `v1_18`
<!-- trait RTSPMediaExt::fn n_streams -->
Get the number of streams in this media.
@ -923,7 +1003,7 @@ The number of streams.
<!-- trait RTSPMediaExt::fn prepare -->
Prepare `self` for streaming. This function will create the objects
to manage the streaming. A pipeline must have been set on `self` with
`RTSPMediaExt::take_pipeline`.
`RTSPMedia::take_pipeline`.
It will preroll the pipeline and collect vital information about the streams
such as the duration.
@ -944,11 +1024,10 @@ a `gst_rtsp::RTSPTimeRange`
`true` on success.
<!-- trait RTSPMediaExt::fn seek_full -->
Seek the pipeline of `self` to `range`. `self` must be prepared with
`RTSPMediaExt::prepare`. In order to perform the seek operation,
the pipeline must contain all needed transport parts (transport sinks).
Seek the pipeline of `self` to `range` with the given `flags`.
`self` must be prepared with `RTSPMediaExt::prepare`.
Feature: `v1_14`
Feature: `v1_18`
## `range`
a `gst_rtsp::RTSPTimeRange`
@ -957,6 +1036,27 @@ The minimal set of `gst::SeekFlags` to use
# Returns
`true` on success.
<!-- trait RTSPMediaExt::fn seek_trickmode -->
Seek the pipeline of `self` to `range` with the given `flags` and `rate`,
and `trickmode_interval`.
`self` must be prepared with `RTSPMediaExt::prepare`.
In order to perform the seek operation, the pipeline must contain all
needed transport parts (transport sinks).
Feature: `v1_18`
## `range`
a `gst_rtsp::RTSPTimeRange`
## `flags`
The minimal set of `gst::SeekFlags` to use
## `rate`
the rate to use in the seek
## `trickmode_interval`
The trickmode interval to use for KEY_UNITS trick mode
# Returns
`true` on success.
<!-- trait RTSPMediaExt::fn seekable -->
Check if the pipeline for `self` seek and up to what point in time,
@ -995,6 +1095,13 @@ Set whether retransmission requests will be sent
Feature: `v1_16`
<!-- trait RTSPMediaExt::fn set_dscp_qos -->
Configure the dscp qos of attached streams to `dscp_qos`.
Feature: `v1_18`
## `dscp_qos`
a new dscp qos value (0-63, or -1 to disable)
<!-- trait RTSPMediaExt::fn set_eos_shutdown -->
Set or unset if an EOS event will be sent to the pipeline for `self` before
it is unprepared.
@ -1039,6 +1146,12 @@ the new flags
Sets if and how the media clock should be published according to RFC7273.
## `mode`
the clock publish mode
<!-- trait RTSPMediaExt::fn set_rate_control -->
Define whether `self` will follow the Rate-Control=no behaviour as specified
in the ONVIF replay spec.
Feature: `v1_18`
<!-- trait RTSPMediaExt::fn set_retransmission_time -->
Set the amount of time to store retransmission packets.
## `time`
@ -1109,6 +1222,11 @@ Set `pipeline` as the `gst::Pipeline` for `self`. Ownership is
taken of `pipeline`.
## `pipeline`
a `gst::Pipeline`
<!-- trait RTSPMediaExt::fn unlock -->
Unlock the media.
Feature: `v1_18`
<!-- trait RTSPMediaExt::fn unprepare -->
Unprepare `self`. After this call, the media should be prepared again before
it can be used again. If the media is set to be non-reusable, a new instance
@ -1134,7 +1252,7 @@ can contain multiple streams like audio and video.
# Implements
[`RTSPMediaFactoryExt`](trait.RTSPMediaFactoryExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
[`RTSPMediaFactoryExt`](trait.RTSPMediaFactoryExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`RTSPMediaFactoryExtManual`](prelude/trait.RTSPMediaFactoryExtManual.html)
<!-- trait RTSPMediaFactoryExt -->
Trait containing all `RTSPMediaFactory` methods.
@ -1219,6 +1337,15 @@ Feature: `v1_16`
# Returns
Whether retransmission requests will be sent for receiving media
<!-- trait RTSPMediaFactoryExt::fn get_dscp_qos -->
Get the configured media DSCP QoS.
Feature: `v1_18`
# Returns
the media DSCP QoS value or -1 if disabled.
<!-- trait RTSPMediaFactoryExt::fn get_latency -->
Get the latency that is used for receiving media
@ -1344,6 +1471,13 @@ receiving media
Feature: `v1_16`
<!-- trait RTSPMediaFactoryExt::fn set_dscp_qos -->
Configure the media dscp qos to `dscp_qos`.
Feature: `v1_18`
## `dscp_qos`
a new dscp qos value (0-63, or -1 to disable)
<!-- trait RTSPMediaFactoryExt::fn set_eos_shutdown -->
Configure if media created from this factory will have an EOS sent to the
pipeline before shutdown.
@ -1424,11 +1558,11 @@ Configure if this factory creates media for PLAY or RECORD modes.
## `mode`
the new value
<!-- struct RTSPMediaFactoryURI -->
A media factory that creates a pipeline to play and uri.
A media factory that creates a pipeline to play any uri.
# Implements
[`RTSPMediaFactoryURIExt`](trait.RTSPMediaFactoryURIExt.html), [`RTSPMediaFactoryExt`](trait.RTSPMediaFactoryExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
[`RTSPMediaFactoryURIExt`](trait.RTSPMediaFactoryURIExt.html), [`RTSPMediaFactoryExt`](trait.RTSPMediaFactoryExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`RTSPMediaFactoryExtManual`](prelude/trait.RTSPMediaFactoryExtManual.html)
<!-- trait RTSPMediaFactoryURIExt -->
Trait containing all `RTSPMediaFactoryURI` methods.
@ -1535,7 +1669,7 @@ it.
# Implements
[`RTSPServerExt`](trait.RTSPServerExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
[`RTSPServerExt`](trait.RTSPServerExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`RTSPServerExtManual`](prelude/trait.RTSPServerExtManual.html)
<!-- trait RTSPServerExt -->
Trait containing all `RTSPServer` methods.
@ -1657,6 +1791,15 @@ Get the port number where the server was bound to.
# Returns
the port number
<!-- trait RTSPServerExt::fn get_content_length_limit -->
Get the Content-Length limit of `self`.
Feature: `v1_18`
# Returns
the Content-Length limit.
<!-- trait RTSPServerExt::fn get_mount_points -->
Get the `RTSPMountPoints` used as the mount points of `self`.
@ -1701,6 +1844,12 @@ server.
This function must be called before the server is bound.
## `backlog`
the backlog
<!-- trait RTSPServerExt::fn set_content_length_limit -->
Define an appropriate request size limit and reject requests exceeding the
limit.
Feature: `v1_18`
<!-- trait RTSPServerExt::fn set_mount_points -->
configure `mounts` to be used as the mount points of `self`.
## `mounts`
@ -2012,7 +2161,7 @@ attached to a `RTSPServer` object to manage the sessions in that server.
# Implements
[`RTSPSessionPoolExt`](trait.RTSPSessionPoolExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
[`RTSPSessionPoolExt`](trait.RTSPSessionPoolExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`RTSPSessionPoolExtManual`](prelude/trait.RTSPSessionPoolExtManual.html)
<!-- trait RTSPSessionPoolExt -->
Trait containing all `RTSPSessionPool` methods.
@ -2052,8 +2201,7 @@ what happens to the session. `func` will be called with the session pool
locked so no further actions on `self` can be performed from `func`.
If `func` returns `RTSPFilterResult::Remove`, the session will be set to the
expired state with `gst_rtsp_session_set_expired` and removed from
`self`.
expired state and removed from `self`.
If `func` returns `RTSPFilterResult::Keep`, the session will remain in `self`.
@ -2113,7 +2261,7 @@ The definition of a media stream.
# Implements
[`RTSPStreamExt`](trait.RTSPStreamExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
[`RTSPStreamExt`](trait.RTSPStreamExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`RTSPStreamExtManual`](prelude/trait.RTSPStreamExtManual.html)
<!-- trait RTSPStreamExt -->
Trait containing all `RTSPStream` methods.
@ -2155,7 +2303,8 @@ socket family
`true` if `destination` can be addedd and handled by `self`.
<!-- trait RTSPStreamExt::fn add_transport -->
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`. Adding the
same transport twice will not add it a second time.
`self` must be joined to a bin.
@ -2209,7 +2358,7 @@ Retrieve the current caps of `self`.
# Returns
the `gst::Caps` of `self`.
use `gst_caps_unref` after usage.
use `gst::Caps::unref` after usage.
<!-- trait RTSPStreamExt::fn get_control -->
Get the control string to identify this stream.
@ -2301,6 +2450,28 @@ Gets if and how the stream clock should be published according to RFC7273.
# Returns
The GstRTSPPublishClockMode
<!-- trait RTSPStreamExt::fn get_rate_control -->
Feature: `v1_18`
# Returns
whether `self` will follow the Rate-Control=no behaviour as specified
in the ONVIF replay spec.
<!-- trait RTSPStreamExt::fn get_rates -->
Retrieve the current rate and/or applied_rate.
Feature: `v1_18`
## `rate`
the configured rate
## `applied_rate`
the configured applied_rate
# Returns
`true` if rate and/or applied_rate could be determined.
<!-- trait RTSPStreamExt::fn get_retransmission_pt -->
Get the payload-type used for retransmission of this stream
@ -2719,6 +2890,12 @@ a `gst::Caps`
Sets if and how the stream clock should be published according to RFC7273.
## `mode`
the clock publish mode
<!-- trait RTSPStreamExt::fn set_rate_control -->
Define whether `self` will follow the Rate-Control=no behaviour as specified
in the ONVIF replay spec.
Feature: `v1_18`
<!-- trait RTSPStreamExt::fn set_retransmission_pt -->
Set the payload type (pt) for retransmission of this stream.
## `rtx_pt`
@ -2792,7 +2969,7 @@ A Transport description for a stream
# Implements
[`RTSPStreamTransportExt`](trait.RTSPStreamTransportExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
[`RTSPStreamTransportExt`](trait.RTSPStreamTransportExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`RTSPStreamTransportExtManual`](prelude/trait.RTSPStreamTransportExtManual.html)
<!-- trait RTSPStreamTransportExt -->
Trait containing all `RTSPStreamTransport` methods.
@ -2849,7 +3026,7 @@ Check if `self` is timed out.
<!-- trait RTSPStreamTransportExt::fn keep_alive -->
Signal the installed keep_alive callback for `self`.
<!-- trait RTSPStreamTransportExt::fn message_sent -->
Signal the installed message_sent callback for `self`.
Signal the installed message_sent / message_sent_full callback for `self`.
Feature: `v1_16`
@ -2946,6 +3123,17 @@ user data passed to callbacks
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_message_sent_full -->
Install a callback that will be called when a message has been sent on `self`.
Feature: `v1_18`
## `message_sent`
a callback called when a message has been sent
## `user_data`
@ -2974,6 +3162,25 @@ Media is not suspended
Media is PAUSED in suspend
<!-- enum RTSPSuspendMode::variant Reset -->
The media is set to NULL when suspended
<!-- struct RTSPThread -->
Structure holding info about a mainloop running in a thread
<!-- impl RTSPThread::fn new -->
Create a new thread object that can run a mainloop.
## `type_`
the thread type
# Returns
a `RTSPThread`.
<!-- impl RTSPThread::fn reuse -->
Reuse the mainloop of `self`
# Returns
`true` if the mainloop could be reused
<!-- impl RTSPThread::fn stop -->
Stop and unref `self`. When no threads are using the mainloop, the thread
will be stopped and the final ref to `self` will be released.
<!-- struct RTSPThreadPool -->
The thread pool structure.

View file

@ -9,6 +9,8 @@ basic authentication
digest authentication
<!-- struct RTSPAuthParam -->
RTSP Authentication parameter
Feature: `v1_12`
<!-- enum RTSPFamily -->
The possible network families.
<!-- enum RTSPFamily::variant None -->
@ -50,7 +52,7 @@ Result codes from the RTSP functions.
<!-- enum RTSPResult::variant Ok -->
no error
<!-- enum RTSPResult::variant Error -->
some unspecified error occured
some unspecified error occurred
<!-- enum RTSPResult::variant Einval -->
invalid arguments were provided to a function
<!-- enum RTSPResult::variant Eintr -->
@ -58,13 +60,13 @@ an operation was canceled
<!-- enum RTSPResult::variant Enomem -->
no memory was available for the operation
<!-- enum RTSPResult::variant Eresolv -->
a host resolve error occured
a host resolve error occurred
<!-- enum RTSPResult::variant Enotimpl -->
function not implemented
<!-- enum RTSPResult::variant Esys -->
a system error occured, errno contains more details
a system error occurred, errno contains more details
<!-- enum RTSPResult::variant Eparse -->
a parsing error occured
a parsing error occurred
<!-- enum RTSPResult::variant Ewsastart -->
windows networking could not start
<!-- enum RTSPResult::variant Ewsaversion -->
@ -72,11 +74,11 @@ windows networking stack has wrong version
<!-- enum RTSPResult::variant Eeof -->
end-of-file was reached
<!-- enum RTSPResult::variant Enet -->
a network problem occured, h_errno contains more details
a network problem occurred, h_errno contains more details
<!-- enum RTSPResult::variant Enotip -->
the host is not an IP host
<!-- enum RTSPResult::variant Etimeout -->
a timeout occured
a timeout occurred
<!-- enum RTSPResult::variant Etget -->
the tunnel GET request has been performed
<!-- enum RTSPResult::variant Etpost -->
@ -152,6 +154,19 @@ Get a newly allocated string describing the request URI for `self`.
# Returns
a string with the request URI. `g_free` after usage.
<!-- impl RTSPUrl::fn get_request_uri_with_control -->
Get a newly allocated string describing the request URI for `self`
combined with the control path for `control_path`
Feature: `v1_18`
## `control_path`
an RTSP aggregate control path
# Returns
a string with the request URI combined with the control path.
`g_free` after usage.
<!-- impl RTSPUrl::fn set_port -->
Set the port number in `self` to `port`.
## `port`

View file

@ -1,4 +1,110 @@
<!-- file * -->
<!-- enum VideoAFDSpec -->
Enumeration of the different standards that may apply to AFD data:
0) ETSI/DVB:
https://www.etsi.org/deliver/etsi_ts/101100_101199/101154/02.01.01_60/ts_101154v020101p.pdf
1) ATSC A/53:
https://www.atsc.org/wp-content/uploads/2015/03/a_53-Part-4-2009.pdf
2) SMPTE ST2016-1:
<!-- enum VideoAFDSpec::variant DvbEtsi -->
AFD value is from DVB/ETSI standard
<!-- enum VideoAFDSpec::variant AtscA53 -->
AFD value is from ATSC A/53 standard
Feature: `v1_18`
<!-- enum VideoAFDValue -->
Enumeration of the various values for Active Format Description (AFD)
AFD should be included in video user data whenever the rectangular
picture area containing useful information does not extend to the full height or width of the coded
frame. AFD data may also be included in user data when the rectangular picture area containing
useful information extends to the full height and width of the coded frame.
For details, see Table 6.14 Active Format in:
ATSC Digital Television Standard:
Part 4 MPEG-2 Video System Characteristics
https://www.atsc.org/wp-content/uploads/2015/03/a_53-Part-4-2009.pdf
and Active Format Description in Complete list of AFD codes
https://en.wikipedia.org/wiki/Active_Format_Description`Complete_list_of_AFD_codes`
and SMPTE ST2016-1
Notes:
1) AFD 0 is undefined for ATSC and SMPTE ST2016-1, indicating that AFD data is not available:
If Bar Data is not present, AFD '0000' indicates that exact information
is not available and the active image should be assumed to be the same as the coded frame. AFD '0000'.
AFD '0000' accompanied by Bar Data signals that the active images aspect ratio is narrower than 16:9,
but is not 4:3 or 14:9. As the exact aspect ratio cannot be conveyed by AFD alone, wherever possible,
AFD 0000 should be accompanied by Bar Data to define the exact vertical or horizontal extent
of the active image.
2) AFD 0 is reserved for DVB/ETSI
3) values 1, 5, 6, 7, and 12 are reserved for both ATSC and DVB/ETSI
4) values 2 and 3 are not recommended for ATSC, but are valid for DVB/ETSI
<!-- enum VideoAFDValue::variant Unavailable -->
Unavailable (see note 0 below).
<!-- enum VideoAFDValue::variant 169TopAligned -->
For 4:3 coded frame, letterbox 16:9 image,
at top of the coded frame. For 16:9 coded frame, full frame 16:9 image,
the same as the coded frame.
<!-- enum VideoAFDValue::variant 149TopAligned -->
For 4:3 coded frame, letterbox 14:9 image,
at top of the coded frame. For 16:9 coded frame, pillarbox 14:9 image,
horizontally centered in the coded frame.
<!-- enum VideoAFDValue::variant GreaterThan169 -->
For 4:3 coded frame, letterbox image with an aspect ratio
greater than 16:9, vertically centered in the coded frame. For 16:9 coded frame,
letterbox image with an aspect ratio greater than 16:9.
<!-- enum VideoAFDValue::variant 43Full169Full -->
For 4:3 coded frame, full frame 4:3 image,
the same as the coded frame. For 16:9 coded frame, full frame 16:9 image, the same as
the coded frame.
<!-- enum VideoAFDValue::variant 43Full43Pillar -->
For 4:3 coded frame, full frame 4:3 image, the same as
the coded frame. For 16:9 coded frame, pillarbox 4:3 image, horizontally centered in the
coded frame.
<!-- enum VideoAFDValue::variant 169Letter169Full -->
For 4:3 coded frame, letterbox 16:9 image, vertically centered in
the coded frame with all image areas protected. For 16:9 coded frame, full frame 16:9 image,
with all image areas protected.
<!-- enum VideoAFDValue::variant 149Letter149Pillar -->
For 4:3 coded frame, letterbox 14:9 image, vertically centered in
the coded frame. For 16:9 coded frame, pillarbox 14:9 image, horizontally centered in the
coded frame.
<!-- enum VideoAFDValue::variant 43Full149Center -->
For 4:3 coded frame, full frame 4:3 image, with alternative 14:9
center. For 16:9 coded frame, pillarbox 4:3 image, with alternative 14:9 center.
<!-- enum VideoAFDValue::variant 169Letter149Center -->
For 4:3 coded frame, letterbox 16:9 image, with alternative 14:9
center. For 16:9 coded frame, full frame 16:9 image, with alternative 14:9 center.
<!-- enum VideoAFDValue::variant 169Letter43Center -->
For 4:3 coded frame, letterbox 16:9 image, with alternative 4:3
center. For 16:9 coded frame, full frame 16:9 image, with alternative 4:3 center.
Feature: `v1_18`
<!-- enum VideoAlphaMode -->
Different alpha modes.
<!-- enum VideoAlphaMode::variant Copy -->
When input and output have alpha, it will be copied.
When the input has no alpha, alpha will be set to
`GST_VIDEO_CONVERTER_OPT_ALPHA_VALUE`
<!-- enum VideoAlphaMode::variant Set -->
set all alpha to
`GST_VIDEO_CONVERTER_OPT_ALPHA_VALUE`
<!-- enum VideoAlphaMode::variant Mult -->
multiply all alpha with
`GST_VIDEO_CONVERTER_OPT_ALPHA_VALUE`.
When the input format has no alpha but the output format has, the
alpha value will be set to `GST_VIDEO_CONVERTER_OPT_ALPHA_VALUE`
<!-- struct VideoBufferPool -->
@ -44,6 +150,16 @@ CEA-708 (and optionally CEA-608) in
Feature: `v1_16`
<!-- enum VideoChromaMode -->
Different chroma downsampling and upsampling modes
<!-- enum VideoChromaMode::variant Full -->
do full chroma up and down sampling
<!-- enum VideoChromaMode::variant UpsampleOnly -->
only perform chroma upsampling
<!-- enum VideoChromaMode::variant DownsampleOnly -->
only perform chroma downsampling
<!-- enum VideoChromaMode::variant None -->
disable chroma resampling
<!-- struct VideoCodecFrame -->
A `VideoCodecFrame` represents a video frame both in raw and
encoded form.
@ -148,41 +264,6 @@ unknown range
<!-- enum VideoColorRange::variant 16235 -->
[16..235] for 8 bit components. Chroma has
[16..240] range.
<!-- struct VideoColorimetry -->
Structure describing the color info.
<!-- impl VideoColorimetry::fn from_string -->
Parse the colorimetry string and update `self` with the parsed
values.
## `color`
a colorimetry string
# Returns
`true` if `color` points to valid colorimetry info.
<!-- impl VideoColorimetry::fn is_equal -->
Compare the 2 colorimetry sets for equality
## `other`
another `VideoColorimetry`
# Returns
`true` if `self` and `other` are equal.
<!-- impl VideoColorimetry::fn matches -->
Check if the colorimetry information in `info` matches that of the
string `color`.
## `color`
a colorimetry string
# Returns
`true` if `color` conveys the same colorimetry info as the color
information in `info`.
<!-- impl VideoColorimetry::fn to_string -->
Make a string representation of `self`.
# Returns
a string representation of `self`.
<!-- struct VideoDecoder -->
This base class is for video decoders turning encoded data into raw video
frames.
@ -247,7 +328,7 @@ follows:
The 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 provide information about the ouptput caps, when they are known.
needs to provide information about the output caps, when they are known.
This may be when the base class calls the subclass' `set_format` function,
though it might be during decoding, before calling
`VideoDecoder::finish_frame`. This is done via
@ -290,7 +371,7 @@ The bare minimum that a functional subclass needs to implement is:
# Implements
[`VideoDecoderExt`](trait.VideoDecoderExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
[`VideoDecoderExt`](trait.VideoDecoderExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`VideoDecoderExtManual`](prelude/trait.VideoDecoderExtManual.html)
<!-- trait VideoDecoderExt -->
Trait containing all `VideoDecoder` methods.
@ -600,6 +681,34 @@ handler with `GST_PAD_SET_ACCEPT_INTERSECT` and
`GST_PAD_SET_ACCEPT_TEMPLATE`
## `use_`
if the default pad accept-caps query handling should be used
<!-- trait VideoDecoderExt::fn get_property_qos -->
If set to `true` the decoder will handle QoS events received
from downstream elements.
This includes dropping output frames which are detected as late
using the metrics reported by those events.
Feature: `v1_18`
<!-- trait VideoDecoderExt::fn set_property_qos -->
If set to `true` the decoder will handle QoS events received
from downstream elements.
This includes dropping output frames which are detected as late
using the metrics reported by those events.
Feature: `v1_18`
<!-- enum VideoDitherMethod -->
Different dithering methods to use.
<!-- enum VideoDitherMethod::variant None -->
no dithering
<!-- enum VideoDitherMethod::variant Verterr -->
propagate rounding errors downwards
<!-- enum VideoDitherMethod::variant FloydSteinberg -->
Dither with floyd-steinberg error diffusion
<!-- enum VideoDitherMethod::variant SierraLite -->
Dither with Sierra Lite error diffusion
<!-- enum VideoDitherMethod::variant Bayer -->
ordered dither using a bayer pattern
<!-- struct VideoEncoder -->
This base class is for video encoders turning raw video into
encoded video data.
@ -662,7 +771,7 @@ pipeline to catch up.
# Implements
[`VideoEncoderExt`](trait.VideoEncoderExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
[`VideoEncoderExt`](trait.VideoEncoderExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`VideoEncoderExtManual`](prelude/trait.VideoEncoderExtManual.html)
<!-- trait VideoEncoderExt -->
Trait containing all `VideoEncoder` methods.
@ -709,6 +818,25 @@ an encoded `VideoCodecFrame`
# Returns
a `gst::FlowReturn` resulting from sending data downstream
<!-- trait VideoEncoderExt::fn finish_subframe -->
If multiple subframes are produced for one input frame then use this method
for each subframe, except for the last one. Before calling this function,
you need to fill frame->output_buffer with the encoded buffer to push.
You must call `VideoEncoder::finish_frame`() for the last sub-frame
to tell the encoder that the frame has been fully encoded.
This function will change the metadata of `frame` and frame->output_buffer
will be pushed downstream.
Feature: `v1_18`
## `frame`
a `VideoCodecFrame` being encoded
# Returns
a `gst::FlowReturn` resulting from pushing the buffer downstream.
<!-- trait VideoEncoderExt::fn get_allocator -->
Lets `VideoEncoder` sub-classes to know the memory `allocator`
used by the base class and its `params`.
@ -830,7 +958,7 @@ maximum latency
Request minimal value for PTS passed to handle_frame.
For streams with reordered frames this can be used to ensure that there
is enough time to accomodate first DTS, which may be less than first PTS
is enough time to accommodate first DTS, which may be less than first PTS
## `min_pts`
minimal PTS that will be passed to handle_frame
<!-- trait VideoEncoderExt::fn set_output_state -->
@ -894,7 +1022,7 @@ to implement frame dropping.
<!-- enum VideoFormat -->
Enum value describing the most common video formats.
See the [GStreamer raw video format design document](https://gstreamer.freedesktop.org/documentation/design/mediatype-video-raw.html`formats`)
See the [GStreamer raw video format design document](https://gstreamer.freedesktop.org/documentation/additional/design/mediatype-video-raw.html`formats`)
for details about the layout and packing of these formats in memory.
<!-- enum VideoFormat::variant Unknown -->
Unknown or unset video format id
@ -1071,106 +1199,34 @@ packed 4:4:4 YUV, 10 bits per channel(A-V-Y-U...) (Since: 1.16)
packed 4:4:4 YUV with alpha channel (V0-U0-Y0-A0...) (Since: 1.16)
<!-- enum VideoFormat::variant Bgr10a2Le -->
packed 4:4:4 RGB with alpha channel(B-G-R-A), 10 bits for R/G/B channel and MSB 2 bits for alpha channel (Since: 1.16)
<!-- struct VideoFormatInfo -->
Information for a video format.
<!-- struct VideoFrame -->
A video frame obtained from `VideoFrame::map`
<!-- impl VideoFrame::fn copy -->
Copy the contents from `src` to `self`.
## `src`
a `VideoFrame`
# Returns
TRUE if the contents could be copied.
<!-- impl VideoFrame::fn copy_plane -->
Copy the plane with index `plane` from `src` to `self`.
## `src`
a `VideoFrame`
## `plane`
a plane
# Returns
TRUE if the contents could be copied.
<!-- impl VideoFrame::fn map -->
Use `info` and `buffer` to fill in the values of `self`. `self` is usually
allocated on the stack, and you will pass the address to the `VideoFrame`
structure allocated on the stack; `VideoFrame::map` will then fill in
the structures with the various video-specific information you need to access
the pixels of the video buffer. You can then use accessor macros such as
GST_VIDEO_FRAME_COMP_DATA(), GST_VIDEO_FRAME_PLANE_DATA(),
GST_VIDEO_FRAME_COMP_STRIDE(), GST_VIDEO_FRAME_PLANE_STRIDE() etc.
to get to the pixels.
```C
GstVideoFrame vframe;
...
// set RGB pixels to black one at a time
if (gst_video_frame_map (&amp;vframe, video_info, video_buffer, GST_MAP_WRITE)) {
guint8 *pixels = GST_VIDEO_FRAME_PLANE_DATA (vframe, 0);
guint stride = GST_VIDEO_FRAME_PLANE_STRIDE (vframe, 0);
guint pixel_stride = GST_VIDEO_FRAME_COMP_PSTRIDE (vframe, 0);
for (h = 0; h < height; ++h) {
for (w = 0; w < width; ++w) {
guint8 *pixel = pixels + h * stride + w * pixel_stride;
memset (pixel, 0, pixel_stride);
}
}
gst_video_frame_unmap (&amp;vframe);
}
...
```
All video planes of `buffer` will be mapped and the pointers will be set in
`self`->data.
The purpose of this function is to make it easy for you to get to the video
pixels in a generic way, without you having to worry too much about details
such as whether the video data is allocated in one contiguous memory chunk
or multiple memory chunks (e.g. one for each plane); or if custom strides
and custom plane offsets are used or not (as signalled by GstVideoMeta on
each buffer). This function will just fill the `VideoFrame` structure
with the right values and if you use the accessor macros everything will
just work and you can access the data easily. It also maps the underlying
memory chunks for you.
## `info`
a `VideoInfo`
## `buffer`
the buffer to map
## `flags`
`gst::MapFlags`
# Returns
`true` on success.
<!-- impl VideoFrame::fn map_id -->
Use `info` and `buffer` to fill in the values of `self` with the video frame
information of frame `id`.
When `id` is -1, the default frame is mapped. When `id` != -1, this function
will return `false` when there is no GstVideoMeta with that id.
All video planes of `buffer` will be mapped and the pointers will be set in
`self`->data.
## `info`
a `VideoInfo`
## `buffer`
the buffer to map
## `id`
the frame id to map
## `flags`
`gst::MapFlags`
# Returns
`true` on success.
<!-- impl VideoFrame::fn unmap -->
Unmap the memory previously mapped with gst_video_frame_map.
<!-- enum VideoFormat::variant Rgb10a2Le -->
packed 4:4:4 RGB with alpha channel(R-G-B-A), 10 bits for R/G/B channel and MSB 2 bits for alpha channel (Since: 1.18)
<!-- enum VideoFormat::variant Y44416be -->
planar 4:4:4 YUV, 16 bits per channel (Since: 1.18)
<!-- enum VideoFormat::variant Y44416le -->
planar 4:4:4 YUV, 16 bits per channel (Since: 1.18)
<!-- enum VideoFormat::variant P016Be -->
planar 4:2:0 YUV with interleaved UV plane, 16 bits per channel (Since: 1.18)
<!-- enum VideoFormat::variant P016Le -->
planar 4:2:0 YUV with interleaved UV plane, 16 bits per channel (Since: 1.18)
<!-- enum VideoFormat::variant P012Be -->
planar 4:2:0 YUV with interleaved UV plane, 12 bits per channel (Since: 1.18)
<!-- enum VideoFormat::variant P012Le -->
planar 4:2:0 YUV with interleaved UV plane, 12 bits per channel (Since: 1.18)
<!-- enum VideoFormat::variant Y212Be -->
packed 4:2:2 YUV, 12 bits per channel (Y-U-Y-V) (Since: 1.18)
<!-- enum VideoFormat::variant Y212Le -->
packed 4:2:2 YUV, 12 bits per channel (Y-U-Y-V) (Since: 1.18)
<!-- enum VideoFormat::variant Y412Be -->
packed 4:4:4:4 YUV, 12 bits per channel(U-Y-V-A...) (Since: 1.18)
<!-- enum VideoFormat::variant Y412Le -->
packed 4:4:4:4 YUV, 12 bits per channel(U-Y-V-A...) (Since: 1.18)
<!-- enum VideoGammaMode -->
<!-- enum VideoGammaMode::variant None -->
disable gamma handling
<!-- enum VideoGammaMode::variant Remap -->
convert between input and output gamma
Different gamma conversion modes
<!-- struct VideoInfo -->
Information describing image properties. This information can be filled
in from GstCaps with `VideoInfo::from_caps`. The information is also used
@ -1198,6 +1254,25 @@ alignment parameters
`false` if alignment could not be applied, e.g. because the
size of a frame can't be represented as a 32 bit integer (Since: 1.12)
<!-- impl VideoInfo::fn align_full -->
This variant of `VideoInfo::align` provides the updated size, in bytes,
of each video plane after the alignment, including all horizontal and vertical
paddings.
In case of GST_VIDEO_INTERLACE_MODE_ALTERNATE info, the returned sizes are the
ones used to hold a single field, not the full frame.
Feature: `v1_18`
## `align`
alignment parameters
## `plane_size`
array used to store the plane sizes
# Returns
`false` if alignment could not be applied, e.g. because the
size of a frame can't be represented as a 32 bit integer
<!-- impl VideoInfo::fn convert -->
Converts among various `gst::Format` types. This function handles
GST_FORMAT_BYTES, GST_FORMAT_TIME, and GST_FORMAT_DEFAULT. For
@ -1309,6 +1384,18 @@ frames contains both interlaced and
the buffer is carrying the top or bottom field, respectively. The top and
bottom buffers are expected to alternate in the pipeline, with this mode
(Since: 1.16).
<!-- enum VideoMatrixMode -->
Different color matrix conversion modes
<!-- enum VideoMatrixMode::variant Full -->
do conversion between color matrices
<!-- enum VideoMatrixMode::variant InputOnly -->
use the input color matrix to convert
to and from R'G'B
<!-- enum VideoMatrixMode::variant OutputOnly -->
use the output color matrix to convert
to and from R'G'B
<!-- enum VideoMatrixMode::variant None -->
disable color matrix conversion.
<!-- enum VideoMultiviewFramePacking -->
`VideoMultiviewFramePacking` represents the subset of `VideoMultiviewMode`
values that can be applied to any video frame without needing extra metadata.
@ -1462,7 +1549,7 @@ main (int argc, char **argv)
## Two basic usage scenarios
There are two basic usage scenarios: in the simplest case, the application
uses `playbin` or `plasink` or knows exactly what particular element is used
uses `playbin` or `playsink` or knows exactly what particular element is used
for video output, which is usually the case when the application creates
the videosink to use (e.g. `xvimagesink`, `ximagesink`, etc.) itself; in this
case, the application can just create the videosink element, create and
@ -1495,10 +1582,10 @@ prepare-window-handle message is handled, because most GUI toolkits and
windowing systems are not thread-safe at all and a lot of care would be
required to co-ordinate the toolkit and window system calls of the
different threads (Gtk+ users please note: prior to Gtk+ 2.18
GDK_WINDOW_XID() was just a simple structure access, so generally fine to do
`GDK_WINDOW_XID` was just a simple structure access, so generally fine to do
within the bus sync handler; this macro was changed to a function call in
Gtk+ 2.18 and later, which is likely to cause problems when called from a
sync handler; see below for a better approach without GDK_WINDOW_XID()
sync handler; see below for a better approach without `GDK_WINDOW_XID`
used in the callback).
## GstVideoOverlay and Gtk+
@ -1664,7 +1751,7 @@ int main(int argc, char *argv[])
# Implements
[`VideoOverlayExt`](trait.VideoOverlayExt.html)
[`VideoOverlayExt`](trait.VideoOverlayExt.html), [`VideoOverlayExtManual`](prelude/trait.VideoOverlayExtManual.html)
<!-- trait VideoOverlayExt -->
Trait containing all `VideoOverlay` methods.
@ -1757,6 +1844,63 @@ specific window (e.g. an XWindow on X11). Passing 0 as the `handle` will
tell the overlay to stop using that window and create an internal one.
## `handle`
a handle referencing the window.
<!-- enum VideoPrimariesMode -->
Different primaries conversion modes
<!-- enum VideoPrimariesMode::variant None -->
disable conversion between primaries
<!-- enum VideoPrimariesMode::variant MergeOnly -->
do conversion between primaries only
when it can be merged with color matrix conversion.
<!-- enum VideoPrimariesMode::variant Fast -->
fast conversion between primaries
<!-- enum VideoResamplerMethod -->
Different subsampling and upsampling methods
<!-- enum VideoResamplerMethod::variant Nearest -->
Duplicates the samples when
upsampling and drops when downsampling
<!-- enum VideoResamplerMethod::variant Linear -->
Uses linear interpolation to reconstruct
missing samples and averaging to downsample
<!-- enum VideoResamplerMethod::variant Cubic -->
Uses cubic interpolation
<!-- enum VideoResamplerMethod::variant Sinc -->
Uses sinc interpolation
<!-- enum VideoResamplerMethod::variant Lanczos -->
Uses lanczos interpolation
<!-- struct VideoSink -->
Provides useful functions and a base class for video sinks.
GstVideoSink will configure the default base sink to drop frames that
arrive later than 20ms as this is considered the default threshold for
observing out-of-sync frames.
# Implements
[`VideoSinkExt`](trait.VideoSinkExt.html), [`gst_base::BaseSinkExt`](../gst_base/trait.BaseSinkExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- trait VideoSinkExt -->
Trait containing all `VideoSink` methods.
# Implementors
[`VideoSink`](struct.VideoSink.html)
<!-- impl VideoSink::fn center_rect -->
Takes `src` rectangle and position it at the center of `dst` rectangle with or
without `scaling`. It handles clipping if the `src` rectangle is bigger than
the `dst` one and `scaling` is set to FALSE.
## `src`
the `VideoRectangle` describing the source area
## `dst`
the `VideoRectangle` describing the destination area
## `result`
a pointer to a `VideoRectangle` which will receive the result area
## `scaling`
a `gboolean` indicating if scaling should be applied or not
<!-- trait VideoSinkExt::fn get_property_show_preroll_frame -->
Whether to show video frames during preroll. If set to `false`, video
frames will only be rendered in PLAYING state.
<!-- trait VideoSinkExt::fn set_property_show_preroll_frame -->
Whether to show video frames during preroll. If set to `false`, video
frames will only be rendered in PLAYING state.
<!-- enum VideoTileMode -->
Enum value describing the available tiling modes.
<!-- enum VideoTileMode::variant Unknown -->
@ -2156,3 +2300,16 @@ Gamma 2.2 curve with a linear segment in the lower
component. Since: 1.6
<!-- enum VideoTransferFunction::variant Adobergb -->
Gamma 2.19921875. Since: 1.8
<!-- enum VideoTransferFunction::variant Bt202010 -->
Rec. ITU-R BT.2020-2 with 10 bits per component.
(functionally the same as the values
GST_VIDEO_TRANSFER_BT709 and GST_VIDEO_TRANSFER_BT2020_12).
Since: 1.18
<!-- enum VideoTransferFunction::variant Smpte2084 -->
SMPTE ST 2084 for 10, 12, 14, and 16-bit systems.
Known as perceptual quantization (PQ)
Since: 1.18
<!-- enum VideoTransferFunction::variant AribStdB67 -->
Association of Radio Industries and Businesses (ARIB)
STD-B67 and Rec. ITU-R BT.2100-1 hybrid loggamma (HLG) system
Since: 1.18

View file

@ -10,10 +10,14 @@ for more information.
Feature: `v1_16`
<!-- enum WebRTCDTLSSetup -->
GST_WEBRTC_DTLS_SETUP_NONE: none
GST_WEBRTC_DTLS_SETUP_ACTPASS: actpass
GST_WEBRTC_DTLS_SETUP_ACTIVE: sendonly
GST_WEBRTC_DTLS_SETUP_PASSIVE: recvonly
<!-- enum WebRTCDTLSSetup::variant None -->
none
<!-- enum WebRTCDTLSSetup::variant Actpass -->
actpass
<!-- enum WebRTCDTLSSetup::variant Active -->
sendonly
<!-- enum WebRTCDTLSSetup::variant Passive -->
recvonly
<!-- struct WebRTCDTLSTransport -->
@ -21,18 +25,103 @@ GST_WEBRTC_DTLS_SETUP_PASSIVE: recvonly
[`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- enum WebRTCDTLSTransportState -->
GST_WEBRTC_DTLS_TRANSPORT_STATE_NEW: new
GST_WEBRTC_DTLS_TRANSPORT_STATE_CLOSED: closed
GST_WEBRTC_DTLS_TRANSPORT_STATE_FAILED: failed
GST_WEBRTC_DTLS_TRANSPORT_STATE_CONNECTING: connecting
GST_WEBRTC_DTLS_TRANSPORT_STATE_CONNECTED: connected
<!-- enum WebRTCDTLSTransportState::variant New -->
new
<!-- enum WebRTCDTLSTransportState::variant Closed -->
closed
<!-- enum WebRTCDTLSTransportState::variant Failed -->
failed
<!-- enum WebRTCDTLSTransportState::variant Connecting -->
connecting
<!-- enum WebRTCDTLSTransportState::variant Connected -->
connected
<!-- struct WebRTCDataChannel -->
Feature: `v1_18`
# Implements
[`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- impl WebRTCDataChannel::fn close -->
Close the `self`.
Feature: `v1_18`
<!-- impl WebRTCDataChannel::fn on_buffered_amount_low -->
Signal that the data channel reached a low buffered amount. Should only be used by subclasses.
Feature: `v1_18`
<!-- impl WebRTCDataChannel::fn on_close -->
Signal that the data channel was closed. Should only be used by subclasses.
Feature: `v1_18`
<!-- impl WebRTCDataChannel::fn on_error -->
Signal that the data channel had an error. Should only be used by subclasses.
Feature: `v1_18`
## `error`
a `glib::Error`
<!-- impl WebRTCDataChannel::fn on_message_data -->
Signal that the data channel received a data message. Should only be used by subclasses.
Feature: `v1_18`
## `data`
a `glib::Bytes` or `None`
<!-- impl WebRTCDataChannel::fn on_message_string -->
Signal that the data channel received a string message. Should only be used by subclasses.
Feature: `v1_18`
## `str`
a string or `None`
<!-- impl WebRTCDataChannel::fn on_open -->
Signal that the data channel was opened. Should only be used by subclasses.
Feature: `v1_18`
<!-- impl WebRTCDataChannel::fn send_data -->
Send `data` as a data message over `self`.
Feature: `v1_18`
## `data`
a `glib::Bytes` or `None`
<!-- impl WebRTCDataChannel::fn send_string -->
Send `str` as a string message over `self`.
Feature: `v1_18`
## `str`
a string or `None`
<!-- impl WebRTCDataChannel::fn connect_close -->
Close the data channel
<!-- impl WebRTCDataChannel::fn connect_on_error -->
## `error`
the `glib::Error` thrown
<!-- impl WebRTCDataChannel::fn connect_on_message_data -->
## `data`
a `glib::Bytes` of the data received
<!-- impl WebRTCDataChannel::fn connect_on_message_string -->
## `data`
the data received as a string
<!-- impl WebRTCDataChannel::fn connect_send_data -->
## `data`
a `glib::Bytes` with the data
<!-- impl WebRTCDataChannel::fn connect_send_string -->
## `data`
the data to send as a string
<!-- enum WebRTCDataChannelState -->
GST_WEBRTC_DATA_CHANNEL_STATE_NEW: new
GST_WEBRTC_DATA_CHANNEL_STATE_CONNECTING: connection
GST_WEBRTC_DATA_CHANNEL_STATE_OPEN: open
GST_WEBRTC_DATA_CHANNEL_STATE_CLOSING: closing
GST_WEBRTC_DATA_CHANNEL_STATE_CLOSED: closed
See <ulink url="http://w3c.github.io/webrtc-pc/`dom`-rtcdatachannelstate">http://w3c.github.io/webrtc-pc/`dom`-rtcdatachannelstate`</ulink>`
See <http://w3c.github.io/webrtc-pc/`dom`-rtcdatachannelstate>
Feature: `v1_16`
@ -45,25 +134,39 @@ ulpfec + red
Feature: `v1_14_1`
<!-- enum WebRTCICEComponent -->
GST_WEBRTC_ICE_COMPONENT_RTP,
GST_WEBRTC_ICE_COMPONENT_RTCP,
<!-- enum WebRTCICEComponent::variant Rtp -->
RTP component
<!-- enum WebRTCICEComponent::variant Rtcp -->
RTCP component
<!-- enum WebRTCICEConnectionState -->
GST_WEBRTC_ICE_CONNECTION_STATE_NEW: new
GST_WEBRTC_ICE_CONNECTION_STATE_CHECKING: checking
GST_WEBRTC_ICE_CONNECTION_STATE_CONNECTED: connected
GST_WEBRTC_ICE_CONNECTION_STATE_COMPLETED: completed
GST_WEBRTC_ICE_CONNECTION_STATE_FAILED: failed
GST_WEBRTC_ICE_CONNECTION_STATE_DISCONNECTED: disconnected
GST_WEBRTC_ICE_CONNECTION_STATE_CLOSED: closed
See <ulink url="http://w3c.github.io/webrtc-pc/`dom`-rtciceconnectionstate">http://w3c.github.io/webrtc-pc/`dom`-rtciceconnectionstate`</ulink>`
See <http://w3c.github.io/webrtc-pc/`dom`-rtciceconnectionstate>
<!-- enum WebRTCICEConnectionState::variant New -->
new
<!-- enum WebRTCICEConnectionState::variant Checking -->
checking
<!-- enum WebRTCICEConnectionState::variant Connected -->
connected
<!-- enum WebRTCICEConnectionState::variant Completed -->
completed
<!-- enum WebRTCICEConnectionState::variant Failed -->
failed
<!-- enum WebRTCICEConnectionState::variant Disconnected -->
disconnected
<!-- enum WebRTCICEConnectionState::variant Closed -->
closed
<!-- enum WebRTCICEGatheringState -->
GST_WEBRTC_ICE_GATHERING_STATE_NEW: new
GST_WEBRTC_ICE_GATHERING_STATE_GATHERING: gathering
GST_WEBRTC_ICE_GATHERING_STATE_COMPLETE: complete
See <ulink url="http://w3c.github.io/webrtc-pc/`dom`-rtcicegatheringstate">http://w3c.github.io/webrtc-pc/`dom`-rtcicegatheringstate`</ulink>`
See <http://w3c.github.io/webrtc-pc/`dom`-rtcicegatheringstate>
<!-- enum WebRTCICEGatheringState::variant New -->
new
<!-- enum WebRTCICEGatheringState::variant Gathering -->
gathering
<!-- enum WebRTCICEGatheringState::variant Complete -->
complete
<!-- enum WebRTCICERole -->
GST_WEBRTC_ICE_ROLE_CONTROLLED: controlled
GST_WEBRTC_ICE_ROLE_CONTROLLING: controlling
<!-- enum WebRTCICERole::variant Controlled -->
controlled
<!-- enum WebRTCICERole::variant Controlling -->
controlling
<!-- struct WebRTCICETransport -->
@ -79,19 +182,25 @@ for more information.
Feature: `v1_16`
<!-- enum WebRTCPeerConnectionState -->
GST_WEBRTC_PEER_CONNECTION_STATE_NEW: new
GST_WEBRTC_PEER_CONNECTION_STATE_CONNECTING: connecting
GST_WEBRTC_PEER_CONNECTION_STATE_CONNECTED: connected
GST_WEBRTC_PEER_CONNECTION_STATE_DISCONNECTED: disconnected
GST_WEBRTC_PEER_CONNECTION_STATE_FAILED: failed
GST_WEBRTC_PEER_CONNECTION_STATE_CLOSED: closed
See <ulink url="http://w3c.github.io/webrtc-pc/`dom`-rtcpeerconnectionstate">http://w3c.github.io/webrtc-pc/`dom`-rtcpeerconnectionstate`</ulink>`
See <http://w3c.github.io/webrtc-pc/`dom`-rtcpeerconnectionstate>
<!-- enum WebRTCPeerConnectionState::variant New -->
new
<!-- enum WebRTCPeerConnectionState::variant Connecting -->
connecting
<!-- enum WebRTCPeerConnectionState::variant Connected -->
connected
<!-- enum WebRTCPeerConnectionState::variant Disconnected -->
disconnected
<!-- enum WebRTCPeerConnectionState::variant Failed -->
failed
<!-- enum WebRTCPeerConnectionState::variant Closed -->
closed
<!-- enum WebRTCPriorityType -->
GST_WEBRTC_PRIORITY_TYPE_VERY_LOW: very-low
GST_WEBRTC_PRIORITY_TYPE_LOW: low
GST_WEBRTC_PRIORITY_TYPE_MEDIUM: medium
GST_WEBRTC_PRIORITY_TYPE_HIGH: high
See <ulink url="http://w3c.github.io/webrtc-pc/`dom`-rtcprioritytype">http://w3c.github.io/webrtc-pc/`dom`-rtcprioritytype`</ulink>`
See <http://w3c.github.io/webrtc-pc/`dom`-rtcprioritytype>
Feature: `v1_16`
@ -113,24 +222,48 @@ Feature: `v1_16`
# Implements
[`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- impl WebRTCRTPTransceiver::fn get_property_direction -->
Direction of the transceiver.
Feature: `v1_18`
<!-- impl WebRTCRTPTransceiver::fn set_property_direction -->
Direction of the transceiver.
Feature: `v1_18`
<!-- enum WebRTCRTPTransceiverDirection -->
<!-- enum WebRTCRTPTransceiverDirection::variant None -->
none
<!-- enum WebRTCRTPTransceiverDirection::variant Inactive -->
inactive
<!-- enum WebRTCRTPTransceiverDirection::variant Sendonly -->
sendonly
<!-- enum WebRTCRTPTransceiverDirection::variant Recvonly -->
recvonly
<!-- enum WebRTCRTPTransceiverDirection::variant Sendrecv -->
sendrecv
<!-- enum WebRTCSCTPTransportState -->
GST_WEBRTC_SCTP_TRANSPORT_STATE_NEW: new
GST_WEBRTC_SCTP_TRANSPORT_STATE_CONNECTING: connecting
GST_WEBRTC_SCTP_TRANSPORT_STATE_CONNECTED: connected
GST_WEBRTC_SCTP_TRANSPORT_STATE_CLOSED: closed
See <ulink url="http://w3c.github.io/webrtc-pc/`dom`-rtcsctptransportstate">http://w3c.github.io/webrtc-pc/`dom`-rtcsctptransportstate`</ulink>`
See <http://w3c.github.io/webrtc-pc/`dom`-rtcsctptransportstate>
Feature: `v1_16`
<!-- enum WebRTCSDPType -->
GST_WEBRTC_SDP_TYPE_OFFER: offer
GST_WEBRTC_SDP_TYPE_PRANSWER: pranswer
GST_WEBRTC_SDP_TYPE_ANSWER: answer
GST_WEBRTC_SDP_TYPE_ROLLBACK: rollback
See <ulink url="http://w3c.github.io/webrtc-pc/`rtcsdptype`">http://w3c.github.io/webrtc-pc/`rtcsdptype``</ulink>`
See <http://w3c.github.io/webrtc-pc/`rtcsdptype`>
<!-- enum WebRTCSDPType::variant Offer -->
offer
<!-- enum WebRTCSDPType::variant Pranswer -->
pranswer
<!-- enum WebRTCSDPType::variant Answer -->
answer
<!-- enum WebRTCSDPType::variant Rollback -->
rollback
<!-- struct WebRTCSessionDescription -->
See <ulink url="https://www.w3.org/TR/webrtc/`rtcsessiondescription`-class">https://www.w3.org/TR/webrtc/`rtcsessiondescription`-class`</ulink>`
See <https://www.w3.org/TR/webrtc/`rtcsessiondescription`-class>
<!-- impl WebRTCSessionDescription::fn new -->
## `type_`
a `WebRTCSDPType`
@ -149,25 +282,45 @@ a new copy of `self`
<!-- impl WebRTCSessionDescription::fn free -->
Free `self` and all associated resources
<!-- enum WebRTCSignalingState -->
GST_WEBRTC_SIGNALING_STATE_STABLE: stable
GST_WEBRTC_SIGNALING_STATE_CLOSED: closed
GST_WEBRTC_SIGNALING_STATE_HAVE_LOCAL_OFFER: have-local-offer
GST_WEBRTC_SIGNALING_STATE_HAVE_REMOTE_OFFER: have-remote-offer
GST_WEBRTC_SIGNALING_STATE_HAVE_LOCAL_PRANSWER: have-local-pranswer
GST_WEBRTC_SIGNALING_STATE_HAVE_REMOTE_PRANSWER: have-remote-pranswer
See <ulink url="http://w3c.github.io/webrtc-pc/`dom`-rtcsignalingstate">http://w3c.github.io/webrtc-pc/`dom`-rtcsignalingstate`</ulink>`
See <http://w3c.github.io/webrtc-pc/`dom`-rtcsignalingstate>
<!-- enum WebRTCSignalingState::variant Stable -->
stable
<!-- enum WebRTCSignalingState::variant Closed -->
closed
<!-- enum WebRTCSignalingState::variant HaveLocalOffer -->
have-local-offer
<!-- enum WebRTCSignalingState::variant HaveRemoteOffer -->
have-remote-offer
<!-- enum WebRTCSignalingState::variant HaveLocalPranswer -->
have-local-pranswer
<!-- enum WebRTCSignalingState::variant HaveRemotePranswer -->
have-remote-pranswer
<!-- enum WebRTCStatsType -->
GST_WEBRTC_STATS_CODEC: codec
GST_WEBRTC_STATS_INBOUND_RTP: inbound-rtp
GST_WEBRTC_STATS_OUTBOUND_RTP: outbound-rtp
GST_WEBRTC_STATS_REMOTE_INBOUND_RTP: remote-inbound-rtp
GST_WEBRTC_STATS_REMOTE_OUTBOUND_RTP: remote-outbound-rtp
GST_WEBRTC_STATS_CSRC: csrc
GST_WEBRTC_STATS_PEER_CONNECTION: peer-connectiion
GST_WEBRTC_STATS_DATA_CHANNEL: data-channel
GST_WEBRTC_STATS_STREAM: stream
GST_WEBRTC_STATS_TRANSPORT: transport
GST_WEBRTC_STATS_CANDIDATE_PAIR: candidate-pair
GST_WEBRTC_STATS_LOCAL_CANDIDATE: local-candidate
GST_WEBRTC_STATS_REMOTE_CANDIDATE: remote-candidate
GST_WEBRTC_STATS_CERTIFICATE: certificate
<!-- enum WebRTCStatsType::variant Codec -->
codec
<!-- enum WebRTCStatsType::variant InboundRtp -->
inbound-rtp
<!-- enum WebRTCStatsType::variant OutboundRtp -->
outbound-rtp
<!-- enum WebRTCStatsType::variant RemoteInboundRtp -->
remote-inbound-rtp
<!-- enum WebRTCStatsType::variant RemoteOutboundRtp -->
remote-outbound-rtp
<!-- enum WebRTCStatsType::variant Csrc -->
csrc
<!-- enum WebRTCStatsType::variant PeerConnection -->
peer-connectiion
<!-- enum WebRTCStatsType::variant DataChannel -->
data-channel
<!-- enum WebRTCStatsType::variant Stream -->
stream
<!-- enum WebRTCStatsType::variant Transport -->
transport
<!-- enum WebRTCStatsType::variant CandidatePair -->
candidate-pair
<!-- enum WebRTCStatsType::variant LocalCandidate -->
local-candidate
<!-- enum WebRTCStatsType::variant RemoteCandidate -->
remote-candidate
<!-- enum WebRTCStatsType::variant Certificate -->
certificate

File diff suppressed because it is too large Load diff