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

## Types and Values

struct | GstTagMux
struct | GstTagMuxClass

## Includes

    #include <gst/tag/gsttagmux.h>

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

## Functions

## Types and Values

### struct GstTagMux

    struct GstTagMux {
      GstElement    element;
    };

Opaque GstTagMux structure.

#### Members

GstElement `element`; | parent element |

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

#### Members

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 |

## See Also

GstApeMux, GstId3Mux