Vrijdag zijn er zowel een nieuwe stabiele als ontwikkelversie van VirtualDub verschenen. Dit programma is bedoeld voor het opnemen en bewerken van video. VirtualDub beschikt niet over een uitgebreide editor, maar is meer bedoeld om te worden gebruikt in combinatie met programma's zoals Adobe Premiere. Versie 1.9.11 bevat slechts één bugfix, maar in 1.10.0 bevat diverse nieuwe mogelijkheden, waaronder een multithreaded filter system en video compression en de ondersteuning voor externe encoders.
VirtualDub 1.9.11 and 1.10.0 released
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:
Full change lists for the two versions after the jump. Happy holidays, everyone!
- 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.