diff options
author | Anton Khirnov <anton@khirnov.net> | 2011-01-20 08:35:58 +0000 |
---|---|---|
committer | Mans Rullgard <mans@mansr.com> | 2011-01-20 13:36:22 +0000 |
commit | 46a2da7698634214eed6d269fc72d284e3d3700f (patch) | |
tree | 225e40e91b02aef5dfea7d8bdc104e4f3b71b911 /libavformat | |
parent | c0dd5653043ca57848dfa480d02d581c7eb1d710 (diff) | |
download | ffmpeg-46a2da7698634214eed6d269fc72d284e3d3700f.tar.gz |
id3v2: make ff_id3v2_parse static
Signed-off-by: Mans Rullgard <mans@mansr.com>
Diffstat (limited to 'libavformat')
-rw-r--r-- | libavformat/id3v2.c | 56 | ||||
-rw-r--r-- | libavformat/id3v2.h | 6 |
2 files changed, 28 insertions, 34 deletions
diff --git a/libavformat/id3v2.c b/libavformat/id3v2.c index b32ca7d94f..9cfff27210 100644 --- a/libavformat/id3v2.c +++ b/libavformat/id3v2.c @@ -50,33 +50,6 @@ int ff_id3v2_tag_len(const uint8_t * buf) return len; } -void ff_id3v2_read(AVFormatContext *s, const char *magic) -{ - int len, ret; - uint8_t buf[ID3v2_HEADER_SIZE]; - int found_header; - int64_t off; - - do { - /* save the current offset in case there's nothing to read/skip */ - off = url_ftell(s->pb); - ret = get_buffer(s->pb, buf, ID3v2_HEADER_SIZE); - if (ret != ID3v2_HEADER_SIZE) - return; - found_header = ff_id3v2_match(buf, magic); - if (found_header) { - /* parse ID3v2 header */ - len = ((buf[6] & 0x7f) << 21) | - ((buf[7] & 0x7f) << 14) | - ((buf[8] & 0x7f) << 7) | - (buf[9] & 0x7f); - ff_id3v2_parse(s, len, buf[3], buf[5]); - } else { - url_fseek(s->pb, off, SEEK_SET); - } - } while (found_header); -} - static unsigned int get_size(ByteIOContext *s, int len) { int v = 0; @@ -162,7 +135,7 @@ static void read_ttag(AVFormatContext *s, ByteIOContext *pb, int taglen, const c av_metadata_set2(&s->metadata, key, val, 0); } -void ff_id3v2_parse(AVFormatContext *s, int len, uint8_t version, uint8_t flags) +static void ff_id3v2_parse(AVFormatContext *s, int len, uint8_t version, uint8_t flags) { int isv34, tlen, unsync; char tag[5]; @@ -276,6 +249,33 @@ void ff_id3v2_parse(AVFormatContext *s, int len, uint8_t version, uint8_t flags) av_free(buffer); } +void ff_id3v2_read(AVFormatContext *s, const char *magic) +{ + int len, ret; + uint8_t buf[ID3v2_HEADER_SIZE]; + int found_header; + int64_t off; + + do { + /* save the current offset in case there's nothing to read/skip */ + off = url_ftell(s->pb); + ret = get_buffer(s->pb, buf, ID3v2_HEADER_SIZE); + if (ret != ID3v2_HEADER_SIZE) + return; + found_header = ff_id3v2_match(buf, magic); + if (found_header) { + /* parse ID3v2 header */ + len = ((buf[6] & 0x7f) << 21) | + ((buf[7] & 0x7f) << 14) | + ((buf[8] & 0x7f) << 7) | + (buf[9] & 0x7f); + ff_id3v2_parse(s, len, buf[3], buf[5]); + } else { + url_fseek(s->pb, off, SEEK_SET); + } + } while (found_header); +} + const AVMetadataConv ff_id3v2_metadata_conv[] = { { "TALB", "album"}, { "TAL", "album"}, diff --git a/libavformat/id3v2.h b/libavformat/id3v2.h index 4c3041fa3c..25ee53e9b8 100644 --- a/libavformat/id3v2.h +++ b/libavformat/id3v2.h @@ -54,12 +54,6 @@ int ff_id3v2_match(const uint8_t *buf, const char *magic); int ff_id3v2_tag_len(const uint8_t *buf); /** - * ID3v2 parser - * Handles ID3v2.2, 2.3 and 2.4. - */ -void ff_id3v2_parse(AVFormatContext *s, int len, uint8_t version, uint8_t flags); - -/** * Read an ID3v2 tag */ void ff_id3v2_read(AVFormatContext *s, const char *magic); |