--- libmpdemux/demux_mkv.cpp 10 Sep 2003 12:50:29 -0000 1.30 +++ libmpdemux/demux_mkv.cpp 11 Sep 2003 04:04:17 -0000 @@ -443,15 +443,6 @@ /* Load text. */ while ((unsigned int)(s1 - buffer) < data.Size()) { if ((*s1 == '{') && ((unsigned int)(s1 + 2 - buffer) < data.Size())) { - /* Newline */ - if (*(s1 + 1) == '\\' && (*(s1 + 2) == 'N' || *(s1 + 2) == 'n')) { - mkv_d->clear_subs_at[mkv_d->subs.lines - 1] = - block->GlobalTimecode() / 1000000 - mkv_d->first_tc + duration; - - mkv_d->subs.lines++; - *s2 = 0; - s2 = mkv_d->subs.text[mkv_d->subs.lines - 1]; - } state = 1; } else if (*s1 == '}' && state == 1) state = 2; @@ -464,6 +455,17 @@ } s1++; + /* Newline */ + if (*s1 == '\\' && (*(s1 + 1) == 'N' || *(s1 + 1) == 'n')) { + mkv_d->clear_subs_at[mkv_d->subs.lines - 1] = + block->GlobalTimecode() / 1000000 - mkv_d->first_tc + duration; + + mkv_d->subs.lines++; + *s2 = 0; + s2 = mkv_d->subs.text[mkv_d->subs.lines - 1]; + s1 += 2; + } + if (state == 2) state = 0; } @@ -1904,9 +1906,10 @@ if (!strcmp(track->codec_id, MKV_S_TEXTUTF8)) sub_utf8 = 1; // Force UTF-8 conversion. - if (!strcmp(track->codec_id, MKV_S_TEXTSSA)) + if (!strcmp(track->codec_id, MKV_S_TEXTSSA)) { mkv_d->subtitle_type = MKV_SUBTYPE_SSA; - else + sub_utf8 = 1; + } else mkv_d->subtitle_type = MKV_SUBTYPE_TEXT; } else mp_msg(MSGT_DEMUX, MSGL_ERR, "[mkv] File does not contain a "