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) |