uriplaylistbin: handle waiting items no longer being set

ab96219c19 broke some assertions as
waiting items are now unset when shutting down the element.
This commit is contained in:
Guillaume Desmottes 2022-03-28 12:47:53 +02:00
parent 6744497cf6
commit 354c2862e0

View file

@ -1233,7 +1233,10 @@ impl UriPlaylistBin {
return;
}
let item = state.waiting_for_pads.clone().unwrap();
let item = match state.waiting_for_pads.as_ref() {
Some(item) => item.clone(),
None => return, // element is being shutdown
};
// Parse the pad name to extract the stream type and its index.
// We could get the type from the Stream object from the StreamStart sticky event but we'd still have
@ -1530,7 +1533,11 @@ impl UriPlaylistBin {
let mut state_guard = self.state.lock().unwrap();
let state = state_guard.as_mut().unwrap();
let item = state.waiting_for_ss_eos.take().unwrap();
let item = match state.waiting_for_ss_eos.take() {
Some(item) => item,
None => return, // element is being shutdown
};
let (topology, pending_pads, sender) = item.done_waiting_for_ss_eos();
state.waiting_for_pads = Some(item);