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
 
Other projects
   Altirra

Archives

Blog Archive

VirtualDub 1.6.3 released

I decided to start playing Final Fantasy VIII again this last weekend while feeling a bit under the weather. It's grown on me over the years; I liked it a lot more once I realized that summoning Guardian Forces repeatedly was the most mind-numbingly boring way to play the game (which is why some call FF8 the best movie ever made for the PSX) and also that I'd missed half the GFs the first time around. You can get them again, but I'd hit a roadblock the first time I played at the endgame. Out of curiosity I went back and tried beating that game, and it took me over an hour just to beat the first boss. So I restarted and did some good ole' fashioned minmaxing. I still haven't bothered with the card game, however, as it's too annoying to collect cards for a card game that I habitually lose in between hours of fighting.

After getting GF Tonberry, though, I decided to take a break and release version 1.6.3 of VirtualDub. This release is still experimental and has yet more improvements to the capture module, but only has regression bug fixes for the edit module. Pound on it and let me know the results. Read on for capture specifics....

In 1.6.3, I dusted off my old ATI All-in-Wonder RADEON and stuck it in my P4 HT system for some testing. Now, no discussion of ATI video cards would be complete without a complaint about their drivers: no later than 10 seconds after I had stuck in the card and booted Windows XP did the machine blue-screen with an IRQL_LESS_THAN_OR_EQUAL error in the ATI display driver. Ah, the memories. Downloading the latest CATALYST drivers fixed that, but then I discovered that VirtualDub would lock hard when trying to capture through the AIW, and I soon reproduced it in GraphEdit. I whipped out the Firewire cable and set up a kernel debug session, and sure enough, it was a thread stuck in kernel mode on a wait in the ATI capture driver. After tearing my hair out for hours, I eventually discovered that rendering the video port pin worked around the problem. The AIW works pretty well now.

One of my pet peeves about consumer-level video capture cards is that a lot of them seem to have crappy or badly calibrated ADC or AGC circuitry. I presume they tweak it to get bright whites, but the result is usually bright areas of the screen blooming to solid white or really ugly yellows. Some of these areas can be rescued if you capture in YCbCr and enable the "squish luma range" filter option, since YCbCr formats can capture superblacks and superwhites; these are levels that would be clamped in conversion to RGB and are shown as red in the video histogram. However, it usually isn't enough and the result is noticeable degredation in video quality. My WinTV and All-in-Wonder have this problem; my Phillips SAA7135 board, Pinnacle DC10/DC30+, and Plextor PX-M402U don't. If you have a Bt848/878 you can try the Bt8x8 Tweaker with the DScaler (formerly dTV) drivers and tweak the capture chip's white levels further to try to get the levels in range, which sometimes works. I didn't check whether this option still works in 1.6.3, but if it doesn't, drop me a note.

Finally, the capture module of the 64-bit version is virtually untested. If anyone knows of a reasonably cheap video capture card with AMD64 drivers, beta or not, I'd be interested in hearing about it.

Specific feature improvements:

The capture engine does more internal checks so that several actions that would previously cause a crash are now safe. For instance, you can now change some of the video filter settings while a capture is in progress, and switch video formats while the video histogram is displayed.

Some settings are now saved automatically, and the rest can be saved in Device > Capture Settings, including some that were previously inaccessible because I disabled the old Preferences dialog. VirtualDub will attempt to load the last capture driver used whenever entering capture mode; this can be bypassed by holding down SHIFT. Similiarly, if you have changed default device settings such that your system dies on device selection, hold down SHIFT when selecting the device to prevent default settings from being applied. Note that this won't help much if the capture hardware driver itself is storing unsafe settings. Sorry, not much I can do about that.

The DirectShow driver now supports using a sound card to capture audio. When selecting the device, a list of audio devices will appear in the Audio menu. An integrated audio capture facility is always picked first if available. The VFW driver cannot switch sources and will always use the default sound card selected in Windows.

The Audio menu now has an option to replay the captured audio through your sound card. This means you can hear the audio for devices that have integrated sound capture, like the Plextor. Don't enable this if you are routing through the sound card already unless you want a terribly inefficient reverb effect.

Audio and video routing that was previously only accessible manually through the crossbars is now explicitly exposed and saved. This includes the sound card input (audio input) and the audio/video routing (audio/video source). By default VirtualDub will attempt to switch the audio source along with the video source; this can be disabled in Capture Settings. Note that this only works for WDM drivers through DirectShow; the VFW API does not expose these settings so only the sound card input will be available. Note that changing the audio input may switch your mixer settings in Volume Control, so remember to change these back if you need them to be different for other applications. You may also need to access the mixer still to adjust input volume levels on your sound card.

TV tuners are now supported. Again, this requires DirectShow and a WDM driver. You can change channels through up/down arrow or by typing in the number and hitting Enter. If you need to change the TV standard or the channel set, you will still need to use the driver-specific dialogs in the Video menu. Sorry, no big overlay numbers showing the current channel.

Stuff I haven't gotten around to yet:

Capture scripting and command-line. Sorry, internal interfaces are still in flux. It won't be too hard to implement, however.

Timed/scheduled capture. See above.

DV capture. I'll probably be splitting the DV data into separate A/V streams to get this working (type-2 DV), but on the upside the capture system's resync code will double as a corrector for unlocked DV audio. A major problem here is that I don't actually have a DV source working to test against, although I have a Pinnacle Studio DVplus lying around that might work for testing DV capture from an analog source.

Changelog:

Build 22945 (1.6.3, experimental): [January 10, 2005]
    [features added]
    * Capture: DirectShow driver now supports audio passthrough (Audio >
      Enable Audio Playback) for devices with integrated audio capture.
    * Capture: DirectShow driver supports capture from sound cards.
    * Capture: Reduced graph rebuilding in DirectShow driver for better
      performance.
    * Capture: Video/audio source and audio input selection is now
      supported.
    * Capture: More settings are automatically saved or savable through
      Device > Device settings.
    * Capture: Noise reduction, field swap, and luma squish can be toggled
      during capture.
    * Improved asynchronous file write code for better performance and
      smoother timing in capture. 
    [bugs fixed]
    * Capture: Adjusted audio resampling timing for better accuracy.
    * Capture: Fixed intermittent crash when audio resampling rate goes
      very high.
    * Capture: Fixed erratic resampling and display when capturing with
      audio compression and with audio peak meter displayed.
    * Capture: VFW driver now suppresses default preview display when
      display acceleration is active.
    * Capture: Fixed crash when exiting capture mode with video histogram
      enabled.
    * Capture: DirectShow driver did not stretch display window properly.
    * Capture: DirectShow driver now supports the "set custom format"
      command.
    * Capture: DirectShow driver now works with stop preferences.
    * Capture: Disabled normal nice-in-background behavior for accelerated
      display.
    * Capture: Added workaround for process hang with WDM drivers that need
      their video port pins rendered.
    * Capture: Histogram was broken for UYVY format video.
    [regressions fixed]
    * Fixed crash when decompressing compressed audio with timeline edits.
    * Fixed 'movi' chunk error on append.
    * B-frame support was broken.
    * Fixed crash when adjusting crop parameters for a filter without a
      video loaded.
    * Fixed some update problems in the clipping control.
    * Capture: Multi-segment capture wasn't working for the third segment
      and beyond.
    * Capture: Fixed crash when changing video format through capture driver
      dialog while preview acceleration is active. 

Comments

This blog was originally open for comments when this entry was first posted, but was later closed and then removed due to spam and after a migration away from the original blog software. Unfortunately, it would have been a lot of work to reformat the comments to republish them. The author thanks everyone who posted comments and added to the discussion.