[FFmpeg-cvslog] movdec: handle 0x7fff langcode as macintosh per the specs

Baptiste Coudurier git at videolan.org
Fri Apr 6 05:46:09 CEST 2012


ffmpeg | branch: master | Baptiste Coudurier <baptiste.coudurier at gmail.com> | Wed Mar 21 14:18:16 2012 -0700| [e636aa1a56bcd91242c25282dcb00929196470eb] | committer: Michael Niedermayer

movdec: handle 0x7fff langcode as macintosh per the specs

The correct point that seperates ISO and MAC language codes is 0x400
according to the current QT spec. Old QT specs did not list where this
seperation is but apparently only defined the meaning of the first 137.

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e636aa1a56bcd91242c25282dcb00929196470eb
---

 libavformat/isom.c |    2 +-
 libavformat/mov.c  |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavformat/isom.c b/libavformat/isom.c
index 04e3f3f..2042b65 100644
--- a/libavformat/isom.c
+++ b/libavformat/isom.c
@@ -348,7 +348,7 @@ int ff_mov_lang_to_iso639(unsigned code, char to[4])
     memset(to, 0, 4);
     /* is it the mangled iso code? */
     /* see http://www.geocities.com/xhelmboyx/quicktime/formats/mp4-layout.txt */
-    if (code > 138) {
+    if (code >= 0x400 && code != 0x7fff) {
         for (i = 2; i >= 0; i--) {
             to[i] = 0x60 + (code & 0x1f);
             code >>= 5;
diff --git a/libavformat/mov.c b/libavformat/mov.c
index 03a3504..c32d22e 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -253,7 +253,7 @@ static int mov_read_udta_string(MOVContext *c, AVIOContext *pb, MOVAtom atom)
     if (parse)
         parse(c, pb, str_size, key);
     else {
-        if (data_type == 3 || (data_type == 0 && langcode < 0x800)) { // MAC Encoded
+        if (data_type == 3 || (data_type == 0 && (langcode < 0x400 || langcode == 0x7fff))) { // MAC Encoded
             mov_read_mac_string(c, pb, str_size, str, sizeof(str));
         } else {
             avio_read(pb, str, str_size);



More information about the ffmpeg-cvslog mailing list