mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-23 06:26:23 +00:00
qtdemux: fix language code parsing for 3-letter codes starting with 'a'
And handle special value for 'unspecified' explicitly. https://developer.apple.com/library/mac/documentation/QuickTime/QTFF/QTFFChap4/qtff4.html
This commit is contained in:
parent
60648012f3
commit
5122410f11
2 changed files with 4 additions and 2 deletions
|
@ -7321,8 +7321,10 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
|
|||
lang_code = QT_UINT16 ((guint8 *) mdhd->data + 28);
|
||||
}
|
||||
|
||||
if (lang_code < 0x800) {
|
||||
if (lang_code < 0x400) {
|
||||
qtdemux_lang_map_qt_code_to_iso (stream->lang_id, lang_code);
|
||||
} else if (lang_code == 0x7fff) {
|
||||
stream->lang_id[0] = 0; /* unspecified */
|
||||
} else {
|
||||
stream->lang_id[0] = 0x60 + ((lang_code >> 10) & 0x1F);
|
||||
stream->lang_id[1] = 0x60 + ((lang_code >> 5) & 0x1F);
|
||||
|
|
|
@ -189,7 +189,7 @@ qtdemux_lang_map_qt_code_to_iso (gchar id[4], guint16 qt_lang_code)
|
|||
{
|
||||
const gchar *iso_code;
|
||||
|
||||
g_assert (qt_lang_code < 0x800);
|
||||
g_assert (qt_lang_code < 0x400);
|
||||
|
||||
if (qt_lang_code < G_N_ELEMENTS (qt_lang_map))
|
||||
iso_code = qt_lang_map[qt_lang_code];
|
||||
|
|
Loading…
Reference in a new issue