[Bug 754230] qtdemux: support sparse time ranges in qtdemux without needing a seek for MSE

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Thu Oct 20 10:23:01 UTC 2016


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

Sebastian Dröge (slomo) <slomo at coaxion.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #337244|none                        |needs-work
             status|                            |

--- Comment #37 from Sebastian Dröge (slomo) <slomo at coaxion.net> ---
Review of attachment 337244:
 --> (https://bugzilla.gnome.org/review?bug=754230&attachment=337244)

::: gst/isomp4/qtdemux.c
@@ +96,3 @@
 #define STREAM_IS_EOS(s) (s->time_position == GST_CLOCK_TIME_NONE)

+#define ABSDIFF(x, y) ( x > y ? (x - y) : (y - x) )

Needs some more parenthesis. (x) and (y) everywhere

@@ +3130,3 @@
+      if (!qtdemux->upstream_format_is_time
+          && ABSDIFF (decode_ts, timestamp) >
+          (stream->duration_last_moof / 2)) {

This always triggers if stream->duration_last_moof == 0 (i.e. for the first
fragment). Maybe make this > MAX(stream->duration_last_moof / 2, GST_SECOND) or
something like that?

And yes, we have a chicken-egg problem here indeed :) We only know the duration
from parsing the samples (in the worst case), and the sample durations depend
on the timestamps, which depend on the lines below.

-- 
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