Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBaptiste Coudurier <baptiste.coudurier@gmail.com>2012-03-22 01:18:16 +0400
committerMichael Niedermayer <michaelni@gmx.at>2012-04-06 07:41:21 +0400
commite636aa1a56bcd91242c25282dcb00929196470eb (patch)
tree3f1449174a44ac54b0df7291499e6fa321929e1e
parent76c79aa28fc8cf0bfe52915317a3cfc72383d0ef (diff)
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@gmx.at>
-rw-r--r--libavformat/isom.c2
-rw-r--r--libavformat/mov.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/libavformat/isom.c b/libavformat/isom.c
index 04e3f3f0d0..2042b65f48 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 03a35047ac..c32d22ea8c 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);