## GstTagSetter

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

## Synopsis

    struct      GstTagSetter;
    struct      GstTagSetterIFace;
    #define     GST_TYPE_TAG_SETTER
    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);
    G_CONST_RETURN 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.

## Known Implementations

GstTagSetter is implemented by GstID3Tag, GstVorbisTag, OggVorbisEnc, GstLame, GstFlacTag, FlacEnc, VorbisEnc and GstID3Mux.

## Description

## Details

### struct GstTagSetter

    struct GstTagSetter;

### struct GstTagSetterIFace

    struct GstTagSetterIFace {

      GTypeInterface g_iface;

      /* signals */

      /* virtual table */
    };

### GST_TYPE_TAG_SETTER

    #define GST_TYPE_TAG_SETTER		(gst_tag_setter_get_type ())

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

`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 GST_TAG_INVALID.

`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 GST_TAG_INVALID.

`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 GST_TAG_INVALID.

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

### gst_tag_setter_get_list ()

    G_CONST_RETURN GstTagList* gst_tag_setter_get_list
                                                (GstTagSetter *setter);

Retrieves a copy of the current list of tags the setter uses. You need to `gst_tag_list_free()` the list after use.

`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.