diff --git a/utils/fallbackswitch/src/fallbackswitch/imp.rs b/utils/fallbackswitch/src/fallbackswitch/imp.rs index a2b25e07..9d1aa0a5 100644 --- a/utils/fallbackswitch/src/fallbackswitch/imp.rs +++ b/utils/fallbackswitch/src/fallbackswitch/imp.rs @@ -1236,11 +1236,12 @@ impl ElementImpl for FallbackSwitch { pad.set_active(true).unwrap(); element.add_pad(&pad).unwrap(); + let mut notify_active_pad = false; if state.active_sinkpad.is_none() { state.active_sinkpad = Some(pad.clone()); state.switched_pad = true; state.discont_pending = true; - element.notify(PROP_ACTIVE_PAD); + notify_active_pad = true; } let mut pad_settings = pad.imp().settings.lock(); @@ -1248,6 +1249,10 @@ impl ElementImpl for FallbackSwitch { drop(pad_settings); drop(state); + if notify_active_pad { + element.notify(PROP_ACTIVE_PAD); + } + let _ = element.post_message(gst::message::Latency::builder().src(element).build()); element.child_added(&pad, &pad.name());