mirror of
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git
synced 2025-09-02 09:43:48 +00:00
threadshare: standalone examples: log stats on EOS
... not on stop as it added extra noise to the parked duration report. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2524>
This commit is contained in:
parent
8807eefd32
commit
e92250847d
3 changed files with 23 additions and 16 deletions
|
@ -116,6 +116,9 @@ impl PadSinkHandler for AsyncPadSinkHandler {
|
|||
let is_main_elem = elem.imp().settings.lock().unwrap().is_main_elem;
|
||||
if is_main_elem {
|
||||
gst::info!(CAT, obj = elem, "EOS");
|
||||
if let Some(ref mut stats) = self.0.lock().await.stats {
|
||||
stats.log_global();
|
||||
}
|
||||
let _ = elem.post_message(
|
||||
gst::message::Application::builder(gst::Structure::new_empty(
|
||||
"ts-standalone-sink/eos",
|
||||
|
@ -181,11 +184,7 @@ impl AsyncPadSinkHandler {
|
|||
|
||||
fn stop(&self) {
|
||||
futures::executor::block_on(async move {
|
||||
let mut inner = self.0.lock().await;
|
||||
if let Some(ref mut stats) = inner.stats {
|
||||
stats.log_global();
|
||||
}
|
||||
inner.is_flushing = true;
|
||||
self.0.lock().await.is_flushing = true;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -115,6 +115,9 @@ impl PadSinkHandler for SyncPadSinkHandler {
|
|||
let is_main_elem = elem.imp().settings.lock().unwrap().is_main_elem;
|
||||
if is_main_elem {
|
||||
gst::info!(CAT, obj = elem, "EOS");
|
||||
if let Some(ref mut stats) = self.0.lock().unwrap().stats {
|
||||
stats.log_global();
|
||||
}
|
||||
let _ = elem.post_message(
|
||||
gst::message::Application::builder(gst::Structure::new_empty(
|
||||
"ts-standalone-sink/eos",
|
||||
|
@ -175,11 +178,7 @@ impl SyncPadSinkHandler {
|
|||
}
|
||||
|
||||
fn stop(&self) {
|
||||
let mut inner = self.0.lock().unwrap();
|
||||
if let Some(ref mut stats) = inner.stats {
|
||||
stats.log_global();
|
||||
}
|
||||
inner.is_flushing = true;
|
||||
self.0.lock().unwrap().is_flushing = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -60,6 +60,12 @@ impl PadSinkHandler for TaskPadSinkHandler {
|
|||
if is_main_elem {
|
||||
gst::info!(CAT, obj = elem, "EOS");
|
||||
|
||||
let _ = elem
|
||||
.imp()
|
||||
.clone_item_sender()
|
||||
.send_async(StreamItem::Event(event))
|
||||
.await;
|
||||
|
||||
let _ = elem.post_message(
|
||||
gst::message::Application::builder(gst::Structure::new_empty(
|
||||
"ts-standalone-sink/eos",
|
||||
|
@ -157,9 +163,6 @@ impl TaskImpl for TaskSinkTask {
|
|||
|
||||
async fn stop(&mut self) -> Result<(), gst::ErrorMessage> {
|
||||
log_or_trace!(CAT, self.is_main_elem, obj = self.elem, "Stopping Task");
|
||||
if let Some(ref mut stats) = self.stats {
|
||||
stats.log_global();
|
||||
}
|
||||
self.flush();
|
||||
Ok(())
|
||||
}
|
||||
|
@ -207,11 +210,17 @@ impl TaskImpl for TaskSinkTask {
|
|||
|
||||
log_or_trace!(CAT, self.is_main_elem, obj = self.elem, "Buffer processed");
|
||||
}
|
||||
StreamItem::Event(evt) => {
|
||||
if let EventView::Segment(evt) = evt.view() {
|
||||
StreamItem::Event(evt) => match evt.view() {
|
||||
EventView::Eos(_) => {
|
||||
if let Some(ref mut stats) = self.stats {
|
||||
stats.log_global();
|
||||
}
|
||||
}
|
||||
EventView::Segment(evt) => {
|
||||
self.segment = evt.segment().downcast_ref::<gst::ClockTime>().cloned();
|
||||
}
|
||||
}
|
||||
_ => (),
|
||||
},
|
||||
}
|
||||
|
||||
Ok(())
|
||||
|
|
Loading…
Reference in a new issue