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;
|
let is_main_elem = elem.imp().settings.lock().unwrap().is_main_elem;
|
||||||
if is_main_elem {
|
if is_main_elem {
|
||||||
gst::info!(CAT, obj = elem, "EOS");
|
gst::info!(CAT, obj = elem, "EOS");
|
||||||
|
if let Some(ref mut stats) = self.0.lock().await.stats {
|
||||||
|
stats.log_global();
|
||||||
|
}
|
||||||
let _ = elem.post_message(
|
let _ = elem.post_message(
|
||||||
gst::message::Application::builder(gst::Structure::new_empty(
|
gst::message::Application::builder(gst::Structure::new_empty(
|
||||||
"ts-standalone-sink/eos",
|
"ts-standalone-sink/eos",
|
||||||
|
@ -181,11 +184,7 @@ impl AsyncPadSinkHandler {
|
||||||
|
|
||||||
fn stop(&self) {
|
fn stop(&self) {
|
||||||
futures::executor::block_on(async move {
|
futures::executor::block_on(async move {
|
||||||
let mut inner = self.0.lock().await;
|
self.0.lock().await.is_flushing = true;
|
||||||
if let Some(ref mut stats) = inner.stats {
|
|
||||||
stats.log_global();
|
|
||||||
}
|
|
||||||
inner.is_flushing = true;
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -115,6 +115,9 @@ impl PadSinkHandler for SyncPadSinkHandler {
|
||||||
let is_main_elem = elem.imp().settings.lock().unwrap().is_main_elem;
|
let is_main_elem = elem.imp().settings.lock().unwrap().is_main_elem;
|
||||||
if is_main_elem {
|
if is_main_elem {
|
||||||
gst::info!(CAT, obj = elem, "EOS");
|
gst::info!(CAT, obj = elem, "EOS");
|
||||||
|
if let Some(ref mut stats) = self.0.lock().unwrap().stats {
|
||||||
|
stats.log_global();
|
||||||
|
}
|
||||||
let _ = elem.post_message(
|
let _ = elem.post_message(
|
||||||
gst::message::Application::builder(gst::Structure::new_empty(
|
gst::message::Application::builder(gst::Structure::new_empty(
|
||||||
"ts-standalone-sink/eos",
|
"ts-standalone-sink/eos",
|
||||||
|
@ -175,11 +178,7 @@ impl SyncPadSinkHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn stop(&self) {
|
fn stop(&self) {
|
||||||
let mut inner = self.0.lock().unwrap();
|
self.0.lock().unwrap().is_flushing = true;
|
||||||
if let Some(ref mut stats) = inner.stats {
|
|
||||||
stats.log_global();
|
|
||||||
}
|
|
||||||
inner.is_flushing = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -60,6 +60,12 @@ impl PadSinkHandler for TaskPadSinkHandler {
|
||||||
if is_main_elem {
|
if is_main_elem {
|
||||||
gst::info!(CAT, obj = elem, "EOS");
|
gst::info!(CAT, obj = elem, "EOS");
|
||||||
|
|
||||||
|
let _ = elem
|
||||||
|
.imp()
|
||||||
|
.clone_item_sender()
|
||||||
|
.send_async(StreamItem::Event(event))
|
||||||
|
.await;
|
||||||
|
|
||||||
let _ = elem.post_message(
|
let _ = elem.post_message(
|
||||||
gst::message::Application::builder(gst::Structure::new_empty(
|
gst::message::Application::builder(gst::Structure::new_empty(
|
||||||
"ts-standalone-sink/eos",
|
"ts-standalone-sink/eos",
|
||||||
|
@ -157,9 +163,6 @@ impl TaskImpl for TaskSinkTask {
|
||||||
|
|
||||||
async fn stop(&mut self) -> Result<(), gst::ErrorMessage> {
|
async fn stop(&mut self) -> Result<(), gst::ErrorMessage> {
|
||||||
log_or_trace!(CAT, self.is_main_elem, obj = self.elem, "Stopping Task");
|
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();
|
self.flush();
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
@ -207,11 +210,17 @@ impl TaskImpl for TaskSinkTask {
|
||||||
|
|
||||||
log_or_trace!(CAT, self.is_main_elem, obj = self.elem, "Buffer processed");
|
log_or_trace!(CAT, self.is_main_elem, obj = self.elem, "Buffer processed");
|
||||||
}
|
}
|
||||||
StreamItem::Event(evt) => {
|
StreamItem::Event(evt) => match evt.view() {
|
||||||
if let EventView::Segment(evt) = 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();
|
self.segment = evt.segment().downcast_ref::<gst::ClockTime>().cloned();
|
||||||
}
|
}
|
||||||
}
|
_ => (),
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
Loading…
Reference in a new issue