changeset 21815:8b2d611f3ade

moved actual tuning code from check_status() to tune_it()
author nicodvb
date Sat, 06 Jan 2007 11:43:44 +0000
parents 8032b9d9349d
children fa8128898231
files stream/dvb_tune.c
diffstat 1 files changed, 12 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/stream/dvb_tune.c	Sat Jan 06 11:09:27 2007 +0000
+++ b/stream/dvb_tune.c	Sat Jan 06 11:43:44 2007 +0000
@@ -346,12 +346,6 @@
 	int ok=0, locks=0;
 	time_t tm1, tm2;
 
-	if (ioctl(fd_frontend,FE_SET_FRONTEND,feparams) < 0)
-	{
-		mp_msg(MSGT_DEMUX, MSGL_ERR, "ERROR tuning channel\n");
-		return -1;
-	}
-
 	pfd[0].fd = fd_frontend;
 	pfd[0].events = POLLPRI;
 
@@ -443,21 +437,9 @@
 	
 	struct pollfd pfd[1];
 
-	while(1)
-	{
-		if(ioctl(fd_frontend, FE_GET_EVENT, &event) == -1)
-		break;
-	}
-
 	i = 0; res = -1;
 	while ((i < 3) && (res < 0))
 	{
-		if (ioctl(fd_frontend,FE_SET_FRONTEND,feparams) < 0)
-		{
-			mp_msg(MSGT_DEMUX, MSGL_ERR, "ERROR tuning channel\n");
-			return -1;
-		}
-
 		pfd[0].fd = fd_frontend;
 		pfd[0].events = POLLIN | POLLPRI;
 
@@ -652,6 +634,7 @@
 #else
   FrontendParameters feparams;
   FrontendInfo fe_info;
+  FrontendEvent event;
   struct secStatus sec_state;
 #endif
 
@@ -785,7 +768,18 @@
 
 #ifndef HAVE_DVB_HEAD
   if (fd_sec) SecGetStatus(fd_sec, &sec_state);
+  while(1)
+  {
+    if(ioctl(fd_frontend, FE_GET_EVENT, &event) == -1)
+    break;
+  }
 #endif
 
+  if(ioctl(fd_frontend,FE_SET_FRONTEND,&feparams) < 0)
+  {
+    mp_msg(MSGT_DEMUX, MSGL_ERR, "ERROR tuning channel\n");
+    return -1;
+  }
+
   return(check_status(fd_frontend,&feparams,fe_info.type, (hi_lo ? LOF2 : LOF1), timeout));
 }