[Bug 740575] Fixing DTS in GStreamer
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Sat Mar 14 10:35:45 PDT 2015
https://bugzilla.gnome.org/show_bug.cgi?id=740575
--- Comment #24 from Jan Schmidt <thaytan at noraisin.net> ---
My first reaction was that we can't do that... but:
It's not allowed to sub-class GstBuffer, so that's not a problem.
It's not viable to statically allocate a GstBuffer, because they're really a
GstBufferImpl internally.
It's not allowed to re-implement GstBuffer, and in any case the internal
GstBufferImpl isn't public.
So actually, unlike most GStreamer public structs, I don't think we need
padding.
However, the rest of Matej's points in comment #20 are valid, and I think
storing dts offset makes a lot of calculations more complex.
Particularly, having the ts_delta doesn't help with the muxer case where you
want to convert to running time and the DTS is outside the segment. DTS running
time isn't a fixed delta from the running PTS time when segment rate is taken
into account. What we really need there is some new GstSegment API that allows
calculating values outside the segment and that preserves the DTS <= PTS
relationship. I think that API would remove the need for GstDtsOffsetMeta.
If it weren't for GST_CLOCK_TIME_NONE = -1, it'd be easy to just use the
unsigned DTS and ignore the wraparound, but that's not possible - so the offset
approach Matej proposes seems good to me.
--
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