Dynamic pipeline with tee
Fabien FELIO
fabien.felio at softathome.com
Fri Jul 24 05:02:49 PDT 2015
Hi,
I am trying to send a live channel on different sockets and I am using tee to duplicate data but i have some issues :
1. When I tried to create tee pads dynamicaly, I could create the first part of my pipeline (and it worked) :
dvbsrc -> tee -> queue -> multisocketsink (OK)
When i wanted to add a second pad to tee, it created the pipeline well (all elements are in playing state etc) :
-> queue -> multisocketsink (OK)
/
dvbsrc -> tee
\
-> queue -> multisocketsink (Error)
but the second multisocketsink send back the error : "GLib-GIO-CRITICAL **: g_socket_send_with_blocking: assertion 'G_IS_SOCKET (socket) && buffer != NULL' failed"
2. The second try was to create static pads. I created two pads I linked to a queue and a fakesink :
-> queue -> fakesink
/
dvbsrc -> tee
\
-> queue -> fakesink
To replace a fakesink with a multisocketsink, i added a probe (GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM) to the first tee source pad, unlinked queue and fakesink, linked queue and multisocketsink, removed the probe. As the first try, there was no problem for the first change.
-> queue -> multisocketsink (OK)
/
dvbsrc -> tee
\
-> queue -> fakesink
But when i tried to replace the second one (same way as the first one), the multisocketsink element send me back the same error : "GLib-GIO-CRITICAL **: g_socket_send_with_blocking: assertion 'G_IS_SOCKET (socket) && buffer != NULL' failed"
What does the multiscoketsink's error mean ? And why have I this error everytime I change the pipeline ?
More information about the gstreamer-devel
mailing list