From ed2c9875daf9c33327a1e0ea7a3ef120c238a5f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20Jim=C3=A9nez=20Moreno?= Date: Thu, 13 Dec 2018 12:56:05 +0100 Subject: [PATCH] Revert "Queue a/v data while player is setting up" This reverts commit 5531f3f4cbd659b754c0d03db8cba674aac4f498. --- backends/gstreamer/src/player.rs | 36 ++++++-------------------------- 1 file changed, 6 insertions(+), 30 deletions(-) diff --git a/backends/gstreamer/src/player.rs b/backends/gstreamer/src/player.rs index 01a9ab10..8267a0a8 100644 --- a/backends/gstreamer/src/player.rs +++ b/backends/gstreamer/src/player.rs @@ -94,8 +94,6 @@ struct PlayerInner { subscribers: Vec>, renderers: Vec>>, last_metadata: Option, - /// Data that was pushed to the player before we were ready. - queued_data: Vec, } impl PlayerInner { @@ -214,31 +212,14 @@ impl PlayerInner { } pub fn push_data(&mut self, data: Vec) -> Result<(), BackendError> { - let buffer = - gst::Buffer::from_slice(data).ok_or_else(|| BackendError::PlayerPushDataFailed)?; - - match self.appsrc { - None => self.queued_data.push(buffer), - Some(ref mut appsrc) => { - if appsrc.push_buffer(buffer) != gst::FlowReturn::Ok { - return Err(BackendError::PlayerPushDataFailed); - } - } - }; - - Ok(()) - } - - pub fn flush_queued_data(&mut self) -> Result<(), BackendError> { - if self.appsrc.is_none() { - return Err(BackendError::PlayerPushDataFailed); - } - for buffer in self.queued_data.drain(..) { - if self.appsrc.as_ref().unwrap().push_buffer(buffer) != gst::FlowReturn::Ok { - return Err(BackendError::PlayerPushDataFailed); + if let Some(ref mut appsrc) = self.appsrc { + let buffer = + gst::Buffer::from_slice(data).ok_or_else(|| BackendError::PlayerPushDataFailed)?; + if appsrc.push_buffer(buffer) == gst::FlowReturn::Ok { + return Ok(()); } } - Ok(()) + Err(BackendError::PlayerPushDataFailed) } pub fn set_app_src(&mut self, appsrc: gst_app::AppSrc) { @@ -316,7 +297,6 @@ impl GStreamerPlayer { subscribers: Vec::new(), renderers: Vec::new(), last_metadata: None, - queued_data: Vec::new(), }))); let inner = self.inner.borrow(); @@ -515,10 +495,6 @@ impl GStreamerPlayer { inner.set_app_src(appsrc); - if inner.flush_queued_data().is_err() { - eprintln!("Could not flush queued data"); - } - None });