ElementFactory

#GstElementFactory is used to create instances of elements. A GstElementFactory can be added to a #GstPlugin as it is also a #GstPluginFeature.

Use the gst.element_factory.ElementFactory.find and gst.element_factory.ElementFactory.create functions to create element instances or use gst.element_factory.ElementFactory.make as a convenient shortcut.

The following code example shows you how to create a GstFileSrc element.

Using an element factory

#include <gst/gst.h>

GstElement *src;
GstElementFactory *srcfactory;

gst_init (&argc, &argv);

srcfactory = gst_element_factory_find ("filesrc");
g_return_if_fail (srcfactory != NULL);
src = gst_element_factory_create (srcfactory, "src");
g_return_if_fail (src != NULL);
...

Members

Functions

canSinkAllCaps
bool canSinkAllCaps(gst.caps.Caps caps)

Checks if the factory can sink all possible capabilities.

canSinkAnyCaps
bool canSinkAnyCaps(gst.caps.Caps caps)

Checks if the factory can sink any possible capability.

canSrcAllCaps
bool canSrcAllCaps(gst.caps.Caps caps)

Checks if the factory can src all possible capabilities.

canSrcAnyCaps
bool canSrcAnyCaps(gst.caps.Caps caps)

Checks if the factory can src any possible capability.

create
gst.element.Element create(string name)

Create a new element of the type defined by the given elementfactory. It will be given the name supplied, since all elements require a name as their first argument.

createWithProperties
gst.element.Element createWithProperties(string[] names, gobject.value.Value[] values)

Create a new element of the type defined by the given elementfactory. The supplied list of properties, will be passed at object construction.

getElementType
gobject.types.GType getElementType()

Get the #GType for elements managed by this factory. The type can only be retrieved if the element factory is loaded, which can be assured with gst.plugin_feature.PluginFeature.load.

getMetadata
string getMetadata(string key)

Get the metadata on factory with key.

getMetadataKeys
string[] getMetadataKeys()

Get the available keys for the metadata on factory.

getNumPadTemplates
uint getNumPadTemplates()

Gets the number of pad_templates in this factory.

getSkipDocumentation
bool getSkipDocumentation()

Queries whether registered element managed by factory needs to be excluded from documentation system or not.

getUriProtocols
string[] getUriProtocols()

Gets a null-terminated array of protocols this element supports or null if no protocols are supported. You may not change the contents of the returned array, as it is still owned by the element factory. Use glib.global.strdupv to make a copy of the protocol string array if you need to.

getUriType
gst.types.URIType getUriType()

Gets the type of URIs the element supports or #GST_URI_UNKNOWN if none.

hasInterface
bool hasInterface(string interfacename)

Check if factory implements the interface with name interfacename.

listIsType
bool listIsType(gst.types.ElementFactoryListType type)

Check if factory is of the given types.

Static functions

find
gst.element_factory.ElementFactory find(string name)

Search for an element factory of the given name. Refs the returned element factory; caller is responsible for unreffing.

listFilter
gst.element_factory.ElementFactory[] listFilter(gst.element_factory.ElementFactory[] list, gst.caps.Caps caps, gst.types.PadDirection direction, bool subsetonly)

Filter out all the elementfactories in list that can handle caps in the given direction.

listGetElements
gst.element_factory.ElementFactory[] listGetElements(gst.types.ElementFactoryListType type, gst.types.Rank minrank)

Get a list of factories that match the given type. Only elements with a rank greater or equal to minrank will be returned. The list of factories is returned by decreasing rank.

make
gst.element.Element make(string factoryname, string name)

Create a new element of the type defined by the given element factory. If name is null, then the element will receive a guaranteed unique name, consisting of the element factory name and a number. If name is given, it will be given the name supplied.

makeWithProperties
gst.element.Element makeWithProperties(string factoryname, string[] names, gobject.value.Value[] values)

Create a new element of the type defined by the given elementfactory. The supplied list of properties, will be passed at object construction.

Inherited Members

From PluginFeature

listCopy
gst.plugin_feature.PluginFeature[] listCopy(gst.plugin_feature.PluginFeature[] list)

Copies the list of features. Caller should call gst_plugin_feature_list_free when done with the list.

listDebug
void listDebug(gst.plugin_feature.PluginFeature[] list)

Debug the plugin feature names in list.

rankCompareFunc
int rankCompareFunc(const(void)* p1, const(void)* p2)

Compares the two given #GstPluginFeature instances. This function can be used as a #GCompareFunc when sorting by rank and then by name.

checkVersion
bool checkVersion(uint minMajor, uint minMinor, uint minMicro)

Checks whether the given plugin feature is at least the required version.

getPlugin
gst.plugin.Plugin getPlugin()

Get the plugin that provides this feature.

getPluginName
string getPluginName()

Get the name of the plugin that provides this feature.

getRank
uint getRank()

Gets the rank of a plugin feature.

load
gst.plugin_feature.PluginFeature load()

Loads the plugin containing feature if it's not already loaded. feature is unaffected; use the return value instead.

setRank
void setRank(uint rank)

Specifies a rank for a plugin feature, so that autoplugging uses the most appropriate feature.