Crate gstreamer[][src]

Re-exports

pub use miniobject::GstRc;
pub use miniobject::MiniObject;
pub use message::Message;
pub use message::MessageErrorDomain;
pub use message::MessageRef;
pub use message::MessageView;
pub use structure::Structure;
pub use structure::StructureRef;
pub use caps::Caps;
pub use caps::CapsRef;
pub use tags::Tag;
pub use tags::TagList;
pub use tags::TagListRef;
pub use buffer::Buffer;
pub use buffer::BufferMap;
pub use buffer::BufferRef;
pub use buffer::MappedBuffer;
pub use buffer::BUFFER_COPY_ALL;
pub use buffer::BUFFER_COPY_ALL;
pub use buffer::BUFFER_COPY_METADATA;
pub use buffer::BUFFER_COPY_METADATA;
pub use sample::Sample;
pub use sample::SampleRef;
pub use bufferlist::BufferList;
pub use bufferlist::BufferListRef;
pub use query::Query;
pub use query::QueryRef;
pub use query::QueryView;
pub use event::Event;
pub use event::EventRef;
pub use event::EventView;
pub use event::GroupId;
pub use event::Seqnum;
pub use event::GROUP_ID_INVALID;
pub use event::SEQNUM_INVALID;
pub use context::Context;
pub use context::ContextRef;
pub use format::FormattedValue;
pub use format::GenericFormattedValue;
pub use format::SpecificFormattedValue;
pub use toc::Toc;
pub use toc::TocEntry;
pub use toc::TocEntryRef;
pub use toc::TocRef;
pub use functions::*;

Modules

buffer
bufferlist
caps
context
event
format
functions
functions
message
miniobject
prelude
query
sample
stream_collection
structure
tags
toc

Macros

gst_debug
gst_element_error
gst_element_info
gst_element_warning
gst_error
gst_error_msg
gst_fixme
gst_info
gst_log
gst_log_with_level
gst_memdump
gst_trace
gst_warning

Structs

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

Bitmask
BufferCopyFlags
BufferFlags
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
BufferPoolAcquireParams
BufferPoolConfig
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.

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

ClockId
ClockTime
Continue

Continue calling the closure in the future iterations or drop it.

DateTime

Struct to store date, time and timezone information altogether. DateTime is refcounted and immutable.

DebugCategory
DebugColorFlags
DebugGraphDetails
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.

DeviceProvider

A DeviceProvider subclass is provided by a plugin that handles devices if there is a way to programatically 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_METADATA_AUTHOR
ELEMENT_METADATA_DESCRIPTION
ELEMENT_METADATA_DOC_URI
ELEMENT_METADATA_ICON_NAME
ELEMENT_METADATA_KLASS
ELEMENT_METADATA_LONGNAME
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.

ElementFlags
Error

A generic error capable of representing various error domains (types).

ErrorMessage
FormattedSegment
Fraction
FractionRange
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
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 gobject::InitiallyUnowned. It is an abstract class that is not very usable on its own.

Pad

A Element is linked to other elements via "pads", which are extremely light-weight generic link points.

PadLinkCheck
PadLinkSuccess
PadProbeId
PadProbeInfo
PadProbeType
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
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.

Plugin

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

PluginDependencyFlags
PluginFeature

This is a base class for anything that can be added to a Plugin.

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.

Promise

The Promise object implements the container for values that may be available later. i.e. a Future or a Promise in https://en.wikipedia.org/wiki/Futures_and_promises</ulink> As with all Future/Promise-like functionality, there is the concept of the producer of the value and the consumer of the value.

ProxyPad

Implements

Registry

One registry holds the metadata of a set of plugins.

SchedulingFlags
SeekFlags
SegmentFlags
SliceTypeFind
StackTraceFlags
StateChangeError
StaticCaps

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

StaticPadTemplate

Structure describing the StaticPadTemplate.

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
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 informations about registered typefind functions. How to create and register these functions is described in the section "Writing typefind functions"</link>.

TypedValue

A statically typed Value.

URIHandler

The URIHandler is an interface that is implemented by Source and Sink Element to unify handling of URI.

Value

A generic value capable of carrying various types.

Enums

BufferingMode

The different types of buffering methods.

BusSyncReply

The result values for a GstBusSyncHandler.

CapsIntersectMode

Modes of caps intersection

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

PadDirection

The direction of a pad.

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 MessageType::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 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 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::get_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 StateChangeReturn::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 MessageType::StreamStatus. The stream status messages inform the application of new streaming threads and their status.

StructureChangeType

The type of a MessageType::StructureChange.

TagError
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 TagSetter::merge_tags / TagSetter::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.

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.

Type

A GLib or GLib-based library type

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
NSECOND
NSECOND_VAL
SECOND
SECOND_VAL
USECOND
USECOND_VAL

Traits

BinExt

Trait containing all Bin methods.

BinExtManual
BufferPoolExt

Trait containing all BufferPool methods.

BufferPoolExtManual
Cast

Upcasting and downcasting support.

ChildProxyExt

Trait containing all ChildProxy methods.

ChildProxyExtManual
ClockExt

Trait containing all Clock methods.

ClockExtManual
DeviceExt

Trait containing all Device methods.

DeviceMonitorExt

Trait containing all DeviceMonitor methods.

DeviceProviderExt

Trait containing all DeviceProvider methods.

DeviceProviderExtManual
ElementExt

Trait containing all Element methods.

ElementExtManual
GObjectExtManualGst
GhostPadExt

Trait containing all GhostPad methods.

GstObjectExt

Trait containing all Object methods.

GstObjectExtManual
GstValueExt
IsA

Declares the "is a" relationship.

IteratorImpl
PadExt

Trait containing all Pad methods.

PadExtManual
PipelineExt

Trait containing all Pipeline methods.

PluginFeatureExt

Trait containing all PluginFeature methods.

PresetExt

Trait containing all Preset methods.

ProxyPadExt

Trait containing all ProxyPad methods.

StaticType

Types that are supported by GLib dynamic typing.

SystemClockExt

Trait containing all SystemClock methods.

TagSetterExt

Trait containing all TagSetter methods.

TagSetterExtManual
ToValue

Converts to Value.

TocSetterExt

Trait containing all TocSetter methods.

TypeFindImpl
URIHandlerExt

Trait containing all URIHandler methods.

UnixBusExtManual
WindowsBusExtManual

Functions

debug_add_ring_buffer_logger
debug_bin_to_dot_data
debug_bin_to_dot_file
debug_bin_to_dot_file_with_ts
debug_get_default_threshold
debug_get_stack_trace
debug_is_active
debug_is_colored
debug_print_stack_trace
debug_remove_ring_buffer_logger
debug_ring_buffer_logger_get_logs
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
get_main_executable_path
init
parse_bin_from_description
parse_launch
parse_launchv
update_registry
util_get_timestamp
version
version_string

Type Definitions

ClockTimeDiff
ElementFactoryListType
Segment