Current version

v1.10.4 (stable)

Navigation

Main page
Archived news
Downloads
Documentation
   Capture
   Compiling
   Processing
   Crashes
Features
Filters
Plugin SDK
Knowledge base
Donate
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 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 

§ The "subtitler" filter, screen size, and font encodings

I don't remember why I originally wrote the subtitling filter. I'd like to say it was because I fansubbed some anime, but my Japanese skills are extremely minimal and my access to unsubtitled anime even less, so that couldn't have been it. I think it may have actually just been to display some on-screen lyrics to music -- probably Yuzurenai Negai from the Magic Knight Rayearth opening. Or something like that.

The two most common questions I get about the subtitler filter I wrote are:

Fortunately, both of these are easy to fix.

(Read more....)

§ Why Avisynth can't be used with 64-bit VirtualDub

One problem with attempting to port software from 32-bit Windows to 64-bit Windows is that 64-bit processes cannot load 32-bit DLLs, even on the AMD64 (x64) platform. This is a major annoyance because it means that 32-bit video codecs, audio codecs, filters, and file format drivers cannot be loaded into 64-bit VirtualDub. Unfortunately, because Avisynth is a 32-bit DLL, it cannot be loaded either, and thus Avisynth scripts cannot be used.

The solution for a problem like this is to create a 32-bit process that hosts the 32-bit DLLs, and then use interprocess communication (IPC) to transfer data between the 32-bit and 64-bit processes. This is suboptimal because of the delays and inefficiencies in switching processes, but it would work at least and maintain compatibility. There are a number of IPC mechanisms available on Windows, but most of them have major deficiencies, such as not being securable, not having support for waiting or non-blocking I/O, or requiring Windows NT. One with relatively less suckage is COM marshaling, in which the Windows COM system automatically transfers a function call and assocated data across the process boundary.

It turns out that COM marshalling between 32-bit and 64-bit processes is explicitly allowed by Win64. The AVIFile interfaces implemented by Avisynth are COM interfaces, and thus should be usable from a 64-bit processes. Trying to do so, however, just causes AVIFile import errors. So what's going on?

(Read more....)

§ How not to use Remote Desktop

I finally got around to hacking Pivot to always display the (Read More...) link, so it's time to celebrate by posting a short entry.

One of the best features that Microsoft added to Windows XP is Remote Desktop, a.k.a. Terminal Services limited to one user. All you have to do to use it is to enable Remote Desktop in Control Panel > System and then use the Terminal Services Client (mstsc.exe) to connect. This is a godsend on a laptop, where I have to occasionally connect back to my desktop to get something. Since Terminal Services uses a GDI mirroring driver, it is faster for non-multimedia apps than VNC, which polls the screen. The downside is that you can't run 3D apps.

When you use Remote Desktop, make sure you never, ever create a loop. One day I was connected to my desktop via my laptop, and then after forgetting which computer I was working on, connected back to my laptop within the remote session. Both computers promptly went black with their keyboards locked and I had to hard reset one of the computers to recover the other!

(Read more....)

§ Me and RPGs

I've been having some problems with my laptop lately, with it blue-screening more and more over the past week. Usually I would just slap WinDbg on it and figure out what driver was the culprit so I could upgrade or remove it, but it'd gotten so bad that it didn't even dump a minidump to disk. It even once blue-screened on startup with a memory pool corruption error, which was a bad sign (and shortly ate the system registry soon thereafter).  Well, a several-hour soak with Memtest86 revealed that the 512MB SODIMM had become flaky. Fortunately I have all of my data copied off intact, including my VirtualDub 1.6.5 development tree and Perforce depot, and am in the process of reinstalling XP with the good 256MB.

In the meantime, I'd been playing Namco's Xenosaga, which turns out is a pretty good RPG for the Playstation 2. RPGs -- the video game kind -- are a bit of a soft spot for me, and I've played a lot of them. The recent crop has been somewhat disappointing, what with Final Fantasy X being a departure from earlier games and X-2 being a total twitchfest. I happened to try Xenosaga on a whim and it turned out to be a bit of a hidden gem. Cheap too, considering it's now in Greatest Hits status. It took me about two weeks to finish it; that it has about a 50hr clear time on average and I didn't take any days off from work should tell you something.

(Read more....)