From 0cd2490cbbdcbf3198615e9aa91b2911e2c677dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Cerveau?= Date: Wed, 12 Jan 2022 18:46:07 +0100 Subject: [PATCH] pipeline: cleanup the start_pipeline error handling Cleanup the code to handle GStreamer set_state failure. --- src/pipeline.rs | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/src/pipeline.rs b/src/pipeline.rs index 82bd87c..cd4ef69 100644 --- a/src/pipeline.rs +++ b/src/pipeline.rs @@ -127,21 +127,15 @@ impl Pipeline { self.create_pipeline(&self.render_gst_launch(graphview)) .map_err(|err| { GPS_ERROR!("Unable to start a pipeline: {}", err); - }) - .unwrap(); - self.set_state(new_state) - .map_err(|_| GPS_ERROR!("Unable to change state")) - .unwrap(); - } else if self.state() == PipelineState::Paused { - self.set_state(PipelineState::Playing) - .map_err(|_| GPS_ERROR!("Unable to change state")) - .unwrap(); - } else { - self.set_state(PipelineState::Paused) - .map_err(|_| GPS_ERROR!("Unable to change state")) - .unwrap(); + err + })?; } + self.set_state(new_state).map_err(|error| { + GPS_ERROR!("Unable to change state {}", error); + error + })?; + Ok(self.state()) }