Had a pretty productive evening. Submitted a patch to Mauro to separate out the two variants of the HVR-900 so we don't think the newer variant has the Zarlink demodulator. After looking at the code, I think we might have accidentally disabled DVB support in the device at some points, since the "has_dvb" field isn't set to '1'.
After going through some dependency hell (missing header/install package/rinse/repeat), I got Kaffeine to compile on my Ubuntu 8.04 box. Hacked in support for ATSC scanning where appropriate. It doesn't quite work yet, but it does get signal lock, shows the signal strength and SNR, so I'm pretty close. Just looks like I have to get the PSIP parsing working and it will be good to go.
It would be great if I could get a patch submitted this weekend.
Unfortunately Kaffeine looks like one of those programs that "gets the job done" but the code is kind of a mess. Ran into lots of cases where there were "if/elseif/else" blocks where if the code didn't see one of the expected values it would just silently do a return from the function without any logging or error message.
I guess the fact that I basically got it working in one night suggests it couldn't be too bad...