mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs.git
synced 2024-12-23 00:26:31 +00:00
Update docs
This commit is contained in:
parent
165d85646f
commit
41e812d075
4 changed files with 382 additions and 78 deletions
|
@ -8,10 +8,10 @@ appsink can be used by linking to the gstappsink.h header file to access the
|
||||||
methods or by using the appsink action signals and properties.
|
methods or by using the appsink action signals and properties.
|
||||||
|
|
||||||
The normal way of retrieving samples from appsink is by using the
|
The normal way of retrieving samples from appsink is by using the
|
||||||
`AppSinkExt::pull_sample` and `AppSinkExt::pull_preroll` methods.
|
`AppSink::pull_sample` and `AppSink::pull_preroll` methods.
|
||||||
These methods block until a sample becomes available in the sink or when the
|
These methods block until a sample becomes available in the sink or when the
|
||||||
sink is shut down or reaches EOS. There are also timed variants of these
|
sink is shut down or reaches EOS. There are also timed variants of these
|
||||||
methods, `AppSinkExt::try_pull_sample` and `AppSinkExt::try_pull_preroll`,
|
methods, `AppSink::try_pull_sample` and `AppSink::try_pull_preroll`,
|
||||||
which accept a timeout parameter to limit the amount of time to wait.
|
which accept a timeout parameter to limit the amount of time to wait.
|
||||||
|
|
||||||
Appsink will internally use a queue to collect buffers from the streaming
|
Appsink will internally use a queue to collect buffers from the streaming
|
||||||
|
@ -32,21 +32,15 @@ the pulled samples can be obtained by getting the sample caps.
|
||||||
|
|
||||||
If one of the pull-preroll or pull-sample methods return `None`, the appsink
|
If one of the pull-preroll or pull-sample methods return `None`, the appsink
|
||||||
is stopped or in the EOS state. You can check for the EOS state with the
|
is stopped or in the EOS state. You can check for the EOS state with the
|
||||||
"eos" property or with the `AppSinkExt::is_eos` method.
|
"eos" property or with the `AppSink::is_eos` method.
|
||||||
|
|
||||||
The eos signal can also be used to be informed when the EOS state is reached
|
The eos signal can also be used to be informed when the EOS state is reached
|
||||||
to avoid polling.
|
to avoid polling.
|
||||||
|
|
||||||
# Implements
|
# Implements
|
||||||
|
|
||||||
[`AppSinkExt`](trait.AppSinkExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
[`ElementExt`](trait.ElementExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||||
<!-- trait AppSinkExt -->
|
<!-- impl AppSink::fn get_buffer_list_support -->
|
||||||
Trait containing all `AppSink` methods.
|
|
||||||
|
|
||||||
# Implementors
|
|
||||||
|
|
||||||
[`AppSink`](struct.AppSink.html)
|
|
||||||
<!-- trait AppSinkExt::fn get_buffer_list_support -->
|
|
||||||
Check if `self` supports buffer lists.
|
Check if `self` supports buffer lists.
|
||||||
|
|
||||||
Feature: `v1_12`
|
Feature: `v1_12`
|
||||||
|
@ -55,13 +49,13 @@ Feature: `v1_12`
|
||||||
# Returns
|
# Returns
|
||||||
|
|
||||||
`true` if `self` supports buffer lists.
|
`true` if `self` supports buffer lists.
|
||||||
<!-- trait AppSinkExt::fn get_caps -->
|
<!-- impl AppSink::fn get_caps -->
|
||||||
Get the configured caps on `self`.
|
Get the configured caps on `self`.
|
||||||
|
|
||||||
# Returns
|
# 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.
|
||||||
<!-- trait AppSinkExt::fn get_drop -->
|
<!-- impl AppSink::fn get_drop -->
|
||||||
Check if `self` will drop old buffers when the maximum amount of queued
|
Check if `self` will drop old buffers when the maximum amount of queued
|
||||||
buffers is reached.
|
buffers is reached.
|
||||||
|
|
||||||
|
@ -69,20 +63,20 @@ buffers is reached.
|
||||||
|
|
||||||
`true` if `self` is dropping old buffers when the queue is
|
`true` if `self` is dropping old buffers when the queue is
|
||||||
filled.
|
filled.
|
||||||
<!-- trait AppSinkExt::fn get_emit_signals -->
|
<!-- impl AppSink::fn get_emit_signals -->
|
||||||
Check if appsink will emit the "new-preroll" and "new-sample" signals.
|
Check if appsink will emit the "new-preroll" and "new-sample" signals.
|
||||||
|
|
||||||
# Returns
|
# Returns
|
||||||
|
|
||||||
`true` if `self` is emiting the "new-preroll" and "new-sample"
|
`true` if `self` is emiting the "new-preroll" and "new-sample"
|
||||||
signals.
|
signals.
|
||||||
<!-- trait AppSinkExt::fn get_max_buffers -->
|
<!-- impl AppSink::fn get_max_buffers -->
|
||||||
Get the maximum amount of buffers that can be queued in `self`.
|
Get the maximum amount of buffers that can be queued in `self`.
|
||||||
|
|
||||||
# Returns
|
# Returns
|
||||||
|
|
||||||
The maximum amount of buffers that can be queued.
|
The maximum amount of buffers that can be queued.
|
||||||
<!-- trait AppSinkExt::fn get_wait_on_eos -->
|
<!-- impl AppSink::fn get_wait_on_eos -->
|
||||||
Check if `self` will wait for all buffers to be consumed when an EOS is
|
Check if `self` will wait for all buffers to be consumed when an EOS is
|
||||||
received.
|
received.
|
||||||
|
|
||||||
|
@ -90,7 +84,7 @@ received.
|
||||||
|
|
||||||
`true` if `self` will wait for all buffers to be consumed when an
|
`true` if `self` will wait for all buffers to be consumed when an
|
||||||
EOS is received.
|
EOS is received.
|
||||||
<!-- trait AppSinkExt::fn is_eos -->
|
<!-- impl AppSink::fn is_eos -->
|
||||||
Check if `self` is EOS, which is when no more samples can be pulled because
|
Check if `self` is EOS, which is when no more samples can be pulled because
|
||||||
an EOS event was received.
|
an EOS event was received.
|
||||||
|
|
||||||
|
@ -100,7 +94,7 @@ PLAYING state.
|
||||||
# Returns
|
# Returns
|
||||||
|
|
||||||
`true` if no more samples can be pulled and the appsink is EOS.
|
`true` if no more samples can be pulled and the appsink is EOS.
|
||||||
<!-- trait AppSinkExt::fn pull_preroll -->
|
<!-- impl AppSink::fn pull_preroll -->
|
||||||
Get the last preroll sample in `self`. This was the sample that caused the
|
Get the last preroll sample in `self`. This was the sample that caused the
|
||||||
appsink to preroll in the PAUSED state. This sample can be pulled many times
|
appsink to preroll in the PAUSED state. This sample can be pulled many times
|
||||||
and remains available to the application even after EOS.
|
and remains available to the application even after EOS.
|
||||||
|
@ -110,7 +104,7 @@ state. Calling this function after doing a seek will give the sample right
|
||||||
after the seek position.
|
after the seek position.
|
||||||
|
|
||||||
Note that the preroll sample will also be returned as the first sample
|
Note that the preroll sample will also be returned as the first sample
|
||||||
when calling `AppSinkExt::pull_sample`.
|
when calling `AppSink::pull_sample`.
|
||||||
|
|
||||||
If an EOS event was received before any buffers, this function returns
|
If an EOS event was received before any buffers, this function returns
|
||||||
`None`. Use gst_app_sink_is_eos () to check for the EOS condition.
|
`None`. Use gst_app_sink_is_eos () to check for the EOS condition.
|
||||||
|
@ -122,7 +116,7 @@ element is set to the READY/NULL state.
|
||||||
|
|
||||||
a `gst::Sample` or NULL when the appsink is stopped or EOS.
|
a `gst::Sample` or NULL when the appsink is stopped or EOS.
|
||||||
Call `gst_sample_unref` after usage.
|
Call `gst_sample_unref` after usage.
|
||||||
<!-- trait AppSinkExt::fn pull_sample -->
|
<!-- impl AppSink::fn pull_sample -->
|
||||||
This function blocks until a sample or EOS becomes available or the appsink
|
This function blocks until a sample or EOS becomes available or the appsink
|
||||||
element is set to the READY/NULL state.
|
element is set to the READY/NULL state.
|
||||||
|
|
||||||
|
@ -139,7 +133,7 @@ If an EOS event was received before any buffers, this function returns
|
||||||
|
|
||||||
a `gst::Sample` or NULL when the appsink is stopped or EOS.
|
a `gst::Sample` or NULL when the appsink is stopped or EOS.
|
||||||
Call `gst_sample_unref` after usage.
|
Call `gst_sample_unref` after usage.
|
||||||
<!-- trait AppSinkExt::fn set_buffer_list_support -->
|
<!-- impl AppSink::fn set_buffer_list_support -->
|
||||||
Instruct `self` to enable or disable buffer list support.
|
Instruct `self` to enable or disable buffer list support.
|
||||||
|
|
||||||
For backwards-compatibility reasons applications need to opt in
|
For backwards-compatibility reasons applications need to opt in
|
||||||
|
@ -149,7 +143,7 @@ Feature: `v1_12`
|
||||||
|
|
||||||
## `enable_lists`
|
## `enable_lists`
|
||||||
enable or disable buffer list support
|
enable or disable buffer list support
|
||||||
<!-- trait AppSinkExt::fn set_callbacks -->
|
<!-- impl AppSink::fn set_callbacks -->
|
||||||
Set callbacks which will be executed for each new preroll, new sample and eos.
|
Set callbacks which will be executed for each new preroll, new sample and eos.
|
||||||
This is an alternative to using the signals, it has lower overhead and is thus
|
This is an alternative to using the signals, it has lower overhead and is thus
|
||||||
less expensive, but also less flexible.
|
less expensive, but also less flexible.
|
||||||
|
@ -162,35 +156,35 @@ the callbacks
|
||||||
a user_data argument for the callbacks
|
a user_data argument for the callbacks
|
||||||
## `notify`
|
## `notify`
|
||||||
a destroy notify function
|
a destroy notify function
|
||||||
<!-- trait AppSinkExt::fn set_caps -->
|
<!-- impl AppSink::fn set_caps -->
|
||||||
Set the capabilities on the appsink element. This function takes
|
Set the capabilities on the appsink element. This function takes
|
||||||
a copy of the caps structure. After calling this method, the sink will only
|
a copy of the caps structure. After calling this method, the sink will only
|
||||||
accept caps that match `caps`. If `caps` is non-fixed, or incomplete,
|
accept caps that match `caps`. If `caps` is non-fixed, or incomplete,
|
||||||
you must check the caps on the samples to get the actual used caps.
|
you must check the caps on the samples to get the actual used caps.
|
||||||
## `caps`
|
## `caps`
|
||||||
caps to set
|
caps to set
|
||||||
<!-- trait AppSinkExt::fn set_drop -->
|
<!-- impl AppSink::fn set_drop -->
|
||||||
Instruct `self` to drop old buffers when the maximum amount of queued
|
Instruct `self` to drop old buffers when the maximum amount of queued
|
||||||
buffers is reached.
|
buffers is reached.
|
||||||
## `drop`
|
## `drop`
|
||||||
the new state
|
the new state
|
||||||
<!-- trait AppSinkExt::fn set_emit_signals -->
|
<!-- impl AppSink::fn set_emit_signals -->
|
||||||
Make appsink emit the "new-preroll" and "new-sample" signals. This option is
|
Make appsink emit the "new-preroll" and "new-sample" signals. This option is
|
||||||
by default disabled because signal emission is expensive and unneeded when
|
by default disabled because signal emission is expensive and unneeded when
|
||||||
the application prefers to operate in pull mode.
|
the application prefers to operate in pull mode.
|
||||||
## `emit`
|
## `emit`
|
||||||
the new state
|
the new state
|
||||||
<!-- trait AppSinkExt::fn set_max_buffers -->
|
<!-- impl AppSink::fn set_max_buffers -->
|
||||||
Set the maximum amount of buffers that can be queued in `self`. After this
|
Set the maximum amount of buffers that can be queued in `self`. After this
|
||||||
amount of buffers are queued in appsink, any more buffers will block upstream
|
amount of buffers are queued in appsink, any more buffers will block upstream
|
||||||
elements until a sample is pulled from `self`.
|
elements until a sample is pulled from `self`.
|
||||||
## `max`
|
## `max`
|
||||||
the maximum number of buffers to queue
|
the maximum number of buffers to queue
|
||||||
<!-- trait AppSinkExt::fn set_wait_on_eos -->
|
<!-- impl AppSink::fn set_wait_on_eos -->
|
||||||
Instruct `self` to wait for all buffers to be consumed when an EOS is received.
|
Instruct `self` to wait for all buffers to be consumed when an EOS is received.
|
||||||
## `wait`
|
## `wait`
|
||||||
the new state
|
the new state
|
||||||
<!-- trait AppSinkExt::fn try_pull_preroll -->
|
<!-- impl AppSink::fn try_pull_preroll -->
|
||||||
Get the last preroll sample in `self`. This was the sample that caused the
|
Get the last preroll sample in `self`. This was the sample that caused the
|
||||||
appsink to preroll in the PAUSED state. This sample can be pulled many times
|
appsink to preroll in the PAUSED state. This sample can be pulled many times
|
||||||
and remains available to the application even after EOS.
|
and remains available to the application even after EOS.
|
||||||
|
@ -200,7 +194,7 @@ state. Calling this function after doing a seek will give the sample right
|
||||||
after the seek position.
|
after the seek position.
|
||||||
|
|
||||||
Note that the preroll sample will also be returned as the first sample
|
Note that the preroll sample will also be returned as the first sample
|
||||||
when calling `AppSinkExt::pull_sample`.
|
when calling `AppSink::pull_sample`.
|
||||||
|
|
||||||
If an EOS event was received before any buffers or the timeout expires,
|
If an EOS event was received before any buffers or the timeout expires,
|
||||||
this function returns `None`. Use gst_app_sink_is_eos () to check for the EOS
|
this function returns `None`. Use gst_app_sink_is_eos () to check for the EOS
|
||||||
|
@ -218,7 +212,7 @@ the maximum amount of time to wait for the preroll sample
|
||||||
|
|
||||||
a `gst::Sample` or NULL when the appsink is stopped or EOS or the timeout expires.
|
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.
|
||||||
<!-- trait AppSinkExt::fn try_pull_sample -->
|
<!-- impl AppSink::fn try_pull_sample -->
|
||||||
This function blocks until a sample or EOS becomes available or the appsink
|
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.
|
element is set to the READY/NULL state or the timeout expires.
|
||||||
|
|
||||||
|
@ -259,7 +253,7 @@ sample and sets them on the appsrc replacing any previously set caps (if
|
||||||
different from sample's caps).
|
different from sample's caps).
|
||||||
|
|
||||||
The main way of handing data to the appsrc element is by calling the
|
The main way of handing data to the appsrc element is by calling the
|
||||||
`AppSrcExt::push_buffer` method or by emitting the push-buffer action signal.
|
`AppSrc::push_buffer` method or by emitting the push-buffer action signal.
|
||||||
This will put the buffer onto a queue from which appsrc will read from in its
|
This will put the buffer onto a queue from which appsrc will read from in its
|
||||||
streaming thread. It is important to note that data transport will not happen
|
streaming thread. It is important to note that data transport will not happen
|
||||||
from the thread that performed the push-buffer call.
|
from the thread that performed the push-buffer call.
|
||||||
|
@ -303,20 +297,14 @@ For the stream and seekable modes, setting this property is optional but
|
||||||
recommended.
|
recommended.
|
||||||
|
|
||||||
When the application has finished pushing data into appsrc, it should call
|
When the application has finished pushing data into appsrc, it should call
|
||||||
`AppSrcExt::end_of_stream` or emit the end-of-stream action signal. After
|
`AppSrc::end_of_stream` or emit the end-of-stream action signal. After
|
||||||
this call, no more buffers can be pushed into appsrc until a flushing seek
|
this call, no more buffers can be pushed into appsrc until a flushing seek
|
||||||
occurs or the state of the appsrc has gone through READY.
|
occurs or the state of the appsrc has gone through READY.
|
||||||
|
|
||||||
# Implements
|
# Implements
|
||||||
|
|
||||||
[`AppSrcExt`](trait.AppSrcExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
[`ElementExt`](trait.ElementExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||||
<!-- trait AppSrcExt -->
|
<!-- impl AppSrc::fn end_of_stream -->
|
||||||
Trait containing all `AppSrc` methods.
|
|
||||||
|
|
||||||
# Implementors
|
|
||||||
|
|
||||||
[`AppSrc`](struct.AppSrc.html)
|
|
||||||
<!-- trait AppSrcExt::fn end_of_stream -->
|
|
||||||
Indicates to the appsrc element that the last buffer queued in the
|
Indicates to the appsrc element that the last buffer queued in the
|
||||||
element is the last buffer of the stream.
|
element is the last buffer of the stream.
|
||||||
|
|
||||||
|
@ -324,19 +312,19 @@ element is the last buffer of the stream.
|
||||||
|
|
||||||
`gst::FlowReturn::Ok` when the EOS was successfuly queued.
|
`gst::FlowReturn::Ok` when the EOS was successfuly queued.
|
||||||
`gst::FlowReturn::Flushing` when `self` is not PAUSED or PLAYING.
|
`gst::FlowReturn::Flushing` when `self` is not PAUSED or PLAYING.
|
||||||
<!-- trait AppSrcExt::fn get_caps -->
|
<!-- impl AppSrc::fn get_caps -->
|
||||||
Get the configured caps on `self`.
|
Get the configured caps on `self`.
|
||||||
|
|
||||||
# Returns
|
# 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.
|
||||||
<!-- trait AppSrcExt::fn get_current_level_bytes -->
|
<!-- impl AppSrc::fn get_current_level_bytes -->
|
||||||
Get the number of currently queued bytes inside `self`.
|
Get the number of currently queued bytes inside `self`.
|
||||||
|
|
||||||
# Returns
|
# Returns
|
||||||
|
|
||||||
The number of currently queued bytes.
|
The number of currently queued bytes.
|
||||||
<!-- trait AppSrcExt::fn get_duration -->
|
<!-- impl AppSrc::fn get_duration -->
|
||||||
Get the duration of the stream in nanoseconds. A value of GST_CLOCK_TIME_NONE means that the duration is
|
Get the duration of the stream in nanoseconds. A value of GST_CLOCK_TIME_NONE means that the duration is
|
||||||
not known.
|
not known.
|
||||||
|
|
||||||
|
@ -345,41 +333,41 @@ Feature: `v1_10`
|
||||||
|
|
||||||
# Returns
|
# Returns
|
||||||
|
|
||||||
the duration of the stream previously set with `AppSrcExt::set_duration`;
|
the duration of the stream previously set with `AppSrc::set_duration`;
|
||||||
<!-- trait AppSrcExt::fn get_emit_signals -->
|
<!-- impl AppSrc::fn get_emit_signals -->
|
||||||
Check if appsrc will emit the "new-preroll" and "new-buffer" signals.
|
Check if appsrc will emit the "new-preroll" and "new-buffer" signals.
|
||||||
|
|
||||||
# Returns
|
# Returns
|
||||||
|
|
||||||
`true` if `self` is emitting the "new-preroll" and "new-buffer"
|
`true` if `self` is emitting the "new-preroll" and "new-buffer"
|
||||||
signals.
|
signals.
|
||||||
<!-- trait AppSrcExt::fn get_latency -->
|
<!-- impl AppSrc::fn get_latency -->
|
||||||
Retrieve the min and max latencies in `min` and `max` respectively.
|
Retrieve the min and max latencies in `min` and `max` respectively.
|
||||||
## `min`
|
## `min`
|
||||||
the min latency
|
the min latency
|
||||||
## `max`
|
## `max`
|
||||||
the min latency
|
the min latency
|
||||||
<!-- trait AppSrcExt::fn get_max_bytes -->
|
<!-- impl AppSrc::fn get_max_bytes -->
|
||||||
Get the maximum amount of bytes that can be queued in `self`.
|
Get the maximum amount of bytes that can be queued in `self`.
|
||||||
|
|
||||||
# Returns
|
# Returns
|
||||||
|
|
||||||
The maximum amount of bytes that can be queued.
|
The maximum amount of bytes that can be queued.
|
||||||
<!-- trait AppSrcExt::fn get_size -->
|
<!-- impl AppSrc::fn get_size -->
|
||||||
Get the size of the stream in bytes. A value of -1 means that the size is
|
Get the size of the stream in bytes. A value of -1 means that the size is
|
||||||
not known.
|
not known.
|
||||||
|
|
||||||
# Returns
|
# Returns
|
||||||
|
|
||||||
the size of the stream previously set with `AppSrcExt::set_size`;
|
the size of the stream previously set with `AppSrc::set_size`;
|
||||||
<!-- trait AppSrcExt::fn get_stream_type -->
|
<!-- impl AppSrc::fn get_stream_type -->
|
||||||
Get the stream type. Control the stream type of `self`
|
Get the stream type. Control the stream type of `self`
|
||||||
with `AppSrcExt::set_stream_type`.
|
with `AppSrc::set_stream_type`.
|
||||||
|
|
||||||
# Returns
|
# Returns
|
||||||
|
|
||||||
the stream type.
|
the stream type.
|
||||||
<!-- trait AppSrcExt::fn push_buffer -->
|
<!-- impl AppSrc::fn push_buffer -->
|
||||||
Adds a buffer to the queue of buffers that the appsrc element will
|
Adds a buffer to the queue of buffers that the appsrc element will
|
||||||
push to its source pad. This function takes ownership of the buffer.
|
push to its source pad. This function takes ownership of the buffer.
|
||||||
|
|
||||||
|
@ -393,7 +381,7 @@ a `gst::Buffer` to push
|
||||||
`gst::FlowReturn::Ok` when the buffer was successfuly queued.
|
`gst::FlowReturn::Ok` when the buffer was successfuly queued.
|
||||||
`gst::FlowReturn::Flushing` when `self` is not PAUSED or PLAYING.
|
`gst::FlowReturn::Flushing` when `self` is not PAUSED or PLAYING.
|
||||||
`gst::FlowReturn::Eos` when EOS occured.
|
`gst::FlowReturn::Eos` when EOS occured.
|
||||||
<!-- trait AppSrcExt::fn push_sample -->
|
<!-- impl AppSrc::fn push_sample -->
|
||||||
Extract a buffer from the provided sample and adds it to the queue of
|
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
|
buffers that the appsrc element will push to its source pad. Any
|
||||||
previous caps that were set on appsrc will be replaced by the caps
|
previous caps that were set on appsrc will be replaced by the caps
|
||||||
|
@ -410,7 +398,7 @@ extracted
|
||||||
`gst::FlowReturn::Ok` when the buffer was successfuly queued.
|
`gst::FlowReturn::Ok` when the buffer was successfuly queued.
|
||||||
`gst::FlowReturn::Flushing` when `self` is not PAUSED or PLAYING.
|
`gst::FlowReturn::Flushing` when `self` is not PAUSED or PLAYING.
|
||||||
`gst::FlowReturn::Eos` when EOS occured.
|
`gst::FlowReturn::Eos` when EOS occured.
|
||||||
<!-- trait AppSrcExt::fn set_callbacks -->
|
<!-- impl AppSrc::fn set_callbacks -->
|
||||||
Set callbacks which will be executed when data is needed, enough data has
|
Set callbacks which will be executed when data is needed, enough data has
|
||||||
been collected or when a seek should be performed.
|
been collected or when a seek should be performed.
|
||||||
This is an alternative to using the signals, it has lower overhead and is thus
|
This is an alternative to using the signals, it has lower overhead and is thus
|
||||||
|
@ -424,14 +412,14 @@ the callbacks
|
||||||
a user_data argument for the callbacks
|
a user_data argument for the callbacks
|
||||||
## `notify`
|
## `notify`
|
||||||
a destroy notify function
|
a destroy notify function
|
||||||
<!-- trait AppSrcExt::fn set_caps -->
|
<!-- impl AppSrc::fn set_caps -->
|
||||||
Set the capabilities on the appsrc element. This function takes
|
Set the capabilities on the appsrc element. This function takes
|
||||||
a copy of the caps structure. After calling this method, the source will
|
a copy of the caps structure. After calling this method, the source will
|
||||||
only produce caps that match `caps`. `caps` must be fixed and the caps on the
|
only produce caps that match `caps`. `caps` must be fixed and the caps on the
|
||||||
buffers must match the caps or left NULL.
|
buffers must match the caps or left NULL.
|
||||||
## `caps`
|
## `caps`
|
||||||
caps to set
|
caps to set
|
||||||
<!-- trait AppSrcExt::fn set_duration -->
|
<!-- impl AppSrc::fn set_duration -->
|
||||||
Set the duration of the stream in nanoseconds. A value of GST_CLOCK_TIME_NONE means that the duration is
|
Set the duration of the stream in nanoseconds. A value of GST_CLOCK_TIME_NONE means that the duration is
|
||||||
not known.
|
not known.
|
||||||
|
|
||||||
|
@ -439,31 +427,31 @@ Feature: `v1_10`
|
||||||
|
|
||||||
## `duration`
|
## `duration`
|
||||||
the duration to set
|
the duration to set
|
||||||
<!-- trait AppSrcExt::fn set_emit_signals -->
|
<!-- impl AppSrc::fn set_emit_signals -->
|
||||||
Make appsrc emit the "new-preroll" and "new-buffer" signals. This option is
|
Make appsrc emit the "new-preroll" and "new-buffer" signals. This option is
|
||||||
by default disabled because signal emission is expensive and unneeded when
|
by default disabled because signal emission is expensive and unneeded when
|
||||||
the application prefers to operate in pull mode.
|
the application prefers to operate in pull mode.
|
||||||
## `emit`
|
## `emit`
|
||||||
the new state
|
the new state
|
||||||
<!-- trait AppSrcExt::fn set_latency -->
|
<!-- impl AppSrc::fn set_latency -->
|
||||||
Configure the `min` and `max` latency in `src`. If `min` is set to -1, the
|
Configure the `min` and `max` latency in `src`. If `min` is set to -1, the
|
||||||
default latency calculations for pseudo-live sources will be used.
|
default latency calculations for pseudo-live sources will be used.
|
||||||
## `min`
|
## `min`
|
||||||
the min latency
|
the min latency
|
||||||
## `max`
|
## `max`
|
||||||
the min latency
|
the min latency
|
||||||
<!-- trait AppSrcExt::fn set_max_bytes -->
|
<!-- impl AppSrc::fn set_max_bytes -->
|
||||||
Set the maximum amount of bytes that can be queued in `self`.
|
Set the maximum amount of bytes that can be queued in `self`.
|
||||||
After the maximum amount of bytes are queued, `self` will emit the
|
After the maximum amount of bytes are queued, `self` will emit the
|
||||||
"enough-data" signal.
|
"enough-data" signal.
|
||||||
## `max`
|
## `max`
|
||||||
the maximum number of bytes to queue
|
the maximum number of bytes to queue
|
||||||
<!-- trait AppSrcExt::fn set_size -->
|
<!-- impl AppSrc::fn set_size -->
|
||||||
Set the size of the stream in bytes. A value of -1 means that the size is
|
Set the size of the stream in bytes. A value of -1 means that the size is
|
||||||
not known.
|
not known.
|
||||||
## `size`
|
## `size`
|
||||||
the size to set
|
the size to set
|
||||||
<!-- trait AppSrcExt::fn set_stream_type -->
|
<!-- impl AppSrc::fn set_stream_type -->
|
||||||
Set the stream type on `self`. For seekable streams, the "seek" signal must
|
Set the stream type on `self`. For seekable streams, the "seek" signal must
|
||||||
be connected to.
|
be connected to.
|
||||||
|
|
||||||
|
|
|
@ -266,3 +266,73 @@ Layout of the audio samples for the different channels.
|
||||||
interleaved audio
|
interleaved audio
|
||||||
<!-- enum AudioLayout::variant NonInterleaved -->
|
<!-- enum AudioLayout::variant NonInterleaved -->
|
||||||
non-interleaved audio
|
non-interleaved audio
|
||||||
|
<!-- struct StreamVolume -->
|
||||||
|
This interface is implemented by elements that provide a stream volume. Examples for
|
||||||
|
such elements are `volume` and `playbin`.
|
||||||
|
|
||||||
|
Applications can use this interface to get or set the current stream volume. For this
|
||||||
|
the "volume" `gobject::Object` property can be used or the helper functions `StreamVolume::set_volume`
|
||||||
|
and `StreamVolume::get_volume`. This volume is always a linear factor, i.e. 0.0 is muted
|
||||||
|
1.0 is 100%. For showing the volume in a GUI it might make sense to convert it to
|
||||||
|
a different format by using `StreamVolume::convert_volume`. Volume sliders should usually
|
||||||
|
use a cubic volume.
|
||||||
|
|
||||||
|
Separate from the volume the stream can also be muted by the "mute" `gobject::Object` property or
|
||||||
|
`StreamVolume::set_mute` and `StreamVolume::get_mute`.
|
||||||
|
|
||||||
|
Elements that provide some kind of stream volume should implement the "volume" and
|
||||||
|
"mute" `gobject::Object` properties and handle setting and getting of them properly.
|
||||||
|
The volume property is defined to be a linear volume factor.
|
||||||
|
|
||||||
|
# Implements
|
||||||
|
|
||||||
|
[`StreamVolumeExt`](trait.StreamVolumeExt.html)
|
||||||
|
<!-- trait StreamVolumeExt -->
|
||||||
|
Trait containing all `StreamVolume` methods.
|
||||||
|
|
||||||
|
# Implementors
|
||||||
|
|
||||||
|
[`StreamVolume`](struct.StreamVolume.html)
|
||||||
|
<!-- impl StreamVolume::fn convert_volume -->
|
||||||
|
## `from`
|
||||||
|
`StreamVolumeFormat` to convert from
|
||||||
|
## `to`
|
||||||
|
`StreamVolumeFormat` to convert to
|
||||||
|
## `val`
|
||||||
|
Volume in `from` format that should be converted
|
||||||
|
|
||||||
|
# Returns
|
||||||
|
|
||||||
|
the converted volume
|
||||||
|
<!-- trait StreamVolumeExt::fn get_mute -->
|
||||||
|
|
||||||
|
# Returns
|
||||||
|
|
||||||
|
Returns `true` if the stream is muted
|
||||||
|
<!-- trait StreamVolumeExt::fn get_volume -->
|
||||||
|
## `format`
|
||||||
|
`StreamVolumeFormat` which should be returned
|
||||||
|
|
||||||
|
# Returns
|
||||||
|
|
||||||
|
The current stream volume as linear factor
|
||||||
|
<!-- trait StreamVolumeExt::fn set_mute -->
|
||||||
|
## `mute`
|
||||||
|
Mute state that should be set
|
||||||
|
<!-- trait StreamVolumeExt::fn set_volume -->
|
||||||
|
## `format`
|
||||||
|
`StreamVolumeFormat` of `val`
|
||||||
|
## `val`
|
||||||
|
Linear volume factor that should be set
|
||||||
|
<!-- enum StreamVolumeFormat -->
|
||||||
|
Different representations of a stream volume. `StreamVolume::convert_volume`
|
||||||
|
allows to convert between the different representations.
|
||||||
|
|
||||||
|
Formulas to convert from a linear to a cubic or dB volume are
|
||||||
|
cbrt(val) and 20 * log10 (val).
|
||||||
|
<!-- enum StreamVolumeFormat::variant Linear -->
|
||||||
|
Linear scale factor, 1.0 = 100%
|
||||||
|
<!-- enum StreamVolumeFormat::variant Cubic -->
|
||||||
|
Cubic volume scale
|
||||||
|
<!-- enum StreamVolumeFormat::variant Db -->
|
||||||
|
Logarithmic volume scale (dB, amplitude not power)
|
||||||
|
|
|
@ -113,9 +113,6 @@ If accurate seeking is disabled, elements will seek as close as the request
|
||||||
position without slowing down seeking too much.
|
position without slowing down seeking too much.
|
||||||
|
|
||||||
Accurate seeking is disabled by default.
|
Accurate seeking is disabled by default.
|
||||||
|
|
||||||
Feature: `v1_12`
|
|
||||||
|
|
||||||
## `accurate`
|
## `accurate`
|
||||||
accurate seek or not
|
accurate seek or not
|
||||||
<!-- impl Player::fn get_audio_video_offset -->
|
<!-- impl Player::fn get_audio_video_offset -->
|
||||||
|
@ -500,33 +497,21 @@ Application can use gst_sample_*`_` API's to get caps, buffer etc.
|
||||||
GstSample or NULL.
|
GstSample or NULL.
|
||||||
<!-- trait PlayerMediaInfoExt::fn get_number_of_audio_streams -->
|
<!-- trait PlayerMediaInfoExt::fn get_number_of_audio_streams -->
|
||||||
|
|
||||||
Feature: `v1_12`
|
|
||||||
|
|
||||||
|
|
||||||
# Returns
|
# Returns
|
||||||
|
|
||||||
number of audio streams.
|
number of audio streams.
|
||||||
<!-- trait PlayerMediaInfoExt::fn get_number_of_streams -->
|
<!-- trait PlayerMediaInfoExt::fn get_number_of_streams -->
|
||||||
|
|
||||||
Feature: `v1_12`
|
|
||||||
|
|
||||||
|
|
||||||
# Returns
|
# Returns
|
||||||
|
|
||||||
number of total streams.
|
number of total streams.
|
||||||
<!-- trait PlayerMediaInfoExt::fn get_number_of_subtitle_streams -->
|
<!-- trait PlayerMediaInfoExt::fn get_number_of_subtitle_streams -->
|
||||||
|
|
||||||
Feature: `v1_12`
|
|
||||||
|
|
||||||
|
|
||||||
# Returns
|
# Returns
|
||||||
|
|
||||||
number of subtitle streams.
|
number of subtitle streams.
|
||||||
<!-- trait PlayerMediaInfoExt::fn get_number_of_video_streams -->
|
<!-- trait PlayerMediaInfoExt::fn get_number_of_video_streams -->
|
||||||
|
|
||||||
Feature: `v1_12`
|
|
||||||
|
|
||||||
|
|
||||||
# Returns
|
# Returns
|
||||||
|
|
||||||
number of video streams.
|
number of video streams.
|
||||||
|
|
|
@ -2163,7 +2163,7 @@ Trait containing all `Clock` methods.
|
||||||
|
|
||||||
# Implementors
|
# Implementors
|
||||||
|
|
||||||
[`Clock`](struct.Clock.html)
|
[`Clock`](struct.Clock.html), [`SystemClock`](struct.SystemClock.html)
|
||||||
<!-- impl Clock::fn id_compare_func -->
|
<!-- impl Clock::fn id_compare_func -->
|
||||||
Compares the two `ClockID` instances. This function can be used
|
Compares the two `ClockID` instances. This function can be used
|
||||||
as a GCompareFunc when sorting ids.
|
as a GCompareFunc when sorting ids.
|
||||||
|
@ -2605,6 +2605,33 @@ timeout for waiting or `GST_CLOCK_TIME_NONE`
|
||||||
# Returns
|
# Returns
|
||||||
|
|
||||||
`true` if waiting was successful, or `false` on timeout
|
`true` if waiting was successful, or `false` on timeout
|
||||||
|
<!-- enum ClockReturn -->
|
||||||
|
The return value of a clock operation.
|
||||||
|
<!-- enum ClockReturn::variant Ok -->
|
||||||
|
The operation succeeded.
|
||||||
|
<!-- enum ClockReturn::variant Early -->
|
||||||
|
The operation was scheduled too late.
|
||||||
|
<!-- enum ClockReturn::variant Unscheduled -->
|
||||||
|
The clockID was unscheduled
|
||||||
|
<!-- enum ClockReturn::variant Busy -->
|
||||||
|
The ClockID is busy
|
||||||
|
<!-- enum ClockReturn::variant Badtime -->
|
||||||
|
A bad time was provided to a function.
|
||||||
|
<!-- enum ClockReturn::variant Error -->
|
||||||
|
An error occurred
|
||||||
|
<!-- enum ClockReturn::variant Unsupported -->
|
||||||
|
Operation is not supported
|
||||||
|
<!-- enum ClockReturn::variant Done -->
|
||||||
|
The ClockID is done waiting
|
||||||
|
<!-- enum ClockType -->
|
||||||
|
The different kind of clocks.
|
||||||
|
<!-- enum ClockType::variant Realtime -->
|
||||||
|
time since Epoch
|
||||||
|
<!-- enum ClockType::variant Monotonic -->
|
||||||
|
monotonic time since some unspecified starting
|
||||||
|
point
|
||||||
|
<!-- enum ClockType::variant Other -->
|
||||||
|
some other time source is used (Since 1.0.5)
|
||||||
<!-- struct Context -->
|
<!-- struct Context -->
|
||||||
`Context` is a container object used to store contexts like a device
|
`Context` is a container object used to store contexts like a device
|
||||||
context, a display server connection and similar concepts that should
|
context, a display server connection and similar concepts that should
|
||||||
|
@ -3550,7 +3577,7 @@ Trait containing all `Element` methods.
|
||||||
|
|
||||||
# Implementors
|
# Implementors
|
||||||
|
|
||||||
[`Bin`](struct.Bin.html), [`Element`](struct.Element.html), [`TagSetter`](struct.TagSetter.html)
|
[`Bin`](struct.Bin.html), [`Element`](struct.Element.html), [`TagSetter`](struct.TagSetter.html), [`TocSetter`](struct.TocSetter.html)
|
||||||
<!-- impl Element::fn make_from_uri -->
|
<!-- impl Element::fn make_from_uri -->
|
||||||
Creates an element for handling the given URI.
|
Creates an element for handling the given URI.
|
||||||
## `type_`
|
## `type_`
|
||||||
|
@ -10637,6 +10664,22 @@ Get the structure of a query. This method should be called with a writable
|
||||||
the `Structure` of the query. The structure is
|
the `Structure` of the query. The structure is
|
||||||
still owned by the query and will therefore be freed when the query
|
still owned by the query and will therefore be freed when the query
|
||||||
is unreffed.
|
is unreffed.
|
||||||
|
<!-- enum Rank -->
|
||||||
|
Element priority ranks. Defines the order in which the autoplugger (or
|
||||||
|
similar rank-picking mechanisms, such as e.g. `Element::make_from_uri`)
|
||||||
|
will choose this element over an alternative one with the same function.
|
||||||
|
|
||||||
|
These constants serve as a rough guidance for defining the rank of a
|
||||||
|
`PluginFeature`. Any value is valid, including values bigger than
|
||||||
|
`Rank::Primary`.
|
||||||
|
<!-- enum Rank::variant None -->
|
||||||
|
will be chosen last or not at all
|
||||||
|
<!-- enum Rank::variant Marginal -->
|
||||||
|
unlikely to be chosen
|
||||||
|
<!-- enum Rank::variant Secondary -->
|
||||||
|
likely to be chosen
|
||||||
|
<!-- enum Rank::variant Primary -->
|
||||||
|
will be chosen first
|
||||||
<!-- enum ResourceError -->
|
<!-- enum ResourceError -->
|
||||||
Resource errors are for any resource used by an element:
|
Resource errors are for any resource used by an element:
|
||||||
memory, files, network connections, process space, ...
|
memory, files, network connections, process space, ...
|
||||||
|
@ -12236,6 +12279,47 @@ The type of a `MessageType::StructureChange`.
|
||||||
Pad linking is starting or done.
|
Pad linking is starting or done.
|
||||||
<!-- enum StructureChangeType::variant Unlink -->
|
<!-- enum StructureChangeType::variant Unlink -->
|
||||||
Pad unlinking is starting or done.
|
Pad unlinking is starting or done.
|
||||||
|
<!-- struct SystemClock -->
|
||||||
|
The GStreamer core provides a GstSystemClock based on the system time.
|
||||||
|
Asynchronous callbacks are scheduled from an internal thread.
|
||||||
|
|
||||||
|
Clock implementors are encouraged to subclass this systemclock as it
|
||||||
|
implements the async notification.
|
||||||
|
|
||||||
|
Subclasses can however override all of the important methods for sync and
|
||||||
|
async notifications to implement their own callback methods or blocking
|
||||||
|
wait operations.
|
||||||
|
|
||||||
|
# Implements
|
||||||
|
|
||||||
|
[`SystemClockExt`](trait.SystemClockExt.html), [`ClockExt`](trait.ClockExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||||
|
<!-- trait SystemClockExt -->
|
||||||
|
Trait containing all `SystemClock` methods.
|
||||||
|
|
||||||
|
# Implementors
|
||||||
|
|
||||||
|
[`SystemClock`](struct.SystemClock.html)
|
||||||
|
<!-- impl SystemClock::fn obtain -->
|
||||||
|
Get a handle to the default system clock. The refcount of the
|
||||||
|
clock will be increased so you need to unref the clock after
|
||||||
|
usage.
|
||||||
|
|
||||||
|
# Returns
|
||||||
|
|
||||||
|
the default clock.
|
||||||
|
|
||||||
|
MT safe.
|
||||||
|
<!-- impl SystemClock::fn set_default -->
|
||||||
|
Sets the default system clock that can be obtained with
|
||||||
|
`SystemClock::obtain`.
|
||||||
|
|
||||||
|
This is mostly used for testing and debugging purposes when you
|
||||||
|
want to have control over the time reported by the default system
|
||||||
|
clock.
|
||||||
|
|
||||||
|
MT safe.
|
||||||
|
## `new_clock`
|
||||||
|
a `Clock`
|
||||||
<!-- struct TagList -->
|
<!-- struct TagList -->
|
||||||
List of tags and values used to describe media metadata.
|
List of tags and values used to describe media metadata.
|
||||||
|
|
||||||
|
@ -13007,6 +13091,183 @@ specified by this interface. The default is `TagMergeMode::Keep`, which keeps
|
||||||
the tags set with this interface and discards tags from events.
|
the tags set with this interface and discards tags from events.
|
||||||
## `mode`
|
## `mode`
|
||||||
The mode with which tags are added
|
The mode with which tags are added
|
||||||
|
<!-- struct Toc -->
|
||||||
|
`Toc` functions are used to create/free `Toc` and `TocEntry` structures.
|
||||||
|
Also they are used to convert `Toc` into `Structure` and vice versa.
|
||||||
|
|
||||||
|
`Toc` lets you to inform other elements in pipeline or application that playing
|
||||||
|
source has some kind of table of contents (TOC). These may be chapters, editions,
|
||||||
|
angles or other types. For example: DVD chapters, Matroska chapters or cue sheet
|
||||||
|
TOC. Such TOC will be useful for applications to display instead of just a
|
||||||
|
playlist.
|
||||||
|
|
||||||
|
Using TOC is very easy. Firstly, create `Toc` structure which represents root
|
||||||
|
contents of the source. You can also attach TOC-specific tags to it. Then fill
|
||||||
|
it with `TocEntry` entries by appending them to the `Toc` using
|
||||||
|
`Toc::append_entry`, and appending subentries to a `TocEntry` using
|
||||||
|
`TocEntry::append_sub_entry`.
|
||||||
|
|
||||||
|
Note that root level of the TOC can contain only either editions or chapters. You
|
||||||
|
should not mix them together at the same level. Otherwise you will get serialization
|
||||||
|
/deserialization errors. Make sure that no one of the entries has negative start and
|
||||||
|
stop values.
|
||||||
|
|
||||||
|
Use `Event::new_toc` to create a new TOC `Event`, and `Event::parse_toc` to
|
||||||
|
parse received TOC event. Use `Event::new_toc_select` to create a new TOC select `Event`,
|
||||||
|
and `Event::parse_toc_select` to parse received TOC select event. The same rule for
|
||||||
|
the `Message`: `Message::new_toc` to create new TOC `Message`, and
|
||||||
|
`Message::parse_toc` to parse received TOC message.
|
||||||
|
|
||||||
|
TOCs can have global scope or current scope. Global scope TOCs contain
|
||||||
|
all entries that can possibly be selected using a toc select event, and
|
||||||
|
are what an application is usually interested in. TOCs with current scope
|
||||||
|
only contain the parts of the TOC relevant to the currently selected/playing
|
||||||
|
stream; the current scope TOC is used by downstream elements such as muxers
|
||||||
|
to write correct TOC entries when transcoding files, for example. When
|
||||||
|
playing a DVD, the global TOC would contain a hierarchy of all titles,
|
||||||
|
chapters and angles, for example, while the current TOC would only contain
|
||||||
|
the chapters for the currently playing title if playback of a specific
|
||||||
|
title was requested.
|
||||||
|
|
||||||
|
Applications and plugins should not rely on TOCs having a certain kind of
|
||||||
|
structure, but should allow for different alternatives. For example, a
|
||||||
|
simple CUE sheet embedded in a file may be presented as a flat list of
|
||||||
|
track entries, or could have a top-level edition node (or some other
|
||||||
|
alternative type entry) with track entries underneath that node; or even
|
||||||
|
multiple top-level edition nodes (or some other alternative type entries)
|
||||||
|
each with track entries underneath, in case the source file has extracted
|
||||||
|
a track listing from different sources).
|
||||||
|
<!-- impl Toc::fn new -->
|
||||||
|
Create a new `Toc` structure.
|
||||||
|
## `scope`
|
||||||
|
scope of this TOC
|
||||||
|
|
||||||
|
# Returns
|
||||||
|
|
||||||
|
newly allocated `Toc` structure, free it
|
||||||
|
with `gst_toc_unref`.
|
||||||
|
<!-- impl Toc::fn append_entry -->
|
||||||
|
Appends the `TocEntry` `entry` to `self`.
|
||||||
|
## `entry`
|
||||||
|
A `TocEntry`
|
||||||
|
<!-- impl Toc::fn find_entry -->
|
||||||
|
Find `TocEntry` with given `uid` in the `self`.
|
||||||
|
## `uid`
|
||||||
|
UID to find `TocEntry` with.
|
||||||
|
|
||||||
|
# Returns
|
||||||
|
|
||||||
|
`TocEntry` with specified
|
||||||
|
`uid` from the `self`, or `None` if not found.
|
||||||
|
<!-- impl Toc::fn get_entries -->
|
||||||
|
Gets the list of `TocEntry` of `self`.
|
||||||
|
|
||||||
|
# Returns
|
||||||
|
|
||||||
|
A `glib::List` of `TocEntry` for `entry`
|
||||||
|
<!-- impl Toc::fn get_scope -->
|
||||||
|
|
||||||
|
# Returns
|
||||||
|
|
||||||
|
scope of `self`
|
||||||
|
<!-- impl Toc::fn get_tags -->
|
||||||
|
Gets the tags for `self`.
|
||||||
|
|
||||||
|
# Returns
|
||||||
|
|
||||||
|
A `TagList` for `entry`
|
||||||
|
<!-- impl Toc::fn merge_tags -->
|
||||||
|
Merge `tags` into the existing tags of `self` using `mode`.
|
||||||
|
## `tags`
|
||||||
|
A `TagList` or `None`
|
||||||
|
## `mode`
|
||||||
|
A `TagMergeMode`
|
||||||
|
<!-- impl Toc::fn set_tags -->
|
||||||
|
Set a `TagList` with tags for the complete `self`.
|
||||||
|
## `tags`
|
||||||
|
A `TagList` or `None`
|
||||||
|
<!-- enum TocEntryType -->
|
||||||
|
The different types of TOC entries (see `TocEntry`).
|
||||||
|
|
||||||
|
There are two types of TOC entries: alternatives or parts in a sequence.
|
||||||
|
<!-- enum TocEntryType::variant Angle -->
|
||||||
|
entry is an angle (i.e. an alternative)
|
||||||
|
<!-- enum TocEntryType::variant Version -->
|
||||||
|
entry is a version (i.e. alternative)
|
||||||
|
<!-- enum TocEntryType::variant Edition -->
|
||||||
|
entry is an edition (i.e. alternative)
|
||||||
|
<!-- enum TocEntryType::variant Invalid -->
|
||||||
|
invalid entry type value
|
||||||
|
<!-- enum TocEntryType::variant Title -->
|
||||||
|
entry is a title (i.e. a part of a sequence)
|
||||||
|
<!-- enum TocEntryType::variant Track -->
|
||||||
|
entry is a track (i.e. a part of a sequence)
|
||||||
|
<!-- enum TocEntryType::variant Chapter -->
|
||||||
|
entry is a chapter (i.e. a part of a sequence)
|
||||||
|
<!-- enum TocLoopType -->
|
||||||
|
How a `TocEntry` should be repeated. By default, entries are played a
|
||||||
|
single time.
|
||||||
|
<!-- enum TocLoopType::variant None -->
|
||||||
|
single forward playback
|
||||||
|
<!-- enum TocLoopType::variant Forward -->
|
||||||
|
repeat forward
|
||||||
|
<!-- enum TocLoopType::variant Reverse -->
|
||||||
|
repeat backward
|
||||||
|
<!-- enum TocLoopType::variant PingPong -->
|
||||||
|
repeat forward and backward
|
||||||
|
<!-- enum TocScope -->
|
||||||
|
The scope of a TOC.
|
||||||
|
<!-- enum TocScope::variant Global -->
|
||||||
|
global TOC representing all selectable options
|
||||||
|
(this is what applications are usually interested in)
|
||||||
|
<!-- enum TocScope::variant Current -->
|
||||||
|
TOC for the currently active/selected stream
|
||||||
|
(this is a TOC representing the current stream from start to EOS,
|
||||||
|
and is what a TOC writer / muxer is usually interested in; it will
|
||||||
|
usually be a subset of the global TOC, e.g. just the chapters of
|
||||||
|
the current title, or the chapters selected for playback from the
|
||||||
|
current title)
|
||||||
|
<!-- struct TocSetter -->
|
||||||
|
Element interface that allows setting of the TOC.
|
||||||
|
|
||||||
|
Elements that support some kind of chapters or editions (or tracks like in
|
||||||
|
the FLAC cue sheet) will implement this interface.
|
||||||
|
|
||||||
|
If you just want to retrieve the TOC in your application then all you
|
||||||
|
need to do is watch for TOC messages on your pipeline's bus (or you can
|
||||||
|
perform TOC query). This interface is only for setting TOC data, not for
|
||||||
|
extracting it. To set TOC from the application, find proper tocsetter element
|
||||||
|
and set TOC using `TocSetter::set_toc`.
|
||||||
|
|
||||||
|
Elements implementing the `TocSetter` interface can extend existing TOC
|
||||||
|
by getting extend UID for that (you can use `Toc::find_entry` to retrieve it)
|
||||||
|
with any TOC entries received from downstream.
|
||||||
|
|
||||||
|
# Implements
|
||||||
|
|
||||||
|
[`TocSetterExt`](trait.TocSetterExt.html), [`ElementExt`](trait.ElementExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||||
|
<!-- trait TocSetterExt -->
|
||||||
|
Trait containing all `TocSetter` methods.
|
||||||
|
|
||||||
|
# Implementors
|
||||||
|
|
||||||
|
[`TocSetter`](struct.TocSetter.html)
|
||||||
|
<!-- trait TocSetterExt::fn get_toc -->
|
||||||
|
Return current TOC the setter uses. The TOC should not be
|
||||||
|
modified without making it writable first.
|
||||||
|
|
||||||
|
# Returns
|
||||||
|
|
||||||
|
TOC set, or `None`. Unref with
|
||||||
|
`gst_toc_unref` when no longer needed
|
||||||
|
<!-- trait TocSetterExt::fn reset -->
|
||||||
|
Reset the internal TOC. Elements should call this from within the
|
||||||
|
state-change handler.
|
||||||
|
<!-- trait TocSetterExt::fn set_toc -->
|
||||||
|
Set the given TOC on the setter. Previously set TOC will be
|
||||||
|
unreffed before setting a new one.
|
||||||
|
## `toc`
|
||||||
|
a `Toc` to set.
|
||||||
<!-- enum URIError -->
|
<!-- enum URIError -->
|
||||||
Different URI-related errors that can occur.
|
Different URI-related errors that can occur.
|
||||||
<!-- enum URIError::variant UnsupportedProtocol -->
|
<!-- enum URIError::variant UnsupportedProtocol -->
|
||||||
|
|
Loading…
Reference in a new issue