• Dale Curtis's avatar
    matroska: Add incremental parsing of clusters. · 8336eb6f
    Dale Curtis authored
    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: 's avatarAaron Colwell <acolwell@chromium.org>
    Signed-off-by: 's avatarDale Curtis <dalecurtis@chromium.org>
    Signed-off-by: 's avatarLuca Barbato <lu_zero@gentoo.org>
    8336eb6f
matroskadec.c 77.8 KB