diff --git a/libavformat/img2.c b/libavformat/img2.c
index 0523bc7d81bd6b82db2e7cfb951cb0bcd87a2aab..022c6a28c7a63690d02d45770fd1ae43e2db80da 100644
--- a/libavformat/img2.c
+++ b/libavformat/img2.c
@@ -22,6 +22,7 @@
 
 #include "libavutil/avstring.h"
 #include "avformat.h"
+#include <strings.h>
 
 typedef struct {
     int img_first;
@@ -102,11 +103,8 @@ static enum CodecID av_str2id(const IdStrMap *tags, const char *str)
     str++;
 
     while (tags->id) {
-        int i;
-        for(i=0; toupper(tags->str[i]) == toupper(str[i]); i++){
-            if(tags->str[i]==0 && str[i]==0)
-                return tags->id;
-        }
+        if (!strcasecmp(str, tags->str))
+            return tags->id;
 
         tags++;
     }