1 2 3ABOUT LIBA52 4 5liba52 is a free library for decoding ATSC A/52 streams. It is 6released under the terms of the GPL license. The A/52 standard is used 7in a variety of applications, including digital television and DVD. It 8is also known as AC-3. 9 10The main goals in liba52 development are: 11 12 * Portability - Currently all of the code is written in C, and 13 when we write platform-specific optimizations we will always 14 keep a generic C routine to fall back on. 15 16 * Reuseability - we do not want liba52 to include any 17 project-specific code, but it should still include enough 18 features to be used by very diverse projects. 19 20 * Precision - We are trying to implement all of the A/52 21 standard, and to have a very precise output by doing all the 22 calculations in floating point. We have a test suite that 23 detects any deviation in the output when compared to previous 24 versions. We do not have access to official A/52 test vectors 25 though, so we have to use our judgement to ensure that such 26 deviations are only intruduced when we fix bugs ! 27 28 * Speed - liba52 is really fast, on any modern PC it should take 29 only a few percent of CPU time. 30 31The project homepage is at http://liba52.sourceforge.net/ 32 33 34A52DEC 35 36a52dec is a test program for liba52. It decodes ATSC A/52 streams, and 37also includes a demultiplexer for mpeg-1 and mpeg-2 program streams. 38 39The liba52 source code is always distributed in the a52dec package, to 40make sure it easier for people to test it. 41 42The basic usage is to just type "a52dec file" where file is an ATSC 43A/52 file. 44 45The "-s" option must be used for multiplexed (audio and video) mpeg-2 46files. These files are usualy found on the internet or on unencrypted 47DVDs. 48 49The "-o" option is used to select a given output layer. By default 50a52dec does a stereo downmix and outputs to your speakers, but you can 51try other choices using this option. This is also used for performance 52testing and conformance testing. 53 54The "-c" option is used to disable all optimizations (currently only djbfft). 55 56The "-r" option is used to disable the dynamic range compression. 57 58 59OTHER PROJECTS USING LIBA52 60 61liba52 (and its ancestor libac3) is being used by various other 62projects, including: 63 64 * xine (http://xine.sourceforge.net/) - started as a simple 65 mpeg-2 audio and video decoder, but it since became a 66 full-featured DVD and video media player. 67 68 * MPlayer (http://www.MPlayerHQ.hu) - another good player, it is 69 also very robust against damaged streams. 70 71 * movietime (http://movietime.sourceforge.net/) - still quite 72 young, but it looks very promising ! 73 74 * ffmpeg (http://ffmpeg.sourceforge.net/) - a nice audio/video 75 encoder and transcoder, uses liba52 for decoding A/52 streams. 76 77 * Ogle (http://www.dtek.chalmers.se/groups/dvd/) - a good DVD 78 player with menu support 79 80 * a52decX (http://homepage1.nifty.com/~toku/software_en.html) - 81 a graphical interface for a52dec in macintosh osX. 82 83 * bd4go (http://denisx.dyndns.org/bd4go/) - another graphical 84 interface for macintosh osX. 85 86 * OMS (http://www.linuxvideo.org/oms/) 87 88 * XMPS (http://xmps.sourceforge.net/) 89 90 * GStreamer (http://www.gstreamer.net/) - a framework for 91 streaming media; it has an A/52 decoding plugin based on liba52. 92 93 * mpeglib (http://mpeglib.sourceforge.net/) - a video decoding 94 library that usess liba52 when decoding A/52 streams. 95 96If you use liba52 in another project, let us know ! 97 98VideoLAN (http://www.videolan.org/) does not use liba52, but this is 99still a cool project :) 100 101 102TASKS 103 104There are several places where we could easily use some help: 105 106 * Web design: This site sucks ! at the very least, we'd like to 107 come up with a nicer background picture and a logo. 108 109 * Testing: If you find any stream that does not decode right 110 with liba52, let us know ! The best thing would be to mail to 111 the liba52-devel mailing list. Also if you have access to 112 encoders, we'd love to get test streams that would be free of 113 rights - so that we can put them on this server. 114 115 * Coding: you can have a look in the TODO file first ! The most 116 important item is probably to make the code fully reentrant. 117 118 * Porting: If you're porting to a new architecture, you might 119 want to experiment with the compile flags defined in 120 configure.in . When you figure out whats fastest on your 121 platform, send us a patch ! 122 123 124REFERENCES 125 126The A/52 standard, as published by the ATSC, is available at 127http://www.atsc.org/standards/a_52a.pdf 128 129 130CVS SNAPSHOTS 131 132A daily snapshot is created using "make distcheck" every night and 133uploaded to http://liba52.sourceforge.net/files/a52dec-snapshot.tar.gz . 134It is easier to use than the CVS repository, because you do not need 135to have the right versions of automake, autoconf and libtool 136installed. It might be convenient when working on a liba52 port for 137example. 138 139 140CVS REPOSITORY 141 142The latest liba52 and a52dec source code can always be found by 143anonymous CVS: 144 145# export CVSROOT=:pserver:anonymous@cvs.liba52.sourceforge.net:/cvsroot/liba52 146# cvs login (Just press Return when prompted for a password) 147# cvs checkout a52dec 148 149You can also browse the latest changes online at 150http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/liba52/a52dec/ 151 152The other CVS modules are ac3dec-livid for the CVS history of the 153project while it was still hosted on the linuxvideo.org servers, and 154ac3dec for the CVS history of the project while the linuxvideo.org 155servers were down and before the library switched its name to liba52. 156 157 158MAILING LISTS 159 160See the subscription information at http://liba52.sourceforge.net/lists.html 161 162liba52-devel 163 164This is the main mailing list for technical discussion about 165liba52. Anyone wanting to work on liba52, or maybe just stay informed 166about the development process, should probably subscribe to this list. 167 168liba52-checkins 169 170All liba52 checkins are announced there. This is a good way to keep 171track of what goes into CVS. 172 173liba52-announce 174 175This is a very low traffic mailing list, only for announcements of new 176versions of liba52. Only project administrators can post there. 177