[Bug 790696] matroskademux: seek ends up in cluster with no key-frame

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Wed Aug 15 13:53:49 UTC 2018


https://bugzilla.gnome.org/show_bug.cgi?id=790696

Tim-Philipp Müller <t.i.m at zen.co.uk> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Version|1.13.x                      |git master

--- Comment #25 from Tim-Philipp Müller <t.i.m at zen.co.uk> ---
I have implemented this slightly differently based on some of your original
code. Would be great if you could test it to see how it works for you.

I'm not convinced we can really use the bisect loop to backtrack and look for a
keyframe as well, but in any case I found it difficult to keep track of all the
logic and the global state and how it interacts here in all the scenarios, so I
have decided to do it differently in a more verbose manner: by first finding
the right cluster via bisecting and then backtracking cluster by cluster in a
separate loop.

We should also use cluster prev_size if available, since this is much more
efficient.

We already keep track of which video tracks are intra-only, so should re-use
the existing logic for that instead.

I have also added a limit to the backtracking. I realise this does not work for
you like that, but we need to have this work by default with a variety of
different input files, and it's entirely possible that we have files where only
the first cluster starts with a keyframe and otherwise keyframes are in the
middle of clusters. We can't just scan back to the very beginning every time in
that case. 

But the max-backtrack-distance is configurable via a property, so hopefully
that works for your use case. You can hook up to the pipeline's
"deep-element-added" property to catch matroskademux and configure it if you
don't have direct access to the instance.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.


More information about the gstreamer-bugs mailing list