## GstSchedulerFactory GstSchedulerFactory — Create schedulers from a factory |

## Synopsis

    #include <gst/gst.h>

                GstSchedulerFactory;
    gboolean    gst_scheduler_register          (GstPlugin *plugin,
                                                 const gchar *name,
                                                 const gchar *longdesc,
                                                 GType type);
    GstSchedulerFactory* gst_scheduler_factory_new
                                                (const gchar *name,
                                                 const gchar *longdesc,
                                                 GType type);
    void        gst_scheduler_factory_destroy   (GstSchedulerFactory *factory);
    GstSchedulerFactory* gst_scheduler_factory_find
                                                (const gchar *name);
    GstScheduler* gst_scheduler_factory_create  (GstSchedulerFactory *factory,
                                                 GstElement *parent);
    GstScheduler* gst_scheduler_factory_make    (const gchar *name,
                                                 GstElement *parent);
    void        gst_scheduler_factory_set_default_name
                                                (const gchar *name);
    const gchar* gst_scheduler_factory_get_default_name
                                                (void);

## Object Hierarchy

      GObject
       +----GstPluginFeature
             +----GstSchedulerFactory

## Description

A schedulerfactory is used to create instances of a scheduler. It can be added to a GstPlugin as it extends GstPluginFeature.

Use `gst_scheduler_factory_new()` to create a new scheduler which can be registered to a plugin with `gst_plugin_add_feature()`.

Use `gst_scheduler_factory_find()` to find the named schedulerfactory. or use `gst_scheduler_factory_get_list()` to get a list of all available schedulers.

Once an schedulerfactory has been obtained use `gst_scheduler_factory_create()` to instantiate a real scheduler. Optionally `gst_scheduler_factory_make()` to create a scheduler from the named factory.

Use `gst_scheduler_factory_destroy()` to remove the factory from the global list.

## Details

### GstSchedulerFactory

    typedef struct _GstSchedulerFactory GstSchedulerFactory;

### gst_scheduler_register ()

    gboolean    gst_scheduler_register          (GstPlugin *plugin,
                                                 const gchar *name,
                                                 const gchar *longdesc,
                                                 GType type);

Registers a scheduler with GStreamer.

`plugin` : | a GstPlugin
`name` : | name of the scheduler to register
`longdesc` : | description of the scheduler
`type` : | GType of the scheduler to register
Returns : | TRUE, if the registering succeeded, FALSE on error.

Since 0.8.5

### gst_scheduler_factory_new ()

    GstSchedulerFactory* gst_scheduler_factory_new
                                                (const gchar *name,
                                                 const gchar *longdesc,
                                                 GType type);

Create a new schedulerfactory with the given parameters

`name` : | name of schedulerfactory to create
`longdesc` : | long description of schedulerfactory to create
`type` : | the gtk type of the GstScheduler element of this factory
Returns : | a new GstSchedulerFactory.

### gst_scheduler_factory_destroy ()

    void        gst_scheduler_factory_destroy   (GstSchedulerFactory *factory);

Removes the scheduler from the global list.

`factory` : | factory to destroy

### gst_scheduler_factory_find ()

    GstSchedulerFactory* gst_scheduler_factory_find
                                                (const gchar *name);

Search for an schedulerfactory of the given name.

`name` : | name of schedulerfactory to find
Returns : | GstSchedulerFactory if found, NULL otherwise

### gst_scheduler_factory_create ()

    GstScheduler* gst_scheduler_factory_create  (GstSchedulerFactory *factory,
                                                 GstElement *parent);

Create a new GstScheduler instance from the given schedulerfactory with the given parent. `parent` will have its scheduler set to the returned GstScheduler instance.

`factory` : | the factory used to create the instance
`parent` : | the parent element of this scheduler
Returns : | A new GstScheduler instance with a reference count of `1`.

### gst_scheduler_factory_make ()

    GstScheduler* gst_scheduler_factory_make    (const gchar *name,
                                                 GstElement *parent);

Create a new GstScheduler instance from the schedulerfactory with the given name and parent. `parent` will have its scheduler set to the returned GstScheduler instance. If `NULL` is passed as `name`, the default scheduler name will be used.

`name` : | the name of the factory used to create the instance
`parent` : | the parent element of this scheduler
Returns : | A new GstScheduler instance with a reference count of `1`.

### gst_scheduler_factory_set_default_name ()

    void        gst_scheduler_factory_set_default_name
                                                (const gchar *name);

Set the default schedulerfactory name.

`name` : | the name of the factory used as a default

### gst_scheduler_factory_get_default_name ()

    const gchar* gst_scheduler_factory_get_default_name
                                                (void);

Get the default schedulerfactory name.

Returns : | the name of the default scheduler.