## gsttagmux gsttagmux — Base class for adding tags that are in one single chunk directly at the beginning or at the end of a file |

## Synopsis

    #include <gst/tag/gsttagmux.h>

    struct              GstTagMux;
    struct              GstTagMuxClass;

## Description

### Deriving from GstTagMux

Provides a base class for adding tags at the beginning or end of a stream.

Subclasses have to do the following things:

- In their base init function, they must add pad templates for the sink pad and the source pad to the element class, describing the media type they accept and output in the caps of the pad template.

- In their class init function, they must override the GST_TAG_MUX_CLASS(mux_klass)->render_start_tag and/or GST_TAG_MUX_CLASS(mux_klass)->render_end_tag vfuncs and set up a render function.

Since 0.10.36

## Details

### struct GstTagMux

    struct GstTagMux {
      GstElement    element;
    };

Opaque GstTagMux structure.

GstElement `element`; | parent element

Since 0.10.36

### struct GstTagMuxClass

    struct GstTagMuxClass {
      GstElementClass parent_class;

      /* vfuncs */
      GstBuffer  * (*render_start_tag) (GstTagMux * mux, const GstTagList * tag_list);
      GstBuffer  * (*render_end_tag)   (GstTagMux * mux, const GstTagList * tag_list);
    };

The GstTagMuxClass structure. Subclasses need to override at least one of the two render vfuncs.

GstElementClass `parent_class`; | the parent class.
`render_start_tag` () | create a tag buffer to add to the beginning of the input stream given a tag list, or NULL
`render_end_tag` () | create a tag buffer to add to the end of the input stream given a tag list, or NULL

Since 0.10.36

## See Also

GstApeMux, GstId3Mux