Eac3to/Introduction

There is no doubt that eac3to has developed substantially since its introduction in May 2007. The first 5 months of development of eac3to were spent testing filters, available programs (both freeware and commercial), with the ultimate goal being the determination of the tools and development of methods of decoding and encoding to obtain the best “quality” audio extracted from HD DVD and BluRay audio sources.

In this development and testing period, I was very thankful to have the assistance of xkodi and A.Crowley for their technical knowledge and assistance with the testing required to determine the best decoders/encoders to use with eac3to and the limitations with respect to each. The contribution of their time, advice and knowledge in performing testing was invaluable to the development of eac3to. The main issues were as follows: i)TrueHD decoding issues: Problems with Sonic’s audio decoder crashing necessitating a switch to Nero, as well as determining that we could only use Nero 7 as the DirectShow filters in Nero 8 would not work with eac3to as well as the need to purchase the HD-DVD/Blu-Ray plugin for TrueHD decoding with Nero; ii)Determining best decoder to use for MLP, AC3 BluRay audio iii)Testing Sonic Versions 4.2 and 4.3 as to “discontinuities” errors in Sonic v. 4.2 in comparison to Sonic v. 4.3, testing with Audacity indicates the application of DRC by Sonic decoders on EAC audio files leading to conclusion that only the Nero decoder should be used to decode EAC3 iv)Identifying common problems with respect to each decoder i.e. Dynamic Range Control which according to Nero is required to fulfil the license with Dolby Digital, Dialog Normalization issues etc. v) Determination of problems with Surcode for DTS  decoding which would work for some people and not for others and failed to work automatically in eac3to vi)Attempting to deal with audio sync and delay issues

By September 29, 2007, the 18th version of eac3to v1.18 was made available and I was pleased to announce as “Big News” that:

“The TrueHD decoding is now perfect for all HD DVD and Blu-Ray 5.1 TrueHD tracks when using the latest eac3to version and Nero 7 !!” As well, full DTS-HD decoding support was now available for users of eac3to by using the Sonic Audio Decoder.”

At this point in time it was also determined that "DTS-HD Master Audio" decoding should work bit perfectly so re-encoding to FLAC was determined to make a lot of sense and "DTS-HD High Resolution" decoding worked mostly fine so re-encoding to FLAC also made sense even if it would greatly increase file size. As most DTS-HD from HD DVD and all DTS-HD from BluRay are lossless it made sense to convert them to FLAC as well.

For TrueHD decoding eac3to was programmed to check, after decoding, whether the decoded data contained only 16 bits of information or more than that. If there was only 16 bits of information in the raw 24 bit file, then eac3to strips the zero bytes and reduces the raw file to 16 bit. This was not really necessary, as it was determined that the space saving when encoding in FLAC was only about 0.1 percent. However, I just found it cleaner to have 16bit TrueHD tracks encoded in 16bit FLAC instead of 24bit FLAC.

On October 3, 2007, eac3to v1.22 was released. In addition to improvements to Os speaker settings and detection of 5.1 channel output when 6.1 expected, eac3to now always uses the Sonic Audio Decoder by default for DTS decoding. As well, it was determined that eac3to doesn't work with Nero 8 requiring Nero 7 if you want to do TrueHD and E-AC3 decoding with eac3to.

On November 17, 2007 eac3to v2.0 was released.

This was a total re-write of eac3to with many enhancements and bug fixes as follows:
 * AC3 decoding support (Nero's decoder without DRC/dialnorm)
 * resampling to 44.1/48/96 kHz (by using "r8brain")
 * apply/reverse PAL speedup (by using "r8brain")
 * "eac3to sourceFile" will print out source file details

Strongly enhanced features
 * dramatically improved performance (no intermediate files, anymore!)
 * proper 6.1/7.1 downmixing to 5.1 instead of just dropping the back surround channels
 * RAW/PCM file detection now auto detects channels, bitdepth and endian
 * WAV is now fully supported as source file format
 * destination file extension "PCM" creates Blu-Ray style LPCM tracks

DTS related improvements/changes
 * DTS-96/24 support added
 * "open bitrate" support added
 * strange channel configuration support added
 * removal of zero padding from DTS files added
 * eac3to can fix broken DTS-ES files (they decode to 5.1 instead of 6.1 without the fix)
 * dialog normalization can be removed without removing the additional DTS-HD data now
 * core extraction must be specifically asked for now (see "-core" switch)

AC3 related improvements
 * did I mention that eac3to can decode AC3 now?
 * strange channel configuration support added

TrueHD related improvements
 * delay problem (hopefully) solved
 * fixed: sometimes some audio data in the middle of a track was lost
 * TrueHD/AC3 interweaved file can be stripped to TrueHD only now

Various minor improvements/changes On November 24, 2007, eac3to v2.05 was released This is considered to be a very important release as after much testing I was able to report that “the libav TrueHD decoder seems to work well. In my quick tests it gave out bit perfect results compared to Nero's decoder.” However, with a 24bit TrueHD sample the libav decoder complained about a failing "lossless check". Still the data was bit perfect. But the complaint shows that it might still make sense to keep using the Nero TrueHD decoder for a while - at least for comparison purposes.
 * progress bar added
 * eac3to detects file format independently of file extension
 * multiple input files can be treated as one big file
 * "sox" is not needed, anymore
 * "dump" filter not needed, anymore
 * "aften.exe" replaced by "libAften.dll"
 * "flac.exe" replaced by "libFlac.dll"
 * DTS/DD+/AC3 source filter ships with eac3to now
 * added support for libav/ffmpeg decoding of TrueHD/MLP and E-AC3
 * added "-libav" switch to force libav decoding

“However, we might have a chance to get 7.1 TrueHD decoding now with the libav decoder. Does anybody have a sample of a 7.1 TrueHD track?”

The libav E-AC3 decoder is not usable yet imho. It sometimes gives out distorted sound for me. I've still enabled it so that you can play with it, if you like. Another problem of the libav E-AC3 decoder is that it always forcefully shortens the data to 16 bit. Besides, I've searched and didn't find a single HD DVD or Blu-Ray disc with a 7.1 TrueHD. It seems such a disc doesn't exist yet. I also didn't find any disc with a 7.1 E-AC3 track.

On November 26, 2007, eac3to v2.06 was released


 * doing FLAC -> FLAC now copies metadata from source to destination file
 * MLP files are correctly decoded now (by both Nero and libav/ffmpeg)
 * runtime for padded DTS files is shown correctly now

All of the above releases were very important leading up to the end of 2007 and the next significant event in the development of eac3to-the addition of “Full EVO demuxing /remuxing support” with the release of eac3to v2.09 on December 19, 2007.

Highlights of eac3to v.2.09 were as follows:

In conclusion, there is no doubt that eac3to has come a long way since its first availability in May 2007 and with the help and support of the Doom9 community and others, all of which is greatly appreciated, eac3to will continue to develop with enhancements to encode/decode etc. the “best quality audio” from available sources. Lastly, there are several people in particular that deserve mention and thanks as they have greatly assisted in answering forum questions, i.e. nautilus7, drmpeg??, others i.e. The_Keymaker which respect to the eac3toGUI, ……? which permits me to deal with programming, bug fixes and further enhancements to eac3to.
 * EVO demuxing added with proper delays for all audio tracks
 * EVO file joining/rebuilding added
 * automated EVO video remuxing (Matroska) added
 * automated rewriting of Matroska timestamps to 24p via mkvtoolnix added
 * multiple operations on the source file can now be run at the same time
 * switch "-test" tests all external DirectShow filters and tools
 * latest ffmpeg/libav TrueHD and E-AC3 decoder patches included
 * latest libAften build included
 * libav TrueHD decoder is now the default decoder for TrueHD/MLP
 * support for libav DTS decoding added
 * fixed a whole lot of bugs (and might have added a few new ones)

madshi