# gstinsertbin

This element is a GstBin that has a single source and sink pad. It allows the user (the application) to easily add and remove filter-like element (that has a single source and sink pad), to the pipeline while it is running. It features a fully asynchronous API inspired by GLib's GAsyncResult based APIs.

Each operation (addition or removal) can take a callback, this callback is guaranteed to be called. Unlike GIO, there is no guarantee about where this callback will be called from, it could be called before the action returns or it could be called later from another thread. The signature of this callback GstInsertBinCallback.

Apart from the library API, since 1.24 insertbin can also be found in the registry:

      GstElement *pipeline, *insertbin, *videoflip;

      gst_init (NULL, NULL);
      pipeline =
          gst_parse_launch ("videotestsrc ! insertbin name=i ! autovideosink",
          NULL);

      ...

      insertbin = gst_bin_get_by_name (GST_BIN (pipeline), "i");
      videoflip = gst_element_factory_make ("videoflip", NULL);

      ...

      g_object_set (videoflip, "method", 1, NULL);
      g_signal_emit_by_name (insertbin, "append", videoflip, NULL, NULL);

      ...

## GstInsertBin

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstElement
                    ╰──GstBin
                        ╰──GstInsertBin

The object structure.

### Members

`parent` (GstBin) –
No description available

Since : 1.2

### Class structure

#### GstInsertBinClass

The object class structure.

##### Fields

`parent_class` (GstBinClass) –
No description available

Since : 1.2

### GstInsertBin.InsertBinClass

The object class structure.

##### Attributes

`parent_class` (Gst.BinClass) –
No description available

Since : 1.2

### GstInsertBin.InsertBinClass

The object class structure.

##### Attributes

`parent_class` (Gst.BinClass) –
No description available

Since : 1.2

## GstInsertBin.InsertBin

    GObject.Object
        ╰──GObject.InitiallyUnowned
            ╰──Gst.Object
                ╰──Gst.Element
                    ╰──Gst.Bin
                        ╰──GstInsertBin.InsertBin

The object structure.

### Members

`parent` (Gst.Bin) –
No description available

Since : 1.2

## GstInsertBin.InsertBin

    GObject.Object
        ╰──GObject.InitiallyUnowned
            ╰──Gst.Object
                ╰──Gst.Element
                    ╰──Gst.Bin
                        ╰──GstInsertBin.InsertBin

The object structure.

### Members

`parent` (Gst.Bin) –
No description available

Since : 1.2

### Constructors

#### gst_insert_bin_new

    GstElement *
    gst_insert_bin_new (const gchar * name)

Creates a new GstInsertBin

Parameters:

`name` ( [allow-none]) –

The name of the new GstInsertBin element (or NULL)

Returns –

The new GstInsertBin

Since : 1.2

#### GstInsertBin.InsertBin.prototype.new

    function GstInsertBin.InsertBin.prototype.new(name: String): {
        // javascript wrapper for 'gst_insert_bin_new'
    }

Creates a new GstInsertBin.InsertBin

Parameters:

`name` (String) –

The name of the new GstInsertBin.InsertBin element (or null)

Returns (Gst.Element) –

The new GstInsertBin.InsertBin

Since : 1.2

#### GstInsertBin.InsertBin.new

    def GstInsertBin.InsertBin.new (name):
        #python wrapper for 'gst_insert_bin_new'

Creates a new GstInsertBin.InsertBin

Parameters:

`name` (str) –

The name of the new GstInsertBin.InsertBin element (or None)

Returns (Gst.Element) –

The new GstInsertBin.InsertBin

Since : 1.2

### Methods

#### gst_insert_bin_append

    gst_insert_bin_append (GstInsertBin * self,
                           GstElement * element,
                           GstInsertBinCallback callback,
                           gpointer user_data)

This action signal adds the filter like element after any other element in the bin.

Same as the append signal.

Parameters:

`self` –
No description available
`element` –

the GstElement to add

`callback` ( [scope async]) –

the callback to call when the element has been added or not, or NULL

`user_data` –

The data to pass to the callback

Since : 1.2

#### GstInsertBin.InsertBin.prototype.append

    function GstInsertBin.InsertBin.prototype.append(element: Gst.Element, callback: GstInsertBin.InsertBinCallback, user_data: Object): {
        // javascript wrapper for 'gst_insert_bin_append'
    }

This action signal adds the filter like element after any other element in the bin.

Same as the append signal.

Parameters:

`self` (GstInsertBin.InsertBin) –
No description available
`element` (Gst.Element) –

the Gst.Element to add

`callback` (GstInsertBin.InsertBinCallback) –

the callback to call when the element has been added or not, or null

`user_data` (Object) –

The data to pass to the callback

Since : 1.2

#### GstInsertBin.InsertBin.append

    def GstInsertBin.InsertBin.append (self, element, callback, *user_data):
        #python wrapper for 'gst_insert_bin_append'

This action signal adds the filter like element after any other element in the bin.

Same as the append signal.

Parameters:

`self` (GstInsertBin.InsertBin) –
No description available
`element` (Gst.Element) –

the Gst.Element to add

`callback` (GstInsertBin.InsertBinCallback) –

the callback to call when the element has been added or not, or None

`user_data` (variadic) –

The data to pass to the callback

Since : 1.2

#### gst_insert_bin_insert_after

    gst_insert_bin_insert_after (GstInsertBin * self,
                                 GstElement * element,
                                 GstElement * sibling,
                                 GstInsertBinCallback callback,
                                 gpointer user_data)

This action signal adds the filter like element after the sibling element in the bin.

Same as the insert-after signal.

Parameters:

`self` –
No description available
`element` –

the GstElement to add

`sibling` –

the GstElement to add element after

`callback` ( [scope async]) –

the callback to call when the element has been added or not, or NULL

`user_data` –

The data to pass to the callback

Since : 1.2

#### GstInsertBin.InsertBin.prototype.insert_after

    function GstInsertBin.InsertBin.prototype.insert_after(element: Gst.Element, sibling: Gst.Element, callback: GstInsertBin.InsertBinCallback, user_data: Object): {
        // javascript wrapper for 'gst_insert_bin_insert_after'
    }

This action signal adds the filter like element after the sibling element in the bin.

Same as the insert-after signal.

Parameters:

`self` (GstInsertBin.InsertBin) –
No description available
`element` (Gst.Element) –

the Gst.Element to add

`sibling` (Gst.Element) –

the Gst.Element to add element after

`callback` (GstInsertBin.InsertBinCallback) –

the callback to call when the element has been added or not, or null

`user_data` (Object) –

The data to pass to the callback

Since : 1.2

#### GstInsertBin.InsertBin.insert_after

    def GstInsertBin.InsertBin.insert_after (self, element, sibling, callback, *user_data):
        #python wrapper for 'gst_insert_bin_insert_after'

This action signal adds the filter like element after the sibling element in the bin.

Same as the insert-after signal.

Parameters:

`self` (GstInsertBin.InsertBin) –
No description available
`element` (Gst.Element) –

the Gst.Element to add

`sibling` (Gst.Element) –

the Gst.Element to add element after

`callback` (GstInsertBin.InsertBinCallback) –

the callback to call when the element has been added or not, or None

`user_data` (variadic) –

The data to pass to the callback

Since : 1.2

#### gst_insert_bin_insert_before

    gst_insert_bin_insert_before (GstInsertBin * self,
                                  GstElement * element,
                                  GstElement * sibling,
                                  GstInsertBinCallback callback,
                                  gpointer user_data)

This action signal adds the filter like element before the sibling element in the bin.

Same as the insert-before signal.

Parameters:

`self` –
No description available
`element` –

the GstElement to add

`sibling` –

the GstElement to add element before

`callback` ( [scope async]) –

the callback to call when the element has been added or not, or NULL

`user_data` –

The data to pass to the callback

Since : 1.2

#### GstInsertBin.InsertBin.prototype.insert_before

    function GstInsertBin.InsertBin.prototype.insert_before(element: Gst.Element, sibling: Gst.Element, callback: GstInsertBin.InsertBinCallback, user_data: Object): {
        // javascript wrapper for 'gst_insert_bin_insert_before'
    }

This action signal adds the filter like element before the sibling element in the bin.

Same as the insert-before signal.

Parameters:

`self` (GstInsertBin.InsertBin) –
No description available
`element` (Gst.Element) –

the Gst.Element to add

`sibling` (Gst.Element) –

the Gst.Element to add element before

`callback` (GstInsertBin.InsertBinCallback) –

the callback to call when the element has been added or not, or null

`user_data` (Object) –

The data to pass to the callback

Since : 1.2

#### GstInsertBin.InsertBin.insert_before

    def GstInsertBin.InsertBin.insert_before (self, element, sibling, callback, *user_data):
        #python wrapper for 'gst_insert_bin_insert_before'

This action signal adds the filter like element before the sibling element in the bin.

Same as the insert-before signal.

Parameters:

`self` (GstInsertBin.InsertBin) –
No description available
`element` (Gst.Element) –

the Gst.Element to add

`sibling` (Gst.Element) –

the Gst.Element to add element before

`callback` (GstInsertBin.InsertBinCallback) –

the callback to call when the element has been added or not, or None

`user_data` (variadic) –

The data to pass to the callback

Since : 1.2

#### gst_insert_bin_prepend

    gst_insert_bin_prepend (GstInsertBin * self,
                            GstElement * element,
                            GstInsertBinCallback callback,
                            gpointer user_data)

This action signal adds the filter like element before any other element in the bin.

Same as the prepend signal.

Parameters:

`self` –
No description available
`element` –

the GstElement to add

`callback` ( [scope async]) –

the callback to call when the element has been added or not, or NULL

`user_data` –

The data to pass to the callback

Since : 1.2

#### GstInsertBin.InsertBin.prototype.prepend

    function GstInsertBin.InsertBin.prototype.prepend(element: Gst.Element, callback: GstInsertBin.InsertBinCallback, user_data: Object): {
        // javascript wrapper for 'gst_insert_bin_prepend'
    }

This action signal adds the filter like element before any other element in the bin.

Same as the prepend signal.

Parameters:

`self` (GstInsertBin.InsertBin) –
No description available
`element` (Gst.Element) –

the Gst.Element to add

`callback` (GstInsertBin.InsertBinCallback) –

the callback to call when the element has been added or not, or null

`user_data` (Object) –

The data to pass to the callback

Since : 1.2

#### GstInsertBin.InsertBin.prepend

    def GstInsertBin.InsertBin.prepend (self, element, callback, *user_data):
        #python wrapper for 'gst_insert_bin_prepend'

This action signal adds the filter like element before any other element in the bin.

Same as the prepend signal.

Parameters:

`self` (GstInsertBin.InsertBin) –
No description available
`element` (Gst.Element) –

the Gst.Element to add

`callback` (GstInsertBin.InsertBinCallback) –

the callback to call when the element has been added or not, or None

`user_data` (variadic) –

The data to pass to the callback

Since : 1.2

#### gst_insert_bin_remove

    gst_insert_bin_remove (GstInsertBin * self,
                           GstElement * element,
                           GstInsertBinCallback callback,
                           gpointer user_data)

This action signal removed the filter like element from the bin.

Same as the remove signal.

Parameters:

`self` –
No description available
`element` –

the GstElement to remove

`callback` ( [scope async]) –

the callback to call when the element has been removed or not, or NULL

`user_data` –

The data to pass to the callback

Since : 1.2

#### GstInsertBin.InsertBin.prototype.remove

    function GstInsertBin.InsertBin.prototype.remove(element: Gst.Element, callback: GstInsertBin.InsertBinCallback, user_data: Object): {
        // javascript wrapper for 'gst_insert_bin_remove'
    }

This action signal removed the filter like element from the bin.

Same as the remove signal.

Parameters:

`self` (GstInsertBin.InsertBin) –
No description available
`element` (Gst.Element) –

the Gst.Element to remove

`callback` (GstInsertBin.InsertBinCallback) –

the callback to call when the element has been removed or not, or null

`user_data` (Object) –

The data to pass to the callback

Since : 1.2

#### GstInsertBin.InsertBin.remove

    def GstInsertBin.InsertBin.remove (self, element, callback, *user_data):
        #python wrapper for 'gst_insert_bin_remove'

This action signal removed the filter like element from the bin.

Same as the remove signal.

Parameters:

`self` (GstInsertBin.InsertBin) –
No description available
`element` (Gst.Element) –

the Gst.Element to remove

`callback` (GstInsertBin.InsertBinCallback) –

the callback to call when the element has been removed or not, or None

`user_data` (variadic) –

The data to pass to the callback

Since : 1.2

### Action Signals

#### append

    g_signal_emit_by_name (self, "append", callback, user_data, user_data2, user_data);

This action signal adds the filter like element after any other element in the bin.

Same as gst_insert_bin_append

Parameters:

`self` (GstInsertBin *) –
No description available
`callback` (GstElement *) –

the callback to call when the element has been added or not, or NULL

`user_data` (gpointer) –

The data to pass to the callback

`user_data2` (gpointer) –

The user data of the signal (ignored)

`user_data` (gpointer) –

The data to pass to the callback

Flags: Run Last / Action

Since : 1.2

#### append

    let ret = self.emit ("append", callback, user_data, user_data2, user_data);

This action signal adds the filter like element after any other element in the bin.

Same as GstInsertBin.InsertBin.prototype.append

Parameters:

`self` (GstInsertBin.InsertBin) –
No description available
`callback` (Gst.Element) –

the callback to call when the element has been added or not, or null

`user_data` (Object) –

The data to pass to the callback

`user_data2` (Object) –

The user data of the signal (ignored)

`user_data` (Object) –

The data to pass to the callback

Flags: Run Last / Action

Since : 1.2

#### append

    ret = self.emit ("append", callback, user_data, user_data2, user_data)

This action signal adds the filter like element after any other element in the bin.

Same as GstInsertBin.InsertBin.append

Parameters:

`self` (GstInsertBin.InsertBin) –
No description available
`callback` (Gst.Element) –

the callback to call when the element has been added or not, or None

`user_data` (object) –

The data to pass to the callback

`user_data2` (object) –

The user data of the signal (ignored)

`user_data` (variadic) –

The data to pass to the callback

Flags: Run Last / Action

Since : 1.2

#### insert-after

    g_signal_emit_by_name (self, "insert-after", sibling, callback, user_data, user_data2, user_data);

This action signal adds the filter like element after the sibling element in the bin. element in the bin.

Same as gst_insert_bin_insert_after

Parameters:

`self` (GstInsertBin *) –
No description available
`sibling` (GstElement *) –

the GstElement to add element after

`callback` (GstElement *) –

the callback to call when the element has been added or not, or NULL

`user_data` (gpointer) –

The data to pass to the callback

`user_data2` (gpointer) –

The user data of the signal (ignored)

`user_data` (gpointer) –

The data to pass to the callback

Flags: Run Last / Action

Since : 1.2

#### insert-after

    let ret = self.emit ("insert-after", sibling, callback, user_data, user_data2, user_data);

This action signal adds the filter like element after the sibling element in the bin. element in the bin.

Same as GstInsertBin.InsertBin.prototype.insert_after

Parameters:

`self` (GstInsertBin.InsertBin) –
No description available
`sibling` (Gst.Element) –

the Gst.Element to add element after

`callback` (Gst.Element) –

the callback to call when the element has been added or not, or null

`user_data` (Object) –

The data to pass to the callback

`user_data2` (Object) –

The user data of the signal (ignored)

`user_data` (Object) –

The data to pass to the callback

Flags: Run Last / Action

Since : 1.2

#### insert-after

    ret = self.emit ("insert-after", sibling, callback, user_data, user_data2, user_data)

This action signal adds the filter like element after the sibling element in the bin. element in the bin.

Same as GstInsertBin.InsertBin.insert_after

Parameters:

`self` (GstInsertBin.InsertBin) –
No description available
`sibling` (Gst.Element) –

the Gst.Element to add element after

`callback` (Gst.Element) –

the callback to call when the element has been added or not, or None

`user_data` (object) –

The data to pass to the callback

`user_data2` (object) –

The user data of the signal (ignored)

`user_data` (variadic) –

The data to pass to the callback

Flags: Run Last / Action

Since : 1.2

#### insert-before

    g_signal_emit_by_name (self, "insert-before", sibling, callback, user_data, user_data2, user_data);

This action signal adds the filter like element before the sibling element in the bin.

Same as gst_insert_bin_insert_before

Parameters:

`self` (GstInsertBin *) –
No description available
`sibling` (GstElement *) –

the GstElement to add element before

`callback` (GstElement *) –

the callback to call when the element has been added or not, or NULL

`user_data` (gpointer) –

The data to pass to the callback

`user_data2` (gpointer) –

The user data of the signal (ignored)

`user_data` (gpointer) –

The data to pass to the callback

Flags: Run Last / Action

Since : 1.2

#### insert-before

    let ret = self.emit ("insert-before", sibling, callback, user_data, user_data2, user_data);

This action signal adds the filter like element before the sibling element in the bin.

Same as GstInsertBin.InsertBin.prototype.insert_before

Parameters:

`self` (GstInsertBin.InsertBin) –
No description available
`sibling` (Gst.Element) –

the Gst.Element to add element before

`callback` (Gst.Element) –

the callback to call when the element has been added or not, or null

`user_data` (Object) –

The data to pass to the callback

`user_data2` (Object) –

The user data of the signal (ignored)

`user_data` (Object) –

The data to pass to the callback

Flags: Run Last / Action

Since : 1.2

#### insert-before

    ret = self.emit ("insert-before", sibling, callback, user_data, user_data2, user_data)

This action signal adds the filter like element before the sibling element in the bin.

Same as GstInsertBin.InsertBin.insert_before

Parameters:

`self` (GstInsertBin.InsertBin) –
No description available
`sibling` (Gst.Element) –

the Gst.Element to add element before

`callback` (Gst.Element) –

the callback to call when the element has been added or not, or None

`user_data` (object) –

The data to pass to the callback

`user_data2` (object) –

The user data of the signal (ignored)

`user_data` (variadic) –

The data to pass to the callback

Flags: Run Last / Action

Since : 1.2

#### prepend

    g_signal_emit_by_name (self, "prepend", callback, user_data, user_data2, user_data);

This action signal adds the filter like element before any other element in the bin.

Same as gst_insert_bin_prepend

Parameters:

`self` (GstInsertBin *) –
No description available
`callback` (GstElement *) –

the callback to call when the element has been added or not, or NULL

`user_data` (gpointer) –

The data to pass to the callback

`user_data2` (gpointer) –

The user data of the signal (ignored)

`user_data` (gpointer) –

The data to pass to the callback

Flags: Run Last / Action

Since : 1.2

#### prepend

    let ret = self.emit ("prepend", callback, user_data, user_data2, user_data);

This action signal adds the filter like element before any other element in the bin.

Same as GstInsertBin.InsertBin.prototype.prepend

Parameters:

`self` (GstInsertBin.InsertBin) –
No description available
`callback` (Gst.Element) –

the callback to call when the element has been added or not, or null

`user_data` (Object) –

The data to pass to the callback

`user_data2` (Object) –

The user data of the signal (ignored)

`user_data` (Object) –

The data to pass to the callback

Flags: Run Last / Action

Since : 1.2

#### prepend

    ret = self.emit ("prepend", callback, user_data, user_data2, user_data)

This action signal adds the filter like element before any other element in the bin.

Same as GstInsertBin.InsertBin.prepend

Parameters:

`self` (GstInsertBin.InsertBin) –
No description available
`callback` (Gst.Element) –

the callback to call when the element has been added or not, or None

`user_data` (object) –

The data to pass to the callback

`user_data2` (object) –

The user data of the signal (ignored)

`user_data` (variadic) –

The data to pass to the callback

Flags: Run Last / Action

Since : 1.2

#### remove

    g_signal_emit_by_name (self, "remove", callback, user_data, user_data2, user_data);

This action signal removed the filter like element from the bin.

Same as gst_insert_bin_remove

Parameters:

`self` (GstInsertBin *) –
No description available
`callback` (GstElement *) –

the callback to call when the element has been removed or not, or NULL

`user_data` (gpointer) –

The data to pass to the callback

`user_data2` (gpointer) –

The user data of the signal (ignored)

`user_data` (gpointer) –

The data to pass to the callback

Flags: Run Last / Action

Since : 1.2

#### remove

    let ret = self.emit ("remove", callback, user_data, user_data2, user_data);

This action signal removed the filter like element from the bin.

Same as GstInsertBin.InsertBin.prototype.remove

Parameters:

`self` (GstInsertBin.InsertBin) –
No description available
`callback` (Gst.Element) –

the callback to call when the element has been removed or not, or null

`user_data` (Object) –

The data to pass to the callback

`user_data2` (Object) –

The user data of the signal (ignored)

`user_data` (Object) –

The data to pass to the callback

Flags: Run Last / Action

Since : 1.2

#### remove

    ret = self.emit ("remove", callback, user_data, user_data2, user_data)

This action signal removed the filter like element from the bin.

Same as GstInsertBin.InsertBin.remove

Parameters:

`self` (GstInsertBin.InsertBin) –
No description available
`callback` (Gst.Element) –

the callback to call when the element has been removed or not, or None

`user_data` (object) –

The data to pass to the callback

`user_data2` (object) –

The user data of the signal (ignored)

`user_data` (variadic) –

The data to pass to the callback

Flags: Run Last / Action

Since : 1.2

## Constants

### GST_INSERT_BIN_API

    #define GST_INSERT_BIN_API GST_API_EXPORT         /* from config.h */

## Callbacks

### GstInsertBinCallback

    (*GstInsertBinCallback) (GstInsertBin * insertbin,
                             GstElement * element,
                             gboolean success,
                             gpointer user_data)

This is the prototype of callbacks to be called when the operation completes. It could be called at any time, including as a re-entrant call while the operation is requested.

Parameters:

`insertbin` –

A GstInsertBin

`element` –

The GstElement on which the operation was performed

`success` –

TRUE if the operation was successful

`user_data` –

The user data passed

Since : 1.2

### GstInsertBin.InsertBinCallback

    function GstInsertBin.InsertBinCallback(insertbin: GstInsertBin.InsertBin, element: Gst.Element, success: Number, user_data: Object): {
        // javascript wrapper for 'GstInsertBinCallback'
    }

This is the prototype of callbacks to be called when the operation completes. It could be called at any time, including as a re-entrant call while the operation is requested.

Parameters:

`insertbin` (GstInsertBin.InsertBin) –

A GstInsertBin.InsertBin

`element` (Gst.Element) –

The Gst.Element on which the operation was performed

`success` (Number) –

true if the operation was successful

`user_data` (Object) –

The user data passed

Since : 1.2

### GstInsertBin.InsertBinCallback

    def GstInsertBin.InsertBinCallback (insertbin, element, success, *user_data):
        #python wrapper for 'GstInsertBinCallback'

This is the prototype of callbacks to be called when the operation completes. It could be called at any time, including as a re-entrant call while the operation is requested.

Parameters:

`insertbin` (GstInsertBin.InsertBin) –

A GstInsertBin.InsertBin

`element` (Gst.Element) –

The Gst.Element on which the operation was performed

`success` (bool) –

True if the operation was successful

`user_data` (variadic) –

The user data passed

Since : 1.2

The results of the search are