I was on a call with someone a few weeks ago, and they mentioned that they had been unable to get NTSC closed captions to display within VLC on the HVR-950q. Thinking that perhaps he was not the only person who had trouble figuring it out, I figured it would be worthwhile to walk you through the sequence.
The key to getting captions to work is specifying the VBI device. Because even in 2013 the V4L2 API still lacks any way to associate a /dev/vbi device with a /dev/video device, the path to the device node must be manually specified.
First, go to "File->Open Capture Device". The following...
21 Jun 2013 |
Posted by Devin Heitmueller | 0 Comment.
It's been a while since I posted anything on the Kernel Labs blog, but we've been diligently working away at various projects. A few things probably worth noting:
A while back I did a bunch of VLC improvements, which finally went into the upstream VLC a couple of months ago. I actually made a quick video at the time which showed the difference, but never got around to posting it. Well, here it is:
Some of the improvements are subtle - fixes to specific characters not properly rendered, the presence of support for colored and italic text (only noticable if actually showing...
21 Oct 2012 |
Posted by Devin Heitmueller | 10 Comments.
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.
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.
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...
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.
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...
24 Jun 2012 |
Posted by Devin Heitmueller | 7 Comments.
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...