[Bug 740575] Fixing DTS in GStreamer

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Sat Mar 14 10:35:26 PDT 2015


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

--- Comment #23 from Matej Knopp <matej.knopp at gmail.com> ---
Yes. In *muxers*. Your approach would put this on *every* element that so much
as looks at DTS. decoders, encoders, parsers. There's no such thing as element
that cares. Every element that handles DTS would need to check for the delta.
Parser can't throw away negative DTS just because it "doesn't care".

So instead of GstClockTime dts = GST_BUFFER_DTS(buf) you would need to

gint64 dts;
if (GST_BUFFER_TS_DELTA_IS_VALID(buf) && GST_BUFFER_PTS_IS_VALID(buf))
  dts = GST_BUFFER_PTS(buf) - GST_BUFFER_TS_DELTA(buf);
else if (GST_BUFFER_DTS_IS_VALID(buf)
  dts = GST_BUFFER_DTS(buf)
else 
  dts = SOME_VALUE_REPRESENTING_INVALID_DTS_WHICH_CAN_NOT_BE_MINUS_1.

And this would need to be done in parsers, decoders, encoders, etc, not just
muxers.

Would you also add ts_delta to GstVideoCodecFrame?

This is an order of magnitude more disruptive than just shifting segment start.
And it create very ugly redundancy at core of GStreamer.

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