Gstreamer Basic Tutorial / API (3: Dynamic pipelines)
cjvijf at gmail.com
Thu May 16 19:19:42 UTC 2019
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?
On Thu, May 16, 2019 at 7:15 AM Nicolas Dufresne <nicolas at ndufresne.ca>
> Le mer. 15 mai 2019 22 h 40, R C <cjvijf at gmail.com> a écrit :
>> 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:
>> 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
>> 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?
>> # ./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
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the gstreamer-devel