Current version

v1.10.4 (stable)

Navigation

Main page
Archived news
Downloads
Documentation
   Capture
   Compiling
   Processing
   Crashes
Features
Filters
Plugin SDK
Knowledge base
Contact info
Forum
 
Other projects
   Altirra

Search

Calendar

« December 2012 »
S M T W T F S
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

Archives

01 Dec - 31 Dec 2013
01 Oct - 31 Oct 2013
01 Aug - 31 Aug 2013
01 May - 31 May 2013
01 Mar - 31 Mar 2013
01 Feb - 29 Feb 2013
01 Dec - 31 Dec 2012
01 Nov - 30 Nov 2012
01 Oct - 31 Oct 2012
01 Sep - 30 Sep 2012
01 Aug - 31 Aug 2012
01 June - 30 June 2012
01 May - 31 May 2012
01 Apr - 30 Apr 2012
01 Dec - 31 Dec 2011
01 Nov - 30 Nov 2011
01 Oct - 31 Oct 2011
01 Sep - 30 Sep 2011
01 Aug - 31 Aug 2011
01 Jul - 31 Jul 2011
01 June - 30 June 2011
01 May - 31 May 2011
01 Apr - 30 Apr 2011
01 Mar - 31 Mar 2011
01 Feb - 29 Feb 2011
01 Jan - 31 Jan 2011
01 Dec - 31 Dec 2010
01 Nov - 30 Nov 2010
01 Oct - 31 Oct 2010
01 Sep - 30 Sep 2010
01 Aug - 31 Aug 2010
01 Jul - 31 Jul 2010
01 June - 30 June 2010
01 May - 31 May 2010
01 Apr - 30 Apr 2010
01 Mar - 31 Mar 2010
01 Feb - 29 Feb 2010
01 Jan - 31 Jan 2010
01 Dec - 31 Dec 2009
01 Nov - 30 Nov 2009
01 Oct - 31 Oct 2009
01 Sep - 30 Sep 2009
01 Aug - 31 Aug 2009
01 Jul - 31 Jul 2009
01 June - 30 June 2009
01 May - 31 May 2009
01 Apr - 30 Apr 2009
01 Mar - 31 Mar 2009
01 Feb - 29 Feb 2009
01 Jan - 31 Jan 2009
01 Dec - 31 Dec 2008
01 Nov - 30 Nov 2008
01 Oct - 31 Oct 2008
01 Sep - 30 Sep 2008
01 Aug - 31 Aug 2008
01 Jul - 31 Jul 2008
01 June - 30 June 2008
01 May - 31 May 2008
01 Apr - 30 Apr 2008
01 Mar - 31 Mar 2008
01 Feb - 29 Feb 2008
01 Jan - 31 Jan 2008
01 Dec - 31 Dec 2007
01 Nov - 30 Nov 2007
01 Oct - 31 Oct 2007
01 Sep - 30 Sep 2007
01 Aug - 31 Aug 2007
01 Jul - 31 Jul 2007
01 June - 30 June 2007
01 May - 31 May 2007
01 Apr - 30 Apr 2007
01 Mar - 31 Mar 2007
01 Feb - 29 Feb 2007
01 Jan - 31 Jan 2007
01 Dec - 31 Dec 2006
01 Nov - 30 Nov 2006
01 Oct - 31 Oct 2006
01 Sep - 30 Sep 2006
01 Aug - 31 Aug 2006
01 Jul - 31 Jul 2006
01 June - 30 June 2006
01 May - 31 May 2006
01 Apr - 30 Apr 2006
01 Mar - 31 Mar 2006
01 Feb - 29 Feb 2006
01 Jan - 31 Jan 2006
01 Dec - 31 Dec 2005
01 Nov - 30 Nov 2005
01 Oct - 31 Oct 2005
01 Sep - 30 Sep 2005
01 Aug - 31 Aug 2005
01 Jul - 31 Jul 2005
01 June - 30 June 2005
01 May - 31 May 2005
01 Apr - 30 Apr 2005
01 Mar - 31 Mar 2005
01 Feb - 29 Feb 2005
01 Jan - 31 Jan 2005
01 Dec - 31 Dec 2004
01 Nov - 30 Nov 2004
01 Oct - 31 Oct 2004
01 Sep - 30 Sep 2004
01 Aug - 31 Aug 2004

Stuff

Powered by Pivot  
XML: RSS feed 
XML: Atom feed 

§ VirtualDub 1.6.15 released

VirtualDub 1.6.15/stable is out with a series of bug fixes. There are no new features in this build.

For those of you using a recent beta of Windows Vista, including the just-released beta 2, you may notice severe problems when attempting to use VirtualDub with Aero Glass enabled -- specifically, that the display keeps resetting over and over. The problem is that the way that VirtualDub displays video is incompatible with the Vista Desktop Window Manager (DWM), and the DWM disables Aero Glass in response. Unfortunately, some semi-recent changes to the DWM have made the problem much worse: when the DWM attempts to disable Aero Glass, it resets the display and that also causes VirtualDub to reset its display mechanisms, tripping the DWM again, and resulting in a loop of resets. Click on another window to escape the loop. The workaround is to go to Options > Preferences > Display and either turn off DirectX or enable Direct3D. The technical issue is that VirtualDub uses the same window handle for GDI and DirectDraw rendering, which the DWM really doesn't like; I will be working on fixing this for 1.7.0.

(Read more....)

§ 120 fps video???

If you're a frequent watcher of Internet-sourced video files you may have noticed an interesting characteristic of the video stream of some AVI files, namely an unusually high frame rate of 120 fps. Such a frame rate might seem useless and utterly wasteful, given that film sources run at 24 fps, video sources run at up to 30 frames/60 fields per sec, and computer refresh rates not generally higher than 85Hz.

Ah, but there is reason to this madness.

The reason for the 120 fps frame rate becomes clear if you look at the data in the stream itself, namely that at least 75% of the frames are empty. Basically, someone came up with the innovative idea of using null frames in AVI to achieve variable frame rate in order to accommodate both 24 fps and 30 fps within the same file. A 24 fps portion uses a frame density of 1/5, whereas a 30 fps portion uses 1/4. The need for mixed 24/30 comes from recording video which has both telecined and non-telecined video, and applying inverse telecine to the appropriate portions.

VirtualDub can process these videos to some extent, but there are some shortcomings. Attempting to recompress or filter the video will result in a 120 full frames per second. Also, attempting to play the video will result in a mind-numbingly slow frame rate because VirtualDub will still attempt to blit/flip at 120 fps. You can, however, direct stream the video, and you can use frame rate conversion in this mode to remove some of the null frames and drop the video stream to a more ordinary frame rate. I'm working on improving support for sparse video streams in a future version.

(Read more....)

§ The "center cut" algorithm

Semi-recent versions of VirtualDub have an audio filter known as "center cut." This filter attempts to isolate the central components of the incoming signal and separate them from the side signals. The result is a stereo output with the ambience, and a mono output with the foreground sounds and vocals. To test this filter in VirtualDub, enable advanced audio filtering, then add input/center cut/output/discard filters to the filter graph, in that order (or swap discard and output).

Someone asked me by email if I could describe this algorithm, and I thought it would be blog-worthy.

Disclaimer: I'm not an audio researcher and am not familiar with the audio literature, so excuse me if I use the wrong terms or fail to acknowledge past work, as I am not familiar with existing advanced algorithms for vocal removal. I came up with this algorithm one day after a discussion about vector projection in lower-division math class, so I didn't do any research before devising the algorithm.

(Read more....)

§ "Hello, world!" is a lot bigger than I remember it

I wanted to hack together a particular variant of expression evaluator, but wanted an editor a bit more substantial than the usual Notepad I use for quick hacks. So I fired up Visual Studio 2005, and on a whim, decided to select "CLR Console Application." And so VS2005 set up a sample console Hello World! application for me. C++/CLI is still C++, so the source code file mostly looks the same, just that it uses .NET console commands.

Oh, and the project comes with an icon, a resource script, stdafx.cpp/.h, an assembly info module, and a readme. I guess I can deal with that for a throwaway project.

Then I run it, and I see these DLL load messages in the debugger:

'arith.exe': Loaded 'D:\projwin\arith\debug\arith.exe', Symbols loaded.
'arith.exe': Loaded 'C:\WINDOWS\system32\ntdll.dll', Symbols loaded (source information stripped).
'arith.exe': Loaded 'C:\WINDOWS\system32\mscoree.dll', Symbols loaded (source information stripped).
'arith.exe': Loaded 'C:\WINDOWS\system32\kernel32.dll', Symbols loaded (source information stripped).
'arith.exe': Loaded 'C:\WINDOWS\system32\advapi32.dll', Symbols loaded (source information stripped).
'arith.exe': Loaded 'C:\WINDOWS\system32\rpcrt4.dll', Symbols loaded (source information stripped).
'arith.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_f75eb16c\msvcr80d.dll', Symbols loaded.
'arith.exe': Loaded 'C:\WINDOWS\system32\msvcrt.dll', Symbols loaded (source information stripped).
'arith.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_f75eb16c\msvcm80d.dll', Symbols loaded.
'arith.exe': Loaded 'C:\WINDOWS\system32\ole32.dll', Symbols loaded (source information stripped).
'arith.exe': Loaded 'C:\WINDOWS\system32\gdi32.dll', Symbols loaded (source information stripped).
'arith.exe': Loaded 'C:\WINDOWS\system32\user32.dll', Symbols loaded (source information stripped).
'arith.exe': Loaded 'C:\WINDOWS\system32\imm32.dll', Symbols loaded (source information stripped).
'arith.exe': Loaded 'C:\WINDOWS\system32\lpk.dll', Symbols loaded (source information stripped).
'arith.exe': Loaded 'C:\WINDOWS\system32\usp10.dll', Symbols loaded (source information stripped).
'arith.exe': Loaded 'C:\WINDOWS\system32\shlwapi.dll', Symbols loaded (source information stripped).
'arith.exe': Loaded 'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll', Symbols loaded (source information stripped).
'arith.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_0de06acd\msvcr80.dll', Symbols loaded.
'arith.exe': Loaded 'C:\WINDOWS\system32\shell32.dll', Symbols loaded (source information stripped).
'arith.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2180_x-ww_a84f1ff9\comctl32.dll', Symbols loaded (source information stripped).
'arith.exe': Loaded 'C:\WINDOWS\system32\comctl32.dll', Symbols loaded (source information stripped).
'arith.exe': Loaded 'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Culture.dll', No symbols loaded.
'arith.exe': Unloaded 'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Culture.dll'
'arith.exe': Loaded 'C:\WINDOWS\assembly\NativeImages_v2.0.50727_32\mscorlib\813d7cb23dfcd94ebf2b2429ea4bcb50\mscorlib.ni.dll', No native symbols in symbol file.
'arith.exe' (Managed): Loaded 'C:\WINDOWS\assembly\GAC_32\mscorlib\2.0.0.0__b77a5c561934e089\mscorlib.dll', Symbols loaded.
'arith.exe' (Managed): Loaded 'd:\projwin\arith\debug\arith.exe', Symbols loaded.
'arith.exe': Loaded 'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorjit.dll', Symbols loaded (source information stripped).
'arith.exe': Loaded 'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\diasymreader.dll', Symbols loaded (source information stripped).
'arith.exe': Loaded 'C:\WINDOWS\system32\rsaenh.dll', Symbols loaded (source information stripped).
'arith.exe' (Managed): Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_f75eb16c\msvcm80d.dll', Symbols loaded.
'arith.exe': Loaded 'C:\WINDOWS\assembly\NativeImages_v2.0.50727_32\System\92defad1f6443a41812dd46665fe005c\System.ni.dll', No native symbols in symbol file.
'arith.exe' (Managed): Loaded 'C:\WINDOWS\assembly\GAC_MSIL\System\2.0.0.0__b77a5c561934e089\System.dll', Symbols loaded.

WTF?

I try to convince myself that I'm a assembly/C++ luddite and I should try to learn more of this .NET stuff. Every time I do, I see stuff like this that makes me cringe. Why does a Hello World application require the common controls library, shell API, and remote procedure call runtime??

Here's what I get from a good old fashioned Win32 Hello World app made by VS2005, for comparison:

'arith2.exe': Loaded 'D:\projwin\arith2\Debug\arith2.exe', Symbols loaded.
'arith2.exe': Loaded 'C:\WINDOWS\system32\ntdll.dll', Symbols loaded (source information stripped).
'arith2.exe': Loaded 'C:\WINDOWS\system32\kernel32.dll', Symbols loaded (source information stripped).
'arith2.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_f75eb16c\msvcr80d.dll', Symbols loaded.
'arith2.exe': Loaded 'C:\WINDOWS\system32\msvcrt.dll', Symbols loaded (source information stripped).

(Read more....)