I can’t tell you the nitty-gritty of how it works, but it does not require TV Headend. In fact, it can tune in on its own if passed correct command line arguments, but it doesn’t have built-in documentation so it’s a bit difficult to remember. Here’s what I’ve been told by the engineer that works on it:
ondd can tune direct, without the need for tvheadend. I
haven’t verified, but I have my doubts that tvheadend maintains a constant
The args are:
-f frequency to tune to in Mhz
-s symbol rate in ksym
-p Vertical or Horiontal
-t enable 22Khz tone
So for Galaxy 19 here which id 12.177Ghz Vertical, with a
universal LNB is:
ondd -f $((12177-10600)) -s 23000 -p V -t
So as you can see, the main advantage is that TVHeadnend does its share of work to stay tuned (or so it appears, anyway). Either way, as long as the tuner is tuned in, ondd can use the LinuxTV API to get the data. I believe this applies generally to any LinuxTV API client, but I’m not an expert in that domain.
Another interesting thing you may want to take a look at is the database ONDD uses to track downloads, which is located at
/var/lib/ondd/ondd.db. It’s an SQLite database.