Mercurial > libavformat.hg
diff mp3.c @ 4221:55f448c99135 libavformat
Factorise id3v2 header parsing from mp3.c to be shared
Patch by Alex Converse ( alex converse gmail com )
author | superdump |
---|---|
date | Thu, 15 Jan 2009 12:23:03 +0000 |
parents | c3102b189cb6 |
children | 77e0c7511d41 |
line wrap: on
line diff
--- a/mp3.c Thu Jan 15 01:47:24 2009 +0000 +++ b/mp3.c Thu Jan 15 12:23:03 2009 +0000 @@ -24,8 +24,8 @@ #include "libavcodec/mpegaudio.h" #include "libavcodec/mpegaudiodecheader.h" #include "avformat.h" +#include "id3v2.h" -#define ID3v2_HEADER_SIZE 10 #define ID3v1_TAG_SIZE 128 #define ID3v1_GENRE_MAX 125 @@ -159,20 +159,6 @@ [125] = "Dance Hall", }; -/* buf must be ID3v2_HEADER_SIZE byte long */ -static int id3v2_match(const uint8_t *buf) -{ - return buf[0] == 'I' && - buf[1] == 'D' && - buf[2] == '3' && - buf[3] != 0xff && - buf[4] != 0xff && - (buf[6] & 0x80) == 0 && - (buf[7] & 0x80) == 0 && - (buf[8] & 0x80) == 0 && - (buf[9] & 0x80) == 0; -} - static unsigned int id3v2_get_size(ByteIOContext *s, int len) { int v=0; @@ -371,7 +357,7 @@ uint8_t *buf, *buf2, *end; AVCodecContext avctx; - if(id3v2_match(p->buf)) + if(ff_id3v2_match(p->buf)) return AVPROBE_SCORE_MAX/2+1; // this must be less than mpeg-ps because some retards put id3v2 tags before mpeg-ps files max_frames = 0; @@ -487,7 +473,7 @@ ret = get_buffer(s->pb, buf, ID3v2_HEADER_SIZE); if (ret != ID3v2_HEADER_SIZE) return -1; - if (id3v2_match(buf)) { + if (ff_id3v2_match(buf)) { /* parse ID3v2 header */ len = ((buf[6] & 0x7f) << 21) | ((buf[7] & 0x7f) << 14) |