mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
Read all id3v2 tags at the beginning of mp3 files.
Patch by David Byron, dbyron dbyron com Originally committed as revision 25105 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
0132ab80a8
commit
0c41d554e2
@ -23,7 +23,7 @@
|
||||
|
||||
#define LIBAVFORMAT_VERSION_MAJOR 52
|
||||
#define LIBAVFORMAT_VERSION_MINOR 78
|
||||
#define LIBAVFORMAT_VERSION_MICRO 4
|
||||
#define LIBAVFORMAT_VERSION_MICRO 5
|
||||
|
||||
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
|
||||
LIBAVFORMAT_VERSION_MINOR, \
|
||||
|
@ -53,11 +53,17 @@ 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;
|
||||
if (ff_id3v2_match(buf, magic)) {
|
||||
found_header = ff_id3v2_match(buf, magic);
|
||||
if (found_header) {
|
||||
/* parse ID3v2 header */
|
||||
len = ((buf[6] & 0x7f) << 21) |
|
||||
((buf[7] & 0x7f) << 14) |
|
||||
@ -65,8 +71,9 @@ void ff_id3v2_read(AVFormatContext *s, const char *magic)
|
||||
(buf[9] & 0x7f);
|
||||
ff_id3v2_parse(s, len, buf[3], buf[5]);
|
||||
} else {
|
||||
url_fseek(s->pb, 0, SEEK_SET);
|
||||
url_fseek(s->pb, off, SEEK_SET);
|
||||
}
|
||||
} while (found_header);
|
||||
}
|
||||
|
||||
static unsigned int get_size(ByteIOContext *s, int len)
|
||||
|
Loading…
Reference in New Issue
Block a user