Subversion Repositories shark

Rev

Rev 2 | Blame | Compare with Previous | Last modification | View Log | RSS feed

**********************************************************************
* MPEG 1.0/2.0 _AUDIO_ PLAYER, V0.59k                                * 
*                                                                    *
* (full?) MPEG 1.0/2.0, Layer 1,2 and 3 support                      *
* Layer-3 realtime only with a 'fast' machine                        *
* Since April 97, 128kbit j-stereo should work on a 486DX4-100.      *
* With 2:1 down-sampling or using the downmix-mode even a 486DX2-66  *
* should play such a stream in realtime!                             *
*                                                                    *
* I still claim to have the fastest MPEG Audio Player for UNIX ;)    *
**********************************************************************

Please read first the important information in the COPYING file.

written/modfied by:
   Michael Hipp (email: Michael.Hipp@student.uni-tuebingen.de)
   Oliver Fromme <oliver.fromme@heim3.tu-clausthal.de>
    (several enhancements, man pages, Makefile, FreeBSD port, License, etc.)

Uses code (or at least ideas) from:
  MPEG Software Simulation Group (Base package)
  Tobias Bading (subband synthesis)
  Jeff Tsay and Mikko Tommila (DCT36)
  Philipp Knirsch (DCT36/manual unroll)
  Thomas Woerner (SGI Audio)
  Damien Clermonte (HP-UX audio fixes)
  Niclas Lindstrom (OS2 port)
  and more ....

current original distribution site is:
  http://www.sfs.nphil.uni-tuebingen.de/~hipp/mpg123.html

here's Oliver Fromme's mpg123 page:
  http://www.heim3.tu-clausthal.de/~olli/mpg123/
  (includes information about the mpg123 mailing list)

and you can get the latest release from here:
  ftp.tu-clausthal.de:/pub/unix/audio/mpg123
  http://ftp.tu-clausthal.de/pub/unix/audio/mpg123

------------------------------------------------------------------------

V0.59k plays a layer3,112Kbit/s,J-Stereo stream on my AMD 5x86/133Mhz
with about 66% CPU load. (on the console, NO X11)
If your machine isn't fast enough you may try the downsampling
feature (--2to1 and --4to1 options)
Playing in '--singlemix' (stero reduced to mono) also saves some
CPU cycles, though the whole code is optimized for 'full' stereo playing. 

'Benchmarks': (+/- 2%)
----------------------
(AMD 486/133MHZ,ASUS SP3G,256KB cache,DIRTY-TAG installed,(BusLogic SCSI))
(Layer3, 112Kbit/s, Joint-Stereo stream (partially MS stereo, no I-stereo))
(Compiled with: -DI386_ASSEM -DREAL_IS_FLOAT -DLINUX -Wall -O2 -m486
   -fomit-frame-pointer -funroll-all-loops -finline-functions -ffast-math)

  full quality:     (stero)     66% (-> should work on 486DX4-100)
                    (singlemix) 38% (-> should work on 486DX2-66)
  2:1 downsampling: (stereo)    48%
                    (singlemix) 30% (-> should work on 486DX-50)

---------------------------------------------------------------------
Description:

This isn't a new player. It's a near fully rewritten version based on the
mpegaudio (FHG-version) package. The DCT algorithm in the
synthesis filter is a rewritten version of the DCT first seen in the maplay
package, which was written by Tobias Bading (bading@cs.tu-berlin.de). The 
rewrite was neccassary, because the GPL may not allow this copyright mix.
The mpegaudio package was written by various people from the MPEG/audio
software simulation group. The maplay is under GPL .. You can find the
original source code and the mpegaudio package on: ftp.tnt.uni-hannover.de.

You will find code from the mpegaudio package in:
   layer3.c
   common.c
   mpg123.h
I also often used the same variable names in the rewritten parts.

In the current layer3.c I'm using a DCT36 from Jeff Tsay's 
(ctsay@pasteur.eecs.berkeley.edu) maplay 1.2+ package. His code is
under GPL .. I also tried the enhancement from Mikko Tommila. His
code is also in layer3.c (but it's disabled at the moment, because
it was slightly slower than the unrolled 9 point DCT (at least on 
_my_ system)). Theoretically it should be faster. You may try it on
your system.

The output is always 'two channel interleaved'. If the input is a
a mono-stream or single-channel is enabled, the player duplicates
the channel. Currently, only (very simple) audiosupport for
Linux,HP7xx,SGI,SunOS/Solaris and FreeBSD systems.
I have tested the program with a lot of teststreams, but it's very 
likely, that there are still a few bugs.

have fun,
           Mike

----------------------------------------------------------------------------

Just for info:
    I'm also working (but not at the moment) on a DSP port for this package. 
    A first testversion of the layer-2 part is finished and seems
    to work in realtime with my 20MHZ ADSP-2115 

----------------------------------------------------------------------------

Copyrights (c) 1995,1996,1997 of all changes/modifications and
of the new code by Michael Hipp. All rights reserved.
Copyrights (c) 1997 of several enhancements by Oliver Fromme.
See the packages 'maplay 1.2(+)' and 'mpegaudio' for their copy-policies.
Copyrights (c) 1997 of the OS2 specific parts by Niclas Lindstrom

known bugs:
  layer 3 i-stereo not heavily tested
   btw: I'm looking for i-stereo teststreams .. maybe you could send me a few
  Layer 1 not heavily tested
  no CRC checking ..
  no 'free format streams'
  no clean audio interface
  MPEG 2.0, Layer1 and Layer2 not tested (and probably will not work)
  MPEG 2.0, Layer3 not heavily tested .. may has bugs.


******************************************************************************
*
* This is software with ABSOLUTELY NO WARRANTY.
* Use it at your OWN RISK. It's possible to damage e.g. hardware or your hearing
* due to a bug or for other reasons. 
*
* I do not warrant that the program is free of infringement of any third-party
* patents.
*
******************************************************************************