Crate gstreamer [] [src]

Reexports

pub use miniobject::GstRc;
pub use miniobject::MiniObject;
pub use message::Message;
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 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 context::Context;
pub use context::ContextRef;
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
functions
functions
message
miniobject
prelude
query
sample
structure
tags
toc

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

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

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

A GstIterator is used to retrieve multiple objects from another object in a threadsafe way.

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

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
SchedulingFlags
SeekFlags
Segment
SegmentFlags
StackTraceFlags
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.

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

ClockReturn

The return value of a clock operation.

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.

EventType

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

FlowReturn

The result of passing data to a pad.

Format

Standard predefined formats

IteratorResult

The result of Iterator::next.

LibraryError

Library errors are for errors from the library being used by elements (initializing, finalizing, settings, ...)

PadDirection

The direction of a pad.

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.

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.

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.

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.

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

URIError

Different URI-related errors that can occur.

URIType

The different types of URI direction.

ValueOrder

Constants

BUFFER_FLAG_CORRUPTED
BUFFER_FLAG_DECODE_ONLY
BUFFER_FLAG_DELTA_UNIT
BUFFER_FLAG_DISCONT
BUFFER_FLAG_DROPPABLE
BUFFER_FLAG_GAP
BUFFER_FLAG_HEADER
BUFFER_FLAG_LAST
BUFFER_FLAG_LIVE
BUFFER_FLAG_MARKER
BUFFER_FLAG_RESYNC
BUFFER_FLAG_SYNC_AFTER
BUFFER_FLAG_TAG_MEMORY
BUFFER_OFFSET_NONE
CLOCK_TIME_NONE
DEBUG_GRAPH_SHOW_ALL
DEBUG_GRAPH_SHOW_CAPS_DETAILS
DEBUG_GRAPH_SHOW_FULL_PARAMS
DEBUG_GRAPH_SHOW_MEDIA_TYPE
DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS
DEBUG_GRAPH_SHOW_STATES
DEBUG_GRAPH_SHOW_VERBOSE
ELEMENT_FLAG_INDEXABLE
ELEMENT_FLAG_LAST
ELEMENT_FLAG_LOCKED_STATE
ELEMENT_FLAG_PROVIDE_CLOCK
ELEMENT_FLAG_REQUIRE_CLOCK
ELEMENT_FLAG_SINK
ELEMENT_FLAG_SOURCE
MSECOND
NSECOND
PAD_LINK_CHECK_CAPS
PAD_LINK_CHECK_DEFAULT
PAD_LINK_CHECK_HIERARCHY
PAD_LINK_CHECK_NOTHING
PAD_LINK_CHECK_NO_RECONFIGURE
PAD_LINK_CHECK_TEMPLATE_CAPS
PAD_PROBE_ID_INVALID
PAD_PROBE_TYPE_ALL_BOTH
PAD_PROBE_TYPE_BLOCK
PAD_PROBE_TYPE_BLOCKING
PAD_PROBE_TYPE_BLOCK_DOWNSTREAM
PAD_PROBE_TYPE_BLOCK_UPSTREAM
PAD_PROBE_TYPE_BUFFER
PAD_PROBE_TYPE_BUFFER_LIST
PAD_PROBE_TYPE_DATA_BOTH
PAD_PROBE_TYPE_DATA_DOWNSTREAM
PAD_PROBE_TYPE_DATA_UPSTREAM
PAD_PROBE_TYPE_EVENT_BOTH
PAD_PROBE_TYPE_EVENT_DOWNSTREAM
PAD_PROBE_TYPE_EVENT_FLUSH
PAD_PROBE_TYPE_EVENT_UPSTREAM
PAD_PROBE_TYPE_IDLE
PAD_PROBE_TYPE_INVALID
PAD_PROBE_TYPE_PULL
PAD_PROBE_TYPE_PUSH
PAD_PROBE_TYPE_QUERY_BOTH
PAD_PROBE_TYPE_QUERY_DOWNSTREAM
PAD_PROBE_TYPE_QUERY_UPSTREAM
PAD_PROBE_TYPE_SCHEDULING
PARSE_FLAG_FATAL_ERRORS
PARSE_FLAG_NONE
PARSE_FLAG_NO_SINGLE_ELEMENT_BINS
PARSE_FLAG_PLACE_IN_BIN
SCHEDULING_FLAG_BANDWIDTH_LIMITED
SCHEDULING_FLAG_SEEKABLE
SCHEDULING_FLAG_SEQUENTIAL
SECOND
SEEK_FLAG_ACCURATE
SEEK_FLAG_FLUSH
SEEK_FLAG_KEY_UNIT
SEEK_FLAG_NONE
SEEK_FLAG_SEGMENT
SEEK_FLAG_SKIP
SEEK_FLAG_SNAP_AFTER
SEEK_FLAG_SNAP_BEFORE
SEEK_FLAG_SNAP_NEAREST
SEEK_FLAG_TRICKMODE
SEEK_FLAG_TRICKMODE_KEY_UNITS
SEEK_FLAG_TRICKMODE_NO_AUDIO
SEGMENT_FLAG_NONE
SEGMENT_FLAG_RESET
SEGMENT_FLAG_SEGMENT
SEGMENT_FLAG_SKIP
SEGMENT_FLAG_TRICKMODE
SEGMENT_FLAG_TRICKMODE_KEY_UNITS
SEGMENT_FLAG_TRICKMODE_NO_AUDIO
STACK_TRACE_SHOW_FULL
STREAM_FLAG_NONE
STREAM_FLAG_SELECT
STREAM_FLAG_SPARSE
STREAM_FLAG_UNSELECT
STREAM_TYPE_AUDIO
STREAM_TYPE_CONTAINER
STREAM_TYPE_TEXT
STREAM_TYPE_UNKNOWN
STREAM_TYPE_VIDEO
USECOND

Traits

BinExt

Trait containing all Bin methods.

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

GstValueExt
IsA

Declares the "is a" relationship.

PadExt

Trait containing all Pad methods.

PadExtManual
PipelineExt

Trait containing all Pipeline 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.

URIHandlerExt

Trait containing all URIHandler methods.

Functions

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_set_active
debug_set_colored
debug_set_default_threshold
debug_set_threshold_for_name
debug_set_threshold_from_string
debug_unset_threshold_for_name
init
parse_bin_from_description
parse_launch
parse_launchv
update_registry
util_get_timestamp
util_group_id_next
util_seqnum_next
version
version_string

Type Definitions

ClockTime
ClockTimeDiff
ElementFactoryListType