[linux-dvb] DVB API update
wolfgang at leila.ping.de
Mon Sep 17 21:18:09 CEST 2007
On Mon, Sep 17, 2007 at 06:02:50PM +0200, Johannes Stezenbach wrote:
> On Sat, Sep 15, 2007, Wolfgang Wegner wrote:
> > - dvb_fe_type: DVB-S2 is missing and I personally would also like
> > to see ASI here...
> See my other mail, IMHO we should add the ASI defines at
> the same time we merge a driver which uses it.
Well, on the other hand this can prevent from others (hardware
vendors?) to have a deeper look into the linux-dvb api because
it does not even care about ASI.
Again, I think the "dummy" frontend approach from Manu could be a
viable solution, but you should have the possibility to add a basic
frontend with minimal status information (lock/no lock) without
> > - frontend status:
> > - BER is lacking a proper definition (to which base is it calculated?)
> > - signal strength: same problem, what are the ranges?
> > - snr: again, no base and ranges given
> The original Nokia DVB API spec had proper definitions, but
> Holger Waechtler and me decided to drop them in favour of
> "read hw register and scale to range 0..0xffff". The reasons
> for this were:
> - for some hw we didn't have info to implement it properly
> - for those hw where we had info we saw it wasn't worth the
> effort -- I believe the implementation in the demod firmware
> is just such a coarse approximation that it doesn't
> even make a difference if you take the logarithm or not
> (provided you scale back into the 16bit range)
> (of course you get different numbers, but none of them
> maps any better to what you'd expect)
I do not have info about much hardware, all I can say is that
BER and SNR work quite good with STV0299, STV0288, TDA10046 and
TDA1002x. This is reason enough for me to raise the hand for
voting for an interface that at least gives the possibility
to implement this in the demod driver.
(I have to admit that you have to use some basic averaging, but
if this could be handled in some kind of frontend thread, I see
no problem. I will see how this can be implemented without floating
point calculation, because up to now this was done on another
platform where floating point was not an issue.)
The main reason to do this is because this is the only place
where it _can_ be done! The application accesses the demod through
the API and does not know anything about its registers or anything,
neither should it.
BTW, the "scale to range 0..0xffff" does not seem to be true for
all demods (at least this is what I remember), and at the very least,
this scale and direction (0 = best or worst?) should be clearly
stated in the API!
More information about the linux-dvb