From d0e553a6d39a402755b2e3e4ddce29a185dbd38d Mon Sep 17 00:00:00 2001 From: "Reynaldo H. Verdejo Pinochet" Date: Mon, 9 May 2016 15:23:32 -0700 Subject: [PATCH] dvbsrc: abort at open frontend failure --- sys/dvb/gstdvbsrc.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/sys/dvb/gstdvbsrc.c b/sys/dvb/gstdvbsrc.c index 2042a6ba6c..eb99d3224f 100644 --- a/sys/dvb/gstdvbsrc.c +++ b/sys/dvb/gstdvbsrc.c @@ -1957,7 +1957,10 @@ gst_dvbsrc_change_state (GstElement * element, GstStateChange transition) switch (transition) { case GST_STATE_CHANGE_NULL_TO_READY: /* open frontend then close it again, just so caps sent */ - gst_dvbsrc_open_frontend (src, FALSE); + if (!gst_dvbsrc_open_frontend (src, FALSE)) { + GST_ERROR_OBJECT (src, "Could not open frontend device"); + ret = GST_STATE_CHANGE_FAILURE; + } if (src->fd_frontend) { close (src->fd_frontend); } @@ -1975,7 +1978,10 @@ gst_dvbsrc_start (GstBaseSrc * bsrc) { GstDvbSrc *src = GST_DVBSRC (bsrc); - gst_dvbsrc_open_frontend (src, TRUE); + if (!gst_dvbsrc_open_frontend (src, TRUE)) { + GST_ERROR_OBJECT (src, "Could not open frontend device"); + return FALSE; + } if (!gst_dvbsrc_tune (src)) { GST_ERROR_OBJECT (src, "Not able to lock on to the dvb channel"); gst_dvbsrc_unset_pes_filters (src);