From 47ba682a636e3741530ebe956bbd6a508aa56a83 Mon Sep 17 00:00:00 2001 From: reimar Date: Sat, 6 Nov 2010 16:38:00 +0000 Subject: [PATCH] demux_ts: Fix subtitle sync issues Ensure we queue all subtitle packets before demuxing the next video packet. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32587 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demux_ts.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libmpdemux/demux_ts.c b/libmpdemux/demux_ts.c index 643a00075c..30c063695d 100644 --- a/libmpdemux/demux_ts.c +++ b/libmpdemux/demux_ts.c @@ -2965,6 +2965,11 @@ static int ts_parse(demuxer_t *demuxer , ES_stream_t *es, unsigned char *packet, //IS IT TIME TO QUEUE DATA to the dp_packet? if(is_start && (dp != NULL)) { + // subtitle packets _have_ to be submitted before video, otherwise + // they might get stuck "forever" and subtitles will be completely + // out of sync. + if (is_video) + fill_packet(demuxer, demuxer->sub, &priv->fifo[2].pack, &priv->fifo[2].offset, NULL); retv = fill_packet(demuxer, ds, dp, dp_offset, si); } -- 2.11.4.GIT