[FFmpeg-devel] [PATCH] matroska: Add incremental parsing of clusters.

Dale Curtis dalecurtis at chromium.org
Wed Apr 18 01:13:20 CEST 2012

On Tue, Apr 17, 2012 at 11:52 AM, James Zern <jzern at google.com> wrote:

> On Mon, Apr 16, 2012 at 17:54,  <dalecurtis at chromium.org> wrote:
> > From: Dale Curtis <dalecurtis at chromium.org>
> >
> > 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.
> >
> I think this will break the case where packets need to be merged
> (SSA), something Chrome doesn't deal with.
> SSA could be special cased and matroska_parse_cluster called, though
> there may be a cleaner way.
After testing with an SSA sample, you're correct; packet merging is not
happening. I'll keep experimenting, but I haven't found a cleaner way aside
from just falling back based on CODEC_ID_SSA. In the meantime I'll upload
the patch w/ fallback for now.

- dale

More information about the ffmpeg-devel mailing list