21 Oct 2012 |
Posted by Devin Heitmueller | 10 Comments.
10
Last year I did some work related to EIA-608 closed captioning support for VLC. This basically broke down into two projects: 1. Providing support to VLC to support reading CC data from the /dev/vbiX Video4Linux2 device node. 2. Improving the rendering of the captions to be more consistent with the official specification.
While I was pretty happy with the outcome, I never got around to get the changes submitted upstream (they were originally done against version 1.1.15). Over the last year, the mainline has continued to evolve, and now the patches no longer apply.
Over the last couple of weeks...
Most people are unaware of this, but Kernel Labs isn't just a Linux shop. We actually do a fair bit of work under OSX as well. In fact, Steven Toth created the very popular HDPVRCapture application prior to the founding of Kernel Labs.
Aside from the copyright notice, most people are unaware that HDPVRCapture is a Kernel Labs product. That said, in the future we're going to be providing some more discussion on HDPVRCapture on kernellabs.com, starting with some "behind the scenes" looks into what's we're working on.
First off, let's talk about Colossus. The Hauppauge Colossus is a PCIe...
30 Aug 2012 |
Posted by Devin Heitmueller | 1 Comment.
1
In addition to writing Linux drivers, I've done quite a bit of work with hardware in my time, including a variety of tuner products. I realize that those devices in general do run a bit warm, but this is largely just a byproduct of the nature of how tuners work.
This ambitious user though felt the need to add a heatsink to his HVR-950q.
As the author of the HVR-950q Linux driver, let me assure you that this was not necessary, and not an indication that there is anything wrong with the hardware. In other words, kids, don't try this at home...
On the technical end, people have noticed...
06 Aug 2012 |
Posted by Devin Heitmueller | 3 Comments.
3
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
au0828:...
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...
If you've ever had to poke at a DVB driver under Linux, you'll notice that the configuration for the demodulator and tuner refer to an "IF". For example, with the xc5000 driver, there is a mandatory parameter called "if_khz" which has to be provided when the driver is initialized.
What is an IF, and what role does it play in making tuners work under Linux?
"IF" stands for "intermediate frequency". To understand the role of the IF, we need to first take a step back and understand what a tuner actually does. A tuner takes a slice of the available spectrum coming in on the antenna, and outputs...
25 Jun 2012 |
Posted by Devin Heitmueller | 10 Comments.
10
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:
http://git.kernellabs.com/?p=dheitmueller/cx23885_fixes.git;a=shortlog;h=refs/heads/950q_fixes
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...
24 Jun 2012 |
Posted by Devin Heitmueller | 7 Comments.
7
Well, that was painful. After a full day working with the various cards, I managed to get all of them working.
A couple of caveats:
The analog tuner on the HVR-1250 isn't supported yet. The composite and s-video inputs are working but the mt2131 driver doesn't have the required support for tuning to analog stations. The analog tuner is supported though on the HVR-1255, 1800 (both retail and OEM), 1850, etc. (since it's a different chip)
While ALSA audio when doing raw capture *is* working, it doesn't seem to work with tvtime for some reason (I added the original ALSA capture support...
23 Jun 2012 |
Posted by Devin Heitmueller | 0 Comment.
0
Ever wonder why it's so common for somebody to check in a change to make some new product work, causing a regression in the tuner that *you* have? Well, here's why:
All these boards use the exact same driver, despite the fact that they have different core chips and only some of them have an onboard MPEG encoder.
To make matters worse, look at all the different input types:
Even getting all the equipment together to do the testing is a PITA. I spent twenty minutes digging through boxes for a RCA L/R audio to 1/8" audio converter.
It's trivial to accidentally make a change which...
21 Jun 2012 |
Posted by Devin Heitmueller | 0 Comment.
0
Been doing some HVR-950q debugging for the last couple of weeks. Finally getting around to cleanup on some existing patches that haven't gotten upstream, as well as investigating some new reliability problems.
Out of concern that one of my problems might be power related, I dug up some hardware I hacked together about four years ago.
Q: What does this rig do?
It lets you see how much power the device is consuming? In the second photo you can see the tuner is drawing 416 milliamps while tuning to an analog channel.
Q: Why should I care?
Power consumption is a good indicator...