<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div><div>Thanks Tarun,</div><div><br></div><div><b>we are making progress </b>- this pipeline <b>does</b> startup, but it fails after a few seconds:</div><div><b><br></b></div><div><b>gst-launch-1.0  ndisrc ndi-name="NDIPE8 (SIGGEN)" ! ndisrcdemux  name=demux demux.video ! queue ! videoconvert ! whipwebrtcsink name=ws signaller::whip-endpoint="https://director.millicast.com/api/whip/myStreamName",auth-token=“..redacted.." demux.audio ! queue ! audioconvert ! ws.</b></div><div><br></div><div>Setting pipeline to PAUSED ...</div><div>Pipeline is live and does not need PREROLL ...</div><div>Pipeline is PREROLLED ...</div><div>Setting pipeline to PLAYING ...</div><div>New clock: GstSystemClock</div><div>Redistribute latency...</div><div>Redistribute latency...</div><div>Redistribute latency…</div><div><br></div><div><i><b><it runs fine here for a few seconds with the numbers running></b></i></div><div><br></div><div>thread 'tokio-runtime-worker' panicked at 'Signal 'request-aux-sender' of type 'GstWebRTCBin' not found', /home/ubuntu/.cargo/git/checkouts/gtk-rs-core-7be42ca38bd6361c/44c4ab3/glib/src/object.rs:2642:32</div><div>note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace</div><div>thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: PoisonError { .. }', net/webrtc/src/webrtcsink/imp.rs:3013:47</div><div>ERROR: from element /GstPipeline:pipeline0/GstWhipWebRTCSink:ws: Panicked: called `Result::unwrap()` on an `Err` value: PoisonError { .. }</div><div>thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: PoisonError { .. }', net/webrtc/src/webrtcsink/imp.rs:3013Execution ended after 0:00:01.886767934</div><div>:47Setting pipeline to NULL ...</div><div><br></div><div>ERROR: from element /GstPipeline:pipeline0/GstWhipWebRTCSink:ws: Panicked</div><div>ERROR: from element /GstPipeline:pipeline0/GstWhipWebRTCSink:ws: Panicked</div><div>ERROR: from element /GstPipeline:pipeline0/GstWhipWebRTCSink:ws: Panicked: called `Result::unwrap()` on an `Err` value: PoisonError { .. }</div><div>ERROR: from element /GstPipeline:pipeline0/GstWhipWebRTCSink:ws: Panicked</div><div>Freeing pipeline …</div><div><br></div><div><br></div><blockquote type="cite"><div>On 15 Jul 2023, at 14:47, Tarun Tej K <tarun4690@gmail.com> wrote:</div><br class="Apple-interchange-newline"><div><div><blockquote type="cite">auth-token=“…redacted…."<br></blockquote><br><blockquote type="cite">which doesnt appear to be a supported parameter in whipwebrtcsink so perhaps I cant use that in place of whipsink<br></blockquote>whipwebrtcsink does have 'auth-token' property.<br>https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/blob/main/net/webrtc/src/whip_signaller/imp.rs#L577<br><br>Did you try setting it like this `whipwebrtcsink signaller::auth-token="wxyz"` ?<br><br>On Sat, Jul 15, 2023 at 6:44 PM GST Developer <gstreamer@gallery.co.uk> wrote:<br><blockquote type="cite"><br>Thanks Tarun<br><br>The Dolby.io workflow also requires<br><br>auth-token=“…redacted…."<br><br>which doesnt appear to be a supported parameter in whipwebrtcsink so perhaps I cant use that in place of whipsink<br><br>On 15 Jul 2023, at 13:53, Tarun Tej K <tarun4690@gmail.com> wrote:<br><br>The same ndisrc  / ndisrcdemux works fine into a webrtcsink pipeline with A+V<br><br>We now have a whip signaller implementation in the webrtcsink -<br>https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1168.<br>But I don't think this is a part of a release yet, so you will have to<br>set up an uninstalled version.<br><br>On Sat, Jul 15, 2023 at 5:18 PM GST Developer <gstreamer@gallery.co.uk> wrote:<br><br><br><br><br>On 15 Jul 2023, at 12:36, Tarun Tej K <tarun4690@gmail.com> wrote:<br><br>Ok. I am not familiar with ndisrcdemux, does this mean the buffers are<br>being dropped at the demuxer?<br><br><br>This also new to me, but its certainly warning that the input buffer is filling, presumably because its not draining.  I did try with a much larger receive buffer but it does the same thing, so this does look like some sort of deadlock.<br><br>The same ndisrc  / ndisrcdemux works fine into a webrtcsink pipeline with A+V,  so it looks like some quirk where it doesnt like whipsink in A+V workflow.  I can use gst videotestsrc and audiotestsrc into whipsink fine, so I know there is nothing fundamentally wrong with either of the components, ndisrc, ndisrcdemux and whipsink.<br><br>Also what is the GST_DEBUG value set in the environment<br><br><br>in the log, it was *.7 I believe,  the TL:DR was *.3 I think.<br><br>and gstreamer<br>version you are using?<br><br><br>1.20.3<br><br>Thanks !<br><br><br><br>On Sat, Jul 15, 2023 at 4:45 PM GST Developer <gstreamer@gallery.co.uk> wrote:<br><br><br>besides the full log (second one) that i shared,   http://www.gallery.co.uk/gstlog2.txt.zip<br><br>TL:DR this appears to be the crux of the issue:<br><br>Pipeline is live and does not need PREROLL ...<br>0:00:00.036747546 11562 0x558781cb5400 FIXME                default gstutils.c:4025:gst_pad_create_stream_id_internal:<ndisrc0:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id<br>Pipeline is PREROLLED ...<br>Setting pipeline to PLAYING ...<br>New clock: GstSystemClock<br>Redistribute latency...<br>Redistribute latency...<br>Redistribute latency...<br>0:00:01.220267971 11562 0x7fe028007330 WARN             ndireceiver net/ndi/src/ndisrc/receiver.rs:850:gstndi::ndisrc::receiver::Receiver::receive_thread:<ndisrc0> Dropping old buffer -- queue has 11 items<br>0:00:01.232472921 11562 0x7fe028007330 WARN             ndireceiver net/ndi/src/ndisrc/receiver.rs:850:gstndi::ndisrc::receiver::Receiver::receive_thread:<ndisrc0> Dropping old buffer -- queue has 11 items<br>0:00:01.239202906 11562 0x7fe028007330 WARN             ndireceiver net/ndi/src/ndisrc/receiver.rs:850:gstndi::ndisrc::receiver::Receiver::receive_thread:<ndisrc0> Dropping old buffer -- queue has 11 items<br><br><br><br><br><br>On Sat, 15 Jul, 2023, 03:30 GST Developer via gstreamer-devel, <gstreamer-devel@lists.freedesktop.org> wrote:<br><br><br>Hi Folks.<br><br>I am attempting use gstreamer to send content from an NDI Source to a WHIP end point at Dolby.io.<br><br>If I just send VIDEO, its working fine:<br><br>gst-launch-1.0 ndisrc ndi-name="NDIPE8 (SIGGEN)" !  ndisrcdemux name=demux demux.video ! queue ! videoconvert ! x264enc ! video/x-h264,format=byte-stream,profile=baseline ! rtph264pay !   'application/x-rtp,media=video,encoding-name=H264,payload=97,clock-rate=90000' !   whip.sink_0 whipsink name=whip   auth-token=“…redacted….."  whip-endpoint="https://director.millicast.com/api/whip/myStreamName”<br><br>This works FINE !! we get the signal to the WHIP server and the end to end latency is about 2 seconds.<br><br>Now I want to add AUDIO to that pipeline, and I am trying:<br><br>gst-launch-1.0 ndisrc ndi-name="NDIPE8 (SIGGEN)" !  ndisrcdemux name=demux demux.video ! queue ! videoconvert ! x264enc ! video/x-h264,format=byte-stream,profile=baseline ! rtph264pay !   'application/x-rtp,media=video,encoding-name=H264,payload=97,clock-rate=90000' !  whip.sink_0 demux.audio ! audioconvert ! opusenc ! rtpopuspay ! 'application/x-rtp,media=audio,encoding-name=OPUS,payload=96,clock-rate=48000,encoding-params=(string)2'  ! whip.sink_1  whipsink name=whip   auth-token="…redacted….."  whip-endpoint="https://director.millicast.com/api/whip/myStreamName”<br><br>Now, it starts up with:<br><br>Setting pipeline to PAUSED ...<br>Pipeline is live and does not need PREROLL ...<br>Pipeline is PREROLLED ...<br>Setting pipeline to PLAYING ...<br>New clock: GstSystemClock<br>Redistribute latency...<br>Redistribute latency...<br>Redistribute latency…<br><br>But it stalls right there, and never gets to counting time, and we dont see anything arrive at the WHIP server.<br><br>Might anyone know what I am doing wrong ?<br><br>Many thanks !!!<br><br><br><br><br><br><br><br></blockquote></div></div></blockquote></div><br></body></html>