libavformat/id3v2.c File Reference

ID3v2 header parser. More...

#include "id3v2.h"
#include "id3v1.h"
#include "libavutil/avstring.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/dict.h"
#include "avio_internal.h"

Go to the source code of this file.

Functions

int ff_id3v2_match (const uint8_t *buf, const char *magic)
 Detect ID3v2 Header.
int ff_id3v2_tag_len (const uint8_t *buf)
 Get the length of an ID3v2 tag.
static unsigned int get_size (AVIOContext *s, int len)
static void read_ttag (AVFormatContext *s, AVIOContext *pb, int taglen, const char *key)
static int is_number (const char *str)
static AVDictionaryEntryget_date_tag (AVDictionary *m, const char *tag)
static void merge_date (AVDictionary **m)
static void ff_id3v2_parse (AVFormatContext *s, int len, uint8_t version, uint8_t flags)
void ff_id3v2_read (AVFormatContext *s, const char *magic)
 Read an ID3v2 tag.

Variables

const AVMetadataConv ff_id3v2_34_metadata_conv []
const AVMetadataConv ff_id3v2_4_metadata_conv []
const AVMetadataConv ff_id3v2_2_metadata_conv []
const char ff_id3v2_tags [][4]
 A list of text information frames allowed in both ID3 v2.3 and v2.4 http://www.id3.org/id3v2.4.0-frames http://www.id3.org/id3v2.4.0-changes.
const char ff_id3v2_4_tags [][4]
 ID3v2.4-only text information frames.
const char ff_id3v2_3_tags [][4]
 ID3v2.3-only text information frames.


Detailed Description

ID3v2 header parser.

Specifications available at: http://id3.org/Developer_Information

Definition in file id3v2.c.


Function Documentation

int ff_id3v2_match ( const uint8_t *  buf,
const char *  magic 
)

Detect ID3v2 Header.

Parameters:
buf must be ID3v2_HEADER_SIZE byte long
magic magic bytes to identify the header, machine byte order. If in doubt, use ID3v2_DEFAULT_MAGIC.

Definition at line 36 of file id3v2.c.

Referenced by av_probe_input_format3(), ff_id3v2_read(), and oma_read_probe().

static void ff_id3v2_parse ( AVFormatContext s,
int  len,
uint8_t  version,
uint8_t  flags 
) [static]

Definition at line 192 of file id3v2.c.

Referenced by ff_id3v2_read().

void ff_id3v2_read ( AVFormatContext s,
const char *  magic 
)

Read an ID3v2 tag.

Definition at line 319 of file id3v2.c.

Referenced by avformat_open_input(), and oma_read_header().

int ff_id3v2_tag_len ( const uint8_t *  buf  ) 

Get the length of an ID3v2 tag.

Parameters:
buf must be ID3v2_HEADER_SIZE bytes long and point to the start of an already detected ID3v2 tag

Definition at line 49 of file id3v2.c.

Referenced by av_probe_input_format3(), and oma_read_probe().

static AVDictionaryEntry* get_date_tag ( AVDictionary m,
const char *  tag 
) [static]

Definition at line 152 of file id3v2.c.

Referenced by merge_date().

static unsigned int get_size ( AVIOContext s,
int  len 
) [static]

Definition at line 61 of file id3v2.c.

Referenced by ff_id3v2_parse().

static int is_number ( const char *  str  )  [static]

Definition at line 146 of file id3v2.c.

Referenced by get_date_tag().

static void merge_date ( AVDictionary **  m  )  [static]

Definition at line 161 of file id3v2.c.

Referenced by ff_id3v2_read().

static void read_ttag ( AVFormatContext s,
AVIOContext pb,
int  taglen,
const char *  key 
) [static]

Definition at line 69 of file id3v2.c.

Referenced by ff_id3v2_parse().


Variable Documentation

Initial value:

 {
    { "TAL",  "album"},
    { "TCO",  "genre"},
    { "TT2",  "title"},
    { "TEN",  "encoded_by"},
    { "TP1",  "artist"},
    { "TP2",  "album_artist"},
    { "TP3",  "performer"},
    { "TRK",  "track"},
    { 0 }
}

Definition at line 378 of file id3v2.c.

Referenced by ff_id3v2_read().

Initial value:

 {
    { "TALB", "album"},
    { "TCOM", "composer"},
    { "TCON", "genre"},
    { "TCOP", "copyright"},
    { "TENC", "encoded_by"},
    { "TIT2", "title"},
    { "TLAN", "language"},
    { "TPE1", "artist"},
    { "TPE2", "album_artist"},
    { "TPE3", "performer"},
    { "TPOS", "disc"},
    { "TPUB", "publisher"},
    { "TRCK", "track"},
    { "TSSE", "encoder"},
    { 0 }
}

Definition at line 350 of file id3v2.c.

Referenced by ff_id3v2_read().

const char ff_id3v2_3_tags[][4]

Initial value:

 {
   "TDAT", "TIME", "TORY", "TRDA", "TSIZ", "TYER",
   { 0 },
}
ID3v2.3-only text information frames.

Definition at line 405 of file id3v2.c.

Initial value:

 {
    { "TDRL", "date"},
    { "TDRC", "date"},
    { "TDEN", "creation_time"},
    { "TSOA", "album-sort"},
    { "TSOP", "artist-sort"},
    { "TSOT", "title-sort"},
    { 0 }
}

Definition at line 368 of file id3v2.c.

Referenced by ff_id3v2_read().

const char ff_id3v2_4_tags[][4]

Initial value:

 {
   "TDEN", "TDOR", "TDRC", "TDRL", "TDTG", "TIPL", "TMCL", "TMOO",
   "TPRO", "TSOA", "TSOP", "TSOT", "TSST",
   { 0 },
}
ID3v2.4-only text information frames.

Definition at line 399 of file id3v2.c.

const char ff_id3v2_tags[][4]

Initial value:

 {
   "TALB", "TBPM", "TCOM", "TCON", "TCOP", "TDLY", "TENC", "TEXT",
   "TFLT", "TIT1", "TIT2", "TIT3", "TKEY", "TLAN", "TLEN", "TMED",
   "TOAL", "TOFN", "TOLY", "TOPE", "TOWN", "TPE1", "TPE2", "TPE3",
   "TPE4", "TPOS", "TPUB", "TRCK", "TRSN", "TRSO", "TSRC", "TSSE",
   { 0 },
}
A list of text information frames allowed in both ID3 v2.3 and v2.4 http://www.id3.org/id3v2.4.0-frames http://www.id3.org/id3v2.4.0-changes.

Definition at line 391 of file id3v2.c.


Generated on Fri Oct 26 02:38:20 2012 for FFmpeg by  doxygen 1.5.8