Crate gstreamer[][src]

Re-exports

pub use ffi;
pub use glib;
pub use paste;
pub use crate::message::Message;
pub use crate::message::MessageErrorDomain;
pub use crate::message::MessageRef;
pub use crate::message::MessageView;
pub use crate::structure::Structure;
pub use crate::structure::StructureRef;
pub use crate::caps::Caps;
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;v1_16
pub use crate::meta::ReferenceTimestampMeta;v1_14
pub use crate::meta::Meta;
pub use crate::meta::MetaAPI;
pub use crate::meta::MetaRef;
pub use crate::meta::MetaRefMut;
pub use crate::meta::ParentBufferMeta;
pub use crate::meta::ProtectionMeta;
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::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::event::Event;
pub use crate::event::EventRef;
pub use crate::event::EventView;
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 crate::format::FormattedValue;
pub use crate::format::FormattedValueIntrinsic;
pub use crate::format::GenericFormattedValue;
pub use crate::format::SpecificFormattedValue;
pub use crate::format::SpecificFormattedValueIntrinsic;
pub use crate::toc::Toc;
pub use crate::toc::TocEntry;
pub use crate::toc::TocEntryRef;
pub use crate::toc::TocRef;
pub use crate::functions::*;

Modules

buffer
bufferlist
bus
caps
context
event
format
functions
functions
memory
message
meta
miniobject
prelude
promisev1_14
query
sample
streamv1_10
stream_collectionv1_10
structure
subclass
tags
toc

Macros

element_error
element_info
element_warning
error_msg
gst_debug
gst_error
gst_fixme
gst_info
gst_log
gst_log_with_level
gst_memdump
gst_trace
gst_warning
loggable_error
mini_object_wrapper
panic_to_error
plugin_define
result_from_gboolean

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

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
BufferRefCursor
Bus

The Bus is an object responsible for delivering Message packets in a first-in first-out way from the streaming threads (see GstTask) 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
ClockTime
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.

DebugCategory
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().

DebugLogFunction
DebugMessage
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.

ElementFactoryListType
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
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
LoggableError
LoggedObject
MemoryFlags

Flags for wrapped memory.

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.

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

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.

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

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

TocSetter

Element interface that allows setting of the TOC.

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
EventType

EventType lists the standard event types that can be sent in a pipeline.

FlowError
FlowReturn

The result of passing data to a pad.

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

Result values from gst_pad_link and friends.

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.

PromiseResultv1_14

The result of a Promise

QOSType

The different types of QoS events that can be given to the gst_event_new_qos() method.

Rank

Element priority ranks. Defines the order in which the autoplugger (or similar rank-picking mechanisms, such as e.g. Element::make_from_uri()) will choose this element over an alternative one with the same function.

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

NONE_ALLOCATOR
NONE_BIN
NONE_BUFFER_POOL
NONE_CHILD_PROXY
NONE_CLOCK
NONE_CONTROL_BINDING
NONE_CONTROL_SOURCE
NONE_DEVICE
NONE_DEVICE_MONITOR
NONE_DEVICE_PROVIDER
NONE_ELEMENT
NONE_GHOST_PAD
NONE_OBJECT
NONE_PAD
NONE_PIPELINE
NONE_PLUGIN_FEATURE
NONE_PRESET
NONE_PROXY_PAD
NONE_SYSTEM_CLOCK
NONE_TAG_SETTER
NONE_TOC_SETTER
NONE_URI_HANDLER
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
CAT_BUFFER
CAT_BUFFER_LIST
CAT_BUS
CAT_CALL_TRACE
CAT_CAPS
CAT_CLOCK
CAT_CONTEXT
CAT_DEFAULT
CAT_ELEMENT_PADS
CAT_ERROR_SYSTEM
CAT_EVENT
CAT_GST_INIT
CAT_LOCKING
CAT_MEMORY
CAT_MESSAGE
CAT_META
CAT_NEGOTIATION
CAT_PADS
CAT_PARAMS
CAT_PARENTAGE
CAT_PERFORMANCE
CAT_PIPELINE
CAT_PLUGIN_INFO
CAT_PLUGIN_LOADING
CAT_PROBE
CAT_PROPERTIES
CAT_QOS
CAT_REFCOUNTING
CAT_REGISTRY
CAT_RUST
CAT_SCHEDULING
CAT_SIGNAL
CAT_STATES
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

BufferPoolExtManual
GstParamSpecExt
GstValueExt
IteratorImpl
TypeFindImpl

Functions

debug_add_log_function
debug_add_ring_buffer_loggerv1_14

Adds a memory ringbuffer based debug logger that stores up to max_size_per_thread bytes of logs per thread and times out threads after thread_timeout seconds of inactivity.

debug_bin_to_dot_data

To aid debugging applications one can use this method to obtain the whole network of gstreamer elements that form the pipeline into a dot file. This data can be processed with graphviz to get an image.

debug_bin_to_dot_file

To aid debugging applications one can use this method to write out the whole network of gstreamer elements that form the pipeline into a dot file. This file can be processed with graphviz to get an image.

debug_bin_to_dot_file_with_ts

This works like debug_bin_to_dot_file(), but adds the current timestamp to the filename, so that it can be used to take multiple snapshots.

debug_get_default_threshold

Returns the default threshold that is used for new categories.

debug_get_stack_tracev1_12

flags

debug_is_active

Checks if debugging output is activated.

debug_is_colored

Checks if the debugging output should be colored.

debug_print_stack_trace

If libunwind, glibc backtrace or DbgHelp are present a stack trace is printed.

debug_remove_default_log_function
debug_remove_log_function
debug_remove_ring_buffer_loggerv1_14

Removes any previously added ring buffer logger with debug_add_ring_buffer_logger().

debug_ring_buffer_logger_get_logsv1_14

Fetches the current logs per thread from the ring buffer logger. See debug_add_ring_buffer_logger() for details.

debug_set_active

If activated, debugging messages are sent to the debugging handlers. It makes sense to deactivate it for speed issues.

debug_set_colored

Sets or unsets the use of coloured debugging output. Same as gst_debug_set_color_mode () with the argument being being GST_DEBUG_COLOR_MODE_ON or GST_DEBUG_COLOR_MODE_OFF.

debug_set_default_threshold

Sets the default threshold to the given level and updates all categories to use this threshold.

debug_set_threshold_for_name

Sets all categories which match the given glob style pattern to the given level.

debug_set_threshold_from_string

Sets the debug logging wanted in the same form as with the GST_DEBUG environment variable. You can use wildcards such as ‘*’, but note that the order matters when you use wild cards, e.g. “foosrc:6,src:3,:2” sets everything to log level 2.

debug_unset_threshold_for_name

Resets all categories with the given name back to the default level.

deinit

Deinitialize GStreamer

init

Initializes the GStreamer library, setting up internal path lists, registering built-in elements, and loading standard plugins.

main_executable_pathv1_14

This helper is mostly helpful for plugins that need to inspect the folder of the main executable to determine their set of features.

parse_bin_from_description

This is a convenience wrapper around parse_launch() to create a Bin from a gst-launch-style pipeline description. See parse_launch() and the gst-launch man page for details about the syntax. Ghost pads on the bin for unlinked source or sink pads within the bin can automatically be created (but only a maximum of one ghost pad for each direction will be created; if you expect multiple unlinked source pads or multiple unlinked sink pads and want them all ghosted, you will have to create the ghost pads yourself).

parse_launch

Create a new pipeline based on command line syntax. Please note that you might get a return value that is not None even though the error is set. In this case there was a recoverable parsing error and you can try to play the pipeline.

parse_launchv

Create a new element based on command line syntax. error will contain an error message if an erroneous pipeline is specified. An error does not mean that the pipeline could not be constructed.

type_mark_as_plugin_apiv1_18

Marks type_ as plugin API. This should be called in class_init of elements that expose new types (i.e. enums, flags or internal GObjects) via properties, signals or pad templates.

update_registry

Forces GStreamer to re-scan its plugin paths and update the default plugin registry.

util_get_timestamp

Get a timestamp as GstClockTime to be used for interval measurements. The timestamp should not be interpreted in any other way.

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 Definitions

ClockTimeDiff
Segment