• Filip Roséen's avatar
    demux/mkv: abort EnsureDuration on non-finite elements · 46e632dd
    Filip Roséen authored
    matroska_segment_c::EnsureDuration is used to calculate the duration
    for a stream which does not include the value as metadata. Given that
    the function potentially will have to run through the entire file in
    order to get the last timecode, these changes make sure that we abort
    if an element does not have a finite size.
    
    If an element, on the way, does not have a finite size we cannot
    simply jump over it, but have to parse it's entire contents (which
    might be an expensive operation). And most often when an element does
    not have a finite size, the media is being streamed.
    
    We however have an exception to infinite clusters that are referenced
    by a Cue, in which case we will try to parse it (to allow content
    saved from a live stream where the Cues refers to every cluster to
    have a duration).
    Signed-off-by: Steve Lhomme's avatarSteve Lhomme <robux4@videolabs.io>
    Signed-off-by: Thomas Guillem's avatarThomas Guillem <thomas@gllm.fr>
    46e632dd
Name
Last commit
Last update
autotools Loading commit data...
bin Loading commit data...
compat Loading commit data...
contrib Loading commit data...
doc Loading commit data...
extras Loading commit data...
include Loading commit data...
lib Loading commit data...
m4 Loading commit data...
modules Loading commit data...
po Loading commit data...
share Loading commit data...
src Loading commit data...
test Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.mailmap Loading commit data...
AUTHORS Loading commit data...
COPYING Loading commit data...
COPYING.LIB Loading commit data...
INSTALL Loading commit data...
Makefile.am Loading commit data...
NEWS Loading commit data...
README Loading commit data...
THANKS Loading commit data...
bootstrap Loading commit data...
configure.ac Loading commit data...
make-alias Loading commit data...