11/9/2003 News: VirtualDub 1.5.9/stable released

VirtualDub 1.5.9/stable released get it here http://www.virtualdub.org/

Changelog:

It's Sunday again. I don't plan to keep this pace forever, but you might as well enjoy it while you can. :)

The major fix in this version-of-the-week is for a dumb oops in a fast display copy routine, but one fix that isn't mentioned in the release notes is that I fixed a lot of compile errors that only occur under Visual Studio .NET 2003. VirtualDub's main compiler is still Visual C++ 6.0 SP5+PP, and not .NET 2003, because I refuse to put up with the slow, half-broken IDE of the latter. (It's not that I'm unfamiliar with the 2003 IDE, because I use it at work. It's just that I hate it.) However, apparently some people are trying to compile VirtualDub under 2003 and are discovering that there are a lot of compile errors due to new overloads of C runtime functions that Microsoft added to the RTL for improved standards compliance. I've added the requisite casts to fix that problem; VS.NET 2003 users should also disable buffer security checks (/GS) and warnings 4018 and 4244 on the imported project.

There are two other major incompatibilities between VC6 and VC7.1 that you may encounter. One is that some of my VC6 resource scripts have "#include "afxres.h"" replaced with "#include "winres.h"" to allow the .rc to compile without MFC installed. VC7.1 has a newer Platform SDK header set so this must be substituted instead:

#ifndef IDC_STATIC
#define IDC_STATIC (-1)
#endif
#include "winresrc.h"

The other is a problem with the definition of the wide character functions in the RTL, such as iswspace. There are both library and inline versions of the functions, and unfortunately, depending on which of <wchar.h> and <ctype.h> you include, either can get used. If one module uses library wide-char functions and the other uses inline functions, you get a link error even if the same function isn't used. This wouldn't be much of a problem except apparently the two headers are referenced in interesting ways through other header files and I've found it's very easy to produce a project that links on VC6 and doesn't link on VC7.1, and vice versa. This is very annoying. I want to create a system where I can work on VirtualDub and VC6 and batch-create the corresponding .sln and .vcproj for VC7.1, but this won't be possible if I constantly have to frob code around to get _iswspace to link correctly.

Current build (1.5.9, stable):
[features added]
* Made 'autodetect additional segments by filename'
option sticky.
* Removed trackbar ticks when ticks are a solid bar
to speed up edits on very long timelines.
* Added option to disable use of DirectX in video
displays under Preferences/Display.

[bugs fixed]
* Fixed odd lock-to-keyframe behavior with edit lists
that have out of order segments.
* Fixed move-to-next-keyframe command at end of time-
line.
* Fixed decompression of 1-bit and 4-bit uncompressed
AVI files under Windows 95/98.
* Audio compression dialog showed the wrong set of
valid formats if a precision was selected under
Audio Conversion.
* The current edit list is no longer applied to batch
jobs created from entire directories.

[regressions fixed]
* Fixed display crashes with odd-width images.
* Segment loading wasn't hopping across drives to pick
up segments from a multisegment capture, as directed
by the AVI's segment hint block.
 
Top