From 247e410df02d33f95e2f2990a9e5140983a0a796 Mon Sep 17 00:00:00 2001 From: Alessandro Decina Date: Mon, 31 Oct 2011 11:36:06 +0100 Subject: [PATCH] basevideoencoder: handle failures in start() and stop() --- omx/gstbasevideoencoder.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/omx/gstbasevideoencoder.c b/omx/gstbasevideoencoder.c index b772512..c14d7a1 100644 --- a/omx/gstbasevideoencoder.c +++ b/omx/gstbasevideoencoder.c @@ -899,7 +899,8 @@ gst_base_video_encoder_change_state (GstElement * element, case GST_STATE_CHANGE_READY_TO_PAUSED: gst_base_video_encoder_reset (base_video_encoder); if (base_video_encoder_class->start) { - base_video_encoder_class->start (base_video_encoder); + if (!base_video_encoder_class->start (base_video_encoder)) + goto start_error; } break; default: @@ -912,7 +913,8 @@ gst_base_video_encoder_change_state (GstElement * element, case GST_STATE_CHANGE_PAUSED_TO_READY: gst_base_video_encoder_reset (base_video_encoder); if (base_video_encoder_class->stop) { - base_video_encoder_class->stop (base_video_encoder); + if (!base_video_encoder_class->stop (base_video_encoder)) + goto stop_error; } break; default: @@ -920,6 +922,14 @@ gst_base_video_encoder_change_state (GstElement * element, } return ret; + +start_error: + GST_WARNING_OBJECT (base_video_encoder, "failed to start"); + return GST_STATE_CHANGE_FAILURE; + +stop_error: + GST_WARNING_OBJECT (base_video_encoder, "failed to stop"); + return GST_STATE_CHANGE_FAILURE; } /** -- 2.7.4