[][src]Crate gstreamer

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_exists;
pub use tags::tag_get_description;
pub use tags::tag_get_flag;
pub use tags::tag_get_nick;
pub use tags::tag_get_type;
pub use tags::Tag;
pub use tags::TagList;
pub use tags::TagListRef;
pub use meta::ReferenceTimestampMeta;
pub use meta::Meta;
pub use meta::MetaAPI;
pub use meta::MetaRef;
pub use meta::MetaRefMut;
pub use meta::ParentBufferMeta;
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 memory::MappedMemory;
pub use memory::Memory;
pub use memory::MemoryMap;
pub use memory::MemoryRef;
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 promise::Promise;
pub use promise::PromiseError;
pub use bus::BusStream;
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
bus
caps
context
event
format
functions
functions
memory
message
meta
miniobject
prelude
promise
query
sample
stream_collection
structure
subclass
tags
toc

Macros

gst_debug
gst_define_mini_object_wrapper
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_loggable_error
gst_memdump
gst_panic_to_error
gst_plugin_define
gst_result_from_gboolean
gst_trace
gst_warning

Structs

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

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

BinClass
BinFlags
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
BufferPoolClass
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.

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

ClockClass
ClockFlags
ClockId
ClockTime
DateTime

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

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

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

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

DeviceProviderClass
DeviceProviderFactory

DeviceProviderFactory is used to create instances of device providers. A GstDeviceProviderfactory can be added to a Plugin as it is also a PluginFeature.

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

ElementClass
ElementFactory

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

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

GhostPadClass
IntRange
Iterator
List
LoggableError
MemoryFlags
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.

ObjectClass
ObjectFlags
Pad

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

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

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

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

PluginClass
PluginDependencyFlags
PluginFeature

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

PluginFeatureClass
PluginFlags
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

ProxyPadClass
Registry

One registry holds the metadata of a set of plugins.

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

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

StreamClass
StreamCollection

A collection of Stream that are available.

StreamCollectionClass
StreamFlags
StreamType
SystemClock

The GStreamer core provides a GstSystemClock based on the system time. Asynchronous callbacks are scheduled from an internal thread.

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

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

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 Element::set_state and checked using Element::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 Element::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
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 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.

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

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

Traits

AllocatorExt

Trait containing all Allocator methods.

AllocatorExtManual
BufferPoolExt

Trait containing all BufferPool methods.

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

DeviceMonitorExtManual
DeviceProviderExt

Trait containing all DeviceProvider methods.

DeviceProviderExtManual
ElementExt

Trait containing all Element methods.

ElementExtManual
GObjectExtManualGst
GhostPadExt

Trait containing all GhostPad methods.

GstBinExt

Trait containing all Bin methods.

GstBinExtManual
GstObjectExt

Trait containing all Object methods.

GstObjectExtManual
GstParamSpecExt
GstPipelineExtManual
GstPluginExtManual
GstValueExt
IteratorImpl
PadExt

Trait containing all Pad methods.

PadExtManual
PipelineExt

Trait containing all Pipeline methods.

PluginFeatureExt

Trait containing all PluginFeature methods.

PluginFeatureExtManual
PresetExt

Trait containing all Preset methods.

ProxyPadExt

Trait containing all ProxyPad methods.

ProxyPadExtManual
SystemClockExt

Trait containing all SystemClock methods.

TagSetterExt

Trait containing all TagSetter methods.

TagSetterExtManual
TocSetterExt

Trait containing all TocSetter methods.

TypeFindImpl
URIHandlerExt

Trait containing all URIHandler methods.

UnixBusExtManual
WindowsBusExtManual

Functions

debug_add_log_function
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_default_log_function
debug_remove_log_function
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