Thursday, February 8, 2007

VirtualDub 1.7.1 (27021) released

Animated GIF support is indeed in this version. I experimented with an animated palette delta trick that a reader suggested, and it does indeed create some really nice animated GIFs. (For the three of you who remember my really old DOS paint program, I pulled the adaptive palette generation code from it.) Animated GIF output wasn't really meant to be a real feature in VirtualDub, particularly since I don't want to implement two-pass encoding just for an optimized global palette, so the output path doesn't have options and tends to write enormous files. Still, if you want to experiment with it, you can do so via the Tools > Create Animated GIF menu option.

There are a few other miscellaneous features in this version as well. I threw in a CPU version of the "warp resize" display pixel shader I posted a while back, and the "display decompressed output" option can now be toggled on the fly, so you can preview part of a save operation without slowing down the whole thing.

The real features in this version, though, are all due to me screwing around a bit with 3D acceleration.

First, the Direct3D and D3DFX display minidrivers now have hardware YCbCr acceleration support for most formats, including UYVY, YUY2, YV24, YV16, YV12, I420, and YVU9. I used pixel shaders for this, so it's not vulnerable to the imprecise or incorrectly ranged hardware conversions that the DirectShow Video Mixing Renderer 9 sometimes hits with StretchBlt(). Also, the D3D9 and D3DFX minidrivers now have full support for field display modes. The plan is to eventually switch the default display path from DirectDraw to Direct3D for Windows Vista, but I'm not ready to make the switch yet, as I'm still seeing annoying issues with Vista and NVIDIA display drivers... and I haven't gotten around to reinstalling Vista RTM on my ATI-based machine to figure out who to blame.

More @