<!-- ##### SECTION Title ##### -->
GstAutoplug

<!-- ##### SECTION Short_Description ##### -->
Automatically create and link elements

<!-- ##### SECTION Long_Description ##### -->
<para>
GstAutoplug is an abstract class that is used for constructing and 
linking 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.
</para>

<para>
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).
</para>
<para>
If the autoplugger supports the RENDERER API, use gst_autoplug_to_renderers() to
create a bin that links the src caps to the specified renderer elements. You can 
then add the bin to a pipeline and run it.

  <programlisting>
  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 link the sink pad */
  ...
  </programlisting>
</para>
<para>
If the autoplugger supports the CAPS API, use gst_autoplug_to_caps() to
link the src caps to the destination caps. The created bin will have src caps 
compatible with the provided sink caps.

  <programlisting>
  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 link the src/sink pads */
  ...
  </programlisting>
</para>

<para>
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.
</para>

<para>
Use the regular gst_object_destroy() call to destroy the autoplugger.
</para>

<!-- ##### SECTION See_Also ##### -->
<para>
#GstStaticAutoplug, #GstStaticAutoplugRender
</para>

<!-- ##### STRUCT GstAutoplug ##### -->
<para>
The autoplug object
</para>


<!-- ##### ENUM GstAutoplugFlags ##### -->
<para>
The type of the autoplugger.
</para>

@GST_AUTOPLUG_TO_CAPS: 
@GST_AUTOPLUG_TO_RENDERER: 
@GST_AUTOPLUG_FLAG_LAST: 

<!-- ##### FUNCTION gst_autoplug_signal_new_object ##### -->
<para>

</para>

@autoplug: 
@object: 


<!-- ##### FUNCTION gst_autoplug_to_caps ##### -->
<para>

</para>

@autoplug: 
@srccaps: 
@sinkcaps: 
@Varargs: 
@Returns: 


<!-- ##### FUNCTION gst_autoplug_to_renderers ##### -->
<para>

</para>

@autoplug: 
@srccaps: 
@target: 
@Varargs: 
@Returns: 


<!-- ##### SIGNAL GstAutoplug::new-object ##### -->
<para>

</para>

@gstautoplug: the object which received the signal.
@arg1: 

