06 Aug 2012 |
Posted by Devin Heitmueller | 3 Comments.
After a rather large bug hunt, I've finally submitted the HVR-950q patches upstream. In the end, we created 24 patches addressing a ton of longstanding bugs:
au8522: fix intermittent lockup of analog video decoder
au8522: Fix off-by-one in SNR table for QAM256
au8522: properly recover from the au8522 delivering misaligned TS streams
au0828: Make the s_reg and g_reg advanced debug calls work against the bridge
xc5000: properly show quality register values
xc5000: add support for showing the SNR and gain in the debug output
xc5000: properly report i2c write failures
Continued debugging has produced another dozen fixes for the HVR-950q. Most of these are low-probability failure conditions (race conditions, etc). However take a bunch of 1/1000 chance items together and you're likely to hit one of them once in a while...
A couple of noteworthy changes:
Firmware load time has been sped up to 2.9 seconds (down from 8-10 seconds). This should eliminate the need for MythTV users to specify the "no_poweoff" xc5000 modprobe since it will now load fast enough to avoid a mythfrontend timeout.
Fix a case where the xc5000 tuner enters a failure state and all subsequent...
25 Jun 2012 |
Posted by Devin Heitmueller | 10 Comments.
I finally spent the day and gathered up all the various patches I had kicking around for the HVR-950q. They can be found here:
This includes the longstanding bug at startup that would cause the xc5000 to not properly bind on the digital side, a rather nasty case that hangs the analog video decoder in adverse signal conditions, and a case where sometimes digital tuning succeeds but doesn't ever return a transport stream to userland. It also resolves the confusion users see when the run tools like...
12 Oct 2011 |
Posted by Devin Heitmueller | 15 Comments.
It's been a while since we've had a blog post, so I figured it would be a good time for an update as to some things going on. We're continuing to work in a number of areas, although in some cases things are moving along "behind the scenes" and are less visible to the public.
First, let's talk about the HVR-950q....
As a result of some consulting we did in the last month, I spent *alot* of time digging into the tuning behavior for the HVR-950q. This included finding several bugs which explain some of the "sometimes tuning just fails" type behavior. These are the sorts of things that only...
06 Jun 2010 |
Posted by Devin Heitmueller | 4 Comments.
If anyone is interested in closed captioning support for the HVR-950q, you can get it from the following tree:
Unfortunately, the work exposed a bug in tvtime which prevented it from working, which I fixed here:
But it *is* working with zvbi-ntsc-cc out of the box.
Comments welcome, as always. Next stop: HVR-950q quality improvements!
03 Dec 2009 |
Posted by Devin Heitmueller | 2 Comments.
I spent the last couple of nights continuing work on tvtime's audio support. I'm able to playback the audio from the capture device, but I am having problems with underruns. It has actually ended up being a non-trivial exercise delivering audio from a tuner to the sound card with less than 30ms of latency (required to maintain lipsync).
The work uncovered a bug in the em28xx-audio module, which Douglas Landgraf volunteered to investigate while I stay focused on tvtime (I sent him code demonstrating the problem last night). I'm also seeing a case on the HVR-950q where there's a roughly 1/4 chance...
07 Oct 2009 |
Posted by Devin Heitmueller | 6 Comments.
Spent tonight continuing to debug the 950q under MythTV. I temporarily disabled the au8522's power management, and the MythTV channel scanner started to see the channels, but it was otherwise behaving quite erratically. MythTV seemed to be trying to do a scan of both the ATSC side and the analog side at the same time, even though both were in the same device group. Also, the "scan for channels" button was disabled in analog mode, which I couldn't understand why. I assumed my device was announcing its capabilities improperly to MythTV, until I realized that the same behavior was occuring with the older...
21 May 2009 |
Posted by Devin Heitmueller | 0 Comment.
Still continuing to clear out my backlog of miscellaneous fixes. Added support for the K-World 2800d (thanks to Paul Thomas for loaning me the hardware and being so patient). While doing that work, I managed to uncover a minor bug in the em28xx audio code (the /dev/audio1 device file was being created even if the device didn't support audio).
One thing I had noticed over the last few months is cases where users would report that ATSC scanning worked but tuning did not. In all of these cases, it turned up that the user was connected to a USB 1.1 port (12 Mbps). For ATSC, that means only about...
Had Tuesday off from work. Spent a couple of hours writing code at a coffee house for a nice change in scenery. Issued a PULL request for the HVR-950q regression, and did more xc5000 merge work.
Spent most of yesterday trying to figure out why my Pinnacle 801e successfully found 24 channels in a Kaffeine scan before the xc5000 power management changes, and why it only got 11-14 channels with the new changes. It turns up I uncovered a race condition in the dvb core in the kernel, which caused the tuning request to not be forwarded to the tuner. All you needed was a dumb channel scanner that kept...
Yesterday was pretty productive. I did a pull request for the Dvico FusionHDTV7 patch that has been pending for a week or so. And I got the Terratec Cinergy T USB XS working before lunch (and added support for the remote control). Spent pretty much the rest of the day trying to figure out why the kernel was hitting an OOPS on the HVR-950Q every time I unplugged it. A regression got introduced a couple of weeks ago. Ick.
Going to try to make the big push today and finally wrap up the xc5000 work. Will need to retest with all the devices, which is a PITA. Fortunately, I own most of them now so I won't...