[vlc-devel] [vlc-commits] access: dtv: try some default bandwidth values
dheitmueller at kernellabs.com
Tue May 17 18:32:48 CEST 2016
>> 0 is the value for auto in DVBv5 and it *is* supported. RTFS.
So this is a messy topic, so I'll do my best to explain.
You can specify a value of zero *sometimes* in order to have the
bandwidth be automatically detected. In order for that to work, both
the driver and the underlying chipset have to properly support
automatic bandwidth detection. In theory, userland can make this
determination by checking the frontend caps for FE_CAN_BANDWIDTH_AUTO.
Further, a properly implemented driver will allow you to set the
bandwidth to auto and then after the tuning request is completed you
should be able to read the property back out to get what it actually
got negotiated as. This is useful for generating channel scan lists,
since you can specify auto during the scan and then store the actual
value in the scan results file (so that the scan file can be used by
other devices which don't support bandwidth auto).
In practice, it's a total crapshoot. While most chipsets support
automatic bandwidth (in particular for modulations that support
multiple bandwidths), it often isn't properly implemented in the
driver. This means some drivers advertise bandwidth auto but it
doesn't actually work if you specify auto in a tuning request. Other
drivers will *always* program the demodulator in auto mode regardless
of what bandwidth you specify (i.e. if you do a tuning request and
specifically say 8Mhz and the actual channel is at 7MHz, the tuning
request will succeed in a case that you could argue it should fail).
And some drivers fail to set the bandwidth in the driver's cache after
the tuning request, which leads to incorrect results if a scanning
tool attempts to read back the value.
Note that unlike stuff like zigzag, there is no emulation in the DVB
core to provide "auto" functionality in cases where it isn't supported
by the hardware. Hence you really are dependent on whether the
hardware supports it and it's properly implemented in the frontend
Devin J. Heitmueller - Kernel Labs
More information about the vlc-devel