## GstSchedulerFactory

GstSchedulerFactory — Create schedulers from a factory

## Synopsis

    #include <gst/gst.h>

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

## 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

### 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_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_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_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_get_default_name ()

    const gchar* gst_scheduler_factory_get_default_name
                                                (void);

Get the default schedulerfactory name.

Returns : | the name of the default scheduler.

### 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