## GESMetaContainer GESMetaContainer — An interface for storing meta |

## Functions

void | (*GESMetaForeachFunc) ()
void | ges_meta_container_foreach ()
const GValue * | ges_meta_container_get_meta ()
gboolean | ges_meta_container_get_boolean ()
gboolean | ges_meta_container_get_date ()
gboolean | ges_meta_container_get_date_time ()
gboolean | ges_meta_container_get_double ()
gboolean | ges_meta_container_get_float ()
gboolean | ges_meta_container_get_int ()
gboolean | ges_meta_container_get_int64 ()
const gchar * | ges_meta_container_get_string ()
gboolean | ges_meta_container_get_uint ()
gboolean | ges_meta_container_get_uint64 ()
gboolean | ges_meta_container_set_boolean ()
gboolean | ges_meta_container_set_date ()
gboolean | ges_meta_container_set_date_time ()
gboolean | ges_meta_container_set_double ()
gboolean | ges_meta_container_set_float ()
gboolean | ges_meta_container_set_int ()
gboolean | ges_meta_container_set_int64 ()
gboolean | ges_meta_container_set_string ()
gboolean | ges_meta_container_set_uint ()
gboolean | ges_meta_container_set_uint64 ()
gboolean | ges_meta_container_set_meta ()
gboolean | ges_meta_container_register_meta_boolean ()
gboolean | ges_meta_container_register_meta_int ()
gboolean | ges_meta_container_register_meta_uint ()
gboolean | ges_meta_container_register_meta_int64 ()
gboolean | ges_meta_container_register_meta_uint64 ()
gboolean | ges_meta_container_register_meta_float ()
gboolean | ges_meta_container_register_meta_double ()
gboolean | ges_meta_container_register_meta_date ()
gboolean | ges_meta_container_register_meta_date_time ()
gboolean | ges_meta_container_register_meta_string ()
gboolean | ges_meta_container_register_meta ()
gchar * | ges_meta_container_metas_to_string ()
gboolean | ges_meta_container_add_metas_from_string ()
GType | ges_meta_container_get_type ()
gboolean | ges_meta_container_check_meta_registered ()

## Signals

void | notify-meta | No Hooks

## Types and Values

| GESMetaContainer
#define | GES_META_FORMATTER_NAME
#define | GES_META_FORMATTER_MIMETYPE
#define | GES_META_FORMATTER_EXTENSION
#define | GES_META_FORMATTER_VERSION
#define | GES_META_FORMATTER_RANK
#define | GES_META_DESCRIPTION
#define | GES_META_FORMAT_VERSION

## Object Hierarchy

        GInterface
        ╰── GESMetaContainer

## Prerequisites

GESMetaContainer requires GObject.

## Known Implementations

GESMetaContainer is implemented by GESAsset, GESAudioSource, GESAudioTestSource, GESAudioTransition, GESAudioUriSource, GESBaseEffect, GESBaseEffectClip, GESBaseTransitionClip, GESClip, GESClipAsset, GESContainer, GESEffect, GESEffectClip, GESGroup, GESImageSource, GESLayer, GESMultiFileSource, GESOperation, GESOperationClip, GESOverlayClip, GESProject, GESSource, GESSourceClip, GESTestClip, GESTextOverlay, GESTextOverlayClip, GESTimeline, GESTimelineElement, GESTitleClip, GESTitleSource, GESTrack, GESTrackElement, GESTrackElementAsset, GESTransition, GESTransitionClip, GESUriClip, GESUriClipAsset, GESUriSourceAsset, GESVideoSource, GESVideoTestSource, GESVideoTransition and GESVideoUriSource.

## Includes

    #include <ges/ges.h>

## Description

Interface that allows reading and writing meta

## Functions

### GESMetaForeachFunc ()

    void
    (*GESMetaForeachFunc) (const GESMetaContainer *container,
                           const gchar *key,
                           const GValue *value,
                           gpointer user_data);

### ges_meta_container_foreach ()

    void
    ges_meta_container_foreach (GESMetaContainer *container,
                                GESMetaForeachFunc func,
                                gpointer user_data);

Calls the given function for each metadata inside the meta container. Note that if there is no metadata, the function won't be called at all.

#### Parameters

container | container to iterate over |
func | function to be called for each metadata. | [scope call]
user_data | user specified data. | [closure]

### ges_meta_container_get_meta ()

    const GValue *
    ges_meta_container_get_meta (GESMetaContainer *container,
                                 const gchar *key);

Gets the value of a given meta item, returns NULL if `key` can not be found.

#### Parameters

container | Target container |
key | The key name of the meta to retrieve |

#### Returns

the GValue corresponding to the meta with the given `key` .

### ges_meta_container_get_boolean ()

    gboolean
    ges_meta_container_get_boolean (GESMetaContainer *container,
                                    const gchar *meta_item,
                                    gboolean *dest);

#### Parameters

container | Target container |
meta_item | Name of the meta item to get |
dest | Destination to which value of meta item will be copied Gets the value of a given meta item, returns NULL if `meta_item` can not be found. | [out]

### ges_meta_container_get_date ()

    gboolean
    ges_meta_container_get_date (GESMetaContainer *container,
                                 const gchar *meta_item,
                                 GDate **dest);

#### Parameters

container | Target container |
meta_item | Name of the meta item to get |
dest | Destination to which value of meta item will be copied Gets the value of a given meta item, returns NULL if `meta_item` can not be found. | [out]

### ges_meta_container_get_date_time ()

    gboolean
    ges_meta_container_get_date_time (GESMetaContainer *container,
                                      const gchar *meta_item,
                                      GstDateTime **dest);

#### Parameters

container | Target container |
meta_item | Name of the meta item to get |
dest | Destination to which value of meta item will be copied Gets the value of a given meta item, returns NULL if `meta_item` can not be found. | [out]

### ges_meta_container_get_double ()

    gboolean
    ges_meta_container_get_double (GESMetaContainer *container,
                                   const gchar *meta_item,
                                   gdouble *dest);

#### Parameters

container | Target container |
meta_item | Name of the meta item to get |
dest | Destination to which value of meta item will be copied Gets the value of a given meta item, returns NULL if `meta_item` can not be found. | [out]

### ges_meta_container_get_float ()

    gboolean
    ges_meta_container_get_float (GESMetaContainer *container,
                                  const gchar *meta_item,
                                  gfloat *dest);

#### Parameters

container | Target container |
meta_item | Name of the meta item to get |
dest | Destination to which value of meta item will be copied Gets the value of a given meta item, returns FALSE if `meta_item` can not be found. | [out]

### ges_meta_container_get_int ()

    gboolean
    ges_meta_container_get_int (GESMetaContainer *container,
                                const gchar *meta_item,
                                gint *dest);

#### Parameters

container | Target container |
meta_item | Name of the meta item to get |
dest | Destination to which value of meta item will be copied Gets the value of a given meta item, returns NULL if `meta_item` can not be found. | [out]

### ges_meta_container_get_int64 ()

    gboolean
    ges_meta_container_get_int64 (GESMetaContainer *container,
                                  const gchar *meta_item,
                                  gint64 *dest);

#### Parameters

container | Target container |
meta_item | Name of the meta item to get |
dest | Destination to which value of meta item will be copied Gets the value of a given meta item, returns `FALSE` if `meta_item` can not be found. | [out]

### ges_meta_container_get_string ()

    const gchar *
    ges_meta_container_get_string (GESMetaContainer *container,
                                   const gchar *meta_item);

#### Parameters

container | Target container |
meta_item | Name of the meta item to get Gets the value of a given meta item, returns NULL if `meta_item` can not be found. |

### ges_meta_container_get_uint ()

    gboolean
    ges_meta_container_get_uint (GESMetaContainer *container,
                                 const gchar *meta_item,
                                 guint *dest);

#### Parameters

container | Target container |
meta_item | Name of the meta item to get |
dest | Destination to which value of meta item will be copied Gets the value of a given meta item, returns NULL if `meta_item` can not be found. | [out]

### ges_meta_container_get_uint64 ()

    gboolean
    ges_meta_container_get_uint64 (GESMetaContainer *container,
                                   const gchar *meta_item,
                                   guint64 *dest);

#### Parameters

container | Target container |
meta_item | Name of the meta item to get |
dest | Destination to which value of meta item will be copied Gets the value of a given meta item, returns NULL if `meta_item` can not be found. | [out]

### ges_meta_container_set_boolean ()

    gboolean
    ges_meta_container_set_boolean (GESMetaContainer *container,
                                    const gchar *meta_item,
                                    gboolean value);

Sets the value of a given meta item

Return: `TRUE` if the meta could be added, `FALSE` otherwize

#### Parameters

container | Target container |
meta_item | Name of the meta item to set |
value | Value to set |

### ges_meta_container_set_date ()

    gboolean
    ges_meta_container_set_date (GESMetaContainer *container,
                                 const gchar *meta_item,
                                 const GDate *value);

Sets the value of a given meta item

Return: `TRUE` if the meta could be added, `FALSE` otherwize

#### Parameters

container | Target container |
meta_item | Name of the meta item to set |
value | Value to set |

### ges_meta_container_set_date_time ()

    gboolean
    ges_meta_container_set_date_time (GESMetaContainer *container,
                                      const gchar *meta_item,
                                      const GstDateTime *value);

Sets the value of a given meta item

Return: `TRUE` if the meta could be added, `FALSE` otherwize

#### Parameters

container | Target container |
meta_item | Name of the meta item to set |
value | Value to set |

### ges_meta_container_set_double ()

    gboolean
    ges_meta_container_set_double (GESMetaContainer *container,
                                   const gchar *meta_item,
                                   gdouble value);

Sets the value of a given meta item

Return: `TRUE` if the meta could be added, `FALSE` otherwize

#### Parameters

container | Target container |
meta_item | Name of the meta item to set |
value | Value to set |

### ges_meta_container_set_float ()

    gboolean
    ges_meta_container_set_float (GESMetaContainer *container,
                                  const gchar *meta_item,
                                  gfloat value);

Sets the value of a given meta item

Return: `TRUE` if the meta could be added, `FALSE` otherwize

#### Parameters

container | Target container |
meta_item | Name of the meta item to set |
value | Value to set |

### ges_meta_container_set_int ()

    gboolean
    ges_meta_container_set_int (GESMetaContainer *container,
                                const gchar *meta_item,
                                gint value);

Sets the value of a given meta item

Return: `TRUE` if the meta could be added, `FALSE` otherwize

#### Parameters

container | Target container |
meta_item | Name of the meta item to set |
value | Value to set |

### ges_meta_container_set_int64 ()

    gboolean
    ges_meta_container_set_int64 (GESMetaContainer *container,
                                  const gchar *meta_item,
                                  gint64 value);

Sets the value of a given meta item

Return: `TRUE` if the meta could be added, `FALSE` otherwize

#### Parameters

container | Target container |
meta_item | Name of the meta item to set |
value | Value to set |

### ges_meta_container_set_string ()

    gboolean
    ges_meta_container_set_string (GESMetaContainer *container,
                                   const gchar *meta_item,
                                   const gchar *value);

Sets the value of a given meta item

Return: `TRUE` if the meta could be added, `FALSE` otherwize

#### Parameters

container | Target container |
meta_item | Name of the meta item to set |
value | Value to set |

### ges_meta_container_set_uint ()

    gboolean
    ges_meta_container_set_uint (GESMetaContainer *container,
                                 const gchar *meta_item,
                                 guint value);

Sets the value of a given meta item

Return: `TRUE` if the meta could be added, `FALSE` otherwize

#### Parameters

container | Target container |
meta_item | Name of the meta item to set |
value | Value to set |

### ges_meta_container_set_uint64 ()

    gboolean
    ges_meta_container_set_uint64 (GESMetaContainer *container,
                                   const gchar *meta_item,
                                   guint64 value);

Sets the value of a given meta item

Return: `TRUE` if the meta could be added, `FALSE` otherwize

#### Parameters

container | Target container |
meta_item | Name of the meta item to set |
value | Value to set |

### ges_meta_container_set_meta ()

    gboolean
    ges_meta_container_set_meta (GESMetaContainer *container,
                                 const gchar *meta_item,
                                 const GValue *value);

Return: `TRUE` if the meta could be added, `FALSE` otherwize

#### Parameters

container | Target container |
meta_item | Name of the meta item to set |
value | Value to set Sets the value of a given meta item. | [allow-none]

### ges_meta_container_register_meta_boolean ()

    gboolean
    ges_meta_container_register_meta_boolean
                                   (GESMetaContainer *container,
                                    GESMetaFlag flags,
                                    const gchar *meta_item,
                                    gboolean value);

### ges_meta_container_register_meta_int ()

    gboolean
    ges_meta_container_register_meta_int (GESMetaContainer *container,
                                          GESMetaFlag flags,
                                          const gchar *meta_item,
                                          gint value);

Sets a static meta on `container` . This method lets you define static metadatas, which means that the type of the registered will be the only type accepted for this meta on that particular `container` .

Return: `TRUE` if the meta could be register, `FALSE` otherwize

#### Parameters

container | Target container |
flags | The GESMetaFlag to be used |
meta_item | Name of the meta item to set |
value | Value to set |

### ges_meta_container_register_meta_uint ()

    gboolean
    ges_meta_container_register_meta_uint (GESMetaContainer *container,
                                           GESMetaFlag flags,
                                           const gchar *meta_item,
                                           guint value);

Sets a static meta on `container` . This method lets you define static metadatas, which means that the type of the registered will be the only type accepted for this meta on that particular `container` .

Return: `TRUE` if the meta could be register, `FALSE` otherwize

#### Parameters

container | Target container |
flags | The GESMetaFlag to be used |
meta_item | Name of the meta item to set |
value | Value to set |

### ges_meta_container_register_meta_int64 ()

    gboolean
    ges_meta_container_register_meta_int64
                                   (GESMetaContainer *container,
                                    GESMetaFlag flags,
                                    const gchar *meta_item,
                                    gint64 value);

Sets a static meta on `container` . This method lets you define static metadatas, which means that the type of the registered will be the only type accepted for this meta on that particular `container` .

Return: `TRUE` if the meta could be register, `FALSE` otherwize

#### Parameters

container | Target container |
flags | The GESMetaFlag to be used |
meta_item | Name of the meta item to set |
value | Value to set |

### ges_meta_container_register_meta_uint64 ()

    gboolean
    ges_meta_container_register_meta_uint64
                                   (GESMetaContainer *container,
                                    GESMetaFlag flags,
                                    const gchar *meta_item,
                                    guint64 value);

Sets a static meta on `container` . This method lets you define static metadatas, which means that the type of the registered will be the only type accepted for this meta on that particular `container` .

Return: `TRUE` if the meta could be register, `FALSE` otherwize

#### Parameters

container | Target container |
flags | The GESMetaFlag to be used |
meta_item | Name of the meta item to set |
value | Value to set |

### ges_meta_container_register_meta_float ()

    gboolean
    ges_meta_container_register_meta_float
                                   (GESMetaContainer *container,
                                    GESMetaFlag flags,
                                    const gchar *meta_item,
                                    gfloat value);

Sets a static meta on `container` . This method lets you define static metadatas, which means that the type of the registered will be the only type accepted for this meta on that particular `container` .

Return: `TRUE` if the meta could be register, `FALSE` otherwize

#### Parameters

container | Target container |
flags | The GESMetaFlag to be used |
meta_item | Name of the meta item to set |
value | Value to set |

### ges_meta_container_register_meta_double ()

    gboolean
    ges_meta_container_register_meta_double
                                   (GESMetaContainer *container,
                                    GESMetaFlag flags,
                                    const gchar *meta_item,
                                    gdouble value);

Sets a static meta on `container` . This method lets you define static metadatas, which means that the type of the registered will be the only type accepted for this meta on that particular `container` .

Return: `TRUE` if the meta could be register, `FALSE` otherwize

#### Parameters

container | Target container |
flags | The GESMetaFlag to be used |
meta_item | Name of the meta item to set |
value | Value to set |

### ges_meta_container_register_meta_date ()

    gboolean
    ges_meta_container_register_meta_date (GESMetaContainer *container,
                                           GESMetaFlag flags,
                                           const gchar *meta_item,
                                           const GDate *value);

Sets a static meta on `container` . This method lets you define static metadatas, which means that the type of the registered will be the only type accepted for this meta on that particular `container` .

Return: `TRUE` if the meta could be register, `FALSE` otherwize

#### Parameters

container | Target container |
flags | The GESMetaFlag to be used |
meta_item | Name of the meta item to set |
value | Value to set. | [allow-none]

### ges_meta_container_register_meta_date_time ()

    gboolean
    ges_meta_container_register_meta_date_time
                                   (GESMetaContainer *container,
                                    GESMetaFlag flags,
                                    const gchar *meta_item,
                                    const GstDateTime *value);

Sets a static meta on `container` . This method lets you define static metadatas, which means that the type of the registered will be the only type accepted for this meta on that particular `container` .

Return: `TRUE` if the meta could be register, `FALSE` otherwize

#### Parameters

container | Target container |
flags | The GESMetaFlag to be used |
meta_item | Name of the meta item to set |
value | Value to set. | [allow-none]

### ges_meta_container_register_meta_string ()

    gboolean
    ges_meta_container_register_meta_string
                                   (GESMetaContainer *container,
                                    GESMetaFlag flags,
                                    const gchar *meta_item,
                                    const gchar *value);

Sets a static meta on `container` . This method lets you define static metadatas, which means that the type of the registered will be the only type accepted for this meta on that particular `container` .

Return: `TRUE` if the meta could be register, `FALSE` otherwize

#### Parameters

container | Target container |
flags | The GESMetaFlag to be used |
meta_item | Name of the meta item to set |
value | Value to set. | [allow-none]

### ges_meta_container_register_meta ()

    gboolean
    ges_meta_container_register_meta (GESMetaContainer *container,
                                      GESMetaFlag flags,
                                      const gchar *meta_item,
                                      const GValue *value);

Sets a static meta on `container` . This method lets you define static metadatas, which means that the type of the registered will be the only type accepted for this meta on that particular `container` .

Return: `TRUE` if the static meta could be added, `FALSE` otherwize

#### Parameters

container | Target container |
flags | The GESMetaFlag to be used |
meta_item | Name of the meta item to set |
value | Value to set |

### ges_meta_container_metas_to_string ()

    gchar *
    ges_meta_container_metas_to_string (GESMetaContainer *container);

Serializes a meta container to a string.

#### Parameters

container | a GESMetaContainer |

#### Returns

a newly-allocated string, or NULL in case of an error. The string must be freed with `g_free()` when no longer needed.

[nullable]

### ges_meta_container_add_metas_from_string ()

    gboolean
    ges_meta_container_add_metas_from_string
                                   (GESMetaContainer *container,
                                    const gchar *str);

Deserializes a meta container.

#### Parameters

container | Target container |
str | a string created with `ges_meta_container_metas_to_string()` |

#### Returns

TRUE on success, FALSE if there was an error.

### ges_meta_container_get_type ()

    GType
    ges_meta_container_get_type (void);

### ges_meta_container_check_meta_registered ()

    gboolean
    ges_meta_container_check_meta_registered
                                   (GESMetaContainer *container,
                                    const gchar *meta_item,
                                    GESMetaFlag *flags,
                                    GType *type);

## Types and Values

### GESMetaContainer

    typedef struct _GESMetaContainer GESMetaContainer;

### GES_META_FORMATTER_NAME

    #define GES_META_FORMATTER_NAME                       "name"

Name of a formatter it is used as ID of Formater assets (string)

The name of the formatter

### GES_META_FORMATTER_MIMETYPE

    #define GES_META_FORMATTER_MIMETYPE                   "mimetype"

Mimetype used for the file produced by a formatter (string)

The mime type

### GES_META_FORMATTER_EXTENSION

    #define GES_META_FORMATTER_EXTENSION                  "extension"

The extension of the files produced by a formatter (string)

### GES_META_FORMATTER_VERSION

    #define GES_META_FORMATTER_VERSION                    "version"

The version of a formatter (double)

The formatter version

### GES_META_FORMATTER_RANK

    #define GES_META_FORMATTER_RANK                       "rank"

The rank of a formatter (GstRank)

The rank of a formatter

### GES_META_DESCRIPTION

    #define GES_META_DESCRIPTION                         "description"

The description of an object, can be used in various context (string)

The description

### GES_META_FORMAT_VERSION

    #define GES_META_FORMAT_VERSION                       "format-version"

The version of the format in which a project is serialized

## Signal Details

### The `“notify-meta”` signal

    void
    user_function (GESMetaContainer *gesmetacontainer,
                   gchar            *arg1,
                   GValue           *arg2,
                   gpointer          user_data)

Flags: No Hooks