Stuff

Last time I promised I would write up some information about how VBR audio is popularly implemented in an AVI file; I'm going to generalize this slightly and talk about the timing of AVI streams. I'm not going to speak on the properness of VBR audio in AVI because almost everyone knows how I feel about this and that doesn't change the fact that VBR files are out in the wild and will be encountered by applications that accept the AVI format. Instead, here are the technicals so you will at least know how it works and what issues arise as a result.

I should note that I didn't devise the VBR scheme; I simply reverse engineered it from the Nandub output when I started receiving reports that newer versions of VirtualDub suddenly were not handling audio sync properly on some files. The technique I describe below varies slightly from Nandub's output, as I omit some settings that, as far as I can tell, are not necessary to get VBR-in-AVI working.

Special thanks to Everwicked for hosting the forum, ChristianHJW for creating and maintaining it, and all of the moderators for keeping it running smoothly. I hope that the forum will continue to be useful in its current fashion. There may be a few bumps in the move, so please bear with me while I work out the kinks. All current user accounts remain valid after the move, although you may need to re-enter your login information since the site name has changed.

I thought today I'd actually post some advice that was relevant to desktop video. But first, some commenters to my "I hate Windows" story asked for me to post my port of the Samba 4.x "editreg" tool, so here it is: editreg_src_win32.zip. I've only included the source code because the port is VERY rough and doesn't do full argument passing, and realistically you have to hack it to use it; also, it doesn't actually allow you to edit the registry, only dump its contents. Still, it works. At the time of this writing, you can get the original source code from the official Samba CVS web browser.

Now, about AVI files....

AVI stands for "Audio/Video Interleaved" and holds both audio and video together in a playable format. The basic structure of an AVI file comes from a general file structure called the Resource Interchange File Format (RIFF), which is in turn based off of the Electronic Arts IFF specification that had its roots on the Amiga. RIFF files consist of a series of chunks, each prefixed by a four-character chunk ID and a four-byte length. These chunks may in turn be nested to form a structured file. This chunk structure is nice because any unrecognized chunk can simply be skipped, allowing a file format to be extended without breaking backwards compatibility. The Portable Network Graphics (PNG) standard has an even more evolved tagging system that also encodes "should-copy" and "must-understand" bits so that old programs even have an idea of what they should do with an unrecognized chunk.

After a long day of video game debauchery with a friend, I shut down my laptop, drove home, and then turned it on to check something quickly before going to bed, only to see the following after login:

Windows was unable to load the registry. This is often caused by insufficient memory or insufficient security rights.

DETAIL - The configuration registry database is corrupt. for C:Documents and SettingsAthenantuser.dat

Windows XP then proceeded to rename my profile and log me in with a temporary profile, in which of course all Windows settings were reverted to "stupid" and none of my applications were configured.

The Registry is one of my biggest #&($ing reasons why I hate Windows. It's a single point of failure with a huge amount of critical system information and if it breaks you get absolutely no clues about what broke or how to fix it because it's a huge binary file.

The second experimental release in the VirtualDub 1.6 series has been released. This release mainly fixes a bunch of regressions in 1.6.0 and should be more stable, especially on AMD64. I will probably be doing at least a couple more experimental releases, so keep the feedback coming -- I do actually read the bug reports and fix bugs even if I don't respond to all of them.

Note that the capture module is being overhauled and thus is a bit broken in this release. It is recommended that you stick with 1.5.10 for video captures at the moment.

Some questions were asked in comments in the previous article, and I decided it would be easier to answer here instead of in comments. The two questions were about the origin of the Intel Pentium-M and about AMD's chips and 3DNow! in general.

I get the feeling that I should probably be posting links to reputable hardware sites instead of pulling this info out of my (null), but it's either this or I lament about how I wish I had eight hours a day and infinite patience to try Final Fantasy XI Online again. Let me know if I've made dumb errors in the writeup.