After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 759123 - gstcollectpads can hang with invalid PTS but valid DTS
gstcollectpads can hang with invalid PTS but valid DTS
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
1.6.1
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2015-12-07 15:12 UTC by Jake Foytik
Modified: 2015-12-09 14:44 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
GstCollectPads DTS patch. (3.79 KB, patch)
2015-12-07 15:12 UTC, Jake Foytik
needs-work Details | Review

Description Jake Foytik 2015-12-07 15:12:29 UTC
Created attachment 316880 [details] [review]
GstCollectPads DTS patch.

When muxing an RTSP stream with matroskamux and using pad offsets before the muxer, it is possible for the gstcollectpads to pass buffers through without converting the timestamps to the running time.

In the function gst_collect_pads_clip_running_time(), if a buffer contains an invalid PTS and valid DTS, the buffer is passed without modifying the timestamps. This causes problems when pad offsets are used and cameras generate buffers which sometimes contain valid PTS (and sometimes invalid).

I've included a patch, which fixes the hanging problem that we're seeing. In the patch if a buffer has an invalid PTS and valid DTS, the gst_segment_to_running_time() function is still called on the DTS only. Otherwise, it has the same behavior as before.
Comment 1 Thiago Sousa Santos 2015-12-07 18:21:42 UTC
Can you retry with latest git master? This part of the code has changed since
https://bugzilla.gnome.org/show_bug.cgi?id=757961

This issue might have been fixed.
Comment 2 Nicolas Dufresne (ndufresne) 2015-12-07 19:24:16 UTC
Review of attachment 316880 [details] [review]:

This make sense to me.

::: libs/gst/base/gstcollectpads.c
@@ +528,3 @@
 
+  GstClockTime buf_dts, abs_dts;
+  gint dts_sign;

Move the declaration to the start of the scope. We keep the code C89 compatible.
Comment 3 Nicolas Dufresne (ndufresne) 2015-12-07 19:24:30 UTC
Review of attachment 316880 [details] [review]:

.
Comment 4 Jake Foytik 2015-12-09 14:09:43 UTC
Thiago, It looks like this issue is fixed on git master. Thanks