There are two new versions of VirtualDub now available through SourceForge on the download page.
The first release is a new stable release, 1.9.11. This release contains only one new change over 1.9.10, which is the addition of a filter compatibility mode. When I rewrote parts of the filter system early in the 1.9.x series to support more powerful filters, I hadn't realized that I had broken some filters that relied on the source and output buffer addresses being static (which I think was stated in early filter SDKs). Originally I only knew about two filters that had this issue, but after a few more were discovered I decided a backwards compatibility flag had to be added. In 1.9.11, you can now flag a filter instance as needing static buffers, in which case the filter system will allocate additional bounce buffers and copy frames in and out. This fixes filters that had frame glitch issues, at the cost of a slight amount of overhead.
1.10.0 is the new experimental version and is, for lack of a better description, flushing out everything I had in my dev branch. (The version number is a bit goofy, but I couldn't bring myself to call it 2.0.) It contains all fixes in the stable branch through 1.9.11, as well as new features:
- Multithreaded filter system. This is enabled via Options | Preferences | Threading, and it allows multiple filters in the same chain to execute concurrently. For API reasons it isn't possible to run the same instance in parallel, so this won't help if you only have one filter, but if you have more than one, they can run in parallel and make use of multiple cores. This can work with any filter, but it may break some filters that were relying on back channels to pass data (thus the option).
- Multithreaded video compression. Similarly to filters, codecs also generally can't be run in parallel without special support from the codec. However, a special case is codecs that produce a format with only key frames, such as Huffyuv. 1.10.0 now allows the codec thread count to be raised above 1 for this case to use multiple CPU cores for compression.
- Raw video support. 1.10.0 now includes input and output modules for video streams written as a stream of raw frames. Almost any format supported by the internal blitter library can be read or written, and thus encoding, color space, scan line alignment, and orientation can all be specified.
- Enhanced color space support. The internal blitter library now supports a wider variety of formats, including full-range YCbCr and planar Rec. 709 encodings. Support for these is limited but will be expanded over time; the "alias format" filter allows some types of mistagged formats to be corrected such that conversions for display or encoding can work properly. The Direct3D9 display driver has also been updated to directly support these formats without an intermediate conversion.
- External encoder support. 1.10.0 can now use external programs for encoding and multiplexing through command-line templates and stdin/stdout data transfer, without requiring support for a VirtualDub-specific plugin API. With appropriate encoding programs, this allows encoding to formats that aren't internally supported, such as H.264. This also makes it easier to encode to custom formats, as all that is required is a CLI program that accepts raw data through stdin.
Full change lists for the two versions after the jump. Happy holidays, everyone!
Build 32842 (1.9.11, stable): [December 24, 2010]
* Filters: Added compatibility option for filters that rely on constant
Build 33848 (1.10.0, experimental): [December 24, 2010]
* Holding the Ctrl key during drag-and-drop appends instead of replaces.
* "Scan for errors" command is now scriptable
* Save Animated GIF command is now scriptable
* Added ability to import and export raw video.
* Added ability to export through command-line encoders.
* Added support for 0-255 paletted grayscale.
* Added support for Rec. 709 and full range formats.
* Added command to copy source and output frame numbers to the clipboard.
* Render: Added option to show the status window for batch operations.
* Render: Video compressor threading is now allowed for two or more threads
when operating with only key frames.
* Filters: Added multithreading support.
* Filters: Added "gamma correct" filter.
* Filters: Added "alias format" filter.
* Filters: Re-added deblurring mode to IVTC filter and added preview
* Filters: Added frame drop mode to IVTC filter.
* Images: TGA RLE compression can now be disabled.
* Images: Added support for PNG alpha channel.
* Capture: Multiple capture devices with the same name now appear with a
* AVI: The non-zero start warning can now be disabled in preferences.
* AVI: The number of filename counter digits used when saving segment
sequences is now configurable.[bugs fixed]
* Reduced priority of ASF pseudo-handler to avoid interfering with input
handlers that detect by filename.
* AVI: The preferred handler (fccHandler) field in the video stream is now
ignored by default for consistency (unless re-enabled in preferences).
* UI: Limit minimum window size to avoid caption redraw artifacts.
* UI: Fixed bug where aspect ratio of panes in unconstrained aspect mode
would drift when auto-sizing was enabled.
* UI: Select Range command is now disabled when no video is loaded.
* UI: Audio conversion dialog no longer occasionally says "No change
(8-bit)" for compressed formats; this was sometimes incorrect as when
that option was selected the pipeline actually used what the codec
produced, which was usually 16-bit.
* UI: Video codec dialog now scrolls the list on open to always show the
last selected codec.
* UI: The Configure and Cropping buttons in the filter list dialog no
longer lose focus when clicked.
* UI: Mouse wheel scrolling now works in the filter preview and curve
* JobControl: Auto-shutdown now works over remote desktop and records a
planned shutdown on server versions of Windows.
* Images: PNG images with 16-bit/channel grayscale or RGBA format now load
* Images: Fixed GIF autodetect code checking the footer instead of the
* Hex editor: Fixed icon in RIFF tree window.
* Filters: Switched the frame that the IVTC filter drops in reduce frame
rate mode to match the old pre-filter algorithm.
* Filters: Cropping dialog now opens at the currently selected frame.
* Filters: Fixed warp sharp filter in 3D acceleration mode.