# GESProject

The GESProject is used to control a set of GESAsset and is a GESAsset with `GES_TYPE_TIMELINE` as extractable_type itself. That means that you can extract GESTimeline from a project as followed:

      GESProject *project;
      GESTimeline *timeline;

      project = ges_project_new ("file:///path/to/a/valid/project/uri");

      // Here you can connect to the various signal to get more infos about
      // what is happening and recover from errors if possible
      ...

      timeline = ges_asset_extract (GES_ASSET (project));

The GESProject class offers a higher level API to handle GESAsset-s. It lets you request new asset, and it informs you about new assets through a set of signals. Also it handles problem such as missing files/missing GstElement and lets you try to recover from those.

## Subprojects

In order to add a subproject, the only thing to do is to add the subproject to the main project:

    ges_project_add_asset (project, GES_ASSET (subproject));

then the subproject will be serialized in the project files. To use the subproject in a timeline, you should use a GESUriClip with the same subproject URI.

When loading a project with subproject, subprojects URIs will be temporary writable local files. If you want to edit the subproject timeline, you should retrieve the subproject from the parent project asset list and extract the timeline with ges_asset_extract and save it at the same temporary location.

## GESProject

    GObject
        ╰──GESAsset
            ╰──GESProject

### Members

`parent` (GESAsset) –
No description available

### Class structure

#### GESProjectClass

##### Fields

`parent_class` (GESAssetClass) –
No description available
`_ges_reserved` (gpointer *) –
No description available

### GES.ProjectClass

##### Attributes

`parent_class` (GES.AssetClass) –
No description available
`_ges_reserved` ([ Object ]) –
No description available

### GES.ProjectClass

##### Attributes

`parent_class` (GES.AssetClass) –
No description available
`_ges_reserved` ([ object ]) –
No description available

## GES.Project

    GObject.Object
        ╰──GES.Asset
            ╰──GES.Project

### Members

`parent` (GES.Asset) –
No description available

## GES.Project

    GObject.Object
        ╰──GES.Asset
            ╰──GES.Project

### Members

`parent` (GES.Asset) –
No description available

### Constructors

#### ges_project_new

    GESProject *
    ges_project_new (const gchar * uri)

Creates a new GESProject and sets its uri to uri if provided. Note that if uri is not valid or NULL, the uri of the project will then be set the first time you save the project. If you then save the project to other locations, it will never be updated again and the first valid URI is the URI it will keep refering to.

Parameters:

`uri` ( [allow-none]) –

The uri to be set after creating the project.

Returns –

A newly created GESProject

#### GES.Project.prototype.new

    function GES.Project.prototype.new(uri: String): {
        // javascript wrapper for 'ges_project_new'
    }

Creates a new GES.Project and sets its uri to uri if provided. Note that if uri is not valid or null, the uri of the project will then be set the first time you save the project. If you then save the project to other locations, it will never be updated again and the first valid URI is the URI it will keep refering to.

Parameters:

`uri` (String) –

The uri to be set after creating the project.

Returns (GES.Project) –

A newly created GES.Project

#### GES.Project.new

    def GES.Project.new (uri):
        #python wrapper for 'ges_project_new'

Creates a new GES.Project and sets its uri to uri if provided. Note that if uri is not valid or None, the uri of the project will then be set the first time you save the project. If you then save the project to other locations, it will never be updated again and the first valid URI is the URI it will keep refering to.

Parameters:

`uri` (str) –

The uri to be set after creating the project.

Returns (GES.Project) –

A newly created GES.Project

### Methods

#### ges_project_add_asset

    gboolean
    ges_project_add_asset (GESProject * project,
                           GESAsset * asset)

Adds a GESAsset to project, the project will keep a reference on asset.

Parameters:

`project` –

A GESProject

`asset` ( [transfer: none]) –

A GESAsset to add to project

Returns –

TRUE if the asset could be added FALSE it was already in the project

#### GES.Project.prototype.add_asset

    function GES.Project.prototype.add_asset(asset: GES.Asset): {
        // javascript wrapper for 'ges_project_add_asset'
    }

Adds a GES.Asset to project, the project will keep a reference on asset.

Parameters:

`project` (GES.Project) –

A GES.Project

`asset` (GES.Asset) –

A GES.Asset to add to project

Returns (Number) –

true if the asset could be added false it was already in the project

#### GES.Project.add_asset

    def GES.Project.add_asset (self, asset):
        #python wrapper for 'ges_project_add_asset'

Adds a GES.Asset to project, the project will keep a reference on asset.

Parameters:

`project` (GES.Project) –

A GES.Project

`asset` (GES.Asset) –

A GES.Asset to add to project

Returns (bool) –

True if the asset could be added False it was already in the project

#### ges_project_add_encoding_profile

    gboolean
    ges_project_add_encoding_profile (GESProject * project,
                                      GstEncodingProfile * profile)

Adds profile to the project. It lets you save in what format the project has been renders and keep a reference to those formats. Also, those formats will be saves to the project file when possible.

Parameters:

`project` –

A GESProject

`profile` –

A GstEncodingProfile to add to the project. If a profile with the same name already exists, it will be replaced

Returns –

TRUE if profile could be added, FALSE otherwize

#### GES.Project.prototype.add_encoding_profile

    function GES.Project.prototype.add_encoding_profile(profile: GstPbutils.EncodingProfile): {
        // javascript wrapper for 'ges_project_add_encoding_profile'
    }

Adds profile to the project. It lets you save in what format the project has been renders and keep a reference to those formats. Also, those formats will be saves to the project file when possible.

Parameters:

`project` (GES.Project) –

A GES.Project

`profile` (GstPbutils.EncodingProfile) –

A GstPbutils.EncodingProfile to add to the project. If a profile with the same name already exists, it will be replaced

Returns (Number) –

true if profile could be added, false otherwize

#### GES.Project.add_encoding_profile

    def GES.Project.add_encoding_profile (self, profile):
        #python wrapper for 'ges_project_add_encoding_profile'

Adds profile to the project. It lets you save in what format the project has been renders and keep a reference to those formats. Also, those formats will be saves to the project file when possible.

Parameters:

`project` (GES.Project) –

A GES.Project

`profile` (GstPbutils.EncodingProfile) –

A GstPbutils.EncodingProfile to add to the project. If a profile with the same name already exists, it will be replaced

Returns (bool) –

True if profile could be added, False otherwize

#### ges_project_add_formatter

    ges_project_add_formatter (GESProject * project,
                               GESFormatter * formatter)

Adds a formatter as used to load project

Parameters:

`project` –

The project to add a formatter to

`formatter` –

A formatter used by project

Since : 1.18

#### GES.Project.prototype.add_formatter

    function GES.Project.prototype.add_formatter(formatter: GES.Formatter): {
        // javascript wrapper for 'ges_project_add_formatter'
    }

Adds a formatter as used to load project

Parameters:

`project` (GES.Project) –

The project to add a formatter to

`formatter` (GES.Formatter) –

A formatter used by project

Since : 1.18

#### GES.Project.add_formatter

    def GES.Project.add_formatter (self, formatter):
        #python wrapper for 'ges_project_add_formatter'

Adds a formatter as used to load project

Parameters:

`project` (GES.Project) –

The project to add a formatter to

`formatter` (GES.Formatter) –

A formatter used by project

Since : 1.18

#### ges_project_create_asset

    gboolean
    ges_project_create_asset (GESProject * project,
                              const gchar * id,
                              GType extractable_type)

Create and add a GESAsset to project. You should connect to the "asset-added" signal to get the asset when it finally gets added to project

Parameters:

`project` –

A GESProject

`id` ( [allow-none]) –

The id of the asset to create and add to project

`extractable_type` –

The GType of the asset to create

Returns –

TRUE if the asset started to be added FALSE it was already in the project

#### GES.Project.prototype.create_asset

    function GES.Project.prototype.create_asset(id: String, extractable_type: GObject.Type): {
        // javascript wrapper for 'ges_project_create_asset'
    }

Create and add a GES.Asset to project. You should connect to the "asset-added" signal to get the asset when it finally gets added to project

Parameters:

`project` (GES.Project) –

A GES.Project

`id` (String) –

The id of the asset to create and add to project

`extractable_type` (GObject.Type) –

The GObject.Type of the asset to create

Returns (Number) –

true if the asset started to be added false it was already in the project

#### GES.Project.create_asset

    def GES.Project.create_asset (self, id, extractable_type):
        #python wrapper for 'ges_project_create_asset'

Create and add a GES.Asset to project. You should connect to the "asset-added" signal to get the asset when it finally gets added to project

Parameters:

`project` (GES.Project) –

A GES.Project

`id` (str) –

The id of the asset to create and add to project

`extractable_type` (GObject.Type) –

The GObject.Type of the asset to create

Returns (bool) –

True if the asset started to be added False it was already in the project

#### ges_project_create_asset_sync

    GESAsset *
    ges_project_create_asset_sync (GESProject * project,
                                   const gchar * id,
                                   GType extractable_type,
                                   GError ** error)

Create and add a GESAsset to project. You should connect to the "asset-added" signal to get the asset when it finally gets added to project

Parameters:

`project` –

A GESProject

`id` ( [allow-none]) –

The id of the asset to create and add to project

`extractable_type` –

The GType of the asset to create

`error` –

A GError to be set in case of error

Returns ( [transfer: full][nullable]) –

The newly created GESAsset or NULL.

#### GES.Project.prototype.create_asset_sync

    function GES.Project.prototype.create_asset_sync(id: String, extractable_type: GObject.Type): {
        // javascript wrapper for 'ges_project_create_asset_sync'
    }

Create and add a GES.Asset to project. You should connect to the "asset-added" signal to get the asset when it finally gets added to project

Parameters:

`project` (GES.Project) –

A GES.Project

`id` (String) –

The id of the asset to create and add to project

`extractable_type` (GObject.Type) –

The GObject.Type of the asset to create

Returns (GES.Asset) –

The newly created GES.Asset or null.

#### GES.Project.create_asset_sync

    @raises(GLib.GError)
    def GES.Project.create_asset_sync (self, id, extractable_type):
        #python wrapper for 'ges_project_create_asset_sync'

Create and add a GES.Asset to project. You should connect to the "asset-added" signal to get the asset when it finally gets added to project

Parameters:

`project` (GES.Project) –

A GES.Project

`id` (str) –

The id of the asset to create and add to project

`extractable_type` (GObject.Type) –

The GObject.Type of the asset to create

Returns (GES.Asset) –

The newly created GES.Asset or None.

#### ges_project_get_asset

    GESAsset *
    ges_project_get_asset (GESProject * project,
                           const gchar * id,
                           GType extractable_type)

Parameters:

`project` –

A GESProject

`id` –

The id of the asset to retrieve

`extractable_type` –

The extractable_type of the asset to retrieve from object

Returns ( [transfer: full][nullable]) –

The GESAsset with id or NULL if no asset with id as an ID

#### GES.Project.prototype.get_asset

    function GES.Project.prototype.get_asset(id: String, extractable_type: GObject.Type): {
        // javascript wrapper for 'ges_project_get_asset'
    }

Parameters:

`project` (GES.Project) –

A GES.Project

`id` (String) –

The id of the asset to retrieve

`extractable_type` (GObject.Type) –

The extractable_type of the asset to retrieve from object

Returns (GES.Asset) –

The GES.Asset with id or null if no asset with id as an ID

#### GES.Project.get_asset

    def GES.Project.get_asset (self, id, extractable_type):
        #python wrapper for 'ges_project_get_asset'

Parameters:

`project` (GES.Project) –

A GES.Project

`id` (str) –

The id of the asset to retrieve

`extractable_type` (GObject.Type) –

The extractable_type of the asset to retrieve from object

Returns (GES.Asset) –

The GES.Asset with id or None if no asset with id as an ID

#### ges_project_get_loading_assets

    GList *
    ges_project_get_loading_assets (GESProject * project)

Get the assets that are being loaded

Parameters:

`project` –

A GESProject

Returns ( [transfer: full][element-typeGES.Asset]) –

A set of loading asset that will be added to project. Note that those Asset are not loaded yet, and thus can not be used

#### GES.Project.prototype.get_loading_assets

    function GES.Project.prototype.get_loading_assets(): {
        // javascript wrapper for 'ges_project_get_loading_assets'
    }

Get the assets that are being loaded

Parameters:

`project` (GES.Project) –

A GES.Project

Returns ([ GES.Asset ]) –

A set of loading asset that will be added to project. Note that those Asset are not loaded yet, and thus can not be used

#### GES.Project.get_loading_assets

    def GES.Project.get_loading_assets (self):
        #python wrapper for 'ges_project_get_loading_assets'

Get the assets that are being loaded

Parameters:

`project` (GES.Project) –

A GES.Project

Returns ([ GES.Asset ]) –

A set of loading asset that will be added to project. Note that those Asset are not loaded yet, and thus can not be used

#### ges_project_get_uri

    gchar *
    ges_project_get_uri (GESProject * project)

Retrieve the uri that is currently set on project

Parameters:

`project` –

A GESProject

Returns ( [transfer: full][nullable]) –

a newly allocated string representing uri.

#### GES.Project.prototype.get_uri

    function GES.Project.prototype.get_uri(): {
        // javascript wrapper for 'ges_project_get_uri'
    }

Retrieve the uri that is currently set on project

Parameters:

`project` (GES.Project) –

A GES.Project

Returns (String) –

a newly allocated string representing uri.

#### GES.Project.get_uri

    def GES.Project.get_uri (self):
        #python wrapper for 'ges_project_get_uri'

Retrieve the uri that is currently set on project

Parameters:

`project` (GES.Project) –

A GES.Project

Returns (str) –

a newly allocated string representing uri.

#### ges_project_list_assets

    GList *
    ges_project_list_assets (GESProject * project,
                             GType filter)

List all asset contained in project filtering per extractable_type as defined by filter. It copies the asset and thus will not be updated in time.

Parameters:

`project` –

A GESProject

`filter` –

Type of assets to list, `GES_TYPE_EXTRACTABLE` will list all assets

Returns ( [transfer: full][element-typeGESAsset]) –

The list of GESAsset the object contains

#### GES.Project.prototype.list_assets

    function GES.Project.prototype.list_assets(filter: GObject.Type): {
        // javascript wrapper for 'ges_project_list_assets'
    }

List all asset contained in project filtering per extractable_type as defined by filter. It copies the asset and thus will not be updated in time.

Parameters:

`project` (GES.Project) –

A GES.Project

`filter` (GObject.Type) –

Type of assets to list, `GES_TYPE_EXTRACTABLE` will list all assets

Returns ([ GES.Asset ]) –

The list of GES.Asset the object contains

#### GES.Project.list_assets

    def GES.Project.list_assets (self, filter):
        #python wrapper for 'ges_project_list_assets'

List all asset contained in project filtering per extractable_type as defined by filter. It copies the asset and thus will not be updated in time.

Parameters:

`project` (GES.Project) –

A GES.Project

`filter` (GObject.Type) –

Type of assets to list, `GES_TYPE_EXTRACTABLE` will list all assets

Returns ([ GES.Asset ]) –

The list of GES.Asset the object contains

#### ges_project_list_encoding_profiles

    const GList *
    ges_project_list_encoding_profiles (GESProject * project)

Lists the encoding profile that have been set to project. The first one is the latest added.

Parameters:

`project` –

A GESProject

Returns ( [transfer: none][element-typeGstPbutils.EncodingProfile][allow-none]) –

The list of GstEncodingProfile used in project

#### GES.Project.prototype.list_encoding_profiles

    function GES.Project.prototype.list_encoding_profiles(): {
        // javascript wrapper for 'ges_project_list_encoding_profiles'
    }

Lists the encoding profile that have been set to project. The first one is the latest added.

Parameters:

`project` (GES.Project) –

A GES.Project

Returns ([ GstPbutils.EncodingProfile ]) –

The list of GstPbutils.EncodingProfile used in project

#### GES.Project.list_encoding_profiles

    def GES.Project.list_encoding_profiles (self):
        #python wrapper for 'ges_project_list_encoding_profiles'

Lists the encoding profile that have been set to project. The first one is the latest added.

Parameters:

`project` (GES.Project) –

A GES.Project

Returns ([ GstPbutils.EncodingProfile ]) –

The list of GstPbutils.EncodingProfile used in project

#### ges_project_load

    gboolean
    ges_project_load (GESProject * project,
                      GESTimeline * timeline,
                      GError ** error)

Loads project into timeline

Parameters:

`project` –

A GESProject that has an uri set already

`timeline` –

A blank timeline to load project into

`error` –

An error to be set in case something wrong happens or NULL

Returns –

TRUE if the project could be loaded FALSE otherwize.

#### GES.Project.prototype.load

    function GES.Project.prototype.load(timeline: GES.Timeline): {
        // javascript wrapper for 'ges_project_load'
    }

Loads project into timeline

Parameters:

`project` (GES.Project) –

A GES.Project that has an uri set already

`timeline` (GES.Timeline) –

A blank timeline to load project into

Returns (Number) –

true if the project could be loaded false otherwize.

#### GES.Project.load

    @raises(GLib.GError)
    def GES.Project.load (self, timeline):
        #python wrapper for 'ges_project_load'

Loads project into timeline

Parameters:

`project` (GES.Project) –

A GES.Project that has an uri set already

`timeline` (GES.Timeline) –

A blank timeline to load project into

Returns (bool) –

True if the project could be loaded False otherwize.

#### ges_project_remove_asset

    gboolean
    ges_project_remove_asset (GESProject * project,
                              GESAsset * asset)

remove a asset to from project.

Parameters:

`project` –

A GESProject

`asset` ( [transfer: none]) –

A GESAsset to remove from project

Returns –

TRUE if the asset could be removed FALSE otherwise

#### GES.Project.prototype.remove_asset

    function GES.Project.prototype.remove_asset(asset: GES.Asset): {
        // javascript wrapper for 'ges_project_remove_asset'
    }

remove a asset to from project.

Parameters:

`project` (GES.Project) –

A GES.Project

`asset` (GES.Asset) –

A GES.Asset to remove from project

Returns (Number) –

true if the asset could be removed false otherwise

#### GES.Project.remove_asset

    def GES.Project.remove_asset (self, asset):
        #python wrapper for 'ges_project_remove_asset'

remove a asset to from project.

Parameters:

`project` (GES.Project) –

A GES.Project

`asset` (GES.Asset) –

A GES.Asset to remove from project

Returns (bool) –

True if the asset could be removed False otherwise

#### ges_project_save

    gboolean
    ges_project_save (GESProject * project,
                      GESTimeline * timeline,
                      const gchar * uri,
                      GESAsset * formatter_asset,
                      gboolean overwrite,
                      GError ** error)

Save the timeline of project to uri. You should make sure that timeline is one of the timelines that have been extracted from project (using ges_asset_extract (@project);)

Parameters:

`project` –

A GESProject to save

`timeline` –

The GESTimeline to save, it must have been extracted from project

`uri` –

The uri where to save project and timeline

`formatter_asset` ( [transfer: full][allow-none]) –

The formatter asset to use or NULL. If NULL, will try to save in the same format as the one from which the timeline as been loaded or default to the best formatter as defined in ges_find_formatter_for_uri

`overwrite` –

TRUE to overwrite file if it exists

`error` –

An error to be set in case something wrong happens or NULL

Returns –

TRUE if the project could be save, FALSE otherwize

#### GES.Project.prototype.save

    function GES.Project.prototype.save(timeline: GES.Timeline, uri: String, formatter_asset: GES.Asset, overwrite: Number): {
        // javascript wrapper for 'ges_project_save'
    }

Save the timeline of project to uri. You should make sure that timeline is one of the timelines that have been extracted from project (using ges_asset_extract (@project);)

Parameters:

`project` (GES.Project) –

A GES.Project to save

`timeline` (GES.Timeline) –

The GES.Timeline to save, it must have been extracted from project

`uri` (String) –

The uri where to save project and timeline

`formatter_asset` (GES.Asset) –

The formatter asset to use or null. If null, will try to save in the same format as the one from which the timeline as been loaded or default to the best formatter as defined in GES.prototype.find_formatter_for_uri

`overwrite` (Number) –

true to overwrite file if it exists

Returns (Number) –

true if the project could be save, false otherwize

#### GES.Project.save

    @raises(GLib.GError)
    def GES.Project.save (self, timeline, uri, formatter_asset, overwrite):
        #python wrapper for 'ges_project_save'

Save the timeline of project to uri. You should make sure that timeline is one of the timelines that have been extracted from project (using ges_asset_extract (@project);)

Parameters:

`project` (GES.Project) –

A GES.Project to save

`timeline` (GES.Timeline) –

The GES.Timeline to save, it must have been extracted from project

`uri` (str) –

The uri where to save project and timeline

`formatter_asset` (GES.Asset) –

The formatter asset to use or None. If None, will try to save in the same format as the one from which the timeline as been loaded or default to the best formatter as defined in GES.find_formatter_for_uri

`overwrite` (bool) –

True to overwrite file if it exists

Returns (bool) –

True if the project could be save, False otherwize

### Signals

#### asset-added

    asset_added_callback (GESProject * self,
                          GESAsset * asset,
                          gpointer user_data)

Parameters:

`self` –
No description available
`asset` –

The GESAsset that has been added to project

`user_data` –
No description available

Flags: Run Last

#### asset-added

    function asset_added_callback(self: GES.Project, asset: GES.Asset, user_data: Object): {
        // javascript callback for the 'asset-added' signal
    }

Parameters:

`self` (GES.Project) –
No description available
`asset` (GES.Asset) –

The GES.Asset that has been added to project

`user_data` (Object) –
No description available

Flags: Run Last

#### asset-added

    def asset_added_callback (self, asset, *user_data):
        #python callback for the 'asset-added' signal

Parameters:

`self` (GES.Project) –
No description available
`asset` (GES.Asset) –

The GES.Asset that has been added to project

`user_data` (variadic) –
No description available

Flags: Run Last

#### asset-loading

    asset_loading_callback (GESProject * self,
                            GESAsset * asset,
                            gpointer user_data)

Parameters:

`self` –
No description available
`asset` –

The GESAsset that started loading

`user_data` –
No description available

Flags: Run Last

Since : 1.8

#### asset-loading

    function asset_loading_callback(self: GES.Project, asset: GES.Asset, user_data: Object): {
        // javascript callback for the 'asset-loading' signal
    }

Parameters:

`self` (GES.Project) –
No description available
`asset` (GES.Asset) –

The GES.Asset that started loading

`user_data` (Object) –
No description available

Flags: Run Last

Since : 1.8

#### asset-loading

    def asset_loading_callback (self, asset, *user_data):
        #python callback for the 'asset-loading' signal

Parameters:

`self` (GES.Project) –
No description available
`asset` (GES.Asset) –

The GES.Asset that started loading

`user_data` (variadic) –
No description available

Flags: Run Last

Since : 1.8

#### asset-removed

    asset_removed_callback (GESProject * self,
                            GESAsset * asset,
                            gpointer user_data)

Parameters:

`self` –
No description available
`asset` –

The GESAsset that has been removed from project

`user_data` –
No description available

Flags: Run Last

#### asset-removed

    function asset_removed_callback(self: GES.Project, asset: GES.Asset, user_data: Object): {
        // javascript callback for the 'asset-removed' signal
    }

Parameters:

`self` (GES.Project) –
No description available
`asset` (GES.Asset) –

The GES.Asset that has been removed from project

`user_data` (Object) –
No description available

Flags: Run Last

#### asset-removed

    def asset_removed_callback (self, asset, *user_data):
        #python callback for the 'asset-removed' signal

Parameters:

`self` (GES.Project) –
No description available
`asset` (GES.Asset) –

The GES.Asset that has been removed from project

`user_data` (variadic) –
No description available

Flags: Run Last

#### error-loading

    error_loading_callback (GESProject * self,
                            GESTimeline * timeline,
                            GError * error,
                            gpointer user_data)

Parameters:

`self` –
No description available
`timeline` –

The timeline that failed loading

`error` –

The GError defining the error that occured

`user_data` –
No description available

Flags: Run Last

Since : 1.18

#### error-loading

    function error_loading_callback(self: GES.Project, timeline: GES.Timeline, error: GLib.Error, user_data: Object): {
        // javascript callback for the 'error-loading' signal
    }

Parameters:

`self` (GES.Project) –
No description available
`timeline` (GES.Timeline) –

The timeline that failed loading

`error` (GLib.Error) –

The GLib.Error defining the error that occured

`user_data` (Object) –
No description available

Flags: Run Last

Since : 1.18

#### error-loading

    def error_loading_callback (self, timeline, error, *user_data):
        #python callback for the 'error-loading' signal

Parameters:

`self` (GES.Project) –
No description available
`timeline` (GES.Timeline) –

The timeline that failed loading

`error` (GLib.Error) –

The GLib.Error defining the error that occured

`user_data` (variadic) –
No description available

Flags: Run Last

Since : 1.18

#### error-loading-asset

    error_loading_asset_callback (GESProject * self,
                                  GError * error,
                                  gchar * id,
                                  GType extractable_type,
                                  gpointer user_data)

Informs you that a GESAsset could not be created. In case of missing GStreamer plugins, the error will be set to GST_CORE_ERROR GST_CORE_ERROR_MISSING_PLUGIN

Parameters:

`self` –
No description available
`error` –

The GError defining the error that occured, might be NULL

`id` –

The id of the asset that failed loading

`extractable_type` –

The extractable_type of the asset that failed loading

`user_data` –
No description available

Flags: Run Last

#### error-loading-asset

    function error_loading_asset_callback(self: GES.Project, error: GLib.Error, id: String, extractable_type: GObject.Type, user_data: Object): {
        // javascript callback for the 'error-loading-asset' signal
    }

Informs you that a GES.Asset could not be created. In case of missing GStreamer plugins, the error will be set to GST_CORE_ERROR (not introspectable) Gst.CoreError.MISSING_PLUGIN

Parameters:

`self` (GES.Project) –
No description available
`error` (GLib.Error) –

The GLib.Error defining the error that occured, might be null

`id` (String) –

The id of the asset that failed loading

`extractable_type` (GObject.Type) –

The extractable_type of the asset that failed loading

`user_data` (Object) –
No description available

Flags: Run Last

#### error-loading-asset

    def error_loading_asset_callback (self, error, id, extractable_type, *user_data):
        #python callback for the 'error-loading-asset' signal

Informs you that a GES.Asset could not be created. In case of missing GStreamer plugins, the error will be set to GST_CORE_ERROR (not introspectable) Gst.CoreError.MISSING_PLUGIN

Parameters:

`self` (GES.Project) –
No description available
`error` (GLib.Error) –

The GLib.Error defining the error that occured, might be None

`id` (str) –

The id of the asset that failed loading

`extractable_type` (GObject.Type) –

The extractable_type of the asset that failed loading

`user_data` (variadic) –
No description available

Flags: Run Last

#### loaded

    loaded_callback (GESProject * self,
                     GESTimeline * timeline,
                     gpointer user_data)

Parameters:

`self` –
No description available
`timeline` –

The GESTimeline that completed loading

`user_data` –
No description available

Flags: Run First

#### loaded

    function loaded_callback(self: GES.Project, timeline: GES.Timeline, user_data: Object): {
        // javascript callback for the 'loaded' signal
    }

Parameters:

`self` (GES.Project) –
No description available
`timeline` (GES.Timeline) –

The GES.Timeline that completed loading

`user_data` (Object) –
No description available

Flags: Run First

#### loaded

    def loaded_callback (self, timeline, *user_data):
        #python callback for the 'loaded' signal

Parameters:

`self` (GES.Project) –
No description available
`timeline` (GES.Timeline) –

The GES.Timeline that completed loading

`user_data` (variadic) –
No description available

Flags: Run First

#### loading

    loading_callback (GESProject * self,
                      GESTimeline * timeline,
                      gpointer user_data)

Parameters:

`self` –
No description available
`timeline` –

The GESTimeline that started loading

`user_data` –
No description available

Flags: Run First

Since : 1.18

#### loading

    function loading_callback(self: GES.Project, timeline: GES.Timeline, user_data: Object): {
        // javascript callback for the 'loading' signal
    }

Parameters:

`self` (GES.Project) –
No description available
`timeline` (GES.Timeline) –

The GES.Timeline that started loading

`user_data` (Object) –
No description available

Flags: Run First

Since : 1.18

#### loading

    def loading_callback (self, timeline, *user_data):
        #python callback for the 'loading' signal

Parameters:

`self` (GES.Project) –
No description available
`timeline` (GES.Timeline) –

The GES.Timeline that started loading

`user_data` (variadic) –
No description available

Flags: Run First

Since : 1.18

#### missing-uri

    gchar *
    missing_uri_callback (GESProject * self,
                          GError * error,
                          GESAsset * wrong_asset,
                          gpointer user_data)

     static gchar
     source_moved_cb (GESProject *project, GError *error, GESAsset *asset_with_error)
     {
       return g_strdup ("file:///the/new/uri.ogg");
     }

     static int
     main (int argc, gchar ** argv)
     {
       GESTimeline *timeline;
       GESProject *project = ges_project_new ("file:///some/uri.xges");

       g_signal_connect (project, "missing-uri", source_moved_cb, NULL);
       timeline = ges_asset_extract (GES_ASSET (project));
     }

Parameters:

`self` –
No description available
`error` –

The error that happened

`wrong_asset` –

The asset with the wrong ID, you should us it and its content only to find out what the new location is.

`user_data` –
No description available
Returns ( [transfer: full][nullable]) –

The new URI of wrong_asset

Flags: Run Last

#### missing-uri

    function missing_uri_callback(self: GES.Project, error: GLib.Error, wrong_asset: GES.Asset, user_data: Object): {
        // javascript callback for the 'missing-uri' signal
    }

     static gchar
     source_moved_cb (GESProject *project, GError *error, GESAsset *asset_with_error)
     {
       return g_strdup ("file:///the/new/uri.ogg");
     }

     static int
     main (int argc, gchar ** argv)
     {
       GESTimeline *timeline;
       GESProject *project = ges_project_new ("file:///some/uri.xges");

       g_signal_connect (project, "missing-uri", source_moved_cb, NULL);
       timeline = ges_asset_extract (GES_ASSET (project));
     }

Parameters:

`self` (GES.Project) –
No description available
`error` (GLib.Error) –

The error that happened

`wrong_asset` (GES.Asset) –

The asset with the wrong ID, you should us it and its content only to find out what the new location is.

`user_data` (Object) –
No description available
Returns (String) –

The new URI of wrong_asset

Flags: Run Last

#### missing-uri

    def missing_uri_callback (self, error, wrong_asset, *user_data):
        #python callback for the 'missing-uri' signal

     static gchar
     source_moved_cb (GESProject *project, GError *error, GESAsset *asset_with_error)
     {
       return g_strdup ("file:///the/new/uri.ogg");
     }

     static int
     main (int argc, gchar ** argv)
     {
       GESTimeline *timeline;
       GESProject *project = ges_project_new ("file:///some/uri.xges");

       g_signal_connect (project, "missing-uri", source_moved_cb, NULL);
       timeline = ges_asset_extract (GES_ASSET (project));
     }

Parameters:

`self` (GES.Project) –
No description available
`error` (GLib.Error) –

The error that happened

`wrong_asset` (GES.Asset) –

The asset with the wrong ID, you should us it and its content only to find out what the new location is.

`user_data` (variadic) –
No description available
Returns (str) –

The new URI of wrong_asset

Flags: Run Last

### Properties

#### uri

    “uri” gchar *

Flags : Read / Write / Construct Only

#### uri

    “uri” String

Flags : Read / Write / Construct Only

#### uri

    “self.props.uri” str

Flags : Read / Write / Construct Only

### Virtual Methods

#### asset_added

    asset_added (GESProject * self,
                 GESAsset * asset)

Parameters:

`self` –
No description available
`asset` –
No description available

#### vfunc_asset_added

    function vfunc_asset_added(self: GES.Project, asset: GES.Asset): {
        // javascript implementation of the 'asset_added' virtual method
    }

Parameters:

`self` (GES.Project) –
No description available
`asset` (GES.Asset) –
No description available

#### do_asset_added

    def do_asset_added (self, asset):
        #python implementation of the 'asset_added' virtual method

Parameters:

`self` (GES.Project) –
No description available
`asset` (GES.Asset) –
No description available

#### asset_loading

    asset_loading (GESProject * self,
                   GESAsset * asset)

Parameters:

`self` –
No description available
`asset` –
No description available

#### vfunc_asset_loading

    function vfunc_asset_loading(self: GES.Project, asset: GES.Asset): {
        // javascript implementation of the 'asset_loading' virtual method
    }

Parameters:

`self` (GES.Project) –
No description available
`asset` (GES.Asset) –
No description available

#### do_asset_loading

    def do_asset_loading (self, asset):
        #python implementation of the 'asset_loading' virtual method

Parameters:

`self` (GES.Project) –
No description available
`asset` (GES.Asset) –
No description available

#### asset_removed

    asset_removed (GESProject * self,
                   GESAsset * asset)

Parameters:

`self` –
No description available
`asset` –
No description available

#### vfunc_asset_removed

    function vfunc_asset_removed(self: GES.Project, asset: GES.Asset): {
        // javascript implementation of the 'asset_removed' virtual method
    }

Parameters:

`self` (GES.Project) –
No description available
`asset` (GES.Asset) –
No description available

#### do_asset_removed

    def do_asset_removed (self, asset):
        #python implementation of the 'asset_removed' virtual method

Parameters:

`self` (GES.Project) –
No description available
`asset` (GES.Asset) –
No description available

#### loaded

    gboolean
    loaded (GESProject * self,
            GESTimeline * timeline)

Parameters:

`self` –
No description available
`timeline` –
No description available
Returns –
No description available

#### vfunc_loaded

    function vfunc_loaded(self: GES.Project, timeline: GES.Timeline): {
        // javascript implementation of the 'loaded' virtual method
    }

Parameters:

`self` (GES.Project) –
No description available
`timeline` (GES.Timeline) –
No description available
Returns (Number) –
No description available

#### do_loaded

    def do_loaded (self, timeline):
        #python implementation of the 'loaded' virtual method

Parameters:

`self` (GES.Project) –
No description available
`timeline` (GES.Timeline) –
No description available
Returns (bool) –
No description available

#### loading

    loading (GESProject * self,
             GESTimeline * timeline)

Parameters:

`self` –

The self

`timeline` –

The loading timeline

Since : 1.18

#### vfunc_loading

    function vfunc_loading(self: GES.Project, timeline: GES.Timeline): {
        // javascript implementation of the 'loading' virtual method
    }

Parameters:

`self` (GES.Project) –

The self

`timeline` (GES.Timeline) –

The loading timeline

Since : 1.18

#### do_loading

    def do_loading (self, timeline):
        #python implementation of the 'loading' virtual method

Parameters:

`self` (GES.Project) –

The self

`timeline` (GES.Timeline) –

The loading timeline

Since : 1.18

#### loading_error

    gboolean
    loading_error (GESProject * self,
                   GError * error,
                   gchar * id,
                   GType extractable_type)

Parameters:

`self` –
No description available
`error` –
No description available
`id` –
No description available
`extractable_type` –
No description available
Returns –
No description available

#### vfunc_loading_error

    function vfunc_loading_error(self: GES.Project, error: GLib.Error, id: String, extractable_type: GObject.Type): {
        // javascript implementation of the 'loading_error' virtual method
    }

Parameters:

`self` (GES.Project) –
No description available
`error` (GLib.Error) –
No description available
`id` (String) –
No description available
`extractable_type` (GObject.Type) –
No description available
Returns (Number) –
No description available

#### do_loading_error

    def do_loading_error (self, error, id, extractable_type):
        #python implementation of the 'loading_error' virtual method

Parameters:

`self` (GES.Project) –
No description available
`error` (GLib.Error) –
No description available
`id` (str) –
No description available
`extractable_type` (GObject.Type) –
No description available
Returns (bool) –
No description available

#### missing_uri

    gchar *
    missing_uri (GESProject * self,
                 GError * error,
                 GESAsset * wrong_asset)

Parameters:

`self` –
No description available
`error` –
No description available
`wrong_asset` –
No description available
Returns –
No description available

#### vfunc_missing_uri

    function vfunc_missing_uri(self: GES.Project, error: GLib.Error, wrong_asset: GES.Asset): {
        // javascript implementation of the 'missing_uri' virtual method
    }

Parameters:

`self` (GES.Project) –
No description available
`error` (GLib.Error) –
No description available
`wrong_asset` (GES.Asset) –
No description available
Returns (String) –
No description available

#### do_missing_uri

    def do_missing_uri (self, error, wrong_asset):
        #python implementation of the 'missing_uri' virtual method

Parameters:

`self` (GES.Project) –
No description available
`error` (GLib.Error) –
No description available
`wrong_asset` (GES.Asset) –
No description available
Returns (str) –
No description available

## Functions

### ges_add_missing_uri_relocation_uri

    gboolean
    ges_add_missing_uri_relocation_uri (const gchar * uri,
                                        gboolean recurse)

Parameters:

`uri` –
No description available
`recurse` –
No description available
Returns –
No description available

### GES.prototype.add_missing_uri_relocation_uri

    function GES.prototype.add_missing_uri_relocation_uri(uri: String, recurse: Number): {
        // javascript wrapper for 'ges_add_missing_uri_relocation_uri'
    }

Parameters:

`uri` (String) –
No description available
`recurse` (Number) –
No description available
Returns (Number) –
No description available

### GES.add_missing_uri_relocation_uri

    def GES.add_missing_uri_relocation_uri (uri, recurse):
        #python wrapper for 'ges_add_missing_uri_relocation_uri'

Parameters:

`uri` (str) –
No description available
`recurse` (bool) –
No description available
Returns (bool) –
No description available

## Constants

### GES_TYPE_PROJECT

    #define GES_TYPE_PROJECT            ges_project_get_type()

The results of the search are