public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
From: Michel Verbraak <michel@verbraak.org>
To: linux-dvb@linuxtv.org, Alex Betis <alex.betis@gmail.com>
Subject: Re: [linux-dvb] [ANNOUNCE] scan-s2 is available, please test
Date: Sat, 01 Nov 2008 16:11:16 +0100	[thread overview]
Message-ID: <490C7194.8060603@verbraak.org> (raw)
In-Reply-To: <c74595dc0810251452s65154902td934e87560cad9f0@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 935 bytes --]

Alex,

Tested your scan-s2 with a Technisat HD2 card.

Scanning works. But some channels are reported twice with different 
frequency. I found an error which is fixed by the patch file named 
scan.c.diff1.

I would also like to propose the following change (see file scan.c.diff2 
or scan.c.diff which includes both patches). This change makes it 
possible to only scan for DVB-S channels or DVB-S2 channels or both. 
This is done by specifying lines starting with S or S2 in the input file.

example input file:
# Astra 19.2E SDT info service transponder
# freq pol sr fec
S 12522000 H 22000000 2/3       <only DVB-S channels are scanned>
S 11914000 H 27500000 AUTO
S 10743750 H 22000000 5/6
S 12187500 H 27500000 3/4
S 12343500 H 27500000 3/4
S 12515250 H 22000000 5/6
S 12574250 H 22000000 5/6
S2 12522000 H 22000000 AUTO    <only DVB-S2 channels are scanned>
S2 11914000 H 27500000 AUTO

I hope this is usefull.

Regards,

Michel.

[-- Attachment #2: scan.c.diff --]
[-- Type: text/plain, Size: 2722 bytes --]

--- scan-s2-88afcf030566/scan.c.orig	2008-11-01 10:09:43.000000000 +0100
+++ scan-s2-88afcf030566/scan.c	2008-11-01 15:55:14.000000000 +0100
@@ -906,10 +906,7 @@
 				// New transponder
 				t = alloc_transponder(tn.frequency);
 
-				// For sattelites start with DVB-S, it will switch to DVB-S2 if DVB-S gives no results
-				if(current_tp->delivery_system == SYS_DVBS || current_tp->delivery_system == SYS_DVBS2) {
-					tn.delivery_system = SYS_DVBS;
-				}
+				tn.delivery_system = current_tp->delivery_system;
 
 				copy_transponder(t, &tn);
 			}
@@ -1578,7 +1575,10 @@
 			if_freq = abs(t->frequency - lnb_type.low_val);
 		}
 		if (verbosity >= 2)
+                   if (t->delivery_system == SYS_DVBS)
 			dprintf(1,"DVB-S IF freq is %d\n", if_freq);
+                  else if (t->delivery_system == SYS_DVBS2)
+			dprintf(1,"DVB-S2 IF freq is %d\n", if_freq);
 	}
 
 
@@ -1640,7 +1640,8 @@
 			// get the actual parameters from the driver for that channel
 			if ((ioctl(frontend_fd, FE_GET_PROPERTY, &cmdseq)) == -1) {
 				perror("FE_GET_PROPERTY failed");
-				return;
+        			t->last_tuning_failed = 1;
+				return -1;
 			}
 
 			t->delivery_system = p[0].u.data;
@@ -1722,12 +1723,6 @@
 
 		rc = tune_to_transponder(frontend_fd, t);
 
-		// If scan failed and it's a DVB-S system, try DVB-S2 before giving up
-		if (rc != 0 && t->delivery_system == SYS_DVBS) {
-			t->delivery_system = SYS_DVBS2;
-			rc = tune_to_transponder(frontend_fd, t);
-		}
-
 		if (rc == 0) {
 			return 0;
 		}
@@ -1992,6 +1987,42 @@
 				t->frequency,
 				pol[0], t->symbol_rate, fec2str(t->fec), rolloff2str(t->rolloff), qam2str(t->modulation));
 		}
+		else if (sscanf(buf, "S2 %u %1[HVLR] %u %4s %4s %6s\n", &f, pol, &sr, fec, rolloff, qam) >= 3) {
+			t = alloc_transponder(f);
+			t->delivery_system = SYS_DVBS2;
+			t->modulation = QAM_AUTO;
+			t->rolloff = ROLLOFF_AUTO;
+			t->fec = FEC_AUTO;
+			switch(pol[0]) 
+			{
+			case 'H':
+			case 'L':
+				t->polarisation = POLARISATION_HORIZONTAL;
+				break;
+			default:
+				t->polarisation = POLARISATION_VERTICAL;;
+				break;
+			}
+			t->inversion = spectral_inversion;
+			t->symbol_rate = sr;
+
+			// parse optional parameters
+			if(strlen(fec) > 0) {
+				t->fec = str2fec(fec);
+			}
+
+			if(strlen(rolloff) > 0) {
+				t->rolloff = str2rolloff(rolloff);
+			}
+
+			if(strlen(qam) > 0) {
+				t->modulation = str2qam(qam);
+			}
+
+			info("initial transponder %u %c %d %s %s %s\n",
+				t->frequency,
+				pol[0], t->symbol_rate, fec2str(t->fec), rolloff2str(t->rolloff), qam2str(t->modulation));
+		}
 		else if (sscanf(buf, "C %u %u %4s %6s\n", &f, &sr, fec, qam) >= 2) {
 			t = alloc_transponder(f);
 			t->delivery_system = SYS_DVBC_ANNEX_AC;

[-- Attachment #3: scan.c.diff1 --]
[-- Type: text/plain, Size: 446 bytes --]

--- scan-s2-88afcf030566/scan.c.orig	2008-11-01 10:09:43.000000000 +0100
+++ scan-s2-88afcf030566/scan.c	2008-11-01 15:55:14.000000000 +0100
@@ -1640,7 +1640,8 @@
 			// get the actual parameters from the driver for that channel
 			if ((ioctl(frontend_fd, FE_GET_PROPERTY, &cmdseq)) == -1) {
 				perror("FE_GET_PROPERTY failed");
-				return;
+        			t->last_tuning_failed = 1;
+				return -1;
 			}
 
 			t->delivery_system = p[0].u.data;

[-- Attachment #4: scan.c.diff2 --]
[-- Type: text/plain, Size: 2417 bytes --]

--- scan-s2-88afcf030566/scan.c.orig	2008-11-01 10:09:43.000000000 +0100
+++ scan-s2-88afcf030566/scan.c	2008-11-01 15:55:14.000000000 +0100
@@ -906,10 +906,7 @@
 				// New transponder
 				t = alloc_transponder(tn.frequency);
 
-				// For sattelites start with DVB-S, it will switch to DVB-S2 if DVB-S gives no results
-				if(current_tp->delivery_system == SYS_DVBS || current_tp->delivery_system == SYS_DVBS2) {
-					tn.delivery_system = SYS_DVBS;
-				}
+				tn.delivery_system = current_tp->delivery_system;
 
 				copy_transponder(t, &tn);
 			}
@@ -1578,7 +1575,10 @@
 			if_freq = abs(t->frequency - lnb_type.low_val);
 		}
 		if (verbosity >= 2)
+                   if (t->delivery_system == SYS_DVBS)
 			dprintf(1,"DVB-S IF freq is %d\n", if_freq);
+                  else if (t->delivery_system == SYS_DVBS2)
+			dprintf(1,"DVB-S2 IF freq is %d\n", if_freq);
 	}
 
 
@@ -1722,12 +1723,6 @@
 
 		rc = tune_to_transponder(frontend_fd, t);
 
-		// If scan failed and it's a DVB-S system, try DVB-S2 before giving up
-		if (rc != 0 && t->delivery_system == SYS_DVBS) {
-			t->delivery_system = SYS_DVBS2;
-			rc = tune_to_transponder(frontend_fd, t);
-		}
-
 		if (rc == 0) {
 			return 0;
 		}
@@ -1992,6 +1987,42 @@
 				t->frequency,
 				pol[0], t->symbol_rate, fec2str(t->fec), rolloff2str(t->rolloff), qam2str(t->modulation));
 		}
+		else if (sscanf(buf, "S2 %u %1[HVLR] %u %4s %4s %6s\n", &f, pol, &sr, fec, rolloff, qam) >= 3) {
+			t = alloc_transponder(f);
+			t->delivery_system = SYS_DVBS2;
+			t->modulation = QAM_AUTO;
+			t->rolloff = ROLLOFF_AUTO;
+			t->fec = FEC_AUTO;
+			switch(pol[0]) 
+			{
+			case 'H':
+			case 'L':
+				t->polarisation = POLARISATION_HORIZONTAL;
+				break;
+			default:
+				t->polarisation = POLARISATION_VERTICAL;;
+				break;
+			}
+			t->inversion = spectral_inversion;
+			t->symbol_rate = sr;
+
+			// parse optional parameters
+			if(strlen(fec) > 0) {
+				t->fec = str2fec(fec);
+			}
+
+			if(strlen(rolloff) > 0) {
+				t->rolloff = str2rolloff(rolloff);
+			}
+
+			if(strlen(qam) > 0) {
+				t->modulation = str2qam(qam);
+			}
+
+			info("initial transponder %u %c %d %s %s %s\n",
+				t->frequency,
+				pol[0], t->symbol_rate, fec2str(t->fec), rolloff2str(t->rolloff), qam2str(t->modulation));
+		}
 		else if (sscanf(buf, "C %u %u %4s %6s\n", &f, &sr, fec, qam) >= 2) {
 			t = alloc_transponder(f);
 			t->delivery_system = SYS_DVBC_ANNEX_AC;

[-- Attachment #5: Type: text/plain, Size: 150 bytes --]

_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

  parent reply	other threads:[~2008-11-01 15:11 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-10-25 21:52 [linux-dvb] [ANNOUNCE] scan-s2 is available, please test Alex Betis
2008-10-28  9:27 ` oleg roitburd
2008-10-28 19:23   ` Alex Betis
2008-10-28 20:05     ` oleg roitburd
2008-10-28 20:20       ` Alex Betis
2008-10-30 22:10         ` Alex Betis
2008-10-31 11:58           ` Goga777
2008-10-31 12:06             ` Alex Betis
     [not found]             ` <157f4a8c0811030703w195a4947uab8c3076173898e5@mail.gmail.com>
2008-11-03 18:04               ` hudo kkow
2008-11-03 20:12                 ` Alex Betis
2008-11-04 15:50                   ` Hans Werner
2008-11-04 16:11                     ` Alex Betis
2008-11-12 19:31           ` Alex Betis
2008-11-13  0:57             ` Hans Werner
2008-10-29 15:51 ` Mika Laitio
2008-10-29 19:19   ` Alex Betis
2008-10-29 21:27     ` Mika Laitio
2008-10-30  4:29       ` Alex Betis
2008-11-01 15:11 ` Michel Verbraak [this message]
2008-11-01 15:20   ` Goga777
2008-11-01 15:44     ` Michel Verbraak
2008-11-01 15:50       ` Goga777
2008-11-01 15:59         ` Michel Verbraak
2008-11-02  5:06           ` Alex Betis
2008-11-03 15:20             ` hudo kkow
2008-11-02  5:03   ` Alex Betis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=490C7194.8060603@verbraak.org \
    --to=michel@verbraak.org \
    --cc=alex.betis@gmail.com \
    --cc=linux-dvb@linuxtv.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox