Love the idea of gstreamer; HATE the execution

Nicolas Dufresne nicolas at
Sat Dec 24 00:10:21 UTC 2022

Le ven. 23 déc. 2022, 17 h 15, Henning Larsen via gstreamer-devel <
gstreamer-devel at> a écrit :

> As to the explicit frustration from Dave Blanchard:
> > ERROR: from element /GstPipeline:pipeline0/GstSRTSrc:srtsrc0: Internal
> data stream error.
> > Additional debug info:
> > ../libs/gst/base/gstbasesrc.c(3127): gst_base_src_loop ():
> /GstPipeline:pipeline0/GstSRTSrc:srtsrc0:
> > streaming stopped, reason not-negotiated (-4)
> I have to agree that the error text is hard to grasp.
> As a concrete example of where it could be improved a lot:
> "reason not-negotiated" is actually an incorrect description of the error
> that it is supposed to describe, because the interface rules _were_
> negotiated but the outcome of the negotiation was "negative" or with "no
> agreement".
> So if the developers agree with this observation the term not-negotiated
> ought to be changed to for instance not-compatible  negative-negotiation or
> similar, like    Nicolas Dufresne <nicolas at>
> explanation below.
> Not-negotiated is an incorrect term for what is the problem. Error text's
> should at a minimum not be misleading.
> This was written with the hope to get something positive from this
> embarrassing discussion.

It does sound like good ideas. In this case, the error is an automatic
serialization of GST_FLOW_NOT_NEGOTIATED. In short what is returning by
chain function. Its the driving element (usually a source or a demuxer)
that turns this into an error message. That serialization could certainly
be improved.

Though, I'll have to mention that this return value caries an issue, which
comes from an API mistake. The past tense reflects the issue very well. The
return value is seen after the negotiation have failed, so the exact reason
why the negotiation failed is already lost. Perhaps one days we'll start
GStreamer 2.0 and try to improve the negotiation process so that at the end
of the process, if we have a negative result we could pin-point a cause
which could both help development, or be handled programmatically.


> regards
> Henning
> not-negotiated is translated to "Not negotiated" in english. It means that
>> srtsrc (the error emitter reported on previous line) is not compatible
>> with the
>> set of element/capsfilter you have placed downstream to it (to the right).
>> Of course you haven't shared the pipeline, this was just a rant, and I
>> assume
>> you didn't care, but sharing the pipeline you are using will allow us to
>> help
>> you further.
>> regards,
>> Nicolas
>> > Execution ended after 0:00:00.345528392
>> > Setting pipeline to NULL ...
>> > 01:02:38 AM.416780/gst-launch-1.0*E:SRT.ei: epoll/update: IPE: update
>> struck E1 which is NOT SUBSCRIBED to @710665059
>> > Freeing pipeline ...
>> >
>> >
>> > "Internal data stream error." And what the hell does that mean,
>> exactly....????  Why not change the error text to "Oops! Something went
>> wrong, lol". Then you can be exactly like Twitter.
>> >
>>         <CAO_ovOK3q27REcuA4RyjH=Yrt0=CKJWbY1EhNZ0m=QAW2Vf=
>> HA at>
>> Content-Type: text/plain; charset="utf-8"
>> GStreamer is meant for developers, not end users. Yes, some of the error
>> messages and information could be better. However, it is assumed that you
>> have some knowledge of these concepts and the interest to look into the
>> code. Also, the support on this mailing list is quick and very good. The
>> community is very helpful in regards to resolving issues and helping you
>> learn how it works.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the gstreamer-devel mailing list