OSDN Git Service

try exact match before case insensitive match in codec_get_id
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 27 Jul 2007 11:36:17 +0000 (11:36 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 27 Jul 2007 11:36:17 +0000 (11:36 +0000)
Originally committed as revision 9808 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/utils.c

index c8243ef..3d4c6cf 100644 (file)
@@ -1671,13 +1671,17 @@ unsigned int codec_get_tag(const AVCodecTag *tags, int id)
 
 enum CodecID codec_get_id(const AVCodecTag *tags, unsigned int tag)
 {
-    while (tags->id != CODEC_ID_NONE) {
-        if(   toupper((tag >> 0)&0xFF) == toupper((tags->tag >> 0)&0xFF)
-           && toupper((tag >> 8)&0xFF) == toupper((tags->tag >> 8)&0xFF)
-           && toupper((tag >>16)&0xFF) == toupper((tags->tag >>16)&0xFF)
-           && toupper((tag >>24)&0xFF) == toupper((tags->tag >>24)&0xFF))
-            return tags->id;
-        tags++;
+    int i;
+    for(i=0; tags[i].id != CODEC_ID_NONE;i++) {
+        if(tag == tags[i].tag)
+            return tags[i].id;
+    }
+    for(i=0; tags[i].id != CODEC_ID_NONE; i++) {
+        if(   toupper((tag >> 0)&0xFF) == toupper((tags[i].tag >> 0)&0xFF)
+           && toupper((tag >> 8)&0xFF) == toupper((tags[i].tag >> 8)&0xFF)
+           && toupper((tag >>16)&0xFF) == toupper((tags[i].tag >>16)&0xFF)
+           && toupper((tag >>24)&0xFF) == toupper((tags[i].tag >>24)&0xFF))
+            return tags[i].id;
     }
     return CODEC_ID_NONE;
 }