Crate gstreamer

Source
Expand description

§gstreamer-rs crates.io pipeline status

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

  1. Installation
    1. Linux/BSDs
    2. macOS
    3. Windows
  2. Getting Started
  3. License
  4. Contribution

§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-dev

The 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-dev

Package 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-gtk3

Make 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-server

Make 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.

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::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 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 paste;

Modules§

buffer
bufferlist
bus
caps
context
element_factory
event
format
This module gathers GStreamer’s formatted value concepts together.
log
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
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. When None is used as the allocator, the default allocator will be used.
Array
ArrayRef
AtomicClockReturn
Bin
Bin is 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 Bin objects.
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
BufferCopyFlags
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 BufferPool is an object that can be used to pre-allocate and recycle buffers of the same size and with the same properties.
BufferPoolAcquireFlags
Additional flags to control the allocation of a buffer
BufferPoolAcquireParams
BufferPoolConfig
BufferPoolConfigRef
BufferRefCursor
Bus
The Bus is an object responsible for delivering Message packets in a first-in first-out way from the streaming threads (see Task) to the application.
CapsFeatures
CapsFeatures can optionally be set on a Caps to 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.
CapsFeaturesRef
ChildProxy
This interface abstracts handling of property sets for elements with children. Imagine elements such as mixers or polyphonic generators. They all have multiple Pad or some kind of voice objects. Another use case are container elements like Bin. 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::Object properties. Such an object is taking one or more ControlSource instances, combines them and maps the resulting value to the type and value range of the bound property.
ControlSource
The ControlSource is 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. DateTime is refcounted and immutable.
DebugColorFlags
These are some terminal style flags you can use when creating your debugging categories to make them stand out in debugging output.
DebugGraphDetails
Available details for pipeline graphs produced by GST_DEBUG_BIN_TO_DOT_FILE() and GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS().
Device
Device are objects representing a device, they contain relevant metadata about the device, such as its class and the Caps representing the media types it can produce or handle.
DeviceMonitor
Applications should create a DeviceMonitor when they want to probe, list and monitor devices of a specific type. The DeviceMonitor will create the appropriate DeviceProvider objects and manage them. It will then post messages on its Bus for devices that have been added and removed.
DeviceMonitorFilterId
DeviceProvider
A DeviceProvider subclass 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.
DeviceProviderFactory
DeviceProviderFactory is used to create instances of device providers. A GstDeviceProviderfactory can be added to a Plugin as 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 Element subclasses.
ElementFactory
ElementFactory is used to create instances of elements. A GstElementFactory can be added to a Plugin as it is also a PluginFeature.
ElementFactoryType
ElementFlags
The standard flags that an element may have.
ErrorMessage
EventTypeFlags
EventTypeFlags indicate the aspects of the different EventType values. You can get the type flags of a EventType with 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::Gap events. See [Event::set_gap_flags()][crate::Event::set_gap_flags()] for details.
GhostPad
GhostPads are useful when organizing pipelines with Bin like 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 other Element. 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.
IntRange
Iterator
List
ListRef
LoggableError
MemoryFlags
Flags for wrapped memory.
MetaFlags
Extra metadata flags.
NotifyWatchId
Object
Object provides 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.
ObjectLockGuard
Pad
A Element is 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. CAPS and TEMPLATE_CAPS are mutually exclusive. If both are specified, expensive but safe CAPS are performed.
PadLinkSuccess
PadProbeId
PadProbeInfo
PadProbeType
The different probing types that can occur. When either one of IDLE or BLOCK is 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.
PeriodicClockId
Pipeline
A Pipeline is a special Bin used as the toplevel container for the filter graph. The Pipeline will manage the selection and distribution of a global Clock as well as provide a Bus to the application.
PipelineBuilder
A builder-pattern type to construct Pipeline objects.
PipelineFlags
Pipeline flags
Plugin
GStreamer is extensible, so Element instances can be loaded at runtime. A plugin system can provide one or more of the basic GStreamer PluginFeature subclasses.
PluginAPIFlags
PluginDependencyFlags
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() or gst_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
SingleShotClockId
SliceTypeFind
StackTraceFlags
StateChangeError
StaticCaps
Data structure to initialize Caps from a string description usually used in conjunction with GST_STATIC_CAPS() and get() to instantiate a Caps.
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 Stream that are available.
StreamFlags
StreamLock
StreamType
StreamType describes a high level classification set for flows of data in Stream objects.
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
Task is used by Element and Pad to 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.
TaskPoolTaskHandle
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 Tracer and register through gst_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.
TypeFindFactory
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 URIHandler is an interface that is implemented by Source and Sink Element to unify handling of URI.

Enums§

BufferingMode
The different types of buffering methods.
BusSyncReply
The result values for a GstBusSyncHandler.
CapsIntersectMode
Modes of caps intersection
ClockEntryType
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.
ElementMessageType
EventForeachAction
EventType
EventType lists 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.
PadGetRangeSuccess
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.
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 using ElementExt::state().
StateChange
These are the different state changes an element goes through. State::NullState::Playing is called an upwards state change and State::PlayingState::Null a downwards state change.
StateChangeReturn
The possible return values from a state change function such as ElementExt::set_state(). Only Failure is a real failure.
StateChangeSuccess
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, …
StreamStatusType
The type of a GST_MESSAGE_STREAM_STATUS. The stream status messages inform the application of new streaming threads and their status.
StructureChangeType
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 a EventType::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 TocEntry should be repeated. By default, entries are played a single time.
TocScope
The scope of a TOC.
TypeFindProbability
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.
TypeFindImpl

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, …

Type Aliases§

ClockTimeDiff
Segment