Gstreamer Basic Tutorial / API (3: Dynamic pipelines)

R C cjvijf at gmail.com
Thu May 16 02:33:48 UTC 2019


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.

(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)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20190515/e1a79fae/attachment.html>


More information about the gstreamer-devel mailing list