## id3demux id3demux — Read and output ID3v1 and ID3v2 tags while demuxing the contents |

## Properties

gboolean | prefer-v1 | Read / Write / Construct

## Types and Values

struct | GstID3Demux

## Object Hierarchy

        GObject
        ╰── GInitiallyUnowned
            ╰── GstObject
                ╰── GstElement
                    ╰── GstTagDemux
                        ╰── GstID3Demux

## Description

id3demux accepts data streams with either (or both) ID3v2 regions at the start, or ID3v1 at the end. The mime type of the data between the tag blocks is detected using typefind functions, and the appropriate output mime type set on outgoing buffers.

The element is only able to read ID3v1 tags from a seekable stream, because they are at the end of the stream. That is, when get_range mode is supported by the upstream elements. If get_range operation is available, id3demux makes it available downstream. This means that elements which require get_range mode, such as wavparse, can operate on files containing ID3 tag information.

This id3demux element replaced an older element with the same name which relied on libid3tag from the MAD project.

### Example launch line

    1
    gst-launch-1.0 filesrc location=file.mp3 ! id3demux ! fakesink -t

This pipeline should read any available ID3 tag information and output it. The contents of the file inside the ID3 tag regions should be detected, and the appropriate mime type set on buffers produced from id3demux.

## Synopsis

### Element Information

plugin | id3demux
author | Jan Schmidt <thaytan@mad.scientist.com>
class | Codec/Demuxer/Metadata

### Element Pads

name | sink
direction | sink
presence | always
details | application/x-id3

name | src
direction | source
presence | always
details | ANY

## Functions

## Types and Values

### struct GstID3Demux

    struct GstID3Demux;

## Property Details

### The `“prefer-v1”` property

      “prefer-v1”                gboolean

Prefer tags from ID3v1 tag at end of file when both ID3v1 and ID3v2 tags are present.

Flags: Read / Write / Construct

Default value: FALSE