[Bug 786667] New: tsdemux dot not handle input buffer timestamp discontinuity properly

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Wed Aug 23 06:05:42 UTC 2017


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

            Bug ID: 786667
           Summary: tsdemux dot not handle  input buffer timestamp
                    discontinuity properly
    Classification: Platform
           Product: GStreamer
           Version: 1.12.2
                OS: All
            Status: NEW
          Severity: major
          Priority: Normal
         Component: gst-plugins-bad
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: vinodkesti at yahoo.com
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

When there is discontinuity in the RTP input stream rtpjitterbuffer tags
bufferas GST_BUFFER_FLAG_DISCONT after discontinuity. 

tsdemux reset segment and timestamp when buffer is received with discontinuity.
In mpegts_base_chain function below marked code flushes the demuxer and resets
the time stamp and segmet due to which the next buffer onward timestamps and
segment base starts again from 0. Stream time stamps goes past and all pluigins
cribs about the timestamp.

 if (GST_BUFFER_IS_DISCONT (buf)) {
    GST_DEBUG_OBJECT (base, "Got DISCONT buffer, flushing");
    res = mpegts_base_drain (base);
    if (G_UNLIKELY (res != GST_FLOW_OK))
      return res;

    mpegts_base_flush (base, FALSE);
    /* In the case of discontinuities in push-mode with TIME segment
     * we want to drop all previous observations (hard:TRUE) from
     * the packetizer */
    if (base->mode == BASE_MODE_PUSHING
        && base->segment.format == GST_FORMAT_TIME) {
      mpegts_packetizer_flush (base->packetizer, TRUE);
      mpegts_packetizer_clear (base->packetizer);
    } else
      mpegts_packetizer_flush (base->packetizer, FALSE);
  }

In above case tsdemux should generate new segment with current time as base
time ??

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