$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
|