Current version

v1.10.4 (stable)


Main page
Archived news
Plugin SDK
Knowledge base
Contact info
Other projects


Blog Archive

VirtualDub 1.9.7 released

VirtualDub 1.9.7 is now out, and is another stable release containing only bug fixes for reported problems.

The most important fix in this version is a change to the code that reads AVI hierarchical indices. Normally these indices are only two levels deep, with a master index in the header and subindex blocks covering no more than 4GB. If you're wondering whether deeper indices are possible, the answer is an emphatic yes. It turns out there's at least one hardware/software editing solution that produces AVI files with deep index trees, because it links all of the subindex blocks with internal nodes arranged in a degenerate tree. The trace I received of a 46GB capture showed a tree more than 20 levels deep. This was causing a crash in 1.9.6 because of some changes that I made a while back to fix slow index reading speed problems over a network; in doing so I had increased the size of an I/O buffer on the stack and this was causing a stack overflow. 1.9.7's index read routine has much lower stack usage and should be able to read AVI files with deeply nested indices again.

I've been spending some time in the dev branch trying to add new raw video formats to the blitter library, and I think I've spent so much time in Scilab staring at YCbCr matrices that they're all starting to blur together. Nevertheless, the blitter autotests are finally passing again (although at a slower rate, since the test matrix is now 37x37 instead of 17x17), and I think I'm finally making some progress here. The next step would be to add support for the new formats to the video source and display paths, which should finally get some of these new formats into a usable path. Some optimization would be needed after that since all of the new formats are currently leveraging a lot of unvectorized C++ code, but we'll see how that turns out.

Build 32661 (1.9.7, stable): [October 18, 2009]
   [bugs fixed]
   * AVI: Modified indexing traversal to handle deeply nested hierarchical
   * Filters: Rescaling after changes to filter chain now extends or trims
     ending ranges as needed to match changes to frame count.
   * Filters: Fixed bug where a filter capable of both 3D accelerated and
     unaccelerated modes (resize) could force a conversion to YV24 at its
     input when RGB32 was a better match.
   * Filters: Filter preview no longer always runs the filter chain with the
     input video mode set to default.
   * Display: Added workaround for video card/driver combos that perform
     extremely poorly with DirectDraw/Direct3D blits overlapping a secondary
     monitor. This can be toggled in Options > Preferences > Display.
   * Command line: The warning dialog at the end of command line processing is
     now suppressed if /x is specified.
   [regressions fixed]
   * Filters: Fixed filter errors not showing up properly.
   * Filters: Fixed crash when PNG decoding error occurs with logo filter.
   * Filters: Fixed random crash when opening Video Filters dialog before
     opening any videos.


This blog was originally open for comments when this entry was first posted, but was later closed and then removed due to spam and after a migration away from the original blog software. Unfortunately, it would have been a lot of work to reformat the comments to republish them. The author thanks everyone who posted comments and added to the discussion.