GStreamer Core Reference Manual | |||
---|---|---|---|
<<< Previous Page | Home | Up | Next Page >>> |
#include <gst/gst.h> struct GstAutoplug; enum GstAutoplugFlags; void gst_autoplug_signal_new_object (GstAutoplug *autoplug, GstObject *object); GstElement* gst_autoplug_to_caps (GstAutoplug *autoplug, GstCaps *srccaps, GstCaps *sinkcaps, ...); GstElement* gst_autoplug_to_renderers (GstAutoplug *autoplug, GstCaps *srccaps, GstElement *target, ...); |
"new-object" void user_function (GstAutoplug *gstautoplug, GstObject *arg1, gpointer user_data); |
GstAutoplug is an abstract class that is used for constructing and connecting elements. Two types of autopluggers exist: renderer ones and non renderer ones. the renderer autopluggers will not have any src pads while the non renderer ones do.
You first need to create a suitable autoplugger with gst_autoplug_factory_make() (see GstAutoplugFactory). The name of the autoplugger must be one of the registered autopluggers (see GstStaticAutoplug and GstStaticAutoplugRender).
If the autoplugger supports the RENDERER API, use gst_autoplug_to_renderers() call to create a bin that connectes the src caps to the specified rendrer elements. You can then add the bin to a pipeline and run it.
GstAutoplug *autoplug; GstElement *element; GstElement *sink; /* create a static autoplugger */ autoplug = gst_autoplug_factory_make ("staticrender"); /* create an osssink */ sink = gst_element_factory_make ("osssink", "our_sink"); /* create an element that can play audio/mp3 through osssink */ element = gst_autoplug_to_renderers (autoplug, gst_caps_new ( "sink_audio_caps", "audio/mp3", NULL ), sink, NULL); /* add the element to a bin and connect the sink pad */ ... |
If the autoplugger supports the CAPS API, use gst_autoplug_to_caps() call to connect the src caps to the destination caps. The created bin will have src pads compatible with the provided sink caps.
GstAutoplug *autoplug; GstElement *element; /* create a static autoplugger */ autoplug = gst_autoplug_factory_make ("static"); /* create an element that converts audio/mp3 to audio/raw */ element = gst_autoplug_to_caps (autoplug, gst_caps_new ( "sink_audio_caps", "audio/mp3", NULL ), gst_caps_new ( "src_audio_caps", "audio/raw", NULL ), NULL); /* add the element to a bin and connect the src/sink pads */ ... |
Optionally you can get a notification when a new object is added to the created pipeline with a g_signal_connect to the "new_object" signal.
Use the regular gst_object_destroy() call to destroy the autoplugger.
typedef enum { GST_AUTOPLUG_TO_CAPS = GST_OBJECT_FLAG_LAST, GST_AUTOPLUG_TO_RENDERER, GST_AUTOPLUG_FLAG_LAST = GST_OBJECT_FLAG_LAST + 8 } GstAutoplugFlags; |
The type of the autoplugger.
void gst_autoplug_signal_new_object (GstAutoplug *autoplug, GstObject *object); |
Emit a new_object signal. autopluggers are supposed to emit this signal whenever a new object has been added to the autoplugged pipeline.
GstElement* gst_autoplug_to_caps (GstAutoplug *autoplug, GstCaps *srccaps, GstCaps *sinkcaps, ...); |
Perform the autoplugging procedure on the given autoplugger. The src caps will be connected to the sink caps.
GstElement* gst_autoplug_to_renderers (GstAutoplug *autoplug, GstCaps *srccaps, GstElement *target, ...); |
Perform the autoplugging procedure on the given autoplugger. The src caps will be connected to the target elements.
void user_function (GstAutoplug *gstautoplug, GstObject *arg1, gpointer user_data); |