[Bug 741104] dashdemux: add support for I frame based trick play
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Tue Aug 9 10:30:08 UTC 2016
https://bugzilla.gnome.org/show_bug.cgi?id=741104
--- Comment #61 from Chris Bass <floobleflam at gmail.com> ---
Review of attachment 332716:
--> (https://bugzilla.gnome.org/review?bug=741104&attachment=332716)
::: ext/dash/gstdashdemux.c
@@ +2021,3 @@
+
+ /* Non-non-sync sample aka sync sample */
+ if (!GST_ISOFF_SAMPLE_FLAGS_SAMPLE_IS_NON_SYNC_SAMPLE (sample_flags))
{
The code is only looking for sync samples, so when it runs it only extracts the
IDR frame at the beginning of the segments, and not the other I-frames in the
segment. It needs also to add frames whose sample_flags include
sample_depends_on == 2.
I tried adding the following here:
if (!GST_ISOFF_SAMPLE_FLAGS_SAMPLE_IS_NON_SYNC_SAMPLE (sample_flags)
|| (GST_ISOFF_SAMPLE_FLAGS_SAMPLE_DEPENDS_ON (sample_flags)
== 0x2)) {
...and that worked well for fast-forward speeds up to about 10x, beyond which
there wasn't enough network throughput to download all the I-frames from each
segment. It didn't appear to work so well for fast-reverse - it definitely
didn't look like all the I-frames were being displayed in that case.
If the intention for this code is to assemble a table of all IDR & I-frames in
a segment, then the use of *sync_samples in the names here is a bit misleading
- it would probably be better to rename things (e.g., *independent_samples, or
something like that).
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list