utils/streamproducer: Add StreamProducer::error() to signal an error message to all consumers

This commit is contained in:
Sebastian Dröge 2022-05-12 10:51:56 +03:00
parent e263bd8945
commit 98cc289bcc

View file

@ -118,6 +118,21 @@ impl StreamProducer {
pub fn appsink(&self) -> &gst_app::AppSink {
&self.appsink
}
/// Signals an error on all consumers
pub fn error(&self, error: &gst::glib::Error, debug: Option<&str>) {
let consumers = self.consumers.lock().unwrap();
for consumer in consumers.consumers.keys() {
let mut msg_builder =
gst::message::Error::builder_from_error(error.clone()).src(consumer);
if let Some(debug) = debug {
msg_builder = msg_builder.debug(debug);
}
let _ = consumer.post_message(msg_builder.build());
}
}
}
impl<'a> From<&'a gst_app::AppSink> for StreamProducer {