## GstTagSetter

GstTagSetter — Element interface that allows setting and retrieval of media metadata

## Synopsis

    #include <gst/gst.h>

                GstTagSetter;
                GstTagSetterIFace;
    void        gst_tag_setter_merge            (GstTagSetter *setter,
                                                 const GstTagList *list,
                                                 GstTagMergeMode mode);
    void        gst_tag_setter_add              (GstTagSetter *setter,
                                                 GstTagMergeMode mode,
                                                 const gchar *tag,
                                                 ...);
    void        gst_tag_setter_add_values       (GstTagSetter *setter,
                                                 GstTagMergeMode mode,
                                                 const gchar *tag,
                                                 ...);
    void        gst_tag_setter_add_valist       (GstTagSetter *setter,
                                                 GstTagMergeMode mode,
                                                 const gchar *tag,
                                                 va_list var_args);
    void        gst_tag_setter_add_valist_values
                                                (GstTagSetter *setter,
                                                 GstTagMergeMode mode,
                                                 const gchar *tag,
                                                 va_list var_args);
    const GstTagList* gst_tag_setter_get_list   (GstTagSetter *setter);
    void        gst_tag_setter_set_merge_mode   (GstTagSetter *setter,
                                                 GstTagMergeMode mode);
    GstTagMergeMode gst_tag_setter_get_merge_mode
                                                (GstTagSetter *setter);

## Object Hierarchy

      GInterface
       +----GstTagSetter

## Prerequisites

GstTagSetter requires GstElement.

## Description

## Details

### GstTagSetter

    typedef struct _GstTagSetter GstTagSetter;

### GstTagSetterIFace

    typedef struct {
      GTypeInterface g_iface;

      /* signals */

      /* virtual table */
    } GstTagSetterIFace;

### gst_tag_setter_merge ()

    void        gst_tag_setter_merge            (GstTagSetter *setter,
                                                 const GstTagList *list,
                                                 GstTagMergeMode mode);

Merges the given list into the setter's list using the given mode.

`setter` : | a GstTagSetter
`list` : | a tag list to merge from
`mode` : | the mode to merge with

### gst_tag_setter_add ()

    void        gst_tag_setter_add              (GstTagSetter *setter,
                                                 GstTagMergeMode mode,
                                                 const gchar *tag,
                                                 ...);

Adds the given tag / value pairs on the setter using the given merge mode. The list must be terminated with NULL.

`setter` : | a GstTagSetter
`mode` : | the mode to use
`tag` : | tag to set
`...` : | more tag / value pairs to set

### gst_tag_setter_add_values ()

    void        gst_tag_setter_add_values       (GstTagSetter *setter,
                                                 GstTagMergeMode mode,
                                                 const gchar *tag,
                                                 ...);

Adds the given tag / GValue pairs on the setter using the given merge mode. The list must be terminated with NULL.

`setter` : | a GstTagSetter
`mode` : | the mode to use
`tag` : | tag to set
`...` : | more tag / GValue pairs to set

### gst_tag_setter_add_valist ()

    void        gst_tag_setter_add_valist       (GstTagSetter *setter,
                                                 GstTagMergeMode mode,
                                                 const gchar *tag,
                                                 va_list var_args);

Adds the given tag / value pairs on the setter using the given merge mode. The list must be terminated with NULL.

`setter` : | a GstTagSetter
`mode` : | the mode to use
`tag` : | tag to set
`var_args` : | tag / value pairs to set

### gst_tag_setter_add_valist_values ()

    void        gst_tag_setter_add_valist_values
                                                (GstTagSetter *setter,
                                                 GstTagMergeMode mode,
                                                 const gchar *tag,
                                                 va_list var_args);

Adds the given tag / GValue pairs on the setter using the given merge mode. The list must be terminated with NULL.

`setter` : | a GstTagSetter
`mode` : | the mode to use
`tag` : | tag to set
`var_args` : | tag / GValue pairs to set

### gst_tag_setter_get_list ()

    const GstTagList* gst_tag_setter_get_list   (GstTagSetter *setter);

Returns the current list of tags the setter uses. The list should not be modified or freed.

`setter` : | a GstTagSetter
Returns : | a current snapshot of the taglist used in the setter or NULL if none is used.

### gst_tag_setter_set_merge_mode ()

    void        gst_tag_setter_set_merge_mode   (GstTagSetter *setter,
                                                 GstTagMergeMode mode);

Sets the given merge mode that is used for adding tags from events to tags specified by this interface. The default is GST_TAG_MERGE_KEEP, which keeps the tags by this interface and discards tags from events.

`setter` : | a GstTagSetter
`mode` : | The mode with which tags are added

### gst_tag_setter_get_merge_mode ()

    GstTagMergeMode gst_tag_setter_get_merge_mode
                                                (GstTagSetter *setter);

Queries the mode by which tags inside the setter are overwritten by tags from events

`setter` : | a GstTagSetter
Returns : | the merge mode used inside the element.