sendrecv/Rust: Only set pipeline to Playing after connecting to the signals

Might miss some signal emissions otherwise, especially the
on-negotiation-needed signal.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-examples/-/merge_requests/21>
This commit is contained in:
Sebastian Dröge 2020-07-31 12:03:46 +03:00
parent 3492c81fcf
commit 6378337a0e

View file

@ -142,13 +142,6 @@ impl App {
// Channel for outgoing WebSocket messages from other threads
let (send_ws_msg_tx, send_ws_msg_rx) = mpsc::unbounded::<WsMessage>();
// Asynchronously set the pipeline to Playing
pipeline.call_async(|pipeline| {
pipeline
.set_state(gst::State::Playing)
.expect("Couldn't set pipeline to Playing");
});
let app = App(Arc::new(AppInner {
args,
pipeline,
@ -228,6 +221,13 @@ impl App {
}
});
// Asynchronously set the pipeline to Playing
app.pipeline.call_async(|pipeline| {
pipeline
.set_state(gst::State::Playing)
.expect("Couldn't set pipeline to Playing");
});
Ok((app, send_gst_msg_rx, send_ws_msg_rx))
}