AC3Filter ver 0.5b

Russian version
Download: server1, server2


    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.5b

Server1: http://xvalex.hotbox.ru/ac3filter_0_5b.zip
Server2: http://xvalex.boom.ru/ac3filter_0_5b.zip

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



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 relative gain levels.
    BSI lock checkboxes are for lock levels to standart defined. LFE level locks at zero.


* 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).


* 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 Mmota 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.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: (http://xvalex.hotbox.ru) (http://xvalex.boom.ru)

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



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