return -1 for errors in ff_mov_iso639_to_lang() to allow for error checking
authorAurelien Jacobs <aurel@gnuage.org>
Thu, 26 Feb 2009 13:11:18 +0000 (13:11 +0000)
committerAurelien Jacobs <aurel@gnuage.org>
Thu, 26 Feb 2009 13:11:18 +0000 (13:11 +0000)
Originally committed as revision 17611 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/isom.c
libavformat/movenc.c

index 39c58c6..b78d65e 100644 (file)
@@ -257,7 +257,7 @@ int ff_mov_iso639_to_lang(const char *lang, int mp4)
     }
     /* XXX:can we do that in mov too? */
     if (!mp4)
-        return 0;
+        return -1;
     /* handle undefined as such */
     if (lang[0] == '\0')
         lang = "und";
@@ -265,9 +265,9 @@ int ff_mov_iso639_to_lang(const char *lang, int mp4)
     for (i = 0; i < 3; i++) {
         unsigned char c = (unsigned char)lang[i];
         if (c < 0x60)
-            return 0;
+            return -1;
         if (c > 0x60 + 0x1f)
-            return 0;
+            return -1;
         code <<= 5;
         code |= (c - 0x60);
     }
index ad27850..0a37eb4 100644 (file)
@@ -1651,6 +1651,8 @@ static int mov_write_header(AVFormatContext *s)
 
         track->enc = st->codec;
         track->language = ff_mov_iso639_to_lang(lang?lang->value:"und", mov->mode!=MODE_MOV);
+        if (track->language < 0)
+            track->language = 0;
         track->mode = mov->mode;
         track->tag = mov_find_codec_tag(s, track);
         if (!track->tag) {