[PATCH] v4l-utils: fix DVB-S scan

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

dvbv5-scan did report all channels as DVB-S2, due to broken logic.
Debug output showed "modulation_system DVB-S" correctly, but the code that stores the delivery system for output used a different (IMO invalid) logic. This in turn made drivers that actually care for the delivery system (e.g. b2c2-flexcop-pci / cx24120) unhappy, resulting in incomplete scan results. For drivers that just don't care (e.g. dvb-usb-technisat-usb2 / stv6110x) it "just" resulted in wrong "DELIVERY_SYSTEM = DVBS2" for all channels in scan output.

The patch is attached, because I'm pretty sure that Thunderbird would mess it up. You can also fetch it from

https://github.com/seife/v4l-utils.git fix-dvbs-scan

Best regards,

	Stefan

--- a/lib/libdvbv5/dvb-scan.c
+++ b/lib/libdvbv5/dvb-scan.c
@@ -1118,9 +1118,12 @@ static void add_update_nit_dvbs
                             dvbs_dvbc_dvbs_freq_inner[d->fec]);
        dvb_store_entry_prop(new, DTV_ROLLOFF,
                             dvbs_rolloff[d->roll_off]);
-       if (d->roll_off != 0)
+       if (d->modulation_system != 0)
                dvb_store_entry_prop(new, DTV_DELIVERY_SYSTEM,
                                     SYS_DVBS2);
+       else
+               dvb_store_entry_prop(new, DTV_DELIVERY_SYSTEM,
+                                    SYS_DVBS);
 }

 static void add_update_nit_isdbs(struct dvb_table_nit *nit,
--
Stefan Seyfried

"For a successful technology, reality must take precedence over
 public relations, for nature cannot be fooled." -- Richard Feynman
From 40fff15906b59457adb5d7a1a3ededf6c51af6af Mon Sep 17 00:00:00 2001
From: Stefan Seyfried <seife+dev@xxxxxxxxxxxxxx>
Date: Wed, 10 Feb 2021 15:13:38 +0100
Subject: [PATCH] dvb-scan: fix DVB-S/S2 type reporting

All transponders were reported as DVB-S2, and later tuning with the
resulting channels file failed with drivers that use the delsys field.
(Apparently most modern drivers do not really care, probably this is the
reason this could go unnoticed).

Signed-off-by: Stefan Seyfried <seife+dev@xxxxxxxxxxxxxx>
---
 lib/libdvbv5/dvb-scan.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/lib/libdvbv5/dvb-scan.c b/lib/libdvbv5/dvb-scan.c
index 5c8aca96..0749d262 100644
--- a/lib/libdvbv5/dvb-scan.c
+++ b/lib/libdvbv5/dvb-scan.c
@@ -1118,9 +1118,12 @@ static void add_update_nit_dvbs(struct dvb_table_nit *nit,
 			     dvbs_dvbc_dvbs_freq_inner[d->fec]);
 	dvb_store_entry_prop(new, DTV_ROLLOFF,
 			     dvbs_rolloff[d->roll_off]);
-	if (d->roll_off != 0)
+	if (d->modulation_system != 0)
 		dvb_store_entry_prop(new, DTV_DELIVERY_SYSTEM,
 				     SYS_DVBS2);
+	else
+		dvb_store_entry_prop(new, DTV_DELIVERY_SYSTEM,
+				     SYS_DVBS);
 }
 
 static void add_update_nit_isdbs(struct dvb_table_nit *nit,
-- 
2.26.2


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux