I built my own pipeline and successfully called gst_element_set_state (c ->pipeline, GST -STATE-PAYING)
. When I pushed the data, I encountered the following warning:
gst_pad_chain_data_unchecked:jitterbuffer:sink Got data flow before stream-start event
gst_pad_chain_data_unchecked:jitterbuffer:sink Got data flow before segment event
May I ask what is causing these outputs?
This is usually a bug in some element.
I’m guessing that you’re implementing your own source element here?
If so, are you not deriving from GstBaseSrc
or GstPushSrc
?
In any case, it pretty much tells you what’s expected: Before you push a buffer, certain events need to be pushed, such as a stream start event and a segment event (and also a caps event in your case with RTP caps, but it looks like you send that).
Sources must derive from GstBaseSrc
(or a subclass of it like GstPushSrc
). Same for sinks (with GstBaseSink
or a subclass of it).
My source element derive from GstElement
and only send custom data to srcpad. Is there any problem with this?
The problem is that it’s not respecting the rule I mentioned just before.
To be 100% clear : It’s not a suggestion, it’s a rule. If you don’t do that a ton of bad things will happen since everything in GStreamer expects that.