I dropped the older KB entries, but they're basically redundant with the change log in Virtual Dub.I put together a new Athlon 64 based system a few days ago, installed the preview of Windows XP for 64-bit Extended Systems and the prerelease AMD64 compiler, and hacked up the Virtual Dub source code a bit. It plays MPEG-1 files, but nearly all of the assembly optimizations are disabled and none of the video filters work, so it's still far behind the 32-bit version, but it's still neat to be able to experiment with 64-bit code.Well, after installing XP64, I was vindicated — none of the VS.NET IDEs will install on it, because they rely on the 32-bit .That is a valid question, given that I don't really like Direct3D (which I affectionately call "caps bit hell").The reason is that I wrote a basic Open GL display driver for 1.5.5 and found that it was unusable due to a bug in the NVIDIA drivers that caused a stall of up to ten seconds when switching between display contexts.I know a few of you are going to yell out "use compiler intrinsics," but please look at this first: push ebp mov ebp,esp and esp,0FFFFFFF8h sub esp,8 movd mm1,dword ptr [ebp 8] pxor mm0,mm0 punpcklbw mm1,mm0 movq mm0,mm1 movq mm2,mm0 punpckhwd mm2,mm1 movq mm1,mm2 punpckhwd mm1,mm2 pmullw mm0,mm1 psrlw mm0,8 movq mmword ptr [esp],mm0 emms movq mm0,mmword ptr [esp] movq mm1,mm0 packuswb mm0,mm1 movd eax,mm0 mov esp,ebp pop ebp ret push ebp mov ebp,esp and esp,0FFFFFFF8h sub esp,8 movd mm1,dword ptr [ebp 8] pxor mm0,mm0 punpcklbw mm1,mm0 movq mm0,mm1 punpckhwd mm1,mm0 movq mm2,mm1 punpckhwd mm2,mm1 pmullw mm0,mm2 psrlw mm0,8 movq mmword ptr [esp],mm0 emms movq mm0,mmword ptr [esp] movq mm1,mm0 packuswb mm1,mm0 movd eax,mm1 mov esp,ebp pop ebp ret This, historically, is why I have not bothered to use MMX/SSE/SSE2 compiler intrinsics in Virtual Dub — the code generation sucks.
We've been using simply bilinear for too long, and it's time we had better quality zooms accelerated on the video card.
And with AMD64, that means I'm going to have to duplicate and reflow a lot of it.
I finally caught that nasty head cold that seems to be travelling everywhere this month.
Some do that and have unused space betweeen the Cr and Cb planes (weird). And a few simply don't support it (lame but pragmatic). Unfortunately, no one seems to have bothered to ever define the YV12 format properly in this regard, and thus we have massive confusion.
First, I finally fixed the FAQ link from the program, and also updated the knowledge base for known bugs in 1.5.10.