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 722372 - rtpjitterbuffer: Got data flow before stream-start event
rtpjitterbuffer: Got data flow before stream-start event
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other Linux
: Normal normal
: 1.3.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-01-16 20:09 UTC by Aleix Conchillo Flaqué
Modified: 2014-01-18 09:39 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
GST_DEBUG=4 (274.99 KB, text/x-log)
2014-01-16 20:10 UTC, Aleix Conchillo Flaqué
  Details
do not drop events when latency is set (1.68 KB, patch)
2014-01-17 01:40 UTC, Aleix Conchillo Flaqué
none Details | Review
do not drop events when latency is set (reword commit) (1.62 KB, patch)
2014-01-17 23:42 UTC, Aleix Conchillo Flaqué
committed Details | Review

Description Aleix Conchillo Flaqué 2014-01-16 20:09:14 UTC
Just pulled and built all GStreamer master branches and I am getting these critical warnings. It doesn't happen with 1.2.2.

The test consists of an gst-rtsp-server test-launch and a rtspsrc client:

./test-launch "( videotestsrc ! x264enc ! rtph264pay name=pay0 pt=96 )"

and

gst-launch-1.0 rtspsrc location=rtsp://localhost:8554/test latency=200 drop-on-latency=true ! decodebin ! videoconvert ! fakesink

It doesn't always happen, you might need to cancel the client and re-run it a few times.

Similar errors happen with other pipelines.

-------


(gst-launch-1.0:33571): GStreamer-WARNING **: gstpad.c:3974:gst_pad_push_data:<rtpjitterbuffer0:src> Got data flow before stream-start event

(gst-launch-1.0:33571): GStreamer-WARNING **: gstpad.c:3740:gst_pad_chain_data_unchecked:<rtpptdemux0:sink> Got data flow before stream-start event

(gst-launch-1.0:33571): GStreamer-CRITICAL **: gst_pad_push_event: assertion 'GST_IS_EVENT (event)' failed

(gst-launch-1.0:33571): GStreamer-WARNING **: gstpad.c:3974:gst_pad_push_data:<rtpptdemux0:src_96> Got data flow before stream-start event

(gst-launch-1.0:33571): GStreamer-WARNING **: gstpad.c:3740:gst_pad_chain_data_unchecked:<recv_rtp_src_0_3062232036_96:proxypad4> Got data flow before stream-start event

(gst-launch-1.0:33571): GStreamer-WARNING **: gstpad.c:3974:gst_pad_push_data:<manager:recv_rtp_src_0_3062232036_96> Got data flow before stream-start event

(gst-launch-1.0:33571): GStreamer-WARNING **: gstpad.c:3740:gst_pad_chain_data_unchecked:<recv_rtp_src_0_3062232036_96:proxypad5> Got data flow before stream-start event

(gst-launch-1.0:33571): GStreamer-WARNING **: gstpad.c:3974:gst_pad_push_data:<rtspsrc0:recv_rtp_src_0_3062232036_96> Got data flow before stream-start event

(gst-launch-1.0:33571): GStreamer-WARNING **: gstpad.c:3740:gst_pad_chain_data_unchecked:<decodebin0:sink> Got data flow before stream-start event

(gst-launch-1.0:33571): GStreamer-WARNING **: gstpad.c:3974:gst_pad_push_data:<sink:proxypad0> Got data flow before stream-start event

(gst-launch-1.0:33571): GStreamer-WARNING **: gstpad.c:3740:gst_pad_chain_data_unchecked:<typefind:sink> Got data flow before stream-start event

(gst-launch-1.0:33571): GStreamer-WARNING **: gstpad.c:3974:gst_pad_push_data:<typefind:src> Got data flow before stream-start event

(gst-launch-1.0:33571): GStreamer-WARNING **: gstpad.c:3740:gst_pad_chain_data_unchecked:<rtph264depay0:sink> Got data flow before stream-start event

(gst-launch-1.0:33571): GStreamer-WARNING **: gstpad.c:3974:gst_pad_push_data:<rtph264depay0:src> Got data flow before stream-start event

(gst-launch-1.0:33571): GStreamer-WARNING **: gstpad.c:3740:gst_pad_chain_data_unchecked:<h264parse0:sink> Got data flow before stream-start event

(gst-launch-1.0:33571): GStreamer-WARNING **: gstpad.c:3974:gst_pad_push_data:<h264parse0:src> Got data flow before stream-start event

(gst-launch-1.0:33571): GStreamer-WARNING **: gstpad.c:3740:gst_pad_chain_data_unchecked:<capsfilter0:sink> Got data flow before stream-start event

(gst-launch-1.0:33571): GStreamer-WARNING **: gstpad.c:3974:gst_pad_push_data:<capsfilter0:src> Got data flow before stream-start event

(gst-launch-1.0:33571): GStreamer-WARNING **: gstpad.c:3740:gst_pad_chain_data_unchecked:<avdec_h264-0:sink> Got data flow before stream-start event
Comment 1 Aleix Conchillo Flaqué 2014-01-16 20:10:04 UTC
Created attachment 266499 [details]
GST_DEBUG=4
Comment 2 Sebastian Dröge (slomo) 2014-01-16 20:21:01 UTC
That suggests this is rtpjitterbuffer sending data-flow before stream-start sometimes.
Comment 3 Aleix Conchillo Flaqué 2014-01-16 20:28:16 UTC
(In reply to comment #2)
> That suggests this is rtpjitterbuffer sending data-flow before stream-start
> sometimes.

Is there any recent change in gstreamer core that would make this appear now?

I have other pipelines (source code) that behave correctly with 1.2.2 but since I updated to master they have the similar problem.

I am not saying my pipelines are correct, I am just wondering if there was any fix in the core that would cause this to show up now.
Comment 4 Sebastian Dröge (slomo) 2014-01-16 20:36:54 UTC
I'm not aware of any core changes that seem related here... but all the RTP RTX changes recently might be.

Or are your other pipelines not RTP related at all?
Comment 5 Aleix Conchillo Flaqué 2014-01-16 20:38:53 UTC
(In reply to comment #4)
> I'm not aware of any core changes that seem related here... but all the RTP RTX
> changes recently might be.
> 
> Or are your other pipelines not RTP related at all?

Yes, no RTP related.
Comment 6 Sebastian Dröge (slomo) 2014-01-16 20:50:05 UTC
Can you provide simpler testcases than RTP pipelines then, something minimal? Or do some "git bisect" to find the offending commit?
Comment 7 Aleix Conchillo Flaqué 2014-01-16 21:23:15 UTC
(In reply to comment #6)
> Can you provide simpler testcases than RTP pipelines then, something minimal?
> Or do some "git bisect" to find the offending commit?

The pipeline was wrong. It used some old code to use a queue as a source (old days, I think). I have replaced that with an appsrc which solves this.

I am still wondering what change cause the problem to pop up now. I'll try bisect for that.
Comment 8 Aleix Conchillo Flaqué 2014-01-17 01:40:38 UTC
Created attachment 266512 [details] [review]
do not drop events when latency is set

The bug seems was introduced in the commit below. Serialized events are now queued in the jitter buffer. When latency is set the events are drop.

This patch doesn't drop events even latency is set.

----

eee515cb2c1367b4bd60f3e19251f42c3edd6ffe is the first bad commit
commit eee515cb2c1367b4bd60f3e19251f42c3edd6ffe
Author: Wim Taymans <wtaymans@redhat.com>
Date:   Tue Dec 10 11:57:37 2013 +0100

    rtpjitterbuffer: serialize events in the buffer
    
    Serialize events into the jitterbuffer by inserting them with a -1
    seqnum.
    Update unit test to expect events from the streaming thread.
    
    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=652986

:040000 040000 a049aaedf7cd696f8db6623796e1949904903561 622211fe4c0ab8a32214163119e0406f52a5bb43 M	gst
:040000 040000 d417324e3be002a6a5977d1c8ff6fc2765279d80 f0dcf2b2546831bec8c0a443ed209ef8c17953ff M	tests
Comment 9 Aleix Conchillo Flaqué 2014-01-17 23:42:55 UTC
Created attachment 266591 [details] [review]
do not drop events when latency is set (reword commit)

Same patch with updated commit log to follow same format as other commits.
Comment 10 Sebastian Dröge (slomo) 2014-01-18 09:39:25 UTC
Almost, don't indent the lines after the first :)

commit cdbb2ba6b8550d1527acdc5baaf0184658489ecc
Author: Aleix Conchillo Flaqué <aleix@oblong.com>
Date:   Thu Jan 16 17:36:12 2014 -0800

    rtpjitterbuffer: do not drop serialized events when latency is set
    
    Serialized events are now queued in the jitter buffer, so we don't
    want to drop them even latency is set.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=722372