GNOME Bugzilla – Bug 759123
gstcollectpads can hang with invalid PTS but valid DTS
Last modified: 2015-12-09 14:44:51 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.
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.
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.
Review of attachment 316880 [details] [review]: .
Thiago, It looks like this issue is fixed on git master. Thanks