gstreamer-rs/docs/gstreamer-pbutils/docs.md

945 lines
29 KiB
Markdown
Raw Normal View History

<!-- file * -->
2019-02-22 10:13:16 +00:00
<!-- struct Discoverer -->
The `Discoverer` is a utility object which allows to get as much
information as possible from one or many URIs.
2019-02-22 10:13:16 +00:00
It provides two APIs, allowing usage in blocking or non-blocking mode.
2019-02-22 10:13:16 +00:00
The blocking mode just requires calling `Discoverer::discover_uri`
with the URI one wishes to discover.
2019-02-22 10:13:16 +00:00
The non-blocking mode requires a running `glib::MainLoop` iterating a
`glib::MainContext`, where one connects to the various signals, appends the
URIs to be processed (through `Discoverer::discover_uri_async`) and then
asks for the discovery to begin (through `Discoverer::start`).
By default this will use the GLib default main context unless you have
set a custom context using `glib::MainContext::push_thread_default`.
2019-02-22 10:13:16 +00:00
All the information is returned in a `DiscovererInfo` structure.
2019-02-22 10:13:16 +00:00
# Implements
2019-02-22 10:13:16 +00:00
[`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- impl Discoverer::fn new -->
Creates a new `Discoverer` with the provided timeout.
## `timeout`
timeout per file, in nanoseconds. Allowed are values between
one second (`GST_SECOND`) and one hour (3600 * `GST_SECOND`)
# Returns
2019-02-22 10:13:16 +00:00
The new `Discoverer`.
If an error occurred when creating the discoverer, `err` will be set
accordingly and `None` will be returned. If `err` is set, the caller must
free it when no longer needed using `glib::Error::free`.
<!-- impl Discoverer::fn discover_uri -->
Synchronously discovers the given `uri`.
2019-02-22 10:13:16 +00:00
A copy of `uri` will be made internally, so the caller can safely `g_free`
afterwards.
## `uri`
The URI to run on.
# Returns
2019-02-22 10:13:16 +00:00
the result of the scanning. Can be `None` if an
error occurred.
<!-- impl Discoverer::fn discover_uri_async -->
Appends the given `uri` to the list of URIs to discoverer. The actual
discovery of the `uri` will only take place if `Discoverer::start` has
been called.
2019-02-22 10:13:16 +00:00
A copy of `uri` will be made internally, so the caller can safely `g_free`
afterwards.
## `uri`
the URI to add.
2018-11-26 14:57:25 +00:00
# Returns
2019-02-22 10:13:16 +00:00
`true` if the `uri` was successfully appended to the list of pending
uris, else `false`
<!-- impl Discoverer::fn start -->
Allow asynchronous discovering of URIs to take place.
A `glib::MainLoop` must be available for `Discoverer` to properly work in
asynchronous mode.
<!-- impl Discoverer::fn stop -->
Stop the discovery of any pending URIs and clears the list of
pending URIS (if any).
2019-12-18 14:52:00 +00:00
<!-- impl Discoverer::fn connect_discovered -->
2019-02-22 10:13:16 +00:00
Will be emitted in async mode when all information on a URI could be
discovered, or an error occurred.
2019-02-22 10:13:16 +00:00
When an error occurs, `info` might still contain some partial information,
depending on the circumstances of the error.
2018-11-26 14:57:25 +00:00
## `info`
2019-02-22 10:13:16 +00:00
the results `DiscovererInfo`
## `error`
`glib::Error`, which will be non-NULL
if an error occurred during
discovery. You must not free
this `glib::Error`, it will be freed by
the discoverer.
2019-12-18 14:52:00 +00:00
<!-- impl Discoverer::fn connect_finished -->
2019-02-22 10:13:16 +00:00
Will be emitted in async mode when all pending URIs have been processed.
2019-12-18 14:52:00 +00:00
<!-- impl Discoverer::fn connect_source_setup -->
2019-02-22 10:13:16 +00:00
This signal is emitted after the source element has been created for, so
the URI being discovered, so it can be configured by setting additional
properties (e.g. set a proxy server for an http source, or set the device
and read speed for an audio cd source).
This signal is usually emitted from the context of a GStreamer streaming
thread.
## `source`
source element
2019-12-18 14:52:00 +00:00
<!-- impl Discoverer::fn connect_starting -->
2019-02-22 10:13:16 +00:00
Will be emitted when the discover starts analyzing the pending URIs
2019-12-18 14:52:00 +00:00
<!-- impl Discoverer::fn get_property_timeout -->
2019-02-22 10:13:16 +00:00
The duration (in nanoseconds) after which the discovery of an individual
URI will timeout.
If the discovery of a URI times out, the `DiscovererResult::Timeout` will be
set on the result flags.
2019-12-18 14:52:00 +00:00
<!-- impl Discoverer::fn set_property_timeout -->
2019-02-22 10:13:16 +00:00
The duration (in nanoseconds) after which the discovery of an individual
URI will timeout.
If the discovery of a URI times out, the `DiscovererResult::Timeout` will be
set on the result flags.
<!-- struct DiscovererAudioInfo -->
`DiscovererStreamInfo` specific to audio streams.
2018-03-20 10:36:29 +00:00
2019-02-22 10:13:16 +00:00
# Implements
2018-03-20 10:36:29 +00:00
2019-02-22 10:13:16 +00:00
[`DiscovererStreamInfoExt`](trait.DiscovererStreamInfoExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- impl DiscovererAudioInfo::fn get_bitrate -->
2018-03-20 10:36:29 +00:00
# Returns
2019-02-22 10:13:16 +00:00
the average or nominal bitrate of the stream in bits/second.
<!-- impl DiscovererAudioInfo::fn get_channel_mask -->
Feature: `v1_14`
2018-11-26 14:57:25 +00:00
# Returns
2019-02-22 10:13:16 +00:00
the channel-mask of the stream, refer to
`gst_audio_channel_positions_from_mask` for more
information.
<!-- impl DiscovererAudioInfo::fn get_channels -->
# Returns
2018-11-26 14:57:25 +00:00
2019-02-22 10:13:16 +00:00
the number of channels in the stream.
<!-- impl DiscovererAudioInfo::fn get_depth -->
# Returns
2019-02-22 10:13:16 +00:00
the number of bits used per sample in each channel.
<!-- impl DiscovererAudioInfo::fn get_language -->
# Returns
2019-02-22 10:13:16 +00:00
the language of the stream, or NULL if unknown.
<!-- impl DiscovererAudioInfo::fn get_max_bitrate -->
2018-11-26 14:57:25 +00:00
2019-02-22 10:13:16 +00:00
# Returns
the maximum bitrate of the stream in bits/second.
<!-- impl DiscovererAudioInfo::fn get_sample_rate -->
# Returns
2019-02-22 10:13:16 +00:00
the sample rate of the stream in Hertz.
<!-- struct DiscovererContainerInfo -->
`DiscovererStreamInfo` specific to container streams.
2018-11-26 14:57:25 +00:00
2019-02-22 10:13:16 +00:00
# Implements
[`DiscovererStreamInfoExt`](trait.DiscovererStreamInfoExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- impl DiscovererContainerInfo::fn get_streams -->
# Returns
2019-02-22 10:13:16 +00:00
the list of
`DiscovererStreamInfo` this container stream offers.
Free with `DiscovererStreamInfo::list_free` after usage.
<!-- struct DiscovererInfo -->
Structure containing the information of a URI analyzed by `Discoverer`.
# Implements
2019-02-22 10:13:16 +00:00
[`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- impl DiscovererInfo::fn from_variant -->
Parses a `glib::Variant` as produced by `DiscovererInfo::to_variant`
back to a `DiscovererInfo`.
## `variant`
A `glib::Variant` to deserialize into a `DiscovererInfo`.
2018-11-26 14:57:25 +00:00
# Returns
2019-02-22 10:13:16 +00:00
A newly-allocated `DiscovererInfo`.
<!-- impl DiscovererInfo::fn copy -->
2019-02-22 10:13:16 +00:00
# Returns
A copy of the `DiscovererInfo`
<!-- impl DiscovererInfo::fn get_audio_streams -->
Finds all the `DiscovererAudioInfo` contained in `self`
# Returns
2019-02-22 10:13:16 +00:00
A `glib::List` of
matching `DiscovererStreamInfo`. The caller should free it with
`DiscovererStreamInfo::list_free`.
<!-- impl DiscovererInfo::fn get_container_streams -->
Finds all the `DiscovererContainerInfo` contained in `self`
2018-11-26 14:57:25 +00:00
# Returns
2019-02-22 10:13:16 +00:00
A `glib::List` of
matching `DiscovererStreamInfo`. The caller should free it with
`DiscovererStreamInfo::list_free`.
<!-- impl DiscovererInfo::fn get_duration -->
2018-11-26 14:57:25 +00:00
# Returns
2019-02-22 10:13:16 +00:00
the duration of the URI in `gst::ClockTime` (nanoseconds).
<!-- impl DiscovererInfo::fn get_live -->
Feature: `v1_14`
# Returns
2019-02-22 10:13:16 +00:00
whether the URI is live.
<!-- impl DiscovererInfo::fn get_misc -->
2019-02-22 10:13:16 +00:00
# Deprecated
2019-02-22 10:13:16 +00:00
This functions is deprecated since version 1.4, use
`DiscovererInfo::get_missing_elements_installer_details`
# Returns
2019-02-22 10:13:16 +00:00
Miscellaneous information stored as a `gst::Structure`
(for example: information about missing plugins). If you wish to use the
`gst::Structure` after the life-time of `self`, you will need to copy it.
<!-- impl DiscovererInfo::fn get_missing_elements_installer_details -->
Get the installer details for missing elements
# Returns
2019-02-22 10:13:16 +00:00
An array of strings
2020-06-19 09:49:13 +00:00
containing information about how to install the various missing elements
2019-02-22 10:13:16 +00:00
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 -->
# Returns
2019-02-22 10:13:16 +00:00
the result of the discovery as a `DiscovererResult`.
<!-- impl DiscovererInfo::fn get_seekable -->
2018-03-20 10:36:29 +00:00
2018-11-26 14:57:25 +00:00
# Returns
2018-03-20 10:36:29 +00:00
2019-02-22 10:13:16 +00:00
the whether the URI is seekable.
<!-- impl DiscovererInfo::fn get_stream_info -->
2018-03-20 10:36:29 +00:00
# Returns
2019-02-22 10:13:16 +00:00
the structure (or topology) of the URI as a
`DiscovererStreamInfo`.
This structure can be traversed to see the original hierarchy. Unref with
`gst_discoverer_stream_info_unref` after usage.
<!-- impl DiscovererInfo::fn get_stream_list -->
2018-11-26 14:57:25 +00:00
# Returns
2019-02-22 10:13:16 +00:00
the list of
all streams contained in the `info`. Free after usage
with `DiscovererStreamInfo::list_free`.
<!-- impl DiscovererInfo::fn get_streams -->
Finds the `DiscovererStreamInfo` contained in `self` that match the
given `streamtype`.
## `streamtype`
a `glib::Type` derived from `DiscovererStreamInfo`
# Returns
2019-02-22 10:13:16 +00:00
A `glib::List` of
matching `DiscovererStreamInfo`. The caller should free it with
`DiscovererStreamInfo::list_free`.
<!-- impl DiscovererInfo::fn get_subtitle_streams -->
Finds all the `DiscovererSubtitleInfo` contained in `self`
2018-11-26 14:57:25 +00:00
2019-02-22 10:13:16 +00:00
# Returns
A `glib::List` of
matching `DiscovererStreamInfo`. The caller should free it with
`DiscovererStreamInfo::list_free`.
<!-- impl DiscovererInfo::fn get_tags -->
# Returns
2019-02-22 10:13:16 +00:00
all tags contained in the URI. If you wish to use
the tags after the life-time of `self`, you will need to copy them.
<!-- impl DiscovererInfo::fn get_toc -->
# Returns
2019-02-22 10:13:16 +00:00
TOC contained in the URI. If you wish to use
the TOC after the life-time of `self`, you will need to copy it.
<!-- impl DiscovererInfo::fn get_uri -->
# Returns
2019-02-22 10:13:16 +00:00
the URI to which this information corresponds to.
Copy it if you wish to use it after the life-time of `self`.
<!-- impl DiscovererInfo::fn get_video_streams -->
Finds all the `DiscovererVideoInfo` contained in `self`
2018-11-26 14:57:25 +00:00
2019-02-22 10:13:16 +00:00
# Returns
A `glib::List` of
matching `DiscovererStreamInfo`. The caller should free it with
`DiscovererStreamInfo::list_free`.
<!-- impl DiscovererInfo::fn to_variant -->
Serializes `self` to a `glib::Variant` that can be parsed again
through `DiscovererInfo::from_variant`.
Note that any `gst::Toc` (s) that might have been discovered will not be serialized
for now.
2018-11-26 14:57:25 +00:00
## `flags`
2019-02-22 10:13:16 +00:00
A combination of `DiscovererSerializeFlags` to specify
what needs to be serialized.
# Returns
A newly-allocated `glib::Variant` representing `self`.
<!-- enum DiscovererResult -->
Result values for the discovery process.
<!-- enum DiscovererResult::variant Ok -->
The discovery was successful
<!-- enum DiscovererResult::variant UriInvalid -->
the URI is invalid
<!-- enum DiscovererResult::variant Error -->
an error happened and the GError is set
<!-- enum DiscovererResult::variant Timeout -->
the discovery timed-out
<!-- enum DiscovererResult::variant Busy -->
the discoverer was already discovering a file
<!-- enum DiscovererResult::variant MissingPlugins -->
Some plugins are missing for full discovery
2020-07-06 11:38:47 +00:00
<!-- struct DiscovererSerializeFlags -->
You can use these flags to control what is serialized by
`DiscovererInfo::to_variant`
<!-- struct DiscovererSerializeFlags::const BASIC -->
Serialize only basic information, excluding
caps, tags and miscellaneous information
<!-- struct DiscovererSerializeFlags::const CAPS -->
Serialize the caps for each stream
<!-- struct DiscovererSerializeFlags::const TAGS -->
Serialize the tags for each stream
<!-- struct DiscovererSerializeFlags::const MISC -->
Serialize miscellaneous information for each stream
<!-- struct DiscovererSerializeFlags::const ALL -->
Serialize all the available info, including
caps, tags and miscellaneous information
2019-02-22 10:13:16 +00:00
<!-- struct DiscovererStreamInfo -->
Base structure for information concerning a media stream. Depending on the
stream type, one can find more media-specific information in
`DiscovererAudioInfo`, `DiscovererVideoInfo`, and
`DiscovererContainerInfo`.
The `DiscovererStreamInfo` represents the topology of the stream. Siblings
can be iterated over with `DiscovererStreamInfoExt::get_next` and
`DiscovererStreamInfoExt::get_previous`. Children (sub-streams) of a
stream can be accessed using the `DiscovererContainerInfo` API.
As a simple example, if you run `Discoverer` on an AVI file with one audio
and one video stream, you will get a `DiscovererContainerInfo`
corresponding to the AVI container, which in turn will have a
`DiscovererAudioInfo` sub-stream and a `DiscovererVideoInfo` sub-stream
for the audio and video streams respectively.
2018-11-26 14:57:25 +00:00
2019-02-22 10:13:16 +00:00
# Implements
2018-11-26 14:57:25 +00:00
2019-02-22 10:13:16 +00:00
[`DiscovererStreamInfoExt`](trait.DiscovererStreamInfoExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- trait DiscovererStreamInfoExt -->
Trait containing all `DiscovererStreamInfo` methods.
2018-11-26 14:57:25 +00:00
2019-02-22 10:13:16 +00:00
# Implementors
[`DiscovererAudioInfo`](struct.DiscovererAudioInfo.html), [`DiscovererContainerInfo`](struct.DiscovererContainerInfo.html), [`DiscovererStreamInfo`](struct.DiscovererStreamInfo.html), [`DiscovererSubtitleInfo`](struct.DiscovererSubtitleInfo.html), [`DiscovererVideoInfo`](struct.DiscovererVideoInfo.html)
<!-- impl DiscovererStreamInfo::fn list_free -->
Decrements the reference count of all contained `DiscovererStreamInfo`
and fress the `glib::List`.
## `infos`
a `glib::List` of `DiscovererStreamInfo`
<!-- trait DiscovererStreamInfoExt::fn get_caps -->
2018-11-26 14:57:25 +00:00
# Returns
2019-02-22 10:13:16 +00:00
the `gst::Caps` of the stream. Unref with
2020-06-19 09:49:13 +00:00
`gst::Caps::unref` after usage.
2019-02-22 10:13:16 +00:00
<!-- trait DiscovererStreamInfoExt::fn get_misc -->
2018-11-26 14:57:25 +00:00
2019-02-22 10:13:16 +00:00
# Deprecated
2018-11-26 14:57:25 +00:00
2019-02-22 10:13:16 +00:00
This functions is deprecated since version 1.4, use
`DiscovererInfo::get_missing_elements_installer_details`
# Returns
2019-02-22 10:13:16 +00:00
additional information regarding the stream (for
example codec version, profile, etc..). If you wish to use the `gst::Structure`
after the life-time of `self` you will need to copy it.
<!-- trait DiscovererStreamInfoExt::fn get_next -->
# Returns
2019-02-22 10:13:16 +00:00
the next `DiscovererStreamInfo` in a chain. `None`
for final streams.
Unref with `gst_discoverer_stream_info_unref` after usage.
<!-- trait DiscovererStreamInfoExt::fn get_previous -->
# Returns
2019-02-22 10:13:16 +00:00
the previous `DiscovererStreamInfo` in a chain.
`None` for starting points. Unref with `gst_discoverer_stream_info_unref`
after usage.
<!-- trait DiscovererStreamInfoExt::fn get_stream_id -->
# Returns
2019-02-22 10:13:16 +00:00
the stream ID of this stream. If you wish to
use the stream ID after the life-time of `self` you will need to copy it.
<!-- trait DiscovererStreamInfoExt::fn get_stream_type_nick -->
# Returns
2019-02-22 10:13:16 +00:00
a human readable name for the stream type of the given `self` (ex : "audio",
"container",...).
<!-- trait DiscovererStreamInfoExt::fn get_tags -->
# Returns
2018-11-26 14:57:25 +00:00
2019-02-22 10:13:16 +00:00
the tags contained in this stream. If you wish to
use the tags after the life-time of `self` you will need to copy them.
<!-- trait DiscovererStreamInfoExt::fn get_toc -->
# Returns
the TOC contained in this stream. If you wish to
use the TOC after the life-time of `self` you will need to copy it.
<!-- struct DiscovererSubtitleInfo -->
`DiscovererStreamInfo` specific to subtitle streams (this includes text and
image based ones).
2018-11-26 14:57:25 +00:00
# Implements
2019-02-22 10:13:16 +00:00
[`DiscovererStreamInfoExt`](trait.DiscovererStreamInfoExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- impl DiscovererSubtitleInfo::fn get_language -->
# Returns
2019-02-22 10:13:16 +00:00
the language of the stream, or NULL if unknown.
<!-- struct DiscovererVideoInfo -->
`DiscovererStreamInfo` specific to video streams (this includes images).
2018-11-26 14:57:25 +00:00
# Implements
2019-02-22 10:13:16 +00:00
[`DiscovererStreamInfoExt`](trait.DiscovererStreamInfoExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- impl DiscovererVideoInfo::fn get_bitrate -->
# Returns
2019-02-22 10:13:16 +00:00
the average or nominal bitrate of the video stream in bits/second.
<!-- impl DiscovererVideoInfo::fn get_depth -->
2018-11-26 14:57:25 +00:00
# Returns
2019-02-22 10:13:16 +00:00
the depth in bits of the video stream.
<!-- impl DiscovererVideoInfo::fn get_framerate_denom -->
2018-11-26 14:57:25 +00:00
# Returns
2019-02-22 10:13:16 +00:00
the framerate of the video stream (denominator).
<!-- impl DiscovererVideoInfo::fn get_framerate_num -->
2018-11-26 14:57:25 +00:00
# Returns
2019-02-22 10:13:16 +00:00
the framerate of the video stream (numerator).
<!-- impl DiscovererVideoInfo::fn get_height -->
# Returns
2019-02-22 10:13:16 +00:00
the height of the video stream in pixels.
<!-- impl DiscovererVideoInfo::fn get_max_bitrate -->
2018-11-26 14:57:25 +00:00
# Returns
2019-02-22 10:13:16 +00:00
the maximum bitrate of the video stream in bits/second.
<!-- impl DiscovererVideoInfo::fn get_par_denom -->
# Returns
2019-02-22 10:13:16 +00:00
the Pixel Aspect Ratio (PAR) of the video stream (denominator).
<!-- impl DiscovererVideoInfo::fn get_par_num -->
# Returns
2019-02-22 10:13:16 +00:00
the Pixel Aspect Ratio (PAR) of the video stream (numerator).
<!-- impl DiscovererVideoInfo::fn get_width -->
# Returns
2019-02-22 10:13:16 +00:00
the width of the video stream in pixels.
<!-- impl DiscovererVideoInfo::fn is_image -->
# Returns
2019-02-22 10:13:16 +00:00
`true` if the video stream corresponds to an image (i.e. only contains
one frame).
<!-- impl DiscovererVideoInfo::fn is_interlaced -->
# Returns
2019-02-22 10:13:16 +00:00
`true` if the stream is interlaced, else `false`.
<!-- struct EncodingAudioProfile -->
Variant of `EncodingProfile` for audio streams.
# Implements
[`EncodingProfileExt`](trait.EncodingProfileExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- impl EncodingAudioProfile::fn new -->
Creates a new `EncodingAudioProfile`
All provided allocatable arguments will be internally copied, so can be
safely freed/unreferenced after calling this method.
## `format`
the `gst::Caps`
## `preset`
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
2020-06-19 09:49:13 +00:00
NULL. See `EncodingProfile::get_restriction` for more details.
2019-02-22 10:13:16 +00:00
## `presence`
the number of time this stream must be used. 0 means any number of
times (including never)
# Returns
2019-02-22 10:13:16 +00:00
the newly created `EncodingAudioProfile`.
<!-- struct EncodingContainerProfile -->
Encoding profiles for containers. Keeps track of a list of `EncodingProfile`
# Implements
2019-06-24 17:28:25 +00:00
[`EncodingProfileExt`](trait.EncodingProfileExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
2019-02-22 10:13:16 +00:00
<!-- impl EncodingContainerProfile::fn new -->
Creates a new `EncodingContainerProfile`.
## `name`
The name of the container profile, can be `None`
## `description`
The description of the container profile,
can be `None`
## `format`
The format to use for this profile
## `preset`
The preset to use for this profile.
# Returns
2019-02-22 10:13:16 +00:00
The newly created `EncodingContainerProfile`.
2019-06-24 17:28:25 +00:00
<!-- impl EncodingContainerProfile::fn add_profile -->
2019-02-22 10:13:16 +00:00
Add a `EncodingProfile` to the list of profiles handled by `self`.
No copy of `profile` will be made, if you wish to use it elsewhere after this
method you should increment its reference count.
## `profile`
the `EncodingProfile` to add.
2018-11-26 14:57:25 +00:00
# Returns
2019-02-22 10:13:16 +00:00
`true` if the `stream` was properly added, else `false`.
2019-06-24 17:28:25 +00:00
<!-- impl EncodingContainerProfile::fn contains_profile -->
2019-02-22 10:13:16 +00:00
Checks if `self` contains a `EncodingProfile` identical to
`profile`.
## `profile`
a `EncodingProfile`
# Returns
2019-02-22 10:13:16 +00:00
`true` if `self` contains a `EncodingProfile` identical
to `profile`, else `false`.
2019-06-24 17:28:25 +00:00
<!-- impl EncodingContainerProfile::fn get_profiles -->
2018-11-26 14:57:25 +00:00
# Returns
2019-02-22 10:13:16 +00:00
the list of contained `EncodingProfile`.
<!-- struct EncodingProfile -->
The opaque base class object for all encoding profiles. This contains generic
information like name, description, format and preset.
# Implements
2019-02-22 10:13:16 +00:00
[`EncodingProfileExt`](trait.EncodingProfileExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- trait EncodingProfileExt -->
Trait containing all `EncodingProfile` methods.
2018-11-26 14:57:25 +00:00
# Implementors
2019-02-22 10:13:16 +00:00
[`EncodingAudioProfile`](struct.EncodingAudioProfile.html), [`EncodingContainerProfile`](struct.EncodingContainerProfile.html), [`EncodingProfile`](struct.EncodingProfile.html), [`EncodingVideoProfile`](struct.EncodingVideoProfile.html)
<!-- impl EncodingProfile::fn find -->
Find the `EncodingProfile` with the specified name and category.
## `targetname`
The name of the target
## `profilename`
The name of the profile, if `None`
provided, it will default to the encoding profile called `default`.
## `category`
The target category. Can be `None`
2018-11-26 14:57:25 +00:00
2019-02-22 10:13:16 +00:00
# Returns
2018-11-26 14:57:25 +00:00
2019-02-22 10:13:16 +00:00
The matching `EncodingProfile` or `None`.
<!-- impl EncodingProfile::fn from_discoverer -->
Creates a `EncodingProfile` matching the formats from the given
`DiscovererInfo`. Streams other than audio or video (eg,
subtitles), are currently ignored.
## `info`
The `DiscovererInfo` to read from
2018-11-26 14:57:25 +00:00
2019-02-22 10:13:16 +00:00
# Returns
2018-11-26 14:57:25 +00:00
2019-02-22 10:13:16 +00:00
The new `EncodingProfile` or `None`.
<!-- trait EncodingProfileExt::fn copy -->
Makes a deep copy of `self`
2019-06-24 17:28:25 +00:00
Feature: `v1_12`
# Returns
2019-02-22 10:13:16 +00:00
The copy of `self`
<!-- trait EncodingProfileExt::fn get_allow_dynamic_output -->
Get whether the format that has been negotiated in at some point can be renegotiated
later during the encoding.
<!-- trait EncodingProfileExt::fn get_description -->
# Returns
2019-02-22 10:13:16 +00:00
the description of the profile, can be `None`.
<!-- trait EncodingProfileExt::fn get_file_extension -->
# Returns
2019-02-22 10:13:16 +00:00
a suitable file extension for `self`, or NULL.
<!-- trait EncodingProfileExt::fn get_format -->
# Returns
2019-02-22 10:13:16 +00:00
the `gst::Caps` corresponding to the media format used
in the profile. Unref after usage.
<!-- trait EncodingProfileExt::fn get_input_caps -->
Computes the full output caps that this `self` will be able to consume.
# Returns
2019-02-22 10:13:16 +00:00
The full caps the given `self` can consume. Call
2020-06-19 09:49:13 +00:00
`gst::Caps::unref` when you are done with the caps.
2019-02-22 10:13:16 +00:00
<!-- trait EncodingProfileExt::fn get_name -->
2018-11-26 14:57:25 +00:00
2019-02-22 10:13:16 +00:00
# Returns
2018-11-26 14:57:25 +00:00
2019-02-22 10:13:16 +00:00
the name of the profile, can be `None`.
<!-- trait EncodingProfileExt::fn get_presence -->
# Returns
2019-02-22 10:13:16 +00:00
The number of times the profile is used in its parent
container profile. If 0, it is not a mandatory stream.
<!-- trait EncodingProfileExt::fn get_preset -->
2018-11-26 14:57:25 +00:00
2019-02-22 10:13:16 +00:00
# Returns
2018-11-26 14:57:25 +00:00
2019-02-22 10:13:16 +00:00
the name of the `gst::Preset` to be used in the profile.
This is the name that has been set when saving the preset.
<!-- trait EncodingProfileExt::fn get_preset_name -->
# Returns
2019-02-22 10:13:16 +00:00
the name of the `gst::Preset` factory to be used in the profile.
<!-- trait EncodingProfileExt::fn get_restriction -->
# Returns
2019-02-22 10:13:16 +00:00
The restriction `gst::Caps` to apply before the encoder
that will be used in the profile. The fields present in restriction caps are
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.
2020-06-19 09:49:13 +00:00
<!-- 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.
2019-02-22 10:13:16 +00:00
<!-- trait EncodingProfileExt::fn get_type_nick -->
# Returns
2019-02-22 10:13:16 +00:00
the human-readable name of the type of `self`.
<!-- trait EncodingProfileExt::fn is_equal -->
Checks whether the two `EncodingProfile` are equal
## `b`
a `EncodingProfile`
# Returns
2019-02-22 10:13:16 +00:00
`true` if `self` and `b` are equal, else `false`.
<!-- trait EncodingProfileExt::fn set_allow_dynamic_output -->
Sets whether the format that has been negotiated in at some point can be renegotiated
later during the encoding.
## `allow_dynamic_output`
Whether the format that has been negotiated first can be renegotiated
during the encoding
<!-- trait EncodingProfileExt::fn set_description -->
Set `description` as the given description for the `self`. A copy of
`description` will be made internally.
## `description`
the description to set on the profile
<!-- trait EncodingProfileExt::fn set_enabled -->
Set whether the profile should be used or not.
## `enabled`
2020-06-19 09:49:13 +00:00
`false` to disable `self`, `true` to enable it
2019-02-22 10:13:16 +00:00
<!-- trait EncodingProfileExt::fn set_format -->
Sets the media format used in the profile.
## `format`
the media format to use in the profile.
<!-- trait EncodingProfileExt::fn set_name -->
Set `name` as the given name for the `self`. A copy of `name` will be made
internally.
## `name`
the name to set on the profile
<!-- trait EncodingProfileExt::fn set_presence -->
Set the number of time the profile is used in its parent
container profile. If 0, it is not a mandatory stream
## `presence`
the number of time the profile can be used
<!-- trait EncodingProfileExt::fn set_preset -->
Sets the name of the `gst::Element` that implements the `gst::Preset` interface
to use for the profile.
This is the name that has been set when saving the preset.
## `preset`
the element preset to use
<!-- trait EncodingProfileExt::fn set_preset_name -->
Sets the name of the `gst::Preset`'s factory to be used in the profile.
## `preset_name`
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
2020-06-19 09:49:13 +00:00
that will be used in the profile. See `EncodingProfile::get_restriction`
2019-02-22 10:13:16 +00:00
for more about restrictions. Does not apply to `EncodingContainerProfile`.
## `restriction`
the restriction to apply
2020-06-19 09:49:13 +00:00
<!-- 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.
2019-02-22 10:13:16 +00:00
<!-- struct EncodingTarget -->
Collection of `EncodingProfile` for a specific target or use-case.
When being stored/loaded, targets come from a specific category, like
`GST_ENCODING_CATEGORY_DEVICE`.
2018-11-26 14:57:25 +00:00
# Implements
2019-02-22 10:13:16 +00:00
[`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- impl EncodingTarget::fn new -->
Creates a new `EncodingTarget`.
The name and category can only consist of lowercase ASCII letters for the
first character, followed by either lowercase ASCII letters, digits or
hyphens ('-').
2020-06-19 09:49:13 +00:00
The `category` *should* be one of the existing
2019-02-22 10:13:16 +00:00
well-defined categories, like `GST_ENCODING_CATEGORY_DEVICE`, but it
2020-06-19 09:49:13 +00:00
*can* be a application or user specific category if
2019-02-22 10:13:16 +00:00
needed.
## `name`
The name of the target.
## `category`
The name of the category to which this `target`
belongs. For example: `GST_ENCODING_CATEGORY_DEVICE`.
## `description`
A description of `EncodingTarget` in the
current locale.
## `profiles`
A `glib::List` of
`EncodingProfile`.
2018-11-26 14:57:25 +00:00
# Returns
2019-02-22 10:13:16 +00:00
The newly created `EncodingTarget` or `None` if
there was an error.
<!-- impl EncodingTarget::fn load -->
Searches for the `EncodingTarget` with the given name, loads it
and returns it.
2018-11-26 14:57:25 +00:00
2019-02-22 10:13:16 +00:00
If the category name is specified only targets from that category will be
searched for.
## `name`
the name of the `EncodingTarget` to load (automatically
converted to lower case internally as capital letters are not
valid for target names).
## `category`
the name of the target category, like
`GST_ENCODING_CATEGORY_DEVICE`. Can be `None`
2018-11-26 14:57:25 +00:00
2019-02-22 10:13:16 +00:00
# Returns
The `EncodingTarget` if available, else `None`.
<!-- impl EncodingTarget::fn load_from_file -->
Opens the provided file and returns the contained `EncodingTarget`.
## `filepath`
The file location to load the `EncodingTarget` from
# Returns
2018-11-26 14:57:25 +00:00
2019-02-22 10:13:16 +00:00
The `EncodingTarget` contained in the file, else
`None`
<!-- impl EncodingTarget::fn add_profile -->
Adds the given `profile` to the `self`. Each added profile must have
a unique name within the profile.
The `self` will steal a reference to the `profile`. If you wish to use
the profile after calling this method, you should increase its reference
count.
## `profile`
the `EncodingProfile` to add
# Returns
`true` if the profile was added, else `false`.
<!-- impl EncodingTarget::fn get_category -->
# Returns
The category of the `self`. For example:
`GST_ENCODING_CATEGORY_DEVICE`.
<!-- impl EncodingTarget::fn get_description -->
# Returns
The description of the `self`.
<!-- impl EncodingTarget::fn get_name -->
# Returns
The name of the `self`.
2020-07-06 11:38:47 +00:00
<!-- impl EncodingTarget::fn get_path -->
Feature: `v1_18`
# Returns
The path to the `self` file.
2019-02-22 10:13:16 +00:00
<!-- impl EncodingTarget::fn get_profile -->
## `name`
the name of the profile to retrieve
# Returns
The matching `EncodingProfile`, or `None`.
<!-- impl EncodingTarget::fn get_profiles -->
# Returns
A list of
`EncodingProfile`(s) this `self` handles.
<!-- impl EncodingTarget::fn save -->
Saves the `self` to a default user-local directory.
# Returns
`true` if the target was correctly saved, else `false`.
<!-- impl EncodingTarget::fn save_to_file -->
Saves the `self` to the provided file location.
## `filepath`
the location to store the `self` at.
# Returns
`true` if the target was correctly saved, else `false`.
<!-- struct EncodingVideoProfile -->
Variant of `EncodingProfile` for video streams, allows specifying the `pass`.
2018-11-26 14:57:25 +00:00
# Implements
2019-02-22 10:13:16 +00:00
[`EncodingProfileExt`](trait.EncodingProfileExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- impl EncodingVideoProfile::fn new -->
Creates a new `EncodingVideoProfile`
2018-11-26 14:57:25 +00:00
2019-02-22 10:13:16 +00:00
All provided allocatable arguments will be internally copied, so can be
safely freed/unreferenced after calling this method.
If you wish to control the pass number (in case of multi-pass scenarios),
please refer to the `EncodingVideoProfile::set_pass` documentation.
If you wish to use/force a constant framerate please refer to the
`EncodingVideoProfile::set_variableframerate` documentation.
## `format`
the `gst::Caps`
## `preset`
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
2020-06-19 09:49:13 +00:00
NULL. See `EncodingProfile::get_restriction` for more details.
2019-02-22 10:13:16 +00:00
## `presence`
the number of time this stream must be used. 0 means any number of
times (including never)
# Returns
the newly created `EncodingVideoProfile`.
<!-- impl EncodingVideoProfile::fn get_pass -->
Get the pass number if this is part of a multi-pass profile.
# Returns
2018-11-26 14:57:25 +00:00
2019-02-22 10:13:16 +00:00
The pass number. Starts at 1 for multi-pass. 0 if this is
not a multi-pass profile
<!-- impl EncodingVideoProfile::fn get_variableframerate -->
# Returns
2019-02-22 10:13:16 +00:00
Whether non-constant video framerate is allowed for encoding.
<!-- impl EncodingVideoProfile::fn set_pass -->
Sets the pass number of this video profile. The first pass profile should have
this value set to 1. If this video profile isn't part of a multi-pass profile,
you may set it to 0 (the default value).
## `pass`
the pass number for this profile
<!-- impl EncodingVideoProfile::fn set_variableframerate -->
If set to `true`, then the incoming stream will be allowed to have non-constant
framerate. If set to `false` (default value), then the incoming stream will
be normalized by dropping/duplicating frames in order to produce a
constance framerate.
## `variableframerate`
a boolean