From 2fd4dc45de77f87f46eaca4aaf5f233317723018 Mon Sep 17 00:00:00 2001 From: Uoti Urpala Date: Tue, 26 Jan 2010 16:56:44 +0200 Subject: demux_mkv: handle compressed text subtitles The decompression step wasn't run at all for subtitle types other than vobsub. Fix that. Remove a "!mkv_d->v_skip_to_keyframe" test from the subtitle handling - for properly timed subtitles unnecessary packets do little harm, and the subtitles could stay visible. --- libmpdemux/demux_mkv.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'libmpdemux/demux_mkv.c') diff --git a/libmpdemux/demux_mkv.c b/libmpdemux/demux_mkv.c index 982f04062d..931e05e102 100644 --- a/libmpdemux/demux_mkv.c +++ b/libmpdemux/demux_mkv.c @@ -2278,9 +2278,12 @@ static int handle_block(demuxer_t *demuxer, uint8_t *block, uint64_t length, } else if (num == demuxer->sub->id) { ds = demuxer->sub; if (track->subtitle_type != MATROSKA_SUBTYPE_VOBSUB) { - if (!mkv_d->v_skip_to_keyframe) - handle_subtitles(demuxer, track, block, length, block_duration, - tc); + uint8_t *buffer; + int size = length; + int modified = demux_mkv_decode(track, block, &buffer, &size, 1); + handle_subtitles(demuxer, track, buffer, size, block_duration, tc); + if (modified) + free(buffer); use_this_block = 0; } } else -- cgit v1.2.3