Almost two weeks ago we imported tvtime into our source repository. My initial plan was to import in the current CVS, pull in all the distro patches, fixup the VBI, add ALSA audio, and then spin a release. Well, I seem to have gotten a bit stuck on the ALSA audio.
It would appear that my attempts to make lipsync work properly, which requires low latency, have exposed bugs in various drivers. My original efforts with the HVR-950 exposed a kernel panic, which Douglas Landgraf was kind enough to offer to debug. To stay on track, I switched over to my HVR-950q, and was seeing a condition where underruns would stall the capture stream, which wouldn’t restart again until closing the PCM device and reopening it.
While I originally thought this was a bug in my tvtime code, some analysis of the usb-snd-audio driver suggests that it’s another kernel bug, where the prepare() callback is deactivating the URBs, but nothing ever reactivates them again. In other words, the driver works when it is initially triggered, but if anything causes the prepare() callback to be run (such as an underrun), the driver never recovers.
I’m in the process of installing alsa-driver 1.0.21 from CVS. If all goes well, I should be able to nail down the problem in the driver and get back to tvtime development.
Who would have thought that I would get stalled because both tuners I happened to use for testing had driver bugs?