webrtcsink: called `Option::unwrap()` on a `None` value - webrtcbin request_pad_simple
I can't get webrtcsink demo working. I followed the instructions, installed all the dependencies and built successfully, but when I try to open a new descriptor from the web browser, the video area keeps black and I get the following log:
$ gst-launch-1.0 webrtcsink congestion-control=0 name=ws videotestsrc ! ws. audiotestsrc ! ws.
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Redistribute latency...
Redistribute latency...
thread 'async-std/runtime' panicked at 'called `Option::unwrap()` on a `None` value', net/webrtc/src/webrtcsink/imp.rs:865:14
stack backtrace:
0: rust_begin_unwind
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/panicking.rs:584:5
1: core::panicking::panic_fmt
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/core/src/panicking.rs:142:14
2: core::panicking::panic
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/core/src/panicking.rs:48:5
3: core::option::Option<T>::unwrap
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/core/src/option.rs:775:21
4: gstrswebrtc::webrtcsink::imp::Session::request_webrtcbin_pad
at ./net/webrtc/src/webrtcsink/imp.rs:862:19
5: gstrswebrtc::webrtcsink::imp::WebRTCSink::start_session::{{closure}}
at ./net/webrtc/src/webrtcsink/imp.rs:1668:37
6: core::iter::traits::iterator::Iterator::for_each::call::{{closure}}
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/core/src/iter/traits/iterator.rs:828:29
7: core::iter::traits::iterator::Iterator::fold
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/core/src/iter/traits/iterator.rs:2414:21
8: core::iter::traits::iterator::Iterator::for_each
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/core/src/iter/traits/iterator.rs:831:9
9: gstrswebrtc::webrtcsink::imp::WebRTCSink::start_session
at ./net/webrtc/src/webrtcsink/imp.rs:1665:9
10: gstrswebrtc::webrtcsink::WebRTCSink::start_session
at ./net/webrtc/src/webrtcsink/mod.rs:128:9
11: gstrswebrtc::signaller::imp::Signaller::connect::{{closure}}::{{closure}}
at ./net/webrtc/src/signaller/imp.rs:141:45
12: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/core/src/future/mod.rs:91:19
13: <async_std::task::builder::SupportTaskLocals<F> as core::future::future::Future>::poll::{{closure}}
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/async-std-1.12.0/src/task/builder.rs:199:17
14: async_std::task::task_locals_wrapper::TaskLocalsWrapper::set_current::{{closure}}
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/async-std-1.12.0/src/task/task_locals_wrapper.rs:60:13
15: std::thread::local::LocalKey<T>::try_with
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/thread/local.rs:445:16
16: std::thread::local::LocalKey<T>::with
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/thread/local.rs:421:9
17: async_std::task::task_locals_wrapper::TaskLocalsWrapper::set_current
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/async-std-1.12.0/src/task/task_locals_wrapper.rs:55:9
18: <async_std::task::builder::SupportTaskLocals<F> as core::future::future::Future>::poll
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/async-std-1.12.0/src/task/builder.rs:197:13
19: async_executor::Executor::spawn::{{closure}}
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/async-executor-1.5.0/src/lib.rs:139:19
20: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/core/src/future/mod.rs:91:19
21: async_task::raw::RawTask<F,T,S>::run
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/async-task-4.3.0/src/raw.rs:511:20
22: async_executor::Executor::run::{{closure}}::{{closure}}
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/async-executor-1.5.0/src/lib.rs:230:21
23: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/core/src/future/mod.rs:91:19
24: <futures_lite::future::Or<F1,F2> as core::future::future::Future>::poll
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-lite-1.12.0/src/future.rs:529:33
25: async_executor::Executor::run::{{closure}}
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/async-executor-1.5.0/src/lib.rs:237:31
26: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/core/src/future/mod.rs:91:19
27: <futures_lite::future::Or<F1,F2> as core::future::future::Future>::poll
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-lite-1.12.0/src/future.rs:529:33
28: async_io::driver::block_on
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/async-io-1.12.0/src/driver.rs:146:33
29: async_global_executor::reactor::block_on::{{closure}}
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/async-global-executor-2.3.1/src/reactor.rs:3:18
30: async_global_executor::reactor::block_on
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/async-global-executor-2.3.1/src/reactor.rs:12:5
31: async_global_executor::threading::thread_main_loop::{{closure}}::{{closure}}
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/async-global-executor-2.3.1/src/threading.rs:95:17
32: std::thread::local::LocalKey<T>::try_with
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/thread/local.rs:445:16
33: std::thread::local::LocalKey<T>::with
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/thread/local.rs:421:9
34: async_global_executor::threading::thread_main_loop::{{closure}}
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/async-global-executor-2.3.1/src/threading.rs:89:13
35: std::panicking::try::do_call
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/panicking.rs:492:40
36: std::panicking::try
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/panicking.rs:456:19
37: std::panic::catch_unwind
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/panic.rs:137:14
38: async_global_executor::threading::thread_main_loop
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/async-global-executor-2.3.1/src/threading.rs:88:12
39: core::ops::function::FnOnce::call_once
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/core/src/ops/function.rs:248:5
Web server and signalling server are working fine.
I'm new to Rust and GStreamer code but as far as I can know the panic is produced when the plugin tries to request a webrtc pad. I'm a little lost here, I tried to hardcode the requested pad with "sink_%u", "sink_0" and "sink_1" but I always have the same error. Also that portion of code was not modified since 14 months ago, so I think that there is no problem with the code but with my environment, but I cannot figure out what is the problem, I followed all the steps from this repo, maybe some step is missing.
Thanks all of you for these amazing tools.