¶VirtualDub 1.8.7 and 1.9.0 released
I haven't had as much time as I'd like to work on VirtualDub, which is unfortunately why it's been three months since the last release. Time to rectify that.
Both 1.8.7 and 1.9.0 are now up on SourceForge. 1.8.7 is a bugfix only release, with the one major fix being to the distributed job system. It turns out that the distributed job code wasn't that stable and would often attempt to run the same job on multiple machines, due to essentially a race condition in the filesystem. The new version now has logic to detect job start conflicts and retry with exponential delay, which should be more reliable. I also rewrote the conflict resolution logic, which is now more similar to the two-way and three-way merges that a revision control system has to deal with.
1.9.0 is of course the new experimental build and contains a number of new features and changes. I spent some time closing the gap in functionality between the x86 and AMD64 builds, so although the AMD64 build may still not be as well optimized, several features that were previously absent in the AMD64 build are now implemented. I've also thrown in a built-in AMD64-capable Huffyuv decoder that handles some of the popular post-2.1.1 extensions. Second, the internal display and blitter libraries got overhauled quite a bit. The uberblit system that backs the resampler in the 1.8.x series has been cleaned up and expanded, and now handles many of the complex blit scenarios that were previously handled by custom code or multi-stage blits. As a result, VirtualDub 1.9.0 can now handle several new image formats, including the 10-bit per channel v210 format and the interleaved NV12 format. The display library has also been upgraded to handle the new formats, and in particular the Direct3D module can now accelerate display of 10 bit/channel v210 video with dithering. The new formats are not yet exposed to video filters -- mainly because the thought of trying to work directly in v210 scares me -- although I'm not ruling out the possibility of a 14-bit fixed point linear color format in the future.
Changelists are after the jump.
Build 30080 (1.8.7, stable): [December 21, 2008]
[bugs fixed]
* Wheel scrolling now works in the filter crop dialog.
* Added clamp in audio conversion dialog to prevent invalid custom sampling
rates.
* DV: Audio error concealment now works when the PAL/NTSC bit in a frame is
incorrect.
* Capture: Added option to ignore DirectShow video timestamps when capture
driver timing is busted.
* JobControl: Rewrote sync mechanism to fix problems with multiple machines
attempting to run the same job.[regressions fixed]
* JobControl: Fixed crash if job list couldn't be flushed on exit.Build 30586 (1.9.0, experimental): [December 21, 2008]
[features added]
* Added internal Huffyuv decoder.
* Added "crop to selection" command.
* Frameserver startup is now scriptable.
* MJPEG decoder now uses Rec. 601 color space instead of JFIF.
* 4:4:4 planar YCbCr (YV24) is now exposed in the Video Color Depth dialog.
* Added support for 4:2:2 10-bit YCbCr (v210) and 4:2:0 YCbCr with
interleaved chroma (NV12).
* Moved "add as batch job" form of save operations to a separate menu to
reduce confusion.
* The audio playback device can now be selected in Preferences.
* AMD64: MJPEG decoder is now available.
* Filters: Warp sharp added as internal filter with YCbCr 4:4:4 support.
* Filters: Perspective filter now supports bicubic filtering.
* Filters: Blur and Blur More are now supported on AMD64.
* Filters: Brightness/contrast filter now supports RGB24 and planar YCbCr
formats.
* Filters: Levels filter can now work directly in YCbCr formats when luma
mode is enabled.
* Filters: Bob doubler now allows deinterlacing to be disabled.
* Filters: Preview now keeps current position.
* Filters: Holding SHIFT when adjusting cropping now aligns to 16 pixel
size boundaries.
* Display: OpenGL driver supports bicubic filtering.
* Display: The fallback to GDI when the app goes into the background can
now be disabled.
* D3D: Added high-precision pixel shader 2.0 display mode with dithering
for slightly better color fidelity.
* D3D: HDYC, v210, and Pal8 are now decoded in hardware.
* JobControl: The system can now also be put into sleep or hibernation at
the end of job queue processing.[bugs fixed]
* Fix for ACM decoding/encoding errors with some audio codecs related to
requesting a conversion with 0 source bytes.
* SaveWAV() script command showed error dialogs instead of redirecting the
errors.
* Audio display: Ctrl+Drag now explicitly says "shift audio" to avoid
confusion.
* Capture: Fixed accumulation of "no device found" entries in the menu.
* DDraw: Workaround for rare DWMAPI.DLL->USER32.DLL load errors on XP.
* Display: Fixed bug where panes didn't redraw when disabled during a
render operation.
* Display: Fixed disabled panes or panes showing end frames drawing bluish
colors rather than the correct Windows background color.