mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-02-26 00:31:12 +00:00
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. (cherry picked from commit9e71cc81f3
) (cherry picked from commit7940306a47
)
This commit is contained in:
parent
42dcfe32a8
commit
5463a2b056
@ -339,7 +339,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;
|
||||
|
@ -248,7 +248,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);
|
||||
|
Loading…
Reference in New Issue
Block a user