From cf40739da9b31b1c61d39a85ea1b606eb7542d3a Mon Sep 17 00:00:00 2001 From: Mathieu Duponchelle Date: Tue, 7 Jan 2025 18:12:39 +0100 Subject: [PATCH] transcriberbin: forward sticky events on unsynced source pads This way an application can tell the language code right away at pad-added time. Part-of: --- video/closedcaption/src/transcriberbin/imp.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/video/closedcaption/src/transcriberbin/imp.rs b/video/closedcaption/src/transcriberbin/imp.rs index c6c2e8406..50d35129b 100644 --- a/video/closedcaption/src/transcriberbin/imp.rs +++ b/video/closedcaption/src/transcriberbin/imp.rs @@ -2645,6 +2645,23 @@ impl TranscriberSinkPadState { state.internal_bin.add_pad(&srcpad)?; let srcpad = gst::GhostPad::with_target(&srcpad).unwrap(); + + srcpad.set_active(true).unwrap(); + + unsynced_pad.sticky_events_foreach(|event| { + if event.type_() == gst::EventType::Tag + || event.type_() == gst::EventType::StreamStart + { + gst::debug!( + CAT, + obj = srcpad, + "Storing {event:?} on unsynced source pad" + ); + let _ = srcpad.store_sticky_event(event); + } + std::ops::ControlFlow::Continue(gst::EventForeachAction::Keep) + }); + topbin.add_pad(&srcpad)?; }