mirror of
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git
synced 2025-09-01 17:23:48 +00:00
fallbacksrc: Don't panic during retries if the element was shut down in parallel
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2451>
This commit is contained in:
parent
9861f682e6
commit
a41a6954fc
1 changed files with 12 additions and 4 deletions
|
@ -1741,7 +1741,9 @@ impl FallbackSrc {
|
|||
if transition != gst::StateChange::ReadyToNull {
|
||||
let _ = source.set_state(gst::State::Null);
|
||||
let mut state_guard = self.state.lock();
|
||||
let state = state_guard.as_mut().expect("no state");
|
||||
let Some(ref mut state) = &mut *state_guard else {
|
||||
return;
|
||||
};
|
||||
self.handle_source_error(
|
||||
state,
|
||||
RetryReason::StateChangeFailure,
|
||||
|
@ -1761,7 +1763,9 @@ impl FallbackSrc {
|
|||
);
|
||||
|
||||
let mut state_guard = self.state.lock();
|
||||
let state = state_guard.as_mut().expect("no state");
|
||||
let Some(ref mut state) = &mut *state_guard else {
|
||||
return;
|
||||
};
|
||||
|
||||
let source = if fallback_source {
|
||||
if let Some(ref mut source) = state.fallback_source {
|
||||
|
@ -4175,7 +4179,9 @@ impl FallbackSrc {
|
|||
);
|
||||
let _ = source.set_state(gst::State::Null);
|
||||
let mut state_guard = imp.state.lock();
|
||||
let state = state_guard.as_mut().expect("no state");
|
||||
let Some(ref mut state) = &mut *state_guard else {
|
||||
return;
|
||||
};
|
||||
imp.handle_source_error(
|
||||
state,
|
||||
RetryReason::StateChangeFailure,
|
||||
|
@ -4185,7 +4191,9 @@ impl FallbackSrc {
|
|||
element.notify("statistics");
|
||||
} else {
|
||||
let mut state_guard = imp.state.lock();
|
||||
let state = state_guard.as_mut().expect("no state");
|
||||
let Some(ref mut state) = &mut *state_guard else {
|
||||
return;
|
||||
};
|
||||
let source = if fallback_source {
|
||||
if let Some(source) = &state.fallback_source {
|
||||
source
|
||||
|
|
Loading…
Reference in a new issue