Change Log started April 2004
=============================
September 26, 2008
- Due to the success of my MPEG-2 and WMV plugins for VirtualDub, I will no longer be updating VirtualDub-MPEG2.
Version 1.6.19 build 24586 (September 27, 2007)
- Fixed some problems when importing and muxing external AC-3 and MPEG audio files.
Version 1.6.19 build 24571 (September 16, 2007)
- Fixed an "out of memory" error when loading .m2v (video only) MPEG files.
Version 1.6.19 build 24570 (September 14, 2007)
- The "File / Save WAV..." dialog no longer shows "mp3" and "ac3" file extensions.
- Still more changes to improve the accuracy of the audio skew report.
Version 1.6.19 build 24563 (September 13, 2007)
- I've discovered that my previous build will sometimes pause for an alarmingly long time, especially after parsing large (1 GB or larger) MPEG files. That issue is fixed now.
- I'm still trying to improve the accuracy of the audio skew reported in "File Information" for MPEG files. This new build removes audio and video access units at the beginning of the MPEG stream if they lack Presentation Time Stamps, and I hope this will finally guarantee that the skew report is 100% accurate.
Version 1.6.19 build 24560 (August 23, 2007)
- Unfortunately, the change I made October 24, 2005 (which was supposed to reduce the memory footprint by not storing PTS for every sample) has caused a situation in which audio skew is reported incorrectly in the "File Information" dialog for MPEG files. I've had to undo that change.
- I've switched to using 7-Zip to archive the source code package.
Version 1.6.19 build 24528 (August 10, 2007)
- Finally fixed a rare crash which happens when decoding some slightly broken MPEG files.
Version 1.6.19 build 24507 (August 4, 2007)
- I've discovered a bug in the way seek positions are calculated in imported MPEG audio files. This build fixes the seeking problem.
- I've found another problem which is specific to imported 22050 Hz and 44100 Hz MPEG audio files, which manifests itself as a rapid "clicking" in the audio. It's caused by the presence of padding bytes in the MPEG stream, but I don't have a fix for it yet.
Version 1.6.19 build 24484 (August 3, 2007)
- I've upgraded the core to version 1.6.19.
- I've added one new experimental feature, "Browse for audio" in the Audio menu. This feature allows you to import an external AC-3 or MPEG audio file as your audio source, with some restrictions:
1) The file must begin with a valid AC-3 or MPEG audio header, or an ID3v2 tag which leads to a valid MPEG audio header. If you import a broken or corrupt file, the result may be garbage or a crash. There is almost no error handling.
2) The file must have a constant bitrate. VBR audio is not supported.
3) MPEG-2 audio (ISO/IEC 13818-3) is only allowed if the file is an MP3 file. MPEG Layer I and II files must be MPEG version 1 (ISO/IEC 11172-3).
4) You must have an ACM codec installed which can decode the audio format.
Version 1.6.15 build 24600 (July 8, 2006)
- I've made some improvements to the experimental ASF/WMV parser. It should now handle broken ASF/WMVs much better, plus the audio/video sync is much improved while seeking in WMVs with VBR Windows Media Audio 9. Many of the code changes were donated or suggested by developer "Moitah." (Thanks Moitah!)
- At some point during the upgrade to 1.6.15, decoding of 4:2:2 MPEG-2 content was broken. This is fixed now.
Version 1.6.15 build 24560 (July 3, 2006)
- I've added some code suggested by Avery Lee, to favor the MPEG parser for files with typical MPEG extensions. Hopefully this will reduce the occurrence of the "Cannot detect file type" error message with broken MPEG streams.
- Fixed yet another rare bug in the MPEG-2 decoder.
Version 1.6.15 build 24554 (June 23, 2006)
- Modified some code to avoid a crash in one broken MPEG stream.
Version 1.6.15 build 24550 (June 20, 2006)
- In capture mode, "Stretch to window" now takes cropping into account when stretching.
- Fixed some minor bugs in the MPEG-2 decoder.
Version 1.6.15 build 24458 (May 29, 2006)
- I upgraded the core to version 1.6.15.
- I moved the "honor repeat first field flags" and "allow matrix coefficients" options from the MPEG extended open dialog to the "Options / Preferences / MPEG" dialog, which makes it possible to save these options permanently.
Version 1.6.14 build 24448 (May 25, 2006)
- Fixed a rare bug in the MPEG-2 decoder which caused corrupt pictures and crashing.
Version 1.6.14 build 24417 (May 3, 2006)
- I upgraded the core to version 1.6.14. There were no other changes.
Version 1.6.11 build 23858 (December 5, 2005)
- Fixed a seemingly random bug in MPEG-2 decoding which caused adjacent chroma fields (Cb, Cr) to bleed into each other.
Version 1.6.11 build 23843 (October 24, 2005)
- Added an option in "Preferences" to automatically adjust the size of the Preview panes based on the aspect ratio information in MPEG files.
- Moved the option to "Allow Direct Stream copy of MPEG audio" from the extended open dialog to the Preferences dialog.
- I've reduced the memory footprint a little by not storing timestamp information for every MPEG frame.
Version 1.6.11 build 23787 (October 8, 2005)
- Fixed some crashes in the experimental ASF/WMV parser.
Version 1.6.11 build 23777 (October 5, 2005)
- I upgraded the core to version 1.6.11
- I've added very experimental ASF/WMV parsing.
Version 1.6.10 build 23784 (September 23, 2005)
- My original "2:1 horizontal reduction (Linear)" capture filter required the source to be in YUY2 format. This build adds support for UYVY, RGB24, and RGB32 formats.
- There is a known goof in the original VirtualDub 1.6.10 which causes 44 extra bytes to be added to the audio when "Save WAV" is selected. This build corrects that.
Version 1.6.10 build 23769 (September 16, 2005)
- This build fixes an endless loop in MP3 transcoding, and a crash during AC-3 transcoding, when the Audio / Interleaving "skew" value is greater than zero.
Version 1.6.10 build 23762 (August 29, 2005)
- This build fixes a bug in the "Capture / Stop Conditions" dialog. The "Accept" button was saving the conditions permanently, rather than applying them to the current session only.
- I added a "Show SMPTE" checkbox to "Options / Preferences / Timeline." See the change list from Version 1.5.10 build 18303 (below) for a description of what this option does.
Version 1.6.10 build 23750 (August 28, 2005)
- This build fixes one bug in the capture mode video filters: When the "Noise Reduction" threshhold was changed, the "Swap fields" option would activate.
Version 1.6.10 build 23726 (August 10, 2005)
- I upgraded the core to version 1.6.10. There were no other changes.
Version 1.6.9 build 23712 (August 8, 2005)
- It was reported that VirtualDub-MPEG2 would attempt to open Transport Streams, even though they're not supported. The result is a garbled display. Unfortunately there is no easy way for the program to differentiate between a real Transport Stream and a slightly broken Program Stream, so I've added a warning which will pop up if VirtualDub-MPEG2 thinks the stream might be a Transport Stream.
- I've added "2:1 Horizontal Reduction" (Linear) in capture mode. As with version 1.5.10, only YUY2 format is supported, and width must be a multiple of 4.
- Capture "stretch to window" now maintains a 4x3 image when stretching.
- "Hide display on capture" is now a sticky setting stored in the Windows registry.
- Selecting "Video / Capture filter" doesn't disable Preview.
- When capturing NTSC video at 29.97 frames per second, the actual rate written to the AVI file is 30000/1001.
Version 1.6.9 build 23685 (July 14, 2005)
- I've upgraded the core to version 1.6.9, and fixed two of my own bugs:
- VirtualDub-MPEG2 would sometimes crash at the end of compressing an MPEG file to DivX or Xvid.
- Preview windows provided by video filters (both internal and external) showed corrupt images.
Version 1.6.8 build 23663 (July 7, 2005)
- This build fixes one bug: If "Video / Color Depth / Decompression format" was set to a 16-bit RGB mode, colors were messed up during output playback of any MPEG file.
Version 1.6.8 build 23657 (July 5, 2005)
- Removed the display of ugly (often green) frames at the beginning of broken MPEGs. These are caused by B-frames which can't be decoded because of missing references. I had intended the decoder to display them anyway, but unfortunately some other code paths become unstable and may crash on these frames. It's easier and safer to just get rid of them.
Version 1.6.8 build 23638 (July 4, 2005)
- Obviously, the biggest change in this release is the upgrade to version 1.6.8. Many of the tweaks I made to the 1.5.10 capture module are no longer necessary, since the new 1.6.8 capture module is vastly superior. Some other minor tweaks (mostly your requests) are gone too, but only because I haven't put them in yet.
- The MPEG-2 decoder has seen some big changes too. Primarily these are changes in the source code, invisible to the user. But there are 2 important new options in the MPEG "extended open" dialog which will affect what you see on the screen...
- The first is the option to allow "repeat first field" flags, which is enabled by default. RFF flags are described in the MPEG-2 specification, and until now VirtualDub-MPEG2 has always ignored them. Allowing RFF should fix a lot of the audio/video sync problems which have been reported for years, especially with mixed NTSC/FILM content. On the other hand, allowing RFF may cause pure FILM content to appear interlaced! In this case you can choose NOT to allow RFF flags, and then the decoder's behavior is the same as it was in previous versions.
- The second is the option to allow "matrix coefficients" for RGB conversion, which is disabled by default. Although the use of the optional MPEG-2 matrix coefficients information is also described in the MPEG-2 specification, I've gotten numerous complaints that it causes the video to appear "washed out." (More often though, it's the LACK of correct matrix coefficients which causes this.)
- If you open an MPEG with multiple audio streams, a dialog appears asking you to choose an audio stream. I got a lot of complaints that this dialog pops up when running jobs (which makes the jobs feature pretty useless for MPEG-2). I think I've finally fixed it so the job "remembers" which audio stream you want to process.
- Lastly, the LPCM parser has been upgraded to support 16-bit, 20-bit, and 24-bit LPCM, at sampling rates of 48 kHz and 96 kHz, either mono or stereo. Multichannel LPCM isn't supported yet.
Version 1.5.10 build 18303 (June 9, 2005)
- I've added a checkbox in "Options / Preferences / Display" which makes the main slider show SMPTE 29.97fps drop-frame timecode. WARNING: This mode strictly assumes that your video is NTSC 29.97fps. If not, the timecode display will be wrong.
(In case you're wondering, the feature is something I wanted solely for myself, because all of my DVD authoring software deals exclusively in this time format.)
Version 1.5.10 build 18294 (January 20, 2005)
- I fixed another little goof in the MPEG "Multiple Audio Streams Found: Choose an audio stream" dialog, which might cause the wrong audio stream to be chosen.
Version 1.5.10 build 18289 (December 12, 2004)
- I fixed a little goof in my modified capture code. When 2:1 vertical reduction and 2:1 horizontal reduction are combined, the vertical reduction code executes first. But in this case I forgot to notify the horizontal reduction code that the height had been halved, so it was blindly performing twice the work it needed to.
- Also by request, I've changed the "Start frame server" save dialog to show both *.vdr and *.avi files by default.
Version 1.5.10 build 18279 (October 26, 2004)
- I've added experimental support for 24-bit 96 KHz LPCM audio, as found in some VOB/AOB files. Unfortunately, the samples must be truncated to 16-bit for the rest of VirtualDub's engine, because it doesn't seem to like 24-bit audio. Note that this support has not been thoroughly tested, because I don't currently own any DVDs with 24/96 audio.
- Until now, the MPEG-2 decoder was restricted to a resolution of 1920 x 1080. Originally, this limit was implemented to avoid misidentification of sequence headers in a broken Kylie Minogue VOB (it's a long story). I've recently been told that some HDTV streams in Germany and Australia are encoded with a vertical resolution of 1088, so I've raised the limit to 1920 x 1088.
- I finally changed the "Edit / Go To..." dialog so it remembers the last frame number typed into it. (That's been bugging me forever...)
Version 1.5.10 build 18270 (September 18, 2004)
- "Direct Stream Copy" of audio from MPEG files to AVI files is possible again. (This is a special "hidden" feature which was inadvertently disabled in a previous build.) To make it work, you must check the box in the "extended open options" when you first open the MPEG file. Otherwise, all MPEG audio is passed as uncompressed PCM by default.
Version 1.5.10 build 18264 (July 1, 2004)
- By request, I added an "All Files (*.*)" filter to the "Start frame server" save dialog. There were also a few minor changes to the capture code, most notably the fact that if you capture at a rate of either 1000000/33366 or 1000000/33367 (NTSC), the rate actually written to the captured file will be 30000/1001. The difference is negligible, but it makes it easier for me to splice my captures seamlessly for MPEG encoding.
Version 1.5.10 build 18250 (May 16, 2004)
- By request, I restored the "Aspect ratio information" field to the MPEG File Information dialog (this had accidentally been removed during a previous upgrade).
Version 1.5.10 build 18244 (May 12, 2004)
- I've assimilated all of the audio resampling code from VirtualDub_Sync by Andreas Dittrich. His sync code is only activated by selecting "Video / Timing / Resample audio...", otherwise, the original VirtualDub timing code is used. (I didn't add his modifications for the BT8x8 tweaker, but I can do it later if necessary.)
- It turns out that the taps I used in the "cubic" 2:1 horizontal reduction for capture mode (discussed here) are not the same taps which Avery Lee used in his cubic 2:1 vertical reduction code. This probably explains why the linear reduction looks better, so for now I've disabled the cubic version until it can be corrected.
Version 1.5.10 build 18232 (April 6, 2004)
- Added fixes for the "Save segmented AVI" bug described here.
- Minor rewrite of 2:1 horizontal reduction code, for speed and clarity.
Version 1.5.10 build 18226 (April 1, 2004)
- Added 2:1 horizontal reduction in capture mode. Only YUY2 / YUYV input format is supported. The bicubic version uses the taps [-1 5 8 5 -1], as we discussed here. The linear version simply averages every two adjacent pixels. (The linear version seems much sharper to me.)