threadshare: fix flush for ts-intersrc

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2400>
This commit is contained in:
François Laignel 2025-07-29 16:27:16 +02:00
parent ecc198e5c2
commit 21578ccb83

View file

@ -493,11 +493,7 @@ impl TaskImpl for InterSrcTask {
async fn stop(&mut self) -> Result<(), gst::ErrorMessage> { async fn stop(&mut self) -> Result<(), gst::ErrorMessage> {
gst::log!(CAT, obj = self.elem, "Stopping task"); gst::log!(CAT, obj = self.elem, "Stopping task");
self.flush_start().await?;
self.dataqueue.stop();
self.dataqueue.clear();
self.got_first_item = false;
gst::log!(CAT, obj = self.elem, "Task stopped"); gst::log!(CAT, obj = self.elem, "Task stopped");
Ok(()) Ok(())
@ -506,6 +502,7 @@ impl TaskImpl for InterSrcTask {
async fn flush_start(&mut self) -> Result<(), gst::ErrorMessage> { async fn flush_start(&mut self) -> Result<(), gst::ErrorMessage> {
gst::log!(CAT, obj = self.elem, "Starting task flush"); gst::log!(CAT, obj = self.elem, "Starting task flush");
self.dataqueue.stop();
self.dataqueue.clear(); self.dataqueue.clear();
self.got_first_item = false; self.got_first_item = false;