summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwm4 <nfxjfg@googlemail.com>2015-09-21 12:09:08 +0200
committerMichael Niedermayer <michael@niedermayer.cc>2015-09-21 12:55:13 +0200
commita47ad06baf6c0db6d47a5531d6d4ee0511f44eac (patch)
tree93ceb40f193b1961e47cf77af26f7656d2286ccd
parenta0e6e471db25498a09586cfb0861e7753b460ebe (diff)
avformat/vobsub: compare correct packet stream IDs
The stream ID is essentially an arbitrary number defined by the .idx file headers. They have to match the IDs in the .sub stream. The vobsub demuxer assumed the IDs would just start from 0, increassing by 1 for each stream. This is not correct. In the sample I had, the IDs were starting from 1, leading to no subtitles being displayed at all. Fix this by using the correct stream ID. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r--libavformat/mpeg.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libavformat/mpeg.c b/libavformat/mpeg.c
index 223b6906d6..a63b5672a3 100644
--- a/libavformat/mpeg.c
+++ b/libavformat/mpeg.c
@@ -939,7 +939,7 @@ static int vobsub_read_packet(AVFormatContext *s, AVPacket *pkt)
total_read += pkt_size;
/* the current chunk doesn't match the stream index (unlikely) */
- if ((startcode & 0x1f) != idx_pkt.stream_index)
+ if ((startcode & 0x1f) != s->streams[idx_pkt.stream_index]->id)
break;
ret = av_grow_packet(pkt, to_read);