mirror of
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git
synced 2025-09-01 17:23:48 +00:00
speechmatics: Handle multiple stream-start event
Do not spawn new task loop with channel if we have one already Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2205>
This commit is contained in:
parent
2519b9e51d
commit
731ceb58bd
1 changed files with 9 additions and 1 deletions
|
@ -878,11 +878,19 @@ impl TranscriberSrcPad {
|
|||
}
|
||||
|
||||
fn start_task(&self) -> Result<(), gst::LoggableError> {
|
||||
let mut state = self.state.lock().unwrap();
|
||||
|
||||
if state.sender.is_some() {
|
||||
gst::debug!(CAT, imp = self, "Have task already");
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
let this_weak = self.downgrade();
|
||||
let pad_weak = self.obj().downgrade();
|
||||
let (sender, mut receiver) = mpsc::channel(1);
|
||||
|
||||
self.state.lock().unwrap().sender = Some(sender);
|
||||
state.sender = Some(sender);
|
||||
drop(state);
|
||||
|
||||
let res = self.obj().start_task(move || {
|
||||
let Some(this) = this_weak.upgrade() else {
|
||||
|
|
Loading…
Reference in a new issue