forked from mirrors/gstreamer-rs
Update documentation
This commit is contained in:
parent
9b6efb2339
commit
7642441d58
6 changed files with 583 additions and 43 deletions
|
@ -39,7 +39,7 @@ to avoid polling.
|
|||
|
||||
# Implements
|
||||
|
||||
[`BaseSinkExt`](trait.BaseSinkExt.html), [`ElementExt`](trait.ElementExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html), [`URIHandlerExt`](trait.URIHandlerExt.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), [`gst::URIHandlerExt`](../gst/trait.URIHandlerExt.html)
|
||||
<!-- impl AppSink::fn get_buffer_list_support -->
|
||||
Check if `self` supports buffer lists.
|
||||
|
||||
|
@ -422,7 +422,7 @@ occurs or the state of the appsrc has gone through READY.
|
|||
|
||||
# Implements
|
||||
|
||||
[`BaseSrcExt`](trait.BaseSrcExt.html), [`ElementExt`](trait.ElementExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html), [`URIHandlerExt`](trait.URIHandlerExt.html)
|
||||
[`gst_base::BaseSrcExt`](../gst_base/trait.BaseSrcExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`gst::URIHandlerExt`](../gst/trait.URIHandlerExt.html)
|
||||
<!-- impl AppSrc::fn end_of_stream -->
|
||||
Indicates to the appsrc element that the last buffer queued in the
|
||||
element is the last buffer of the stream.
|
||||
|
|
|
@ -103,7 +103,7 @@ buffer pushed in it.
|
|||
|
||||
# Implements
|
||||
|
||||
[`ObjectExt`](trait.ObjectExt.html)
|
||||
[`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- impl Adapter::fn new -->
|
||||
Creates a new `Adapter`. Free with `gobject::ObjectExt::unref`.
|
||||
|
||||
|
@ -664,7 +664,7 @@ with non-synchronized streams or sparse streams.
|
|||
|
||||
# Implements
|
||||
|
||||
[`BaseSinkExt`](trait.BaseSinkExt.html), [`ElementExt`](trait.ElementExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](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)
|
||||
<!-- trait BaseSinkExt -->
|
||||
Trait containing all `BaseSink` methods.
|
||||
|
||||
|
@ -1126,7 +1126,7 @@ received, it may safely shut down the entire pipeline.
|
|||
|
||||
# Implements
|
||||
|
||||
[`BaseSrcExt`](trait.BaseSrcExt.html), [`ElementExt`](trait.ElementExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](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)
|
||||
<!-- trait BaseSrcExt -->
|
||||
Trait containing all `BaseSrc` methods.
|
||||
|
||||
|
@ -1403,7 +1403,7 @@ It provides for:
|
|||
|
||||
# Implements
|
||||
|
||||
[`BaseTransformExt`](trait.BaseTransformExt.html), [`ElementExt`](trait.ElementExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](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)
|
||||
<!-- trait BaseTransformExt -->
|
||||
Trait containing all `BaseTransform` methods.
|
||||
|
||||
|
@ -1641,4 +1641,4 @@ base class.
|
|||
|
||||
# Implements
|
||||
|
||||
[`BaseSrcExt`](trait.BaseSrcExt.html), [`ElementExt`](trait.ElementExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](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)
|
||||
|
|
|
@ -25,7 +25,7 @@ statistics about clock accuracy and network traffic.
|
|||
|
||||
# Implements
|
||||
|
||||
[`ClockExt`](trait.ClockExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||
[`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
|
||||
provided by the `NetTimeProvider` on `remote_address` and
|
||||
|
@ -56,7 +56,7 @@ The `NetTimeProvider` typically wraps the clock used by a `gst::Pipeline`.
|
|||
|
||||
# Implements
|
||||
|
||||
[`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||
[`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- impl NetTimeProvider::fn new -->
|
||||
Allows network clients to get the current time of `clock`.
|
||||
## `clock`
|
||||
|
@ -75,7 +75,7 @@ the new `NetTimeProvider`, or NULL on error
|
|||
|
||||
# Implements
|
||||
|
||||
[`NetClientClockExt`](trait.NetClientClockExt.html), [`ClockExt`](trait.ClockExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||
[`NetClientClockExt`](trait.NetClientClockExt.html), [`gst::ClockExt`](../gst/trait.ClockExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- impl NtpClock::fn new -->
|
||||
Create a new `NtpClock` that will report the time provided by
|
||||
the NTPv4 server on `remote_address` and `remote_port`.
|
||||
|
@ -117,7 +117,7 @@ synchronization.
|
|||
|
||||
# Implements
|
||||
|
||||
[`ClockExt`](trait.ClockExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||
[`gst::ClockExt`](../gst/trait.ClockExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- impl PtpClock::fn new -->
|
||||
Creates a new PTP clock instance that exports the PTP time of the master
|
||||
clock in `domain`. This clock can be slaved to other clocks as needed.
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
# Implements
|
||||
|
||||
[`ObjectExt`](trait.ObjectExt.html)
|
||||
[`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- impl Player::fn new -->
|
||||
Creates a new `Player` instance that uses `signal_dispatcher` to dispatch
|
||||
signals to some event loop system, or emits signals directly if NULL is
|
||||
|
@ -394,7 +394,7 @@ in the stream.
|
|||
|
||||
# Implements
|
||||
|
||||
[`PlayerStreamInfoExt`](trait.PlayerStreamInfoExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||
[`PlayerStreamInfoExt`](trait.PlayerStreamInfoExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- impl PlayerAudioInfo::fn get_bitrate -->
|
||||
|
||||
# Returns
|
||||
|
@ -438,7 +438,7 @@ generic error.
|
|||
|
||||
# Implements
|
||||
|
||||
[`ObjectExt`](trait.ObjectExt.html), [`PlayerSignalDispatcherExt`](trait.PlayerSignalDispatcherExt.html)
|
||||
[`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`.
|
||||
|
@ -453,7 +453,7 @@ Structure containing the media information of a URI.
|
|||
|
||||
# Implements
|
||||
|
||||
[`ObjectExt`](trait.ObjectExt.html)
|
||||
[`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- impl PlayerMediaInfo::fn get_audio_streams -->
|
||||
|
||||
# Returns
|
||||
|
@ -570,7 +570,7 @@ the stream type, one can find more media-specific information in
|
|||
|
||||
# Implements
|
||||
|
||||
[`PlayerStreamInfoExt`](trait.PlayerStreamInfoExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||
[`PlayerStreamInfoExt`](trait.PlayerStreamInfoExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- trait PlayerStreamInfoExt -->
|
||||
Trait containing all `PlayerStreamInfo` methods.
|
||||
|
||||
|
@ -611,7 +611,7 @@ the tags contained in this stream.
|
|||
|
||||
# Implements
|
||||
|
||||
[`PlayerStreamInfoExt`](trait.PlayerStreamInfoExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||
[`PlayerStreamInfoExt`](trait.PlayerStreamInfoExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- impl PlayerSubtitleInfo::fn get_language -->
|
||||
|
||||
# Returns
|
||||
|
@ -622,7 +622,7 @@ the language of the stream, or NULL if unknown.
|
|||
|
||||
# Implements
|
||||
|
||||
[`PlayerStreamInfoExt`](trait.PlayerStreamInfoExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||
[`PlayerStreamInfoExt`](trait.PlayerStreamInfoExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- impl PlayerVideoInfo::fn get_bitrate -->
|
||||
|
||||
# Returns
|
||||
|
@ -659,7 +659,7 @@ the width of video in `PlayerVideoInfo`.
|
|||
|
||||
# Implements
|
||||
|
||||
[`ObjectExt`](trait.ObjectExt.html), [`PlayerVideoRendererExt`](trait.PlayerVideoRendererExt.html)
|
||||
[`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`PlayerVideoRendererExt`](trait.PlayerVideoRendererExt.html)
|
||||
<!-- impl PlayerVideoOverlayVideoRenderer::fn new -->
|
||||
## `window_handle`
|
||||
Window handle to use or `None`
|
||||
|
|
|
@ -471,6 +471,46 @@ frames contains both interlaced and
|
|||
Each field has only half the amount of lines as noted in the
|
||||
height property. This mode requires multiple GstVideoMeta metadata
|
||||
to describe the fields.
|
||||
<!-- enum VideoMultiviewFramePacking -->
|
||||
`VideoMultiviewFramePacking` represents the subset of `VideoMultiviewMode`
|
||||
values that can be applied to any video frame without needing extra metadata.
|
||||
It can be used by elements that provide a property to override the
|
||||
multiview interpretation of a video stream when the video doesn't contain
|
||||
any markers.
|
||||
|
||||
This enum is used (for example) on playbin, to re-interpret a played
|
||||
video stream as a stereoscopic video. The individual enum values are
|
||||
equivalent to and have the same value as the matching `VideoMultiviewMode`.
|
||||
<!-- enum VideoMultiviewFramePacking::variant None -->
|
||||
A special value indicating
|
||||
no frame packing info.
|
||||
<!-- enum VideoMultiviewFramePacking::variant Mono -->
|
||||
All frames are monoscopic.
|
||||
<!-- enum VideoMultiviewFramePacking::variant Left -->
|
||||
All frames represent a left-eye view.
|
||||
<!-- enum VideoMultiviewFramePacking::variant Right -->
|
||||
All frames represent a right-eye view.
|
||||
<!-- enum VideoMultiviewFramePacking::variant SideBySide -->
|
||||
Left and right eye views are
|
||||
provided in the left and right half of the frame respectively.
|
||||
<!-- enum VideoMultiviewFramePacking::variant SideBySideQuincunx -->
|
||||
Left and right eye
|
||||
views are provided in the left and right half of the frame, but
|
||||
have been sampled using quincunx method, with half-pixel offset
|
||||
between the 2 views.
|
||||
<!-- enum VideoMultiviewFramePacking::variant ColumnInterleaved -->
|
||||
Alternating vertical
|
||||
columns of pixels represent the left and right eye view respectively.
|
||||
<!-- enum VideoMultiviewFramePacking::variant RowInterleaved -->
|
||||
Alternating horizontal
|
||||
rows of pixels represent the left and right eye view respectively.
|
||||
<!-- enum VideoMultiviewFramePacking::variant TopBottom -->
|
||||
The top half of the frame
|
||||
contains the left eye, and the bottom half the right eye.
|
||||
<!-- enum VideoMultiviewFramePacking::variant Checkerboard -->
|
||||
Pixels are arranged with
|
||||
alternating pixels representing left and right eye views in a
|
||||
checkerboard fashion.
|
||||
<!-- enum VideoMultiviewMode -->
|
||||
All possible stereoscopic 3D and multiview representations.
|
||||
In conjunction with `VideoMultiviewFlags`, describes how
|
||||
|
|
|
@ -99,7 +99,7 @@ handler will return `true`.
|
|||
|
||||
# Implements
|
||||
|
||||
[`BinExt`](trait.BinExt.html), [`ElementExt`](trait.ElementExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ChildProxyExt`](trait.ChildProxyExt.html)
|
||||
[`BinExt`](trait.BinExt.html), [`ElementExt`](trait.ElementExt.html), [`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`ChildProxyExt`](trait.ChildProxyExt.html)
|
||||
<!-- trait BinExt -->
|
||||
Trait containing all `Bin` methods.
|
||||
|
||||
|
@ -1254,7 +1254,7 @@ from READY to NULL state.
|
|||
|
||||
# Implements
|
||||
|
||||
[`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||
[`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- impl Bus::fn new -->
|
||||
Creates a new `Bus` instance.
|
||||
|
||||
|
@ -2333,7 +2333,7 @@ defines the minimum number of samples before the calibration is performed.
|
|||
|
||||
# Implements
|
||||
|
||||
[`ClockExt`](trait.ClockExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||
[`ClockExt`](trait.ClockExt.html), [`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- trait ClockExt -->
|
||||
Trait containing all `Clock` methods.
|
||||
|
||||
|
@ -3306,7 +3306,7 @@ aggregated by `DeviceMonitor` objects.
|
|||
|
||||
# Implements
|
||||
|
||||
[`DeviceExt`](trait.DeviceExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||
[`DeviceExt`](trait.DeviceExt.html), [`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- trait DeviceExt -->
|
||||
Trait containing all `Device` methods.
|
||||
|
||||
|
@ -3449,7 +3449,7 @@ The basic use pattern of a device monitor is as follows:
|
|||
|
||||
# Implements
|
||||
|
||||
[`DeviceMonitorExt`](trait.DeviceMonitorExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||
[`DeviceMonitorExt`](trait.DeviceMonitorExt.html), [`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- trait DeviceMonitorExt -->
|
||||
Trait containing all `DeviceMonitor` methods.
|
||||
|
||||
|
@ -3551,7 +3551,7 @@ from all relevant providers.
|
|||
|
||||
# Implements
|
||||
|
||||
[`DeviceProviderExt`](trait.DeviceProviderExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||
[`DeviceProviderExt`](trait.DeviceProviderExt.html), [`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- trait DeviceProviderExt -->
|
||||
Trait containing all `DeviceProvider` methods.
|
||||
|
||||
|
@ -3664,7 +3664,7 @@ convenient shortcut.
|
|||
|
||||
# Implements
|
||||
|
||||
[`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||
[`PluginFeatureExt`](trait.PluginFeatureExt.html), [`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- impl DeviceProviderFactory::fn find -->
|
||||
Search for an device provider factory of the given name. Refs the returned
|
||||
device provider factory; caller is responsible for unreffing.
|
||||
|
@ -3707,7 +3707,7 @@ if the device provider couldn't be created
|
|||
<!-- impl DeviceProviderFactory::fn get_device_provider_type -->
|
||||
Get the `glib::Type` for device providers managed by this factory. The type can
|
||||
only be retrieved if the device provider factory is loaded, which can be
|
||||
assured with `PluginFeature::load`.
|
||||
assured with `PluginFeatureExt::load`.
|
||||
|
||||
# Returns
|
||||
|
||||
|
@ -3800,7 +3800,7 @@ specific situations.
|
|||
|
||||
# Implements
|
||||
|
||||
[`ElementExt`](trait.ElementExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||
[`ElementExt`](trait.ElementExt.html), [`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- trait ElementExt -->
|
||||
Trait containing all `Element` methods.
|
||||
|
||||
|
@ -4754,7 +4754,7 @@ The following code example shows you how to create a GstFileSrc element.
|
|||
|
||||
# Implements
|
||||
|
||||
[`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||
[`PluginFeatureExt`](trait.PluginFeatureExt.html), [`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- impl ElementFactory::fn find -->
|
||||
Search for an element factory of the given name. Refs the returned
|
||||
element factory; caller is responsible for unreffing.
|
||||
|
@ -4863,7 +4863,7 @@ new `Element` or `None`
|
|||
<!-- impl ElementFactory::fn get_element_type -->
|
||||
Get the `glib::Type` for elements managed by this factory. The type can
|
||||
only be retrieved if the element factory is loaded, which can be
|
||||
assured with `PluginFeature::load`.
|
||||
assured with `PluginFeatureExt::load`.
|
||||
|
||||
# Returns
|
||||
|
||||
|
@ -5925,7 +5925,7 @@ Note that GhostPads add overhead to the data processing of a pipeline.
|
|||
|
||||
# Implements
|
||||
|
||||
[`GhostPadExt`](trait.GhostPadExt.html), [`ProxyPadExt`](trait.ProxyPadExt.html), [`PadExt`](trait.PadExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||
[`GhostPadExt`](trait.GhostPadExt.html), [`ProxyPadExt`](trait.ProxyPadExt.html), [`PadExt`](trait.PadExt.html), [`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- trait GhostPadExt -->
|
||||
Trait containing all `GhostPad` methods.
|
||||
|
||||
|
@ -7424,13 +7424,13 @@ What needs to be done in applications? Again it's not a lot to change.
|
|||
|
||||
# Implements
|
||||
|
||||
[`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||
[`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- trait GstObjectExt -->
|
||||
Trait containing all `Object` methods.
|
||||
|
||||
# Implementors
|
||||
|
||||
[`Bus`](struct.Bus.html), [`Clock`](struct.Clock.html), [`DeviceMonitor`](struct.DeviceMonitor.html), [`DeviceProvider`](struct.DeviceProvider.html), [`Device`](struct.Device.html), [`Element`](struct.Element.html), [`Object`](struct.Object.html), [`PadTemplate`](struct.PadTemplate.html), [`Pad`](struct.Pad.html), [`Plugin`](struct.Plugin.html), [`StreamCollection`](struct.StreamCollection.html), [`Stream`](struct.Stream.html)
|
||||
[`Bus`](struct.Bus.html), [`Clock`](struct.Clock.html), [`DeviceMonitor`](struct.DeviceMonitor.html), [`DeviceProvider`](struct.DeviceProvider.html), [`Device`](struct.Device.html), [`Element`](struct.Element.html), [`Object`](struct.Object.html), [`PadTemplate`](struct.PadTemplate.html), [`Pad`](struct.Pad.html), [`PluginFeature`](struct.PluginFeature.html), [`Plugin`](struct.Plugin.html), [`Registry`](struct.Registry.html), [`StreamCollection`](struct.StreamCollection.html), [`Stream`](struct.Stream.html)
|
||||
<!-- impl Object::fn check_uniqueness -->
|
||||
Checks to see if there is any object named `name` in `list`. This function
|
||||
does not do any locking of any kind. You might want to protect the
|
||||
|
@ -7866,7 +7866,7 @@ respectively.
|
|||
|
||||
# Implements
|
||||
|
||||
[`PadExt`](trait.PadExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||
[`PadExt`](trait.PadExt.html), [`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- trait PadExt -->
|
||||
Trait containing all `Pad` methods.
|
||||
|
||||
|
@ -9149,7 +9149,7 @@ element class, this is usually done in the class_init of the class:
|
|||
|
||||
# Implements
|
||||
|
||||
[`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||
[`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- impl PadTemplate::fn new -->
|
||||
Creates a new pad template with a name according to the given template
|
||||
and with the given arguments.
|
||||
|
@ -9293,7 +9293,7 @@ in the PLAYING state. This default behaviour can be changed with the
|
|||
|
||||
# Implements
|
||||
|
||||
[`PipelineExt`](trait.PipelineExt.html), [`BinExt`](trait.BinExt.html), [`ElementExt`](trait.ElementExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ChildProxyExt`](trait.ChildProxyExt.html)
|
||||
[`PipelineExt`](trait.PipelineExt.html), [`BinExt`](trait.BinExt.html), [`ElementExt`](trait.ElementExt.html), [`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`ChildProxyExt`](trait.ChildProxyExt.html)
|
||||
<!-- trait PipelineExt -->
|
||||
Trait containing all `Pipeline` methods.
|
||||
|
||||
|
@ -9480,7 +9480,7 @@ into memory.
|
|||
|
||||
# Implements
|
||||
|
||||
[`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||
[`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- impl Plugin::fn list_free -->
|
||||
Unrefs each member of `list`, then frees the list.
|
||||
## `list`
|
||||
|
@ -9740,6 +9740,113 @@ The plugin could not be loaded
|
|||
The plugin has unresolved dependencies
|
||||
<!-- enum PluginError::variant NameMismatch -->
|
||||
The plugin has already be loaded from a different file
|
||||
<!-- struct PluginFeature -->
|
||||
This is a base class for anything that can be added to a `Plugin`.
|
||||
|
||||
# Implements
|
||||
|
||||
[`PluginFeatureExt`](trait.PluginFeatureExt.html), [`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- trait PluginFeatureExt -->
|
||||
Trait containing all `PluginFeature` methods.
|
||||
|
||||
# Implementors
|
||||
|
||||
[`DeviceProviderFactory`](struct.DeviceProviderFactory.html), [`ElementFactory`](struct.ElementFactory.html), [`PluginFeature`](struct.PluginFeature.html), [`TypeFindFactory`](struct.TypeFindFactory.html)
|
||||
<!-- impl PluginFeature::fn list_copy -->
|
||||
Copies the list of features. Caller should call `PluginFeature::list_free`
|
||||
when done with the list.
|
||||
## `list`
|
||||
list
|
||||
of `PluginFeature`
|
||||
|
||||
# Returns
|
||||
|
||||
a copy of `list`,
|
||||
with each feature's reference count incremented.
|
||||
<!-- impl PluginFeature::fn list_debug -->
|
||||
Debug the plugin feature names in `list`.
|
||||
## `list`
|
||||
a `glib::List` of
|
||||
plugin features
|
||||
<!-- impl PluginFeature::fn list_free -->
|
||||
Unrefs each member of `list`, then frees the list.
|
||||
## `list`
|
||||
list
|
||||
of `PluginFeature`
|
||||
<!-- impl PluginFeature::fn rank_compare_func -->
|
||||
Compares the two given `PluginFeature` instances. This function can be
|
||||
used as a `GCompareFunc` when sorting by rank and then by name.
|
||||
## `p1`
|
||||
a `PluginFeature`
|
||||
## `p2`
|
||||
a `PluginFeature`
|
||||
|
||||
# Returns
|
||||
|
||||
negative value if the rank of p1 > the rank of p2 or the ranks are
|
||||
equal but the name of p1 comes before the name of p2; zero if the rank
|
||||
and names are equal; positive value if the rank of p1 < the rank of p2 or the
|
||||
ranks are equal but the name of p2 comes before the name of p1
|
||||
<!-- trait PluginFeatureExt::fn check_version -->
|
||||
Checks whether the given plugin feature is at least
|
||||
the required version
|
||||
## `min_major`
|
||||
minimum required major version
|
||||
## `min_minor`
|
||||
minimum required minor version
|
||||
## `min_micro`
|
||||
minimum required micro version
|
||||
|
||||
# Returns
|
||||
|
||||
`true` if the plugin feature has at least
|
||||
the required version, otherwise `false`.
|
||||
<!-- trait PluginFeatureExt::fn get_plugin -->
|
||||
Get the plugin that provides this feature.
|
||||
|
||||
# Returns
|
||||
|
||||
the plugin that provides this
|
||||
feature, or `None`. Unref with `GstObjectExt::unref` when no
|
||||
longer needed.
|
||||
<!-- trait PluginFeatureExt::fn get_plugin_name -->
|
||||
Get the name of the plugin that provides this feature.
|
||||
|
||||
# Returns
|
||||
|
||||
the name of the plugin that provides this
|
||||
feature, or `None` if the feature is not associated with a
|
||||
plugin.
|
||||
<!-- trait PluginFeatureExt::fn get_rank -->
|
||||
Gets the rank of a plugin feature.
|
||||
|
||||
# Returns
|
||||
|
||||
The rank of the feature
|
||||
<!-- trait PluginFeatureExt::fn load -->
|
||||
Loads the plugin containing `self` if it's not already loaded. `self` is
|
||||
unaffected; use the return value instead.
|
||||
|
||||
Normally this function is used like this:
|
||||
|
||||
```C
|
||||
GstPluginFeature *loaded_feature;
|
||||
|
||||
loaded_feature = gst_plugin_feature_load (feature);
|
||||
// presumably, we're no longer interested in the potentially-unloaded feature
|
||||
gst_object_unref (feature);
|
||||
feature = loaded_feature;
|
||||
```
|
||||
|
||||
# Returns
|
||||
|
||||
a reference to the loaded
|
||||
feature, or `None` on error
|
||||
<!-- trait PluginFeatureExt::fn set_rank -->
|
||||
Specifies a rank for a plugin feature, so that autoplugging uses
|
||||
the most appropriate feature.
|
||||
## `rank`
|
||||
rank value - higher number means more priority rank
|
||||
<!-- struct Preset -->
|
||||
This interface offers methods to query and manipulate parameter preset sets.
|
||||
A preset is a bunch of property settings, together with meta data and a name.
|
||||
|
@ -9895,7 +10002,7 @@ A task caused an error. An error message is also
|
|||
|
||||
# Implements
|
||||
|
||||
[`ProxyPadExt`](trait.ProxyPadExt.html), [`PadExt`](trait.PadExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||
[`ProxyPadExt`](trait.ProxyPadExt.html), [`PadExt`](trait.PadExt.html), [`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- trait ProxyPadExt -->
|
||||
Trait containing all `ProxyPad` methods.
|
||||
|
||||
|
@ -10755,6 +10862,287 @@ unlikely to be chosen
|
|||
likely to be chosen
|
||||
<!-- enum Rank::variant Primary -->
|
||||
will be chosen first
|
||||
<!-- struct Registry -->
|
||||
One registry holds the metadata of a set of plugins.
|
||||
|
||||
<emphasis role="bold">Design:`</emphasis>`
|
||||
|
||||
The `Registry` object is a list of plugins and some functions for dealing
|
||||
with them. Each `Plugin` is matched 1-1 with a file on disk, and may or may
|
||||
not be loaded at a given time.
|
||||
|
||||
The primary source, at all times, of plugin information is each plugin file
|
||||
itself. Thus, if an application wants information about a particular plugin,
|
||||
or wants to search for a feature that satisfies given criteria, the primary
|
||||
means of doing so is to load every plugin and look at the resulting
|
||||
information that is gathered in the default registry. Clearly, this is a time
|
||||
consuming process, so we cache information in the registry file. The format
|
||||
and location of the cache file is internal to gstreamer.
|
||||
|
||||
On startup, plugins are searched for in the plugin search path. The following
|
||||
locations are checked in this order:
|
||||
|
||||
* location from --gst-plugin-path commandline option.
|
||||
* the GST_PLUGIN_PATH environment variable.
|
||||
* the GST_PLUGIN_SYSTEM_PATH environment variable.
|
||||
* default locations (if GST_PLUGIN_SYSTEM_PATH is not set).
|
||||
Those default locations are:
|
||||
`$XDG_DATA_HOME/gstreamer-$GST_API_VERSION/plugins/`
|
||||
and `$prefix/libs/gstreamer-$GST_API_VERSION/`.
|
||||
[$XDG_DATA_HOME](http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html) defaults to
|
||||
`$HOME/.local/share`.
|
||||
|
||||
The registry cache file is loaded from
|
||||
`$XDG_CACHE_HOME/gstreamer-$GST_API_VERSION/registry-$ARCH.bin`
|
||||
(where $XDG_CACHE_HOME defaults to `$HOME/.cache`) or the file listed in the `GST_REGISTRY`
|
||||
env var. One reason to change the registry location is for testing.
|
||||
|
||||
For each plugin that is found in the plugin search path, there could be 3
|
||||
possibilities for cached information:
|
||||
|
||||
* the cache may not contain information about a given file.
|
||||
* the cache may have stale information.
|
||||
* the cache may have current information.
|
||||
|
||||
In the first two cases, the plugin is loaded and the cache updated. In
|
||||
addition to these cases, the cache may have entries for plugins that are not
|
||||
relevant to the current process. These are marked as not available to the
|
||||
current process. If the cache is updated for whatever reason, it is marked
|
||||
dirty.
|
||||
|
||||
A dirty cache is written out at the end of initialization. Each entry is
|
||||
checked to make sure the information is minimally valid. If not, the entry is
|
||||
simply dropped.
|
||||
|
||||
## Implementation notes:
|
||||
|
||||
The "cache" and "registry" are different concepts and can represent
|
||||
different sets of plugins. For various reasons, at init time, the cache is
|
||||
stored in the default registry, and plugins not relevant to the current
|
||||
process are marked with the `PluginFlags::Cached` bit. These plugins are
|
||||
removed at the end of initialization.
|
||||
|
||||
# Implements
|
||||
|
||||
[`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- impl Registry::fn fork_is_enabled -->
|
||||
By default GStreamer will perform scanning and rebuilding of the
|
||||
registry file using a helper child process.
|
||||
|
||||
Applications might want to disable this behaviour with the
|
||||
`Registry::fork_set_enabled` function, in which case new plugins
|
||||
are scanned (and loaded) into the application process.
|
||||
|
||||
# Returns
|
||||
|
||||
`true` if GStreamer will use the child helper process when
|
||||
rebuilding the registry.
|
||||
<!-- impl Registry::fn fork_set_enabled -->
|
||||
Applications might want to disable/enable spawning of a child helper process
|
||||
when rebuilding the registry. See `Registry::fork_is_enabled` for more
|
||||
information.
|
||||
## `enabled`
|
||||
whether rebuilding the registry can use a temporary child helper process.
|
||||
<!-- impl Registry::fn get -->
|
||||
Retrieves the singleton plugin registry. The caller does not own a
|
||||
reference on the registry, as it is alive as long as GStreamer is
|
||||
initialized.
|
||||
|
||||
# Returns
|
||||
|
||||
the `Registry`.
|
||||
<!-- impl Registry::fn add_feature -->
|
||||
Add the feature to the registry. The feature-added signal will be emitted.
|
||||
This function sinks `feature`.
|
||||
## `feature`
|
||||
the feature to add
|
||||
|
||||
# Returns
|
||||
|
||||
`true` on success.
|
||||
|
||||
MT safe.
|
||||
<!-- impl Registry::fn add_plugin -->
|
||||
Add the plugin to the registry. The plugin-added signal will be emitted.
|
||||
This function will sink `plugin`.
|
||||
## `plugin`
|
||||
the plugin to add
|
||||
|
||||
# Returns
|
||||
|
||||
`true` on success.
|
||||
|
||||
MT safe.
|
||||
<!-- impl Registry::fn check_feature_version -->
|
||||
Checks whether a plugin feature by the given name exists in
|
||||
`self` and whether its version is at least the
|
||||
version required.
|
||||
## `feature_name`
|
||||
the name of the feature (e.g. "oggdemux")
|
||||
## `min_major`
|
||||
the minimum major version number
|
||||
## `min_minor`
|
||||
the minimum minor version number
|
||||
## `min_micro`
|
||||
the minimum micro version number
|
||||
|
||||
# Returns
|
||||
|
||||
`true` if the feature could be found and the version is
|
||||
the same as the required version or newer, and `false` otherwise.
|
||||
<!-- impl Registry::fn feature_filter -->
|
||||
Runs a filter against all features of the plugins in the registry
|
||||
and returns a GList with the results.
|
||||
If the first flag is set, only the first match is
|
||||
returned (as a list with a single object).
|
||||
## `filter`
|
||||
the filter to use
|
||||
## `first`
|
||||
only return first match
|
||||
## `user_data`
|
||||
user data passed to the filter function
|
||||
|
||||
# Returns
|
||||
|
||||
a `glib::List` of
|
||||
`PluginFeature`. Use `PluginFeature::list_free` after usage.
|
||||
|
||||
MT safe.
|
||||
<!-- impl Registry::fn find_feature -->
|
||||
Find the pluginfeature with the given name and type in the registry.
|
||||
## `name`
|
||||
the pluginfeature name to find
|
||||
## `type_`
|
||||
the pluginfeature type to find
|
||||
|
||||
# Returns
|
||||
|
||||
the pluginfeature with the
|
||||
given name and type or `None` if the plugin was not
|
||||
found. `GstObjectExt::unref` after usage.
|
||||
|
||||
MT safe.
|
||||
<!-- impl Registry::fn find_plugin -->
|
||||
Find the plugin with the given name in the registry.
|
||||
The plugin will be reffed; caller is responsible for unreffing.
|
||||
## `name`
|
||||
the plugin name to find
|
||||
|
||||
# Returns
|
||||
|
||||
the plugin with the given name
|
||||
or `None` if the plugin was not found. `GstObjectExt::unref` after
|
||||
usage.
|
||||
|
||||
MT safe.
|
||||
<!-- impl Registry::fn get_feature_list -->
|
||||
Retrieves a `glib::List` of `PluginFeature` of `type_`.
|
||||
## `type_`
|
||||
a `glib::Type`.
|
||||
|
||||
# Returns
|
||||
|
||||
a `glib::List` of
|
||||
`PluginFeature` of `type_`. Use `PluginFeature::list_free` after use
|
||||
|
||||
MT safe.
|
||||
<!-- impl Registry::fn get_feature_list_by_plugin -->
|
||||
Retrieves a `glib::List` of features of the plugin with name `name`.
|
||||
## `name`
|
||||
a plugin name.
|
||||
|
||||
# Returns
|
||||
|
||||
a `glib::List` of
|
||||
`PluginFeature`. Use `PluginFeature::list_free` after usage.
|
||||
<!-- impl Registry::fn get_feature_list_cookie -->
|
||||
Returns the registry's feature list cookie. This changes
|
||||
every time a feature is added or removed from the registry.
|
||||
|
||||
# Returns
|
||||
|
||||
the feature list cookie.
|
||||
<!-- impl Registry::fn get_plugin_list -->
|
||||
Get a copy of all plugins registered in the given registry. The refcount
|
||||
of each element in the list in incremented.
|
||||
|
||||
# Returns
|
||||
|
||||
a `glib::List` of `Plugin`.
|
||||
Use `Plugin::list_free` after usage.
|
||||
|
||||
MT safe.
|
||||
<!-- impl Registry::fn lookup -->
|
||||
Look up a plugin in the given registry with the given filename.
|
||||
If found, plugin is reffed.
|
||||
## `filename`
|
||||
the name of the file to look up
|
||||
|
||||
# Returns
|
||||
|
||||
the `Plugin` if found, or
|
||||
`None` if not. `GstObjectExt::unref` after usage.
|
||||
<!-- impl Registry::fn lookup_feature -->
|
||||
Find a `PluginFeature` with `name` in `self`.
|
||||
## `name`
|
||||
a `PluginFeature` name
|
||||
|
||||
# Returns
|
||||
|
||||
a `PluginFeature` with its refcount incremented,
|
||||
use `GstObjectExt::unref` after usage.
|
||||
|
||||
MT safe.
|
||||
<!-- impl Registry::fn plugin_filter -->
|
||||
Runs a filter against all plugins in the registry and returns a `glib::List` with
|
||||
the results. If the first flag is set, only the first match is
|
||||
returned (as a list with a single object).
|
||||
Every plugin is reffed; use `Plugin::list_free` after use, which
|
||||
will unref again.
|
||||
## `filter`
|
||||
the filter to use
|
||||
## `first`
|
||||
only return first match
|
||||
## `user_data`
|
||||
user data passed to the filter function
|
||||
|
||||
# Returns
|
||||
|
||||
a `glib::List` of `Plugin`.
|
||||
Use `Plugin::list_free` after usage.
|
||||
|
||||
MT safe.
|
||||
<!-- impl Registry::fn remove_feature -->
|
||||
Remove the feature from the registry.
|
||||
|
||||
MT safe.
|
||||
## `feature`
|
||||
the feature to remove
|
||||
<!-- impl Registry::fn remove_plugin -->
|
||||
Remove the plugin from the registry.
|
||||
|
||||
MT safe.
|
||||
## `plugin`
|
||||
the plugin to remove
|
||||
<!-- impl Registry::fn scan_path -->
|
||||
Scan the given path for plugins to add to the registry. The syntax of the
|
||||
path is specific to the registry.
|
||||
## `path`
|
||||
the path to scan
|
||||
|
||||
# Returns
|
||||
|
||||
`true` if registry changed
|
||||
<!-- trait RegistryExt::fn connect_feature_added -->
|
||||
Signals that a feature has been added to the registry (possibly
|
||||
replacing a previously-added one by the same name)
|
||||
## `feature`
|
||||
the feature that has been added
|
||||
<!-- trait RegistryExt::fn connect_plugin_added -->
|
||||
Signals that a plugin has been added to the registry (possibly
|
||||
replacing a previously-added one by the same name)
|
||||
## `plugin`
|
||||
the plugin that has been added
|
||||
<!-- enum ResourceError -->
|
||||
Resource errors are for any resource used by an element:
|
||||
memory, files, network connections, process space, ...
|
||||
|
@ -11382,7 +11770,7 @@ Feature: `v1_10`
|
|||
|
||||
# Implements
|
||||
|
||||
[`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||
[`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- impl Stream::fn new -->
|
||||
Create a new `Stream` for the given `stream_id`, `caps`, `type_`
|
||||
and `flags`
|
||||
|
@ -11516,7 +11904,7 @@ Feature: `v1_10`
|
|||
|
||||
# Implements
|
||||
|
||||
[`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||
[`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- impl StreamCollection::fn new -->
|
||||
Create a new `StreamCollection`.
|
||||
|
||||
|
@ -12465,7 +12853,7 @@ wait operations.
|
|||
|
||||
# Implements
|
||||
|
||||
[`SystemClockExt`](trait.SystemClockExt.html), [`ClockExt`](trait.ClockExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||
[`SystemClockExt`](trait.SystemClockExt.html), [`ClockExt`](trait.ClockExt.html), [`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- trait SystemClockExt -->
|
||||
Trait containing all `SystemClock` methods.
|
||||
|
||||
|
@ -13185,7 +13573,7 @@ GST_LOG_OBJECT (tagsetter, "final tags: %" GST_PTR_FORMAT, result);
|
|||
|
||||
# Implements
|
||||
|
||||
[`TagSetterExt`](trait.TagSetterExt.html), [`ElementExt`](trait.ElementExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||
[`TagSetterExt`](trait.TagSetterExt.html), [`ElementExt`](trait.ElementExt.html), [`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- trait TagSetterExt -->
|
||||
Trait containing all `TagSetter` methods.
|
||||
|
||||
|
@ -13538,7 +13926,7 @@ with any TOC entries received from downstream.
|
|||
|
||||
# Implements
|
||||
|
||||
[`TocSetterExt`](trait.TocSetterExt.html), [`ElementExt`](trait.ElementExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html)
|
||||
[`TocSetterExt`](trait.TocSetterExt.html), [`ElementExt`](trait.ElementExt.html), [`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- trait TocSetterExt -->
|
||||
Trait containing all `TocSetter` methods.
|
||||
|
||||
|
@ -13561,6 +13949,118 @@ Set the given TOC on the setter. Previously set TOC will be
|
|||
unreffed before setting a new one.
|
||||
## `toc`
|
||||
a `Toc` to set.
|
||||
<!-- struct TypeFindFactory -->
|
||||
These functions allow querying informations about registered typefind
|
||||
functions. How to create and register these functions is described in
|
||||
the section <link linkend="gstreamer-Writing-typefind-functions">
|
||||
"Writing typefind functions"`</link>`.
|
||||
|
||||
The following example shows how to write a very simple typefinder that
|
||||
identifies the given data. You can get quite a bit more complicated than
|
||||
that though.
|
||||
|
||||
```C
|
||||
typedef struct {
|
||||
guint8 *data;
|
||||
guint size;
|
||||
guint probability;
|
||||
GstCaps *data;
|
||||
} MyTypeFind;
|
||||
static void
|
||||
my_peek (gpointer data, gint64 offset, guint size)
|
||||
{
|
||||
MyTypeFind *find = (MyTypeFind *) data;
|
||||
if (offset >= 0 && offset + size <= find->size) {
|
||||
return find->data + offset;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
static void
|
||||
my_suggest (gpointer data, guint probability, GstCaps *caps)
|
||||
{
|
||||
MyTypeFind *find = (MyTypeFind *) data;
|
||||
if (probability > find->probability) {
|
||||
find->probability = probability;
|
||||
gst_caps_replace (&find->caps, caps);
|
||||
}
|
||||
}
|
||||
static GstCaps *
|
||||
find_type (guint8 *data, guint size)
|
||||
{
|
||||
GList *walk, *type_list;
|
||||
MyTypeFind find = {data, size, 0, NULL};
|
||||
GstTypeFind gst_find = {my_peek, my_suggest, &find, };
|
||||
walk = type_list = gst_type_find_factory_get_list ();
|
||||
while (walk) {
|
||||
GstTypeFindFactory *factory = GST_TYPE_FIND_FACTORY (walk->data);
|
||||
walk = g_list_next (walk)
|
||||
gst_type_find_factory_call_function (factory, &gst_find);
|
||||
}
|
||||
g_list_free (type_list);
|
||||
return find.caps;
|
||||
};
|
||||
```
|
||||
|
||||
# Implements
|
||||
|
||||
[`PluginFeatureExt`](trait.PluginFeatureExt.html), [`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
|
||||
<!-- impl TypeFindFactory::fn get_list -->
|
||||
Gets the list of all registered typefind factories. You must free the
|
||||
list using `PluginFeature::list_free`.
|
||||
|
||||
The returned factories are sorted by highest rank first, and then by
|
||||
factory name.
|
||||
|
||||
Free-function: gst_plugin_feature_list_free
|
||||
|
||||
# Returns
|
||||
|
||||
the list of all
|
||||
registered `TypeFindFactory`.
|
||||
<!-- impl TypeFindFactory::fn call_function -->
|
||||
Calls the `GstTypeFindFunction` associated with this factory.
|
||||
## `find`
|
||||
a properly setup `TypeFind` entry. The get_data
|
||||
and suggest_type members must be set.
|
||||
<!-- impl TypeFindFactory::fn get_caps -->
|
||||
Gets the `Caps` associated with a typefind factory.
|
||||
|
||||
# Returns
|
||||
|
||||
the `Caps` associated with this factory
|
||||
<!-- impl TypeFindFactory::fn get_extensions -->
|
||||
Gets the extensions associated with a `TypeFindFactory`. The returned
|
||||
array should not be changed. If you need to change stuff in it, you should
|
||||
copy it using `g_strdupv`. This function may return `None` to indicate
|
||||
a 0-length list.
|
||||
|
||||
# Returns
|
||||
|
||||
|
||||
a `None`-terminated array of extensions associated with this factory
|
||||
<!-- impl TypeFindFactory::fn has_function -->
|
||||
Check whether the factory has a typefind function. Typefind factories
|
||||
without typefind functions are a last-effort fallback mechanism to
|
||||
e.g. assume a certain media type based on the file extension.
|
||||
|
||||
# Returns
|
||||
|
||||
`true` if the factory has a typefind functions set, otherwise `false`
|
||||
<!-- enum TypeFindProbability -->
|
||||
The probability of the typefind function. Higher values have more certainty
|
||||
in doing a reliable typefind.
|
||||
<!-- enum TypeFindProbability::variant None -->
|
||||
type undetected.
|
||||
<!-- enum TypeFindProbability::variant Minimum -->
|
||||
unlikely typefind.
|
||||
<!-- enum TypeFindProbability::variant Possible -->
|
||||
possible type detected.
|
||||
<!-- enum TypeFindProbability::variant Likely -->
|
||||
likely a type was detected.
|
||||
<!-- enum TypeFindProbability::variant NearlyCertain -->
|
||||
nearly certain that a type was detected.
|
||||
<!-- enum TypeFindProbability::variant Maximum -->
|
||||
very certain a type was detected.
|
||||
<!-- enum URIError -->
|
||||
Different URI-related errors that can occur.
|
||||
<!-- enum URIError::variant UnsupportedProtocol -->
|
||||
|
|
Loading…
Reference in a new issue