home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / GFX / MPEG / mpeg3play.lha / mpeg3play / doc / README.mpeg3play < prev   
Encoding:
Text File  |  1997-02-11  |  5.6 KB  |  137 lines

  1.  
  2.             mpeg3play version 0.9.3
  3.                February 2, 1997
  4.  
  5.  
  6. Home page: The Solaris Helpers Page at
  7.            http://home1.swipnet.se/%7Ew-10694/helpers.html
  8. Author:    Johan.Hagman@mailbox.swipnet.se
  9.  
  10.  
  11. mpeg3play is an MPEG audio layer 2 and layer 3 audio decoder/player for
  12. Solaris 2.4 or later versions, based on public ISO/MPEG audio decoder
  13. source code.
  14.  
  15. Version 0.9 was the initial release of the player, but it can also be
  16. compiled for Linux (since version 0.9.1) and HPUX (since version 0.9.3).
  17.  
  18. The original software is a slow but portable MPEG to AIFF decoder,
  19. impossible to use as a real-time player. I have optimized the source
  20. code to the point where it becomes possible to use the decoder for
  21. real-time playback, and have modified it for output to the Solaris
  22. audio device.
  23.  
  24. The -h (help) command line option shows the program usage:
  25.  
  26.     % mpeg3play -h
  27.     +---------------------------------------+
  28.     |   mpeg3play version 0.9.3, 2-Feb-97   |
  29.     +---------------------------------------+
  30.     This is an MPEG audio layer 2 and layer 3 decoder/player
  31.     based on public ISO/MPEG audio decoder source code. Solaris
  32.     port and optimizations by Johan.Hagman@mailbox.swipnet.se.
  33.  
  34.     Copyright (C) 1996, 1997 by Johan Hagman.
  35.     This program is free software.
  36.  
  37.     usage: mpeg3play [-v] [-h] [-f] [-o outfile.aiff] filename
  38.       -v          enable verbose mode
  39.       -h          display program help information
  40.       -f          fork off new player and return
  41.       -o outfile  write an AIFF output PCM sound file
  42.       filename    bit stream of encoded audio ("-" means stdin)
  43.  
  44. ----------------------------------------------------------------------
  45.  
  46. ABOUT THE SOURCE CODE
  47.  
  48. mpeg3play was developed on Solaris 2.4 with Sun SPARCompiler C 4.0.
  49.  
  50. Note that this is the portable C version of mpeg3play. The Solaris/SPARC
  51. binary available from the Solaris Helpers page includes some assembly
  52. optimizations in addition to the C optimizations in this source.
  53.  
  54. A number of customization flags can be set in the makefile:
  55.  
  56. FSINGLE        Use single precision math.
  57. OPTIMIZE    Select optimized C routines. If this is not defined,
  58.         the original, slow code is selected.
  59. BUILTIN_TABLES    Build lookup tables into the binary. Must always be
  60.         defined with this source distribution.
  61. DETECT_CLIP    Check and correct clipped samples. Slows down the player
  62.         somewhat, but sounds better with (too) loud audio data.
  63. ASM_OPTIMIZE    Select optimized assembly functions. As shipped, the
  64.         following functions are expected to be optimized in
  65.         some external file:
  66.             SubBandSynthesis()
  67.             II_dequantize_sample()
  68.             inv_mdct()
  69. INT_MATH    Select integer math routines. As shipped, an optimized
  70.         integer math version of the function SubBandSynthesis()
  71.         is expected to be be defined in some external file.
  72.  
  73. This is a runtime profile that lists the most important functions to
  74. optimize for playback of layer 3 audio:
  75.  
  76.    %  cumulative    self              self    total          
  77.  time   seconds   seconds    calls  ms/call  ms/call name    
  78.  49.8       2.61     2.61    20736     0.13     0.13  SubBandSynthesis [3]
  79.   8.6       3.66     0.45     1152     0.39     0.39  III_dequantize_sample [6]
  80.   4.4       4.13     0.23     1152     0.20     0.44  III_hufman_decode [5]
  81.   3.2       4.50     0.17   172393     0.00     0.00  huffman_decoder [7]
  82.   2.1       4.74     0.11   675263     0.00     0.00  hget1bit [10]
  83.   1.7       4.94     0.09      576     0.16     0.16  III_stereo [12]
  84.   1.3       5.01     0.07     1152     0.06     0.06  III_antialias [13]
  85.   1.0       5.06     0.05    36864     0.00     0.00  III_hybrid [20]
  86.   0.8       5.15     0.04   107827     0.00     0.00  getbits [11]
  87.   0.6       5.18     0.03     1152     0.03     0.03  III_reorder [23]
  88.  
  89. To make it easier to update and improve mpeg3play, I would like to be
  90. notified of enhancements to this source, so that they can be merged
  91. into future versions of mpeg3play.
  92.  
  93. The original source code that the player is based on can be found in
  94. ftp://ftp.tnt.uni-hannover.de/pub/MPEG/audio/mpeg2/software/
  95. technical_report/dist08.tar.gz
  96.  
  97. ----------------------------------------------------------------------
  98.  
  99. KNOWN PROBLEMS
  100.  
  101. - Audio streams through Netscape sometimes fail (probably a caching
  102.   issue, try to clear the Netscape cache if this happens).
  103.  
  104. - Cannot play some 16kbps mono files. This is probably due to the very
  105.   crude implementation of bitstream synchword detection.  It may not be
  106.   able to correctly decode valid bitstreams which have false synchword
  107.   patterns in the ancillary data portion of the bitstream.
  108.  
  109. - mpeg3play makes the Linux audio driver leak memory (presumably by not
  110.   cleaning up nicely once it's done).
  111.  
  112. ----------------------------------------------------------------------
  113.  
  114. HISTORY
  115.  
  116. 16-Dec-96  0.9      Initial release.
  117. 30-Jan-97  0.9.1  Code cleanups to remove compiler warnings, audio device
  118.           initialization moved to its own function. The implementation
  119.           of SubBandSynthesis slightly changed.
  120.           Linux port by Tim Newsome <drz@froody.bloke.com>.
  121. 31-Jan-97  0.9.2  Some additional optimizations, single precision floats
  122.           (-DFSINGLE) now works on Linux.
  123.  2-Feb-97  0.9.3  A port to HPUX 9.05 by Damien Clermonte <clermond@esiee.fr>.
  124.  
  125. ----------------------------------------------------------------------
  126.  
  127.             Copyright (C) 1996, 1997 by Johan Hagman
  128.  
  129.   Johan Hagman disclaims all warranties with regard to this software,
  130.   including all implied warranties of merchantability and fitness.
  131.   In no event will Johan Hagman be liable for direct, incidental or
  132.   consequential damages resulting from loss of data or business
  133.   opportunities, resulting from mpeg3play, or any part of same,
  134.   either alone or in conjunction with other programs.
  135.  
  136.   mpeg3play is distributed "as is" at no additional charge.
  137.