Blame README

Packit 64f477
Packit 64f477
Packit 64f477
ABOUT LIBA52
Packit 64f477
Packit 64f477
liba52 is a free library for decoding ATSC A/52 streams. It is
Packit 64f477
released under the terms of the GPL license. The A/52 standard is used
Packit 64f477
in a variety of applications, including digital television and DVD. It
Packit 64f477
is also known as AC-3.
Packit 64f477
Packit 64f477
The main goals in liba52 development are:
Packit 64f477
Packit 64f477
      *	Portability - Currently all of the code is written in C, and
Packit 64f477
	when we write platform-specific optimizations we will always
Packit 64f477
	keep a generic C routine to fall back on.
Packit 64f477
Packit 64f477
      *	Reuseability - we do not want liba52 to include any
Packit 64f477
	project-specific code, but it should still include enough
Packit 64f477
	features to be used by very diverse projects.
Packit 64f477
Packit 64f477
      *	Precision - We are trying to implement all of the A/52
Packit 64f477
	standard, and to have a very precise output by doing all the
Packit 64f477
	calculations in floating point. We have a test suite that
Packit 64f477
	detects any deviation in the output when compared to previous
Packit 64f477
	versions. We do not have access to official A/52 test vectors
Packit 64f477
	though, so we have to use our judgement to ensure that such
Packit 64f477
	deviations are only intruduced when we fix bugs !
Packit 64f477
Packit 64f477
      *	Speed - liba52 is really fast, on any modern PC it should take
Packit 64f477
	only a few percent of CPU time.
Packit 64f477
Packit 64f477
The project homepage is at http://liba52.sourceforge.net/
Packit 64f477
Packit 64f477
Packit 64f477
A52DEC
Packit 64f477
Packit 64f477
a52dec is a test program for liba52. It decodes ATSC A/52 streams, and
Packit 64f477
also includes a demultiplexer for mpeg-1 and mpeg-2 program streams.
Packit 64f477
Packit 64f477
The liba52 source code is always distributed in the a52dec package, to
Packit 64f477
make sure it easier for people to test it.
Packit 64f477
Packit 64f477
The basic usage is to just type "a52dec file" where file is an ATSC
Packit 64f477
A/52 file.
Packit 64f477
Packit 64f477
The "-s" option must be used for multiplexed (audio and video) mpeg-2
Packit 64f477
files. These files are usualy found on the internet or on unencrypted
Packit 64f477
DVDs.
Packit 64f477
Packit 64f477
The "-o" option is used to select a given output layer. By default
Packit 64f477
a52dec does a stereo downmix and outputs to your speakers, but you can
Packit 64f477
try other choices using this option. This is also used for performance
Packit 64f477
testing and conformance testing.
Packit 64f477
Packit 64f477
The "-c" option is used to disable all optimizations (currently only djbfft).
Packit 64f477
Packit 64f477
The "-r" option is used to disable the dynamic range compression.
Packit 64f477
Packit 64f477
Packit 64f477
OTHER PROJECTS USING LIBA52
Packit 64f477
Packit 64f477
liba52 (and its ancestor libac3) is being used by various other
Packit 64f477
projects, including:
Packit 64f477
Packit 64f477
      *	xine (http://xine.sourceforge.net/) - started as a simple
Packit 64f477
	mpeg-2 audio and video decoder, but it since became a
Packit 64f477
	full-featured DVD and video media player.
Packit 64f477
Packit 64f477
      *	MPlayer (http://www.MPlayerHQ.hu) - another good player, it is
Packit 64f477
	also very robust against damaged streams.
Packit 64f477
Packit 64f477
      *	movietime (http://movietime.sourceforge.net/) - still quite
Packit 64f477
	young, but it looks very promising !
Packit 64f477
Packit 64f477
      *	ffmpeg (http://ffmpeg.sourceforge.net/) - a nice audio/video
Packit 64f477
	encoder and transcoder, uses liba52 for decoding A/52 streams.
Packit 64f477
Packit 64f477
      *	Ogle (http://www.dtek.chalmers.se/groups/dvd/) - a good DVD
Packit 64f477
	player with menu support
Packit 64f477
Packit 64f477
      * a52decX (http://homepage1.nifty.com/~toku/software_en.html) -
Packit 64f477
	a graphical interface for a52dec in macintosh osX.
Packit 64f477
Packit 64f477
      * bd4go (http://denisx.dyndns.org/bd4go/) - another graphical
Packit 64f477
	interface for macintosh osX.
Packit 64f477
Packit 64f477
      *	OMS (http://www.linuxvideo.org/oms/)
Packit 64f477
Packit 64f477
      *	XMPS (http://xmps.sourceforge.net/)
Packit 64f477
Packit 64f477
      *	GStreamer (http://www.gstreamer.net/) - a framework for
Packit 64f477
	streaming media; it has an A/52 decoding plugin based on liba52.
Packit 64f477
Packit 64f477
      *	mpeglib (http://mpeglib.sourceforge.net/) - a video decoding
Packit 64f477
	library that usess liba52 when decoding A/52 streams.
Packit 64f477
Packit 64f477
If you use liba52 in another project, let us know !
Packit 64f477
Packit 64f477
VideoLAN (http://www.videolan.org/) does not use liba52, but this is
Packit 64f477
still a cool project :)
Packit 64f477
Packit 64f477
Packit 64f477
TASKS
Packit 64f477
Packit 64f477
There are several places where we could easily use some help:
Packit 64f477
Packit 64f477
      *	Web design: This site sucks ! at the very least, we'd like to
Packit 64f477
	come up with a nicer background picture and a logo.
Packit 64f477
Packit 64f477
      *	Testing: If you find any stream that does not decode right
Packit 64f477
	with liba52, let us know ! The best thing would be to mail to
Packit 64f477
	the liba52-devel mailing list. Also if you have access to
Packit 64f477
	encoders, we'd love to get test streams that would be free of
Packit 64f477
	rights - so that we can put them on this server.
Packit 64f477
Packit 64f477
      *	Coding: you can have a look in the TODO file first ! The most
Packit 64f477
	important item is probably to make the code fully reentrant.
Packit 64f477
Packit 64f477
      *	Porting: If you're porting to a new architecture, you might
Packit 64f477
	want to experiment with the compile flags defined in
Packit 64f477
	configure.in . When you figure out whats fastest on your
Packit 64f477
	platform, send us a patch !
Packit 64f477
Packit 64f477
Packit 64f477
REFERENCES
Packit 64f477
Packit 64f477
The A/52 standard, as published by the ATSC, is available at
Packit 64f477
http://www.atsc.org/standards/a_52a.pdf
Packit 64f477
Packit 64f477
Packit 64f477
CVS SNAPSHOTS
Packit 64f477
Packit 64f477
A daily snapshot is created using "make distcheck" every night and
Packit 64f477
uploaded to http://liba52.sourceforge.net/files/a52dec-snapshot.tar.gz .
Packit 64f477
It is easier to use than the CVS repository, because you do not need
Packit 64f477
to have the right versions of automake, autoconf and libtool
Packit 64f477
installed. It might be convenient when working on a liba52 port for
Packit 64f477
example.
Packit 64f477
Packit 64f477
Packit 64f477
CVS REPOSITORY
Packit 64f477
Packit 64f477
The latest liba52 and a52dec source code can always be found by
Packit 64f477
anonymous CVS:
Packit 64f477
Packit 64f477
# export CVSROOT=:pserver:anonymous@cvs.liba52.sourceforge.net:/cvsroot/liba52
Packit 64f477
# cvs login (Just press Return when prompted for a password)
Packit 64f477
# cvs checkout a52dec
Packit 64f477
Packit 64f477
You can also browse the latest changes online at
Packit 64f477
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/liba52/a52dec/
Packit 64f477
Packit 64f477
The other CVS modules are ac3dec-livid for the CVS history of the
Packit 64f477
project while it was still hosted on the linuxvideo.org servers, and
Packit 64f477
ac3dec for the CVS history of the project while the linuxvideo.org
Packit 64f477
servers were down and before the library switched its name to liba52.
Packit 64f477
Packit 64f477
Packit 64f477
MAILING LISTS
Packit 64f477
Packit 64f477
See the subscription information at http://liba52.sourceforge.net/lists.html
Packit 64f477
Packit 64f477
liba52-devel
Packit 64f477
Packit 64f477
This is the main mailing list for technical discussion about
Packit 64f477
liba52. Anyone wanting to work on liba52, or maybe just stay informed
Packit 64f477
about the development process, should probably subscribe to this list.
Packit 64f477
Packit 64f477
liba52-checkins
Packit 64f477
Packit 64f477
All liba52 checkins are announced there. This is a good way to keep
Packit 64f477
track of what goes into CVS.
Packit 64f477
Packit 64f477
liba52-announce
Packit 64f477
Packit 64f477
This is a very low traffic mailing list, only for announcements of new
Packit 64f477
versions of liba52. Only project administrators can post there.