AC3Filter ver 0.52b

Russian version
Download: server1


    AC3Filter - it is DirectShow filter for AC3 decoding. Playing .AVI with AC3 audio tracks and MPEG2 (DVD). Distributed absolutely for free (FREEWARE). Sorry if my English is bad, but I think it is better to have something than nothing.

Main features:



Contents



Download.

ac3filter ver 0.52b
Server1: http://xvalex.hotbox.ru/download/ac3filter_0_52b.zip

ac3filter ver 0.51b
Server1: http://xvalex.hotbox.ru/download/ac3filter_0_51b.zip

ac3filter ver 0.5b
Server1: http://xvalex.hotbox.ru/download/ac3filter_0_5b.zip

ac3filter ver 0.3a
Server1: http://xvalex.hotbox.ru/download/ac3filter_0_3a.zip

New versions can be found at site:
http://xvalex.hotbox.ru/download


Install.

    Nothing is required, just register it. From command line:
x:\somedir\> regsvr32 ac3filter.ax

For lazy men (as I am :) it is a command file - install.bat. It will copy filter to System32 catalog (System for Win9x) and register it.



Uninstall.

    If registred from command line unregister it from command line too:
x:\somedir\> regsvr32 ac3filter.ax /u

    For lazy men (as I am :) it is a command file - uninstall.bat. It will unregister and delete filter from System32 catalog (System for Win9x).



Setup.

    When started filter checks for current speaker configuration for downmix. It uses settings from Control Panel->Sounds and Multimedia->Audio->Sound Playback->Advanced->Speaker Setup. (For SB Live! users. When change speaker configuration from Surround Mixer it is not always change in Control Panel. So it is always good to check there.). For Win9x/WinNT use 2-channel mode.



Usage.

    Filter decode ac3 streams from .avi and mpeg2 files. If everything is good then when file is open filter must be in application filter list. For Windows Media Player 6.4 filter list is at File->Properties->Advanced:



First in this example is ac3filter itself. If we open properties we'll see:

 

* Bitstream information.

    Top left it is bitstream information (BSI):

* Speaker configuration switch.

    Left bottom it is an output speaker configuration switch. It define the real speaker configuration to wich ac3 channels will be mixed. Checkbox Subwoofer define presence of independent subwoofer (.1 channel). When present LFE is routed there, else LFE is routed to all other channels. (In future I plan to route low frequeces from all channels to subwoofer).

    By default output configuration is get from Windows (see Setup). Change it 'in place' possible only in certain cases. First, file playing must be stopped (not paused!). Second, all intermediate audio filters must support dynamic reconfiguring (format change without full graph rebuild). So if you cannot set output configuration here you need to set it in Control Panel.

    In most cases problems are because of mmswitch filter (filter that support .avi (and DVDs too) with several audio tracks and allow to switch between, especially for multi-language films). If you mainly watch DVDs it is better to uninstall this filter and use MPEG2 parser wich support stream switching directly (standart MPEG2 Splitter for example). In this case you'll also get lower CPU usage. If MPEG2 parser does not support stream switching (Elecard for example) then many audio rendering chains created, all of them are working together when only one really reproducing.

    If mmswitch is really needed then it is several possibilities:

* Gain levels.

    Buttom middle it is gain level controls.

    Master and Gain controls are responsible for global gain level. Master sets desired gain level. If current sound level is too high and overflow occurs then real gain level will decrease. When sound level decrease gain will then gradually increase. Gain level increase speed fitted so it is no fast and audible sound change. Current gain level is showed at Gain control. When Master gain changes Gain also changes immediately.

    Channel gains:
    BSI Lock checkbox sets channel gain level at values given by standart.
    Normalize - normalize mixing levels. In this case if one of channel levels is changed it may affect on other channel levels. But it is guaranteed that it is no overflow when mixing,

    Most of the films already normalized, so no additional normalizetion required. So by default values are set for most compatibility: Master = 0dB, Normalize = yes, LFE = 0dB, Voice & Surround level values are got from bitstream.


* Dynamic range compression.

    By its nature ac3 is a logarithmic format. Samples are stored in form of exponents and mantissas. In terms of bits one sample can be up to 40bits long (only theoretically) or up to 24bits (normal). It provide huge dynamic range (but, as said by great Einstein all good things in this word are relative :-). This means that quiet sound with low level when played on 16-bit sound card will be not audible at all or will have very low absolute level (=> high distortions). To solve this problem it is dynamic range comression. Main idea is to raise level when sound is quiet (and vice versa when loud) before converting to 16-bit form. There are special markers in ac3 stream for current level change. This markers are set by producer at a mastering stage, so it guarantees high quality. DRC level indicates this level. With 'Use DRC' chekbox  you can enabe/disable using DRC. (of course this is only rough problem description).

    DRC Power control adjusts how much DRC level changes sound level. When DRC Power is increased all quiet sounds will be more stressed and loud sound will be more shaded. When decrease DRC Power dynamic range compression will have less influence at output. Zero DRC Power level means that dynamic range compression applied at normal.


* CPU load.

    Indicates CPU load by sound decoding and processing. All sound processing (if exists) before reproduction included here.


* Input/output levels.

    Right part - levels indication. Note that levels here are in logarithmic scale. Input levels shows real channels configuration. For exampe at a given screenshot good shown that when BSI shows 5.1 in real LFE channel is absent.



Misc.

    All written in this document is the author's personal opinion. And of cource author can be honestly mistaken. So misprints, bugs and fact distotions are possible. About all of that author kindly ask to email immediately.

    I want to say thanks to Marcello Mota for support and big help in hard work of debugging and testing.

    Filter was based on OpenSource LibA/52 library (http://liba52.sourceforge.net) and mainly inherits its characteristics. Much was rewritten but I tried to keep its merits. I want to note high quality of this lib and high compliance with standart (http://www.atsc.org/standards/a_52a.pdf).

    For multichannel format reproduction according to Microsoft recomendations (http://www.microsoft.com/hwdev/tech/audio/multichaudP.asp) WAVE_FORMAT_EXTENSIBLE is used. In theory it may work in any Winodws version. But I didn't make it work with Win98/SB Live! with more than stereo. You can try, especially if you have other sound card.



Distribution.

    This program distributed absolutely freely. It is strictly allowed to install to any number of computers, write any number of copies to CD or other medium and promote it in any way you want. It is alowed to decompile it and make reverse engineering (but it may be easier to write me and ask for sources).

    This product distributed in hope it may be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose and compliance with any standarts. I do not guarantee 24-hour (and any) support, bug correction, repair of lost data, I am not responsible for broken hardware and lost working time. I am not responsible for legality of reproducted with this program multimedia production.



Write an angry message to author.

    ... you can  here. But do not forget about facts:
    As I said before, I do not guarantee immediate answer and corrections of all bugs (sometimes I'd like to sleep at nights). But I'll be glateful for any help in bug-digging, interesting ideas and expressions of appreciation :).

    If you are programmer and you have huge number of genius ideas about future development of this product (or other, but not less genius :) - email me for sources.

Copyright (c) 2002 by Vigovsky Alexander
mailto:xvalex@mail.ru.


Changelog.

0.52b - 01.09.2002

  + Bug fixed - hang on corrupted PES streams.
  + Sound volume increased.
  + Overflow control and automatic gain control added.
  + Master gain control added.
  + DRC power control added.

0.51b - 18.07.2002

  + Bug fixed (crash on some ac3 formats)

0.5a - 07.07.2002

  * AC3 decoder code was fully rewritten
  + PES support added.
  + Levels for LFE, Surround and Voice locked to BSI by default.
  + CPU usage indicator
  + Input and output levels inidicators.
  + DRC level indicator.
  + Some information about stream added.
  + Some bug fixes.


0.4a
- 23.06.2002

  + LFE support and LFE gain added.
  + Added buttons for reset all gains to BSI values.
  + Stereo now transmitted in standart format, so now filter can work
    with sustems with no multi-channel support (Win9x/WinNT).
  + DVD decoding added.
  + Syncronization problem fixed.
  + Option to enable/disable dynamic range compression added.

0.3a - 03.04.2002

  + Volume gain for central (voice) and surround channels.
  + Speaker configuration change support added. Only works when
    all intermediate filters support dynamic reconfiguring and only
    in stopped (not paused!) state.

0.2a - 01.04.2002

  * LibA52 code was rewritten for multitasing, so now possible to
    create many instances of the filter in a filtergraph. It is primary
    used for multi-language films.
  + Information panel added (but settings are not working now).

0.1a - first working alfa



Useful links


AC3Filter site (rus+eng): (http://xvalex.hotbox.ru) (http://xvalex.boom.ru)

A/52a standart (AC3) (eng): (http://www.atsc.org/standards/a_52a.pdf).
LibA52 library (was ac3dec) (eng):  (http://liba52.sourceforge.net).
Multichannel audio reproduction at Windows (eng): (http://www.microsoft.com/hwdev/tech/audio/multichaudP.asp).
Just useful video-related site (eng): (http://www.doom9.org).
And one more (rus): (http://freetime.sinor.ru/observatory/digitalvideo).



Copyright (c) 2002 by Vigovsky Alexander.
Last updated 01.09.2002