From 5bf8706d1f6536cd89207b777161ab83195ddb20 Mon Sep 17 00:00:00 2001 From: wm4 Date: Sat, 8 Dec 2012 13:59:49 +0100 Subject: sub: remove vobsub reader in favor of ffmpeg vobsub demuxer ffmpeg recently added a demuxer that can read vobsubs (pairs of .sub and .idx files). Get rid of the internal vobsub reader, and use the ffmpeg demuxer instead. Sneak in an unrelated manpage change (autosub default). --- demux/demux.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'demux/demux.c') diff --git a/demux/demux.c b/demux/demux.c index f765b2ae87..41b74b20c4 100644 --- a/demux/demux.c +++ b/demux/demux.c @@ -459,6 +459,16 @@ void free_demuxer(demuxer_t *demuxer) void ds_add_packet(demux_stream_t *ds, demux_packet_t *dp) { + // demux API can't handle 0-sized packets, but at least some vobsubs + // generate them. Skipping them seems to work fine. Not skipping them will + // stop demuxing with external vobsubs. See FATE sub/vobsub.{idx,sub} at + // pts=185.91. + if (dp->len == 0 && ds->stream_type == STREAM_SUB) { + mp_dbg(MSGT_DEMUXER, MSGL_INFO, "Discarding empty subtitle packet.\n"); + free_demux_packet(dp); + return; + } + // append packet to DS stream: ++ds->packs; ds->bytes += dp->len; -- cgit v1.2.3