Gstreamer Basic Tutorial / API (3: Dynamic pipelines)

Michael Gruner michael.gruner at ridgerun.com
Fri May 17 17:56:19 UTC 2019


Yes. GStreamer can render a diagram of your pipeline. Take a look at:

https://developer.ridgerun.com/wiki/index.php?title=How_to_generate_a_Gstreamer_pipeline_diagram_(graph)

Michael
www.ridgerun.com


> On May 16, 2019, at 13:19, R C <cjvijf at gmail.com> wrote:
> 
> Ok,  cool I try that.
> 
> btw:  is there a tool that can be used to display what's going on in a pipe created with gst-launch?  (what I mean is, that shows the  pipeline and branches).  Is there 'something'  that would optimize a pipeline?
> 
> thanks,
> 
> Ron
> 
>> On Thu, May 16, 2019 at 7:15 AM Nicolas Dufresne <nicolas at ndufresne.ca> wrote:
>> 
>> 
>> Le mer. 15 mai 2019 22 h 40, R C <cjvijf at gmail.com> a écrit :
>>> Hello,
>>> 
>>> I am trying to get a little more familiar with gstreamer, and thought I'd do some
>>> 
>>> of the "basic" programming tutorial examples.
>>> 
>>> 
>>> 
>>> I did play with the 3rd example:
>>> 
>>> https://gstreamer.freedesktop.org/documentation/tutorials/basic/dynamic-pipelines.html?gi-language=c
>>> 
>>> 
>>> 
>>> If I copy the example, and compile it, it works, no surprise there. But when I change it and do the "exercise", I get some weirdness.
>>> 
>>> 
>>> 
>>> What I noticed is (well I probably missed something)...  but the function call:
>>> 
>>> data.sink = gst_element_factory_make ("autoaudiosink", "sink");
>>> 
>>> According to the docs, the 2nd parameter can be 'whatever' you want to name it.
>>> Since I wanted to do the video part too, I figure I should change the name to
>>> "audio-something", and changed the second function call to:
>>> 
>>>   data.convert = gst_element_factory_make ("audioconvert", "convert");   (original)
>>>   data.sink = gst_element_factory_make ("autoaudiosink", "audiosink");   (changed name)
>>> 
>>> of course in the even handler (pad_added_handler), the name needs to be changed in to:
>>> 
>>> GstPad *sink_pad = gst_element_get_static_pad (data->convert, "audiosink");
>>> 
>>> Browsing through the code, that should be it, BUT it seems "sink_pad" always is NULL
>>>  and the pipeline elements don't/can't be linked. (see errors below)
>>> 
>>> since this is supposed to be a simple example,  what am I missing?
>>> 
>>> thanks,
>>> 
>>> Ron
>>> 
>>> 
>>> errors:
>>> # ./basic-tutorial-3
>>> Pipeline state changed from NULL to READY:
>>> Received new pad 'src_0' from 'source':
>>> 
>>> (basic-tutorial-3:14679): GStreamer-CRITICAL **: 20:22:54.991: gst_pad_is_linked: assertion 'GST_IS_PAD (pad)' failed
>>> It has type 'video/x-raw' which is not raw audio. Ignoring.
>> 
>> I'm not really able to see all steps that lead you to this, but I can give you a trick to help. G_DEBUG=fatal_criticals will make it abort on the assertion, run this in gdb, and analyse the context that lead to that pad being null.
>> 
>> 
>>> (basic-tutorial-3:14679): GStreamer-CRITICAL **: 20:22:54.992: gst_object_unref: assertion 'object != NULL' failed
>>> Received new pad 'src_1' from 'source':
>>> 
>>> (basic-tutorial-3:14679): GStreamer-CRITICAL **: 20:22:54.992: gst_pad_is_linked: assertion 'GST_IS_PAD (pad)' failed
>>> 
>>> (basic-tutorial-3:14679): GStreamer-CRITICAL **: 20:22:54.992: gst_pad_link_full: assertion 'GST_IS_PAD (sinkpad)' failed
>>> Type is 'audio/x-raw' but link failed.
>>> 
>>> (basic-tutorial-3:14679): GStreamer-CRITICAL **: 20:22:54.992: gst_object_unref: assertion 'object != NULL' failed
>>> Error received from element source: Internal data stream error.
>>> Debugging information: gstbasesrc.c(2950): gst_base_src_loop (): /GstPipeline:test-pipeline/GstURIDecodeBin:source/GstSoupHTTPSrc:source:
>>> streaming stopped, reason not-linked (-1)
>>> 
>>> _______________________________________________
>>> gstreamer-devel mailing list
>>> gstreamer-devel at lists.freedesktop.org
>>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>> _______________________________________________
>> gstreamer-devel mailing list
>> gstreamer-devel at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20190517/bc8c93a8/attachment.html>


More information about the gstreamer-devel mailing list