dvbsrc: refactor signal locking loop
authorReynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
Fri, 29 Apr 2016 19:06:52 +0000 (12:06 -0700)
committerReynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
Fri, 29 Apr 2016 23:01:23 +0000 (16:01 -0700)
Get rid of preliminar frontend status check.

sys/dvb/gstdvbsrc.c

index 4a4b00fb23741571b61fc0a361c7e50c2db758d4..5a2d5cb25289ca8bbf79a1d3305fd12a50de9342 100644 (file)
@@ -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,