From 098934d3aed65b614bdded06aec8731b7b5b90ba Mon Sep 17 00:00:00 2001 From: "Reynaldo H. Verdejo Pinochet" Date: Fri, 29 Apr 2016 12:06:52 -0700 Subject: [PATCH] dvbsrc: refactor signal locking loop Get rid of preliminar frontend status check. --- sys/dvb/gstdvbsrc.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/sys/dvb/gstdvbsrc.c b/sys/dvb/gstdvbsrc.c index 4a4b00f..5a2d5cb 100644 --- a/sys/dvb/gstdvbsrc.c +++ b/sys/dvb/gstdvbsrc.c @@ -2279,19 +2279,11 @@ gst_dvbsrc_tune_fe (GstDvbSrc * object) } g_signal_emit (object, gst_dvbsrc_signals[SIGNAL_TUNING_START], 0); - - LOOP_WHILE_EINTR (err, ioctl (object->fd_frontend, FE_READ_STATUS, &status)); - if (err) { - GST_WARNING_OBJECT (object, "Failed querying frontend for tuning status:" - " %s (%d)", g_strerror (errno), errno); - goto fail_with_signal; - } - - /* signal locking loop */ elapsed_time = 0; start = gst_util_get_timestamp (); - while (!(status & FE_HAS_LOCK) && elapsed_time <= object->tuning_timeout) { + /* signal locking loop */ + do { LOOP_WHILE_EINTR (err, ioctl (object->fd_frontend, FE_READ_STATUS, &status)); if (err) { @@ -2306,7 +2298,7 @@ gst_dvbsrc_tune_fe (GstDvbSrc * object) GST_LOG_OBJECT (object, "Tuning. Time elapsed %" GST_STIME_FORMAT " Limit %" GST_TIME_FORMAT, GST_STIME_ARGS (elapsed_time), GST_TIME_ARGS (object->tuning_timeout)); - } + } while (!(status & FE_HAS_LOCK) && elapsed_time <= object->tuning_timeout); if (!(status & FE_HAS_LOCK)) { GST_WARNING_OBJECT (object, -- 2.7.4