September 23rd, 2002


Video Capture

I want to buy a video capture card, but I can't decide what I want. The contenders:

Linux Media Labs: LML33
Linux support + hardware compression = can put in my Mini-ITX system.
Bt chipset = good quality.

Linux Media Labs: LML33R10
Linux support + hardware compression = can put in my Mini-ITX system.
$200 = more affordable.
Phillips chipset = worse quality.
Lower MJPEG compression rate = too much bandwidth for network? Probably not.

Hauppauge: WinTV-PCI
Linux drivers
$100-$120 = really cheap
No hardware compression = Would require massive CPU to compress... if I put it in my Mini-ITX system I'm not sure I'd have enough bandwidth to send the uncompressed video to another machine (or rather, 4 machines) to compress and save.

Hauppauge: WinTV-PVR-250
Hardware MPEG-2 compression! (not just MJPEG)
Reasonable price. ($150-ish)
Windows only.

So I guess maybe the smart thing to do would be buy the cheapest thing available locally, make sure there's a good return policy, then work on it really hard right after I buy it, setting up the cluster compression. If I can't get it working well enough, return it, telling the salespeople it crashed Windows randomly every so often while I was using it.

Props to kvance for putting up with my stupid video capture questions.


Working on the UI for my MP3 stereo component.

Pieces involved:

Tiny C program to read the IR receiver.

Perl/Qt 3.0 for the UI... but QThread isn't available in the Perl bindings, and I can't seem to find a way to add a new item to wait on to the main loop's select, except a socket descriptor.

So, have a perl wrapper around Tiny C program that makes C program's output (IR codes received) available over a TCP socket.

Then I'll use a QSocket (hope it's implemented in Perl/Qt!) and a QSocketNotifier to give the Qt main loop an event when a new IR code is available.

If I get this working, then I'll clean it up, either moving to Perl 5.8 threads, or rewriting the C bit in Perl, or writing the Perl network wrapper in C. Or maybe I'll just get it working and be happy, even with 3 processes running to do it.

Qt is pretty cool ... the Perl bindings are a little non-Perl-like, but not bad. Learning the Qt API is taking the most time.

Update: QSocket appears to work. QSocketNofier doesn't. Grrr. Back to square one. Use a QTimer to regularly poll the socket to see if there's anything there? Lame. I guess this is what I get for using just-released bindings.

I could just do this all in C++ I guess. Feh.