matroska: Add incremental parsing of clusters.
authorDale Curtis <dalecurtis@chromium.org>
Thu, 19 Apr 2012 18:12:24 +0000 (11:12 -0700)
committerLuca Barbato <lu_zero@gentoo.org>
Mon, 23 Apr 2012 00:23:50 +0000 (17:23 -0700)
commit8336eb6f85e4b94b9c198b16bd0ac4178f4dba86
treeb7bf84ad49f9b3f700127a9e8514efd595a760ac
parent1381081cdb5999892d69f2ff010cf9371bfc7978
matroska: Add incremental parsing of clusters.

Reduces the amount of upfront data required for cluster parsing
thus decreasing latency on seek and startup.

The change in the seek-lavf_mkv FATE test is due to incremental
parsing no longer reading as much data as the old parser and
thus not having that additional data to generate index entries
based on keyframes.  Index entries are added correctly as the
file is parsed.

All FATE tests pass and Chrome has been using this patch for ~6
months without issue.

Currently incremental parsing is not supported for files with
SSA tracks since they require merging packets between clusters.
In this case the code falls back to non-incremental parsing.

Signed-off-by: Aaron Colwell <acolwell@chromium.org>
Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
libavformat/matroskadec.c
tests/ref/seek/lavf_mkv