w_scan is a very useful tool, because it can scan DVB-C/T/S and ATSC channels without any prior knowledge of frequencies. It’s been a while since I last used it, but now I got a new TV tuner card and did a new scan with it, only to discover that the Rai channels were no longer detected.
The first problem was that the last version of w_scan discards duplicate transponders, and the one it keeps is the first one it finds. In my area, I get a signal from multiple antennas, and the one with the strongest signal is at a higher frequency so it gets discarded as a duplicate.
Once I fixed this problem by disabling check_duplicate_transponders() in the source code, I found another one: the second transponder, the one I wanted scanned for channels, was advertising a third one, with a shitty signal strength. w_scan took this advertisement and completely replaced the second transponder with the third one.
So I fixed that too, and put it all under an optional flag (-K, —keep-duplicate-transponders) that finally scans everything I want to scan. The patch is here and if you’re a Gentoo user you can install the patched package with “layman -a stefantalpalaru; emerge w_scan”.
Now “w_scan -ft -c IT -E0 -O0 -t2 -K -L > channels.xspf” gives me the perfect input file for “vlc –dvb-budget-mode channels.xspf” (the “–dvb-budget-mode” parameter is needed by Mediaset channels because they fucked up something in the implementation).