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

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

 



Em Wed, 10 Feb 2021 16:13:56 +0100
Stefan Seyfried <stefan.seyfried@xxxxxxxxxxxxxx> escreveu:

> 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);

This will likely break for DVBS2. What should be done here would
be to check if the returned parameters fit on DVB-S or DVB-S2.

So, it should be like:

	if (d->modulation_system != QPSK || (d->roll_off && d->roll_off != ROLLOFF_35)
                  dvb_store_entry_prop(new, DTV_DELIVERY_SYSTEM,
                                       SYS_DVBS2);
       else
                  dvb_store_entry_prop(new, DTV_DELIVERY_SYSTEM,
                                       SYS_DVBS);

Perhaps it should also test FEC as well, as some are only available
on DVB-S2.

Regards,
Mauro

Thanks,
Mauro



[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