$VER: DelfMPEG 1.0 (Sat 17-May-2003)
#features
  -plays MPEG audio files with almost no CPU load
   (Delfina's DSP56002 does all the decoding and playback)
  -supports MPEG-1 layer II and III
  -NEW: can write the decoded data to a file
  -ARexx interface
   (full 'remote control' capability)
  -multi-stage buffering system
   (for smooth playback while loading from disk)
  -free software (full source code included, of course)
#required
  -CPU 68020+
  -AmigaOS V37+
  -Delfina DSP board
  -asyncio.library V39+
  -developed on A1200 - OS3.1/68030+882@40MHz/16MBFastRAM/Delfina1200DSP
  -tested on various machines with Delfina 1200, Lite, Plus or Flipper
#recommended
  -reqtools.library V38+
  -latest version of delfina.library (see also 'known problems' section)
  -some MPEG audio files :)
#changes since previous release
  -fixed interference with serial I/O (interrupt timing problem)
  -recognition of the new Delfina Flipper board (shown in VERBOSE mode)
  -OUTFILEINTEL option added (write decoded data to a file - Intel byteorder)
#how to use
  DelfMPEG is a shell-only program.  The following options can be used:
  FILES ......... -one or more filenames. (MPEG files or playlists)
                  -if omitted a reqtools file requester appears.
                  -if a file is not recognized as MPEG-1 audio then it is
                   interpreted as a playlist file. playlists are simple text
                   files that can be generated by popular player programs,
                   such as AMPlifier, Winamp (*.m3u) and others.
                  -playlist format: one file name per line, comment lines
                   beginning with a '#' character are ignored.
  OUTFILE/-o <filename>
                  -write decoded data to this file (no playback).
                  -the output file will be overwritten without warning!
                  -output file format: raw PCM (no AIFF or WAV header),
                   16 bits per sample (big endian),
                   number of channels (1=mono or 2=stereo) and sampling
                   frequency (32000, 44100 or 48000 Hz) are taken from the
                   MPEG input file.
                  -note: you can use DelfSF to play the raw file.
                   (Aminet:mus/play/DelfSF.lha)
  OUTFILEINTEL/-oi <filename>
                  -same as OUTFILE, except that the output data is written
                   in Intel byteorder (little endian).
                  -note: you can use DelfSF to play the raw file.
                   (Aminet:mus/play/DelfSF.lha)
  AREXX ......... -activate ARexx mode.
                  -please read the file 'arexx.txt' for details.
                  -there are some example scripts in the 'rexx' sub-directory
  VERBOSE/-v .... -output more information.
  NOPLAY/-n ..... -don't play but just output some information.
                  -this works also without a Delfina board.
  SHOWTAG/-t .... -display ID3v1 tag before playing.
                  -some extra information that can be appended to MPEG audio
                   files, such as title, artist etc.
  MONO/-m ....... -decode only the left channel of stereo files.
                  -WARNING: degrades playback quality!
                  -this option can be used to reduce DSP load on Delfina Lite
                   boards which have a slower DSP (40 MHz instead of 73 MHz)
  DACRATE/-d <number>   (default: 0)
                  -set Delfina's codec rate to a fixed value (in kHz).
                  -WARNING: can degrade playback quality!
                  -this option can be used to reduce DSP load on Delfina Lite
                   boards which have a slower DSP (40 MHz instead of 73 MHz)
                  -the default value of 0 (zero) means "best quality"
                  -the given value is automatically rounded to the nearest
                   available Delfina rate:  16, 27, 32 or 48 kHz.
                   (for Delfina 1200 and Plus: 12, 24, 36 or 48 kHz)
  VOLUME/-vol <number>  (default: 100)
                  -set the playback volume (in per cent, range 0...200).
                  -WARNING: can degrade playback quality!
                   if the volume is boosted (101...200) there can distortions
                   caused by output clipping.
  FRAMEBUF/-f <number>  (default: 100)
                  -set the number of read-ahead frame buffers.
                   (does not influence performance)
  ASYNCBUF/-a <number>  (default: 128)
                  -set the size of the AsyncIO buffer (in Kbytes).
                   (large IO-buffers = faster reading from disk)
  FFSKIP/-ff <number>   (default: 10)
                  -set the number of frames that are skipped during fast
                   forward mode, i.e. when Ctrl-F is pressed
  NOFASTL/-nl
  NOFASTP/-np ... -the fast internal DSP memory is NOT used (L-data/Program)
                  -only useful for benchmarks or debugging
  NOTIMER/-nt ... -suppress output of the position timer during playback.
                   (recommended for playing background music while you are
                   using other programs)
  STRICT/-s ..... -abort playback when an error in input file is detected.
                   (normally DelfMPEG tries to continue playback by skipping
                   the error in the file)
  During playback these keys can be used:
  Ctrl-F   fast forward
  Ctrl-E   pause/continue
  Ctrl-C   stop current file, start next file
  Ctrl-D   quit program
#known problems
  -DelfMPEG only recognizes MPEG-1 audio files.
   not supported: MPEG-2 or mixed audio/video files.
  -some mp3 files are not played correctly! what's wrong with DelfMPEG?
   1) DSP load approaches or exceeds the 100% limit on slow Delfinas.
      symptom: audible "drop-outs", DECODER_BUSY warning in VERBOSE mode.
      actions: use MONO or DACRATE options to reduce DSP load (and quality)
               or overclock your Delfina Lite (by hardware modification or
               software hack "DelfTweak") or buy a new, faster Delfina.
   2) in VERBOSE mode an "unexpected EOF" error is reported for some files.
      symptom: just the error message.
      actions: this seems to be caused by some (bad) MPEG audio encoders that
               truncate the last frame in mp3 files. use LAME instead, it's
               the best mp3 encoder around, IMO.
  -DelfMPEG causes deadlocks/crashes.
   1) delfina.library 4.14  -  the "fake crash" bug
      symptom: soon after DelfMPEG started playing the "Delfina crashed"
               requester appears; DelfLoad display jumps to 100%.
      actions: wait for Petsoff to release a fixed delfina.library.
               ignore the "Delfina crashed" requester (that's right, do not
               reply it while DelfMPEG is playing).
               or you could use an older version of delfina.library (4.13 or
               lower) - not recommended, there seem to be other problems.
   2) delfina.library 4.14 and lower  -  the "AHI killer" bug
      symptom: AHI and DelfAIFF crash if used after DelfMPEG. the system
               freezes and must be rebooted.
      actions: wait for Petsoff to release a fixed delfina.library.
               use the NOFASTP option of DelfMPEG, it avoids the bug but it
               also slows down the decoder!
               or use the workaround: quit DelfMPEG and all other Delfina
               programs, use "avail flush" to remove delfina.library from
               memory and then start your AHI programs.
   3) delfina.library beta versions > 4.14  -  the "sudden freeze" problem
      symptom: while playing MPEG files the system might suddenly "freeze"
               (playback stops; CPU load jumps to 100%, thus blocking any
               running applications)
      actions: the reason for this problem is not known. it could be a bug
               in delfina.library, at least there exists an unofficial
               patched version of the library that seems to work better.
#acknowledgements
  DelfMPEG uses ideas/code from:
  -MPEG Audio Layer II decoder by Fredrik Noring and Tomas Berndtsson
   (an mp2 player for Atari Falcon, DSP56K code)
  -amp11 by Niklas Beisert (clean and fast C++ code)
  -FalcAMP by Denis "STGhost" Huguet and David "Splash" Carrere
   (an mp3 player for Atari Falcon, DSP56K code)
  -reference code by MPEG Software Simulation Group ("the original" C code)
#author
  mailto: smack42@web.de
  DelfMPEG - MPEG audio player for Delfina DSP
  Copyright (C) 1999-2003  Michael Henke
  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 2 of the License, or
  (at your option) any later version.
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.
  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 |