diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-06-11 09:16:13 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-06-11 09:16:13 +0200 |
commit | 045e371cf1f002cf75e9ef7b3e072723473f0c83 (patch) | |
tree | 8f07a0f5185ce2985f6375b376ee3d2332de32d7 | |
parent | 529ebc90f2423aed54e5534427dc5901a3cc4a60 (diff) | |
parent | 8835c554ff506992c47f6e347c74216ae073f0fa (diff) | |
download | ffmpeg-045e371cf1f002cf75e9ef7b3e072723473f0c83.tar.gz |
Merge commit '8835c554ff506992c47f6e347c74216ae073f0fa'
* commit '8835c554ff506992c47f6e347c74216ae073f0fa':
matroskadec: introduce resync function.
Conflicts:
libavformat/matroskadec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavformat/matroskadec.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index b046e25d57..a1aa0ebd10 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -628,21 +628,20 @@ static int matroska_resync(MatroskaDemuxContext *matroska, int64_t last_pos) matroska->current_id = 0; matroska->num_levels = 0; - // seek to next position to resync from - if (avio_seek(pb, last_pos + 1, SEEK_SET) < 0 || avio_tell(pb) <= last_pos) + /* seek to next position to resync from */ + if (avio_seek(pb, last_pos + 1, SEEK_SET) < 0) goto eof; id = avio_rb32(pb); // try to find a toplevel element while (!url_feof(pb)) { - if (id == MATROSKA_ID_INFO || id == MATROSKA_ID_TRACKS || - id == MATROSKA_ID_CUES || id == MATROSKA_ID_TAGS || + if (id == MATROSKA_ID_INFO || id == MATROSKA_ID_TRACKS || + id == MATROSKA_ID_CUES || id == MATROSKA_ID_TAGS || id == MATROSKA_ID_SEEKHEAD || id == MATROSKA_ID_ATTACHMENTS || - id == MATROSKA_ID_CLUSTER || id == MATROSKA_ID_CHAPTERS) - { - matroska->current_id = id; - return 0; + id == MATROSKA_ID_CLUSTER || id == MATROSKA_ID_CHAPTERS) { + matroska->current_id = id; + return 0; } id = (id << 8) | avio_r8(pb); } |