Crate gstreamer
SourceExpand description
§gstreamer-rs  
 
GStreamer bindings for Rust. Documentation can be found here.
These bindings are providing a safe API that can be used to interface with GStreamer, e.g. for writing GStreamer-based applications and GStreamer plugins.
The bindings are mostly autogenerated with gir based on the GObject-Introspection API metadata provided by the GStreamer project.
§Table of Contents
§Installation
To build the GStreamer bindings or anything depending on them, you need to have at least GStreamer 1.14 and gst-plugins-base 1.14 installed. In addition, some of the examples/tutorials require various GStreamer plugins to be available, which can be found in gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly and/or gst-libav.
§Linux/BSDs
You need to install the above mentioned packages with your distributions package manager, or build them from source.
On Debian/Ubuntu they can be installed with
$ apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
      gstreamer1.0-plugins-base gstreamer1.0-plugins-good \
      gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly \
      gstreamer1.0-libav libgstrtspserver-1.0-dev libges-1.0-devOn Fedora:
dnf install gstreamer1-devel gstreamer1-plugins-base-devel \
      gstreamer1-plugins-good gstreamer1-plugins-bad-free \
      gstreamer1-plugin-libav gstreamer1-rtsp-server-devel \
      gst-editing-services-develMore Fedora packages are available in RPMFusion:
dnf install gstreamer1-plugins-bad-freeworld gstreamer1-plugins-uglyThe minimum required version of the above libraries is >= 1.14. If you
build the gstreamer-player sub-crate, or any of the examples that
depend on gstreamer-player, you must ensure that in addition to the above
packages, libgstreamer-plugins-bad1.0-dev is installed. See the Cargo.toml
files for the full details,
$ apt-get install libgstreamer-plugins-bad1.0-devOn Fedora:
dnf install gstreamer1-plugins-bad-free-develPackage names on other distributions should be similar. Please submit a pull request with instructions for yours.
§macOS
You can install GStreamer and the plugins via Homebrew or by installing the binaries provided by the GStreamer project.
We recommend using the official GStreamer binaries over Homebrew, especially as GStreamer in Homebrew is currently broken.
§GStreamer Binaries
You need to download the two .pkg files from the GStreamer website and
install them, e.g. gstreamer-1.0-1.20.4-universal.pkg and
gstreamer-1.0-devel-1.20.4-universal.pkg.
After installation, you also need to set the PATH environment variable as
follows
$ export PATH="/Library/Frameworks/GStreamer.framework/Versions/1.0/bin${PATH:+:$PATH}"Also note that the pkg-config from GStreamer should be the first one in
the PATH as other versions have all kinds of quirks that will cause
problems.
§Homebrew
Homebrew only installs various plugins if explicitly enabled, so some extra
--with-* flags may be required.
$ brew install gstreamer gst-plugins-base gst-plugins-good \
      gst-plugins-bad gst-plugins-ugly gst-libav gst-rtsp-server \
      gst-editing-services --with-orc --with-libogg --with-opus \
      --with-pango --with-theora --with-libvorbis --with-libvpx \
      --enable-gtk3Make sure the version of these libraries is >= 1.14.
§Windows
You can install GStreamer and the plugins via MSYS2
with pacman or by installing the
binaries provided by
the GStreamer project.
We recommend using the official GStreamer binaries over MSYS2.
§GStreamer Binaries
You need to download the two .msi files for your platform from the
GStreamer website and install them, e.g. gstreamer-1.0-x86_64-1.20.4.msi and
gstreamer-1.0-devel-x86_64-1.20.4.msi. Make sure to select the version that
matches your Rust toolchain, i.e. MinGW or MSVC.
After installation set the ``PATH` environment variable as follows:
# For a UNIX-style shell:
$ export PATH="c:/gstreamer/1.0/msvc_x86_64/bin${PATH:+:$PATH}"
# For cmd.exe:
$ set PATH=C:\gstreamer\1.0\msvc_x86_64\bin;%PATH%Make sure to update the path to where you have actually installed GStreamer and for the corresponding toolchain.
Also note that the pkg-config.exe from GStreamer should be the first one in
the PATH as other versions have all kinds of quirks that will cause
problems.
§MSYS2 / pacman
$ pacman -S glib2-devel pkg-config \
      mingw-w64-x86_64-gstreamer mingw-w64-x86_64-gst-plugins-base \
      mingw-w64-x86_64-gst-plugins-good mingw-w64-x86_64-gst-plugins-bad \
      mingw-w64-x86_64-gst-plugins-ugly mingw-w64-x86_64-gst-libav \
      mingw-w64-x86_64-gst-rtsp-serverMake sure the version of these libraries is >= 1.14.
Note that the version of pkg-config included in MSYS2 is
known to have problems
compiling GStreamer, so you may need to install another version. One option
would be pkg-config-lite.
§Getting Started
The API reference can be found here, however it is only the Rust API reference and does not explain any of the concepts.
For getting started with GStreamer development, the best would be to follow
the documentation on the
GStreamer website, especially the Application Development
Manual.
While being C-centric, it explains all the fundamental concepts of GStreamer
and the code examples should be relatively easily translatable to Rust. The
API is basically the same, function/struct names are the same and everything
is only more convenient (hopefully) and safer. The Rust APIs are annotated with
#[doc(alias = "c_function_name")], so you can search for a C function name
in this documentation and find the corresponding Rust binding.
In addition there are tutorials on the GStreamer website. Many of them were ported to Rust already and the code can be found in the tutorials directory.
Some further examples for various aspects of GStreamer and how to use it from Rust can be found in the examples directory.
Various GStreamer plugins written in Rust can be found in the gst-plugins-rs repository.
§LICENSE
gstreamer-rs and all crates contained in here are licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
GStreamer itself is licensed under the Lesser General Public License version 2.1 or (at your option) any later version: https://www.gnu.org/licenses/lgpl-2.1.html
§Contribution
Any kinds of contributions are welcome as a pull request.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in gstreamer-rs by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Re-exports§
- pub use crate::log::DebugCategoryLogger;
- pub use crate::log::DebugCategory;
- pub use crate::log::DebugLogFunction;
- pub use crate::log::DebugLogger;
- pub use crate::log::DebugMessage;
- pub use crate::log::LoggedObject;
- pub use crate::log::CAT_BUFFER;
- pub use crate::log::CAT_BUFFER_LIST;
- pub use crate::log::CAT_BUS;
- pub use crate::log::CAT_CALL_TRACE;
- pub use crate::log::CAT_CAPS;
- pub use crate::log::CAT_CLOCK;
- pub use crate::log::CAT_CONTEXT;
- pub use crate::log::CAT_DEFAULT;
- pub use crate::log::CAT_ELEMENT_PADS;
- pub use crate::log::CAT_ERROR_SYSTEM;
- pub use crate::log::CAT_EVENT;
- pub use crate::log::CAT_GST_INIT;
- pub use crate::log::CAT_LOCKING;
- pub use crate::log::CAT_MEMORY;
- pub use crate::log::CAT_MESSAGE;
- pub use crate::log::CAT_META;
- pub use crate::log::CAT_NEGOTIATION;
- pub use crate::log::CAT_PADS;
- pub use crate::log::CAT_PARAMS;
- pub use crate::log::CAT_PARENTAGE;
- pub use crate::log::CAT_PERFORMANCE;
- pub use crate::log::CAT_PIPELINE;
- pub use crate::log::CAT_PLUGIN_INFO;
- pub use crate::log::CAT_PLUGIN_LOADING;
- pub use crate::log::CAT_PROBE;
- pub use crate::log::CAT_PROPERTIES;
- pub use crate::log::CAT_QOS;
- pub use crate::log::CAT_REFCOUNTING;
- pub use crate::log::CAT_REGISTRY;
- pub use crate::log::CAT_RUST;
- pub use crate::log::CAT_SCHEDULING;
- pub use crate::log::CAT_SIGNAL;
- pub use crate::log::CAT_STATES;
- pub use crate::log_context::LogContext;
- pub use crate::log_context::LogContextBuilder;
- pub use miniobject::MiniObject;
- pub use miniobject::MiniObjectRef;
- pub use crate::message::Message;
- pub use crate::message::MessageErrorDomain;
- pub use crate::message::MessageRef;
- pub use crate::message::MessageView;
- pub use crate::message::MessageViewMut;
- pub use crate::structure::Structure;
- pub use crate::structure::StructureRef;
- pub use crate::caps::Caps;
- pub use crate::caps::CapsFilterMapAction;
- pub use crate::caps::CapsRef;
- pub use crate::tags::tag_exists;
- pub use crate::tags::tag_get_description;
- pub use crate::tags::tag_get_flag;
- pub use crate::tags::tag_get_nick;
- pub use crate::tags::tag_get_type;
- pub use crate::tags::Tag;
- pub use crate::tags::TagList;
- pub use crate::tags::TagListRef;
- pub use crate::meta::MetaSeqnum;
- pub use crate::meta::Meta;
- pub use crate::meta::MetaAPI;
- pub use crate::meta::MetaAPIExt;
- pub use crate::meta::MetaRef;
- pub use crate::meta::MetaRefMut;
- pub use crate::meta::ParentBufferMeta;
- pub use crate::meta::ProtectionMeta;
- pub use crate::meta::ReferenceTimestampMeta;
- pub use crate::buffer::Buffer;
- pub use crate::buffer::BufferMap;
- pub use crate::buffer::BufferRef;
- pub use crate::buffer::MappedBuffer;
- pub use crate::buffer::BUFFER_COPY_ALL;
- pub use crate::buffer::BUFFER_COPY_METADATA;
- pub use crate::memory::MemoryRefTrace;
- pub use crate::memory::MappedMemory;
- pub use crate::memory::Memory;
- pub use crate::memory::MemoryMap;
- pub use crate::memory::MemoryRef;
- pub use crate::sample::Sample;
- pub use crate::sample::SampleRef;
- pub use crate::bufferlist::BufferList;
- pub use crate::bufferlist::BufferListRef;
- pub use crate::query::Query;
- pub use crate::query::QueryRef;
- pub use crate::query::QueryView;
- pub use crate::query::QueryViewMut;
- pub use crate::event::Event;
- pub use crate::event::EventRef;
- pub use crate::event::EventView;
- pub use crate::event::EventViewMut;
- pub use crate::event::GroupId;
- pub use crate::event::Seqnum;
- pub use crate::context::Context;
- pub use crate::context::ContextRef;
- pub use promise::Promise;
- pub use promise::PromiseError;
- pub use task::TaskLock;
- pub use task::TaskLockGuard;
- pub use crate::format::ClockTime;
- pub use crate::format::GenericFormattedValue;
- pub use crate::format::GenericSignedFormattedValue;
- pub use crate::format::Signed;
- pub use crate::toc::Toc;
- pub use crate::toc::TocEntry;
- pub use crate::toc::TocEntryRef;
- pub use crate::toc::TocRef;
- pub use crate::param_spec::ParamSpecArray;
- pub use crate::param_spec::ParamSpecFraction;
- pub use glib;
- pub use gstreamer_sys as ffi;
- pub use pastey as paste;
- pub use pastey;
Modules§
- buffer
- bufferlist
- bus
- caps
- context
- element_factory 
- event
- format
- This module gathers GStreamer’s formatted value concepts together.
- gobject
- log
- log_context 
- memory
- message
- meta
- miniobject
- param_spec 
- parse
- prelude
- promise
- query
- sample
- slice
- stream
- stream_collection 
- structure
- subclass
- tags
- task
- toc
Macros§
- bitflags_deserialize_ impl 
- bitflags_serde_ impl 
- bitflags_serialize_ impl 
- debug
- element_error 
- element_imp_ error 
- element_imp_ info 
- element_imp_ warning 
- element_info 
- element_warning 
- error
- error_msg 
- fixme
- idstr
- Builds an IdStrfrom a string literal.
- impl_meta_ tag 
- info
- log
- log_with_ level 
- loggable_error 
- memdump
- memory_object_ wrapper 
- mini_object_ wrapper 
- panic_to_ error 
- plugin_define 
- result_from_ gboolean 
- trace
- warning
Structs§
- AllocationParams 
- Parameters to control the allocation of memory
- Allocator
- Memory is usually created by allocators with a AllocatorExt::alloc()method call. WhenNoneis used as the allocator, the default allocator will be used.
- Array
- ArrayRef 
- AtomicClock Return 
- Bin
- Binis an element that can contain other- Element, allowing them to be managed as a group. Pads from the child elements can be ghosted to the bin, see- GhostPad. This makes the bin look like any other elements and enables creation of higher-level abstraction elements.
- BinBuilder
- A builder-pattern type to construct Binobjects.
- BinFlags
- GstBinFlags are a set of flags specific to bins. Most are set/used internally. They can be checked using the GST_OBJECT_FLAG_IS_SET() macro, and (un)set using GST_OBJECT_FLAG_SET() and GST_OBJECT_FLAG_UNSET().
- Bitmask
- BufferCopy Flags 
- A set of flags that can be provided to the [Buffer::copy_into()][crate::Buffer::copy_into()] function to specify which items should be copied.
- BufferCursor 
- BufferFlags 
- A set of buffer flags used to describe properties of a Buffer.
- BufferPool 
- A BufferPoolis an object that can be used to pre-allocate and recycle buffers of the same size and with the same properties.
- BufferPool Acquire Flags 
- Additional flags to control the allocation of a buffer
- BufferPool Acquire Params 
- BufferPool Config 
- BufferPool Config Ref 
- BufferRefCursor 
- Bus
- The Busis an object responsible for deliveringMessagepackets in a first-in first-out way from the streaming threads (seeTask) to the application.
- CapsFeatures 
- CapsFeaturescan optionally be set on a- Capsto add requirements for additional features for a specific- Structure. Caps structures with the same name but with a non-equal set of caps features are not compatible. If a pad supports multiple sets of features it has to add multiple equal structures with different feature sets to the caps.
- CapsFeatures Ref 
- ChildProxy 
- This interface abstracts handling of property sets for elements with
children. Imagine elements such as mixers or polyphonic generators. They all
have multiple Pador some kind of voice objects. Another use case are container elements likeBin. The element implementing the interface acts as a parent for those child objects.
- Clock
- GStreamer uses a global clock to synchronize the plugins in a pipeline.
Different clock implementations are possible by implementing this abstract
base class or, more conveniently, by subclassing SystemClock.
- ClockFlags 
- The capabilities of this clock
- ClockId
- GLib type: Shared boxed type with reference counted clone semantics.
- ControlBinding 
- A base class for value mapping objects that attaches control sources to glib::Objectproperties. Such an object is taking one or moreControlSourceinstances, combines them and maps the resulting value to the type and value range of the bound property.
- ControlSource 
- The ControlSourceis a base class for control value sources that could be used to get timestamp-value pairs. A control source essentially is a function over time.
- DateTime 
- Struct to store date, time and timezone information altogether.
DateTimeis refcounted and immutable.
- DebugColor Flags 
- These are some terminal style flags you can use when creating your debugging categories to make them stand out in debugging output.
- DebugGraph Details 
- Available details for pipeline graphs produced by GST_DEBUG_BIN_TO_DOT_FILE() and GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS().
- Device
- Deviceare objects representing a device, they contain relevant metadata about the device, such as its class and the- Capsrepresenting the media types it can produce or handle.
- DeviceMonitor 
- Applications should create a DeviceMonitorwhen they want to probe, list and monitor devices of a specific type. TheDeviceMonitorwill create the appropriateDeviceProviderobjects and manage them. It will then post messages on itsBusfor devices that have been added and removed.
- DeviceMonitor Filter Id 
- DeviceProvider 
- A DeviceProvidersubclass is provided by a plugin that handles devices if there is a way to programmatically list connected devices. It can also optionally provide updates to the list of connected devices.
- DeviceProvider Factory 
- DeviceProviderFactoryis used to create instances of device providers. A GstDeviceProviderfactory can be added to a- Pluginas it is also a- PluginFeature.
- Element
- GstElement is the abstract base class needed to construct an element that
can be used in a GStreamer pipeline. Please refer to the plugin writers
guide for more information on creating Elementsubclasses.
- ElementFactory 
- ElementFactoryis used to create instances of elements. A GstElementFactory can be added to a- Pluginas it is also a- PluginFeature.
- ElementFactory Type 
- ElementFlags 
- The standard flags that an element may have.
- ErrorMessage 
- EventType Flags 
- EventTypeFlagsindicate the aspects of the different- EventTypevalues. You can get the type flags of a- EventTypewith the- EventType::flags()function.
- FormattedSegment 
- GLib type: Inline allocated boxed type with stack copy semantics.
- Fraction
- FractionRange 
- GapFlags
- The different flags that can be set on EventType::Gapevents. See [Event::set_gap_flags()][crate::Event::set_gap_flags()] for details.
- GhostPad 
- GhostPads are useful when organizing pipelines with Binlike elements. The idea here is to create hierarchical element graphs. The bin element contains a sub-graph. Now one would like to treat the bin-element like any otherElement. This is where GhostPads come into play. A GhostPad acts as a proxy for another pad. Thus the bin can have sink and source ghost-pads that are associated with sink and source pads of the child elements.
- IdStr
- An UTF-8 immutable string type with optimizations for short values (len < 16).
A IdStris string type optimized for short strings and used for structure names, structure field names and in other places.
- IntRange
- Iterator
- List
- ListRef
- LogContextFlags 
- Flags to control the behavior of a LogContext.
- LogContextHash Flags 
- Flags to control how the message hash is calculated in a LogContext. The message hash is used to determine if a message is a duplicate of a previously logged message.
- LoggableError 
- MemoryFlags 
- Flags for wrapped memory.
- MetaFlags 
- Extra metadata flags.
- NotifyWatch Id 
- Object
- Objectprovides a root for the object hierarchy tree filed in by the GStreamer library. It is currently a thin wrapper on top of- GInitiallyUnowned. It is an abstract class that is not very usable on its own.
- ObjectFlags 
- The standard flags that an gstobject may have.
- ObjectLock Guard 
- Pad
- A Elementis linked to other elements via “pads”, which are extremely light-weight generic link points.
- PadBuilder
- PadFlags
- Pad state flags
- PadLinkCheck 
- The amount of checking to be done when linking pads. CAPSandTEMPLATE_CAPSare mutually exclusive. If both are specified, expensive but safeCAPSare performed.
- PadLinkSuccess 
- PadProbeId 
- PadProbeInfo 
- PadProbeType 
- The different probing types that can occur. When either one of
IDLEorBLOCKis used, the probe will be a blocking probe.
- PadTemplate
- Padtemplates describe the possible media types a pad or an elementfactory can handle. This allows for both inspection of handled types before loading the element plugin as well as identifying pads on elements that are not yet created (request or sometimes pads).
- PadTemplateBuilder 
- ParseContext 
- Opaque structure.
- ParseFlags 
- Parsing options.
- PeriodicClock Id 
- Pipeline
- A Pipelineis a specialBinused as the toplevel container for the filter graph. ThePipelinewill manage the selection and distribution of a globalClockas well as provide aBusto the application.
- PipelineBuilder 
- A builder-pattern type to construct Pipelineobjects.
- PipelineFlags 
- Pipeline flags
- Plugin
- GStreamer is extensible, so Elementinstances can be loaded at runtime. A plugin system can provide one or more of the basic GStreamerPluginFeaturesubclasses.
- PluginAPIFlags 
- PluginDependency Flags 
- Flags used in connection with Plugin::add_dependency().
- PluginFeature 
- This is a base class for anything that can be added to a Plugin.
- PluginFlags 
- The plugin loading state
- 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. The name of a preset serves as key for subsequent method calls to manipulate single presets. All instances of one type will share the list of presets. The list is created on demand, if presets are not used, the list is not created.
- ProxyPad 
- Implements
- Rank
- Registry
- One registry holds the metadata of a set of plugins.
- SchedulingFlags 
- The different scheduling flags.
- SeekFlags 
- Flags to be used with ElementExtManual::seek()orgst_event_new_seek(). All flags can be used together.
- SegmentFlags 
- Flags for the GstSegment structure. Currently mapped to the corresponding values of the seek flags.
- SerializeFlags 
- SingleShot Clock Id 
- SliceType Find 
- StackTrace Flags 
- StateChange Error 
- StaticCaps 
- Data structure to initialize Capsfrom a string description usually used in conjunction with GST_STATIC_CAPS() andget()to instantiate aCaps.
- StaticPadTemplate 
- Structure describing the StaticPadTemplate.
- StdIterator
- Stream
- A high-level object representing a single stream. It might be backed, or
not, by an actual flow of data in a pipeline (Pad).
- StreamCollection 
- A collection of Streamthat are available.
- StreamFlags 
- StreamLock 
- StreamType 
- StreamTypedescribes a high level classification set for flows of data in- Streamobjects.
- SystemClock 
- The GStreamer core provides a GstSystemClock based on the system time. Asynchronous callbacks are scheduled from an internal thread.
- TagSetter
- Element interface that allows setting of media metadata.
- Task
- Taskis used by- Elementand- Padto provide the data passing threads in a- Pipeline.
- TaskPool 
- This object provides an abstraction for creating threads. The default implementation uses a regular GThreadPool to start tasks.
- TaskPool Task Handle 
- An opaque handle for a task associated with a particular task pool.
- TocSetter
- Element interface that allows setting of the TOC.
- Tracer
- Tracing modules will subclass Tracerand register throughgst_tracer_register(). Modules can attach to various hook-types - see [tracing_register_hook()][crate::tracing_register_hook()]. When invoked they receive hook specific contextual data, which they must not modify.
- TracerFactory 
- Use factories()to get a list of tracer factories known to GStreamer.
- TypeFind 
- The following functions allow you to detect the media type of an unknown stream.
- TypeFind Factory 
- These functions allow querying information about registered typefind
functions. How to create and register these functions is described in
the section 
“Writing typefind functions”</link>.
- URIHandler
- The URIHandleris an interface that is implemented by Source and SinkElementto unify handling of URI.
Enums§
- BufferingMode 
- The different types of buffering methods.
- BusSyncReply 
- The result values for a GstBusSyncHandler.
- CapsIntersect Mode 
- Modes of caps intersection
- ClockEntry Type 
- The type of the clock entry
- ClockError 
- ClockReturn 
- The return value of a clock operation.
- ClockSuccess 
- ClockType 
- The different kind of clocks.
- CoreError 
- Core errors are errors inside the core GStreamer library.
- DebugLevel 
- The level defines the importance of a debugging message. The more important a message is, the greater the probability that the debugging system outputs it.
- ElementMessage Type 
- EventForeach Action 
- EventType 
- EventTypelists the standard event types that can be sent in a pipeline.
- FlowError 
- FlowReturn 
- FlowSuccess 
- Format
- Standard predefined formats
- IteratorError 
- LibraryError 
- Library errors are for errors from the library being used by elements (initializing, finalizing, settings, …)
- MessageType 
- PadDirection
- The direction of a pad.
- PadGetRange Success 
- PadLinkError 
- PadLinkReturn 
- PadMode
- The status of a GstPad. After activating a pad, which usually happens when the parent element goes from READY to PAUSED, the GstPadMode defines if the pad operates in push or pull mode.
- PadPresence
- Indicates when this pad will become available.
- PadProbeData 
- PadProbeReturn 
- Different return values for the GstPadProbeCallback.
- ParseError 
- The different parsing errors that can occur.
- PluginError 
- The plugin loading errors
- ProgressType 
- The type of a GST_MESSAGE_PROGRESS. The progress messages inform the application of the status of asynchronous tasks.
- PromiseResult 
- The result of a Promise
- QOSType
- The different types of QoS events that can be given to the
gst_event_new_qos()method.
- QueryType 
- Standard predefined Query types
- ResourceError 
- Resource errors are for any resource used by an element: memory, files, network connections, process space, … They’re typically used by source and sink elements.
- SeekType 
- The different types of seek events. When constructing a seek event with
gst_event_new_seek()or when doing gst_segment_do_seek ().
- State
- The possible states an element can be in. States can be changed using
ElementExt::set_state()and checked usingElementExt::state().
- StateChange 
- These are the different state changes an element goes through.
State::Null⇒State::Playingis called an upwards state change andState::Playing⇒State::Nulla downwards state change.
- StateChange Return 
- The possible return values from a state change function such as
ElementExt::set_state(). OnlyFailureis a real failure.
- StateChange Success 
- StreamError 
- Stream errors are for anything related to the stream being processed: format errors, media type errors, … They’re typically used by decoders, demuxers, converters, …
- StreamStatus Type 
- The type of a GST_MESSAGE_STREAM_STATUS. The stream status messages inform the application of new streaming threads and their status.
- StructureChange Type 
- The type of a GST_MESSAGE_STRUCTURE_CHANGE.
- TagError
- TagFlag
- Extra tag flags used when registering tags.
- TagMergeMode 
- The different tag merging modes are basically replace, overwrite and append,
but they can be seen from two directions. Given two taglists: (A) the tags
already in the element and (B) the ones that are supplied to the element (
e.g. via TagSetterExt::merge_tags()/gst_tag_setter_add_tags()or aEventType::Tag), how are these tags merged? In the table below this is shown for the cases that a tag exists in the list (A) or does not exists (!A) and combinations thereof.
- TagScope
- GstTagScope specifies if a taglist applies to the complete medium or only to one single stream.
- TaskState 
- The different states a task can be in
- TocEntryType 
- The different types of TOC entries (see TocEntry).
- TocLoopType 
- How a TocEntryshould be repeated. By default, entries are played a single time.
- TocScope
- The scope of a TOC.
- TypeFind Probability 
- The probability of the typefind function. Higher values have more certainty in doing a reliable typefind.
- URIError
- Different URI-related errors that can occur.
- URIType
- The different types of URI direction.
Constants§
- PARAM_FLAG_ CONDITIONALLY_ AVAILABLE 
- PARAM_FLAG_ CONTROLLABLE 
- PARAM_FLAG_ DOC_ SHOW_ DEFAULT 
- PARAM_FLAG_ MUTABLE_ PAUSED 
- PARAM_FLAG_ MUTABLE_ PLAYING 
- PARAM_FLAG_ MUTABLE_ READY 
Statics§
- CAPS_FEATURES_ MEMORY_ SYSTEM_ MEMORY 
- CAPS_FEATURE_ MEMORY_ SYSTEM_ MEMORY 
- ELEMENT_METADATA_ AUTHOR 
- Name and contact details of the author(s). Use \n to separate multiple author details. E.g: “Joe Bloggs <joe.blogs at foo.com>”
- ELEMENT_METADATA_ DESCRIPTION 
- Sentence describing the purpose of the element. E.g: “Write stream to a file”
- ELEMENT_METADATA_ DOC_ URI 
- Set uri pointing to user documentation. Applications can use this to show help for e.g. effects to users.
- ELEMENT_METADATA_ ICON_ NAME 
- Elements that bridge to certain other products can include an icon of that used product. Application can show the icon in menus/selectors to help identifying specific elements.
- ELEMENT_METADATA_ KLASS 
- String describing the type of element, as an unordered list separated with slashes (‘/’). See draft-klass.txt of the design docs for more details and common types. E.g: “Sink/File”
- ELEMENT_METADATA_ LONGNAME 
- The long English name of the element. E.g. “File Sink”
Traits§
- IteratorImpl 
- TaskHandle 
- A handle for a task which was pushed to a task pool.
- TypeFind Impl 
Functions§
- active_tracers 
- Get a list of all active tracer objects owned by the tracing framework for
the entirety of the run-time of the process or till gst_deinit()is called.
- assert_initialized 
- calculate_linear_ regression 
- deinit⚠
- Deinitialize GStreamer
- filename_compare 
- get_timestamp 
- Get a timestamp as GstClockTime to be used for interval measurements. The timestamp should not be interpreted in any other way.
- init
- main_executable_ path 
- This helper is mostly helpful for plugins that need to inspect the folder of the main executable to determine their set of features.
- version
- Gets the version number of the GStreamer library.
- version_string 
- This function returns a string that is useful for describing this version of GStreamer to the outside world: user agent strings, logging, …