]> git.sesse.net Git - ffmpeg/commit
id3v2: add support for non-text and GEOB type tag frames
authorDavid Goldwich <david.goldwich@gmail.com>
Sun, 18 Sep 2011 16:04:34 +0000 (18:04 +0200)
committerAnton Khirnov <anton@khirnov.net>
Wed, 21 Sep 2011 06:28:21 +0000 (08:28 +0200)
commit7a019dffe568e4d58cf1b8b2216f8678e45066b9
tree0d4fc7fd11fa7db315c36fff7a79d617ab87c979
parentb3e144a7dfc6953df3b3e478eb8b8521ab5c6ecc
id3v2: add support for non-text and GEOB type tag frames

This extends the ID3v2 parser to allow for reading of non-text (i.e.
other than T***) meta tag frames providing a ff_id3v2_read_all()
function. An additional data structure 'ID3v2ExtraMeta' is introduced
for these tags since AVDictionary is string oriented and unsuitable
for binary data.

A parser for tag frames of type GEOB is implemented, which is needed
to extract keyring information from encrypted OMA files. GEOB data
is parsed into 'ID3v2ExtraMetaGEOB' data structures.

The routine to decode characters from different encodings to UTF-8,
formerly part of the read_ttag() function, is moved to its own
function. Because some tag frames contain subparts of unknown length,
the function is now also able to read until a null character is found.
In addition, the function now takes care of allocating a buffer long
enough to hold the decoded characters.

Signed-off-by: David Goldwich <david.goldwich@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
libavformat/id3v2.c
libavformat/id3v2.h