diff options
author | Uoti Urpala <uau@glyph.nonexistent.invalid> | 2009-02-21 17:39:30 +0200 |
---|---|---|
committer | Uoti Urpala <uau@glyph.nonexistent.invalid> | 2009-02-21 17:39:30 +0200 |
commit | ebb541c6553af10203b2c2f5bcead6118a44f5be (patch) | |
tree | 3d98d89722d6784891b5da91555f22f76cdc92cf /libmpdemux | |
parent | e46317a1db077a7f92ea5db7bb76e6cc899f1a64 (diff) | |
parent | a9abd00be4bfb498e1ba4e0ebc02c828a1a3db07 (diff) | |
download | mpv-ebb541c6553af10203b2c2f5bcead6118a44f5be.tar.bz2 mpv-ebb541c6553af10203b2c2f5bcead6118a44f5be.tar.xz |
Merge svn changes up to r28690
Diffstat (limited to 'libmpdemux')
-rw-r--r-- | libmpdemux/demux_real.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/libmpdemux/demux_real.c b/libmpdemux/demux_real.c index 4c5456fc42..c0299e0fed 100644 --- a/libmpdemux/demux_real.c +++ b/libmpdemux/demux_real.c @@ -624,7 +624,15 @@ static int demux_real_fill_buffer(demuxer_t *demuxer, demux_stream_t *dsds) if (len < 12){ mp_msg(MSGT_DEMUX, MSGL_V,"%08X: packet v%d len=%d \n",(int)demuxer->filepos,(int)version,(int)len); mp_msg(MSGT_DEMUX, MSGL_WARN,"bad packet len (%d)\n", len); - stream_skip(demuxer->stream, len); + if ((unsigned)demuxer->video->id < MAX_STREAMS) { + if (priv->current_vpacket + 1 < priv->index_table_size[demuxer->video->id]) { + stream_seek(demuxer->stream, priv->index_table[demuxer->video->id][++priv->current_vpacket].offset); + } + } else if ((unsigned)demuxer->audio->id < MAX_STREAMS) { + if (priv->current_apacket + 1 < priv->index_table_size[demuxer->audio->id]) { + stream_seek(demuxer->stream, priv->index_table[demuxer->audio->id][++priv->current_apacket].offset); + } + } continue; //goto loop; } |