id3v2.h File Reference
#include <stdint.h>
#include "avformat.h"
#include "metadata.h"

Go to the source code of this file.

Data Structures

struct  ID3v2ExtraMeta
struct  ID3v2ExtraMetaGEOB

Macros

#define ID3v2_HEADER_SIZE   10
#define ID3v2_DEFAULT_MAGIC   "ID3"
 Default magic bytes for ID3v2 header: "ID3".
#define ID3v2_FLAG_DATALEN   0x0001
#define ID3v2_FLAG_UNSYNCH   0x0002
#define ID3v2_FLAG_ENCRYPTION   0x0004
#define ID3v2_FLAG_COMPRESSION   0x0008

Typedefs

typedef struct ID3v2ExtraMeta ID3v2ExtraMeta
typedef struct ID3v2ExtraMetaGEOB ID3v2ExtraMetaGEOB

Enumerations

enum  ID3v2Encoding { ID3v2_ENCODING_ISO8859 = 0, ID3v2_ENCODING_UTF16BOM = 1, ID3v2_ENCODING_UTF16BE = 2, ID3v2_ENCODING_UTF8 = 3 }

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.
void ff_id3v2_read (AVFormatContext *s, const char *magic)
 Read an ID3v2 tag (text tags only)
void ff_id3v2_read_all (AVFormatContext *s, const char *magic, ID3v2ExtraMeta **extra_meta)
 Read an ID3v2 tag, including supported extra metadata (currently only GEOB)
int ff_id3v2_write (struct AVFormatContext *s, int id3v2_version, const char *magic)
 Write an ID3v2 tag.
void ff_id3v2_free_extra_meta (ID3v2ExtraMeta **extra_meta)
 Free memory allocated parsing special (non-text) metadata.

Variables

const AVMetadataConv ff_id3v2_34_metadata_conv []
const AVMetadataConv ff_id3v2_4_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.

Macro Definition Documentation

#define ID3v2_DEFAULT_MAGIC   "ID3"

Default magic bytes for ID3v2 header: "ID3".

Definition at line 34 of file id3v2.h.

Referenced by av_probe_input_format2(), and avformat_open_input().

#define ID3v2_FLAG_COMPRESSION   0x0008

Definition at line 39 of file id3v2.h.

Referenced by ff_id3v2_parse().

#define ID3v2_FLAG_DATALEN   0x0001

Definition at line 36 of file id3v2.h.

Referenced by ff_id3v2_parse().

#define ID3v2_FLAG_ENCRYPTION   0x0004

Definition at line 38 of file id3v2.h.

Referenced by ff_id3v2_parse().

#define ID3v2_FLAG_UNSYNCH   0x0002

Definition at line 37 of file id3v2.h.

Referenced by ff_id3v2_parse().

#define ID3v2_HEADER_SIZE   10

Definition at line 29 of file id3v2.h.

Referenced by ff_id3v2_read_all(), ff_id3v2_tag_len(), id3v2_put_ttag(), and oma_read_probe().

Typedef Documentation

Enumeration Type Documentation

Enumerator:
ID3v2_ENCODING_ISO8859 
ID3v2_ENCODING_UTF16BOM 
ID3v2_ENCODING_UTF16BE 
ID3v2_ENCODING_UTF8 

Definition at line 41 of file id3v2.h.

Function Documentation

void ff_id3v2_free_extra_meta ( ID3v2ExtraMeta **  extra_meta)

Free memory allocated parsing special (non-text) metadata.

Parameters
extra_metaPointer to a pointer to the head of a ID3v2ExtraMeta list, *extra_meta is set to NULL.

Definition at line 592 of file id3v2.c.

Referenced by oma_read_header().

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

Detect ID3v2 Header.

Parameters
bufmust be ID3v2_HEADER_SIZE byte long
magicmagic bytes to identify the header. If in doubt, use ID3v2_DEFAULT_MAGIC.

Definition at line 89 of file id3v2.c.

Referenced by av_probe_input_format2(), ff_id3v2_read_all(), and oma_read_probe().

void ff_id3v2_read ( AVFormatContext s,
const char *  magic 
)

Read an ID3v2 tag (text tags only)

Definition at line 587 of file id3v2.c.

Referenced by avformat_open_input().

void ff_id3v2_read_all ( AVFormatContext s,
const char *  magic,
ID3v2ExtraMeta **  extra_meta 
)

Read an ID3v2 tag, including supported extra metadata (currently only GEOB)

Parameters
extra_metaIf not NULL, extra metadata is parsed into a list of ID3v2ExtraMeta structs and *extra_meta points to the head of the list

Definition at line 556 of file id3v2.c.

Referenced by ff_id3v2_read(), and oma_read_header().

int ff_id3v2_tag_len ( const uint8_t *  buf)

Get the length of an ID3v2 tag.

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

Definition at line 102 of file id3v2.c.

Referenced by av_probe_input_format2(), and oma_read_probe().

int ff_id3v2_write ( struct AVFormatContext s,
int  id3v2_version,
const char *  magic 
)

Write an ID3v2 tag.

Parameters
id3v2_versionSubversion of ID3v2; supported values are 3 and 4
magicmagic bytes to identify the header If in doubt, use ID3v2_DEFAULT_MAGIC.

Definition at line 100 of file id3v2enc.c.

Referenced by oma_write_header().

Variable Documentation

const AVMetadataConv ff_id3v2_34_metadata_conv[]

Definition at line 29 of file id3v2.c.

Referenced by ff_id3v2_write().

const char ff_id3v2_3_tags[][4]

ID3v2.3-only text information frames.

Definition at line 84 of file id3v2.c.

Referenced by ff_id3v2_write().

const AVMetadataConv ff_id3v2_4_metadata_conv[]

Definition at line 47 of file id3v2.c.

Referenced by ff_id3v2_write().

const char ff_id3v2_4_tags[][4]

ID3v2.4-only text information frames.

Definition at line 78 of file id3v2.c.

Referenced by ff_id3v2_write().

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.

Definition at line 70 of file id3v2.c.

Referenced by ff_id3v2_write().