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::GenericFormattedValue;
pub use crate::format::SpecificFormattedValue;
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 crate::prelude::AllocatorExt::alloc() method call. When None is used as the allocator, the default allocator will be used.

Array
AtomicClockReturn
Bin

crate::Bin is an element that can contain other crate::Element, allowing them to be managed as a group. Pads from the child elements can be ghosted to the bin, see crate::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 [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 crate::Buffer.

BufferPool

A crate::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 crate::Bus is an object responsible for delivering crate::Message packets in a first-in first-out way from the streaming threads (see [crate::Task]) to the application.

CapsFeatures
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 crate::Pad or some kind of voice objects. Another use case are container elements like crate::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 crate::SystemClock.

ClockFlags

The capabilities of this clock

ClockId
ClockTime
ControlBinding

A base class for value mapping objects that attaches control sources to gobject properties. Such an object is taking one or more crate::ControlSource instances, combines them and maps the resulting value to the type and value range of the bound property.

ControlSource

The crate::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. crate::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

crate::Device are objects representing a device, they contain relevant metadata about the device, such as its class and the crate::Caps representing the media types it can produce or handle.

DeviceMonitor

Applications should create a crate::DeviceMonitor when they want to probe, list and monitor devices of a specific type. The crate::DeviceMonitor will create the appropriate crate::DeviceProvider objects and manage them. It will then post messages on its crate::Bus for devices that have been added and removed.

DeviceMonitorFilterId
DeviceProvider

A crate::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

crate::DeviceProviderFactory is used to create instances of device providers. A GstDeviceProviderfactory can be added to a crate::Plugin as it is also a crate::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 crate::Element subclasses.

ElementFactory

crate::ElementFactory is used to create instances of elements. A GstElementFactory can be added to a crate::Plugin as it is also a crate::PluginFeature.

ElementFactoryListType
ElementFlags

The standard flags that an element may have.

ErrorMessage
EventTypeFlags

crate::EventTypeFlags indicate the aspects of the different crate::EventType values. You can get the type flags of a crate::EventType with the [crate::EventType::get_flags()] function.

FormattedSegment
Fraction
FractionRange
GhostPad

GhostPads are useful when organizing pipelines with crate::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 crate::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

crate::Object provides a root for the object hierarchy tree filed in by the GStreamer library. It is currently a thin wrapper on top of crate::glib::object::InitiallyUnowned. It is an abstract class that is not very usable on its own.

ObjectFlags

The standard flags that an gstobject may have.

Pad

A crate::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. [Self::Caps] and [Self::TemplateCaps] are mutually exclusive. If both are specified, expensive but safe [Self::Caps] are performed.

PadLinkSuccess
PadProbeId
PadProbeInfo
PadProbeType

The different probing types that can occur. When either one of [Self::Idle] or [Self::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 crate::Pipeline is a special crate::Bin used as the toplevel container for the filter graph. The crate::Pipeline will manage the selection and distribution of a global crate::Clock as well as provide a crate::Bus to the application.

PipelineFlags

Pipeline flags

Plugin

GStreamer is extensible, so crate::Element instances can be loaded at runtime. A plugin system can provide one or more of the basic GStreamer crate::PluginFeature subclasses.

PluginAPIFlags
PluginDependencyFlags

Flags used in connection with crate::Plugin::add_dependency().

PluginFeature

This is a base class for anything that can be added to a crate::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 [crate::Element::seek()] or [crate::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.

SingleShotClockId
SliceTypeFind
StackTraceFlags
StateChangeError
StaticCaps

Datastructure to initialize crate::Caps from a string description usually used in conjunction with GST_STATIC_CAPS() and Self::get() to instantiate a crate::Caps.

StaticPadTemplate

Structure describing the crate::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 (crate::Pad).

StreamCollection

A collection of crate::Stream that are available.

StreamFlags
StreamType

crate::StreamType describes a high level classification set for flows of data in crate::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
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 crate::URIHandler is an interface that is implemented by Source and Sink crate::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

crate::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 crate::MessageType::Progress. The progress messages inform the application of the status of asynchronous tasks.

PromiseResultv1_14

The result of a crate::Promise

QOSType

The different types of QoS events that can be given to the [crate::Event::new_qos()] method.

Rank

Element priority ranks. Defines the order in which the autoplugger (or similar rank-picking mechanisms, such as e.g. crate::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 [crate::Event::new_seek()] or when doing gst_segment_do_seek ().

State

The possible states an element can be in. States can be changed using crate::prelude::ElementExt::set_state() and checked using [crate::prelude::ElementExt::get_state()].

StateChange

These are the different state changes an element goes through. crate::State::Nullcrate::State::Playing is called an upwards state change and crate::State::Playingcrate::State::Null a downwards state change.

StateChangeReturn

The possible return values from a state change function such as crate::prelude::ElementExt::set_state(). Only Self::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 crate::MessageType::StreamStatus. The stream status messages inform the application of new streaming threads and their status.

StructureChangeType

The type of a crate::MessageType::StructureChange.

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 [crate::TagSetter::merge_tags()] / [crate::TagSetter::add_tags()] or a crate::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 crate::TocEntry).

TocLoopType

How a crate::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

BUFFER_OFFSET_NONE
CLOCK_TIME_NONE
FORMAT_PERCENT_MAX
FORMAT_PERCENT_SCALE
MSECOND
MSECOND_VAL
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
NSECOND
NSECOND_VAL
PARAM_FLAG_CONDITIONALLY_AVAILABLE
PARAM_FLAG_CONTROLLABLE
PARAM_FLAG_DOC_SHOW_DEFAULT
PARAM_FLAG_MUTABLE_PAUSED
PARAM_FLAG_MUTABLE_PLAYING
PARAM_FLAG_MUTABLE_READY
SECOND
SECOND_VAL
USECOND
USECOND_VAL

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
ELEMENT_METADATA_DESCRIPTION
ELEMENT_METADATA_DOC_URI
ELEMENT_METADATA_ICON_NAME
ELEMENT_METADATA_KLASS
ELEMENT_METADATA_LONGNAME

Traits

BufferPoolExtManual
GstParamSpecExt
GstValueExt
IteratorImpl
TypeFindImpl

Functions

debug_add_log_function
debug_add_ring_buffer_loggerv1_14
debug_bin_to_dot_data
debug_bin_to_dot_file
debug_bin_to_dot_file_with_ts
debug_get_default_threshold
debug_get_stack_tracev1_12
debug_is_active
debug_is_colored
debug_print_stack_trace
debug_remove_default_log_function
debug_remove_log_function
debug_remove_ring_buffer_loggerv1_14
debug_ring_buffer_logger_get_logsv1_14
debug_set_active
debug_set_colored
debug_set_default_threshold
debug_set_threshold_for_name
debug_set_threshold_from_string
debug_unset_threshold_for_name
deinit

Deinitialize GStreamer

init
main_executable_pathv1_14
parse_bin_from_description
parse_launch
parse_launchv
type_mark_as_plugin_apiv1_18
update_registry
util_get_timestamp
version
version_string

Type Definitions

ClockTimeDiff
Segment