home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AmigActive 6
/
AACD06.ISO
/
AACD
/
Sound
/
DelfMPEG
/
DelfMPEG.readme
< prev
next >
Wrap
Text File
|
1999-10-27
|
6KB
|
143 lines
Short: MPEG audio player for Delfina DSP
Author: Smack/Infect! (Michael Henke)
Type: mus/play
$VER: DelfMPEG 0.2 (Wed 27-Oct-1999)
#features
-plays MPEG audio files with almost no CPU load
(decoding is done completely by Delfina's DSP56002)
-currently supports only MPEG1 layer II
(layer III will be implemented soon)
-multi-stage buffering system
(for smooth playback while loading from disk)
-free software (full source code included, of course)
#requirements
-CPU 68020+
-AmigaOS V37+
-Delfina DSP board - delfina.library V4+
-asyncio.library V39+
-developed on: A1200 (68030+882 @ 40MHz, 16MB Fast, Delfina1200 DSP)
-tested on: various machines with Delfina1200 and Delfina Lite
#recommended
-reqtools.library V38+
-FastRAM
-some MPEG audio files :)
#changes since previous release
-improved MPEG file reader
-unsupported files (i.e. other than layer II) are skipped
-NOPLAY/S works without delfina.library
-added SHOWTAG/S option
-added NOFASTL/S and NOFASTP/S options
-changed license terms to GNU General Public License
#how to use it
DelfMPEG is a shell-only program. The argument template is:
FILES/M one or more filenames
(if omitted a reqtools file requester appears)
VERBOSE/S output some more information
NOPLAY/S don't play but just print file info
SHOWTAG/S display ID3v1 tag before playing
NOFASTL/S don't use internal L-data memory for the DSP routines
NOFASTP/S don't use internal program memory for the DSP routines
During playback you can use these controls:
CTRL-E pause/continue
CTRL-C stop current file, start next file
CTRL-D quit program
#technical stuff
-internal DSP memory
this memory is built into the DSP56002. it is very fast and can be used
to speed up DSP programs quite a lot. unfortunately there is only a very
little amount of it: 32 words of program memory and 128 words of each
x- and y-data memory. if DelfMPEG fails to allocate some internal memory
for the decoding routines it will operate in slow external memory only.
this slowdown is no problem for Delfina1200 (74MHz DSP) but Delfina Lite
(40MHz DSP) might be a bit overstrained in that situation, beware!
this situation can be enforced using the NOFASTL and NOFASTP options.
-delfina.library bug
the current version of delfina.library (4.14, 15.09.99) contains a bug
that makes DelfMPEG 'crash' (reported by Delfina1200 and Lite users).
delfload shows 100% DSP load and the Delfina watchdog requester says
'Delfina crashed'. ignore this requester and you'll notice that DelfMPEG
is still playing properly! (delfina.library version 4.12 is fine for me)
-the future: external decoding engine
there are two big things planned for DelfMPEG:
1) mp3 support
(currently in the concept phase: looking for "useful" source codes,
investigating memory and processing power requirements)
2) put the DelfMPEG routines into an external decoding engine
many MPEG players for the Amiga make use of external decoders, the most
popular one is Stephane Tavenard's mpega.library. before we decide how to
implement the Delfina MPEG decoder lets look at some important details:
-mpega.library player
1) calls MPEGA_decode_frame() and receives the decoded audio data
2) has additional routines for playback and timing (e.g. using AHI)
-DelfMPEG
1) installs the DSP routines for timing, playback and decoding
2) reads the MPEG files and sends the compressed data to Delfina
notice the difference: the decoded audio data is played directly by
the DelfMPEG DSP decoder.
if we would implement the Delfina decoder in mpega.library it would be
necessary to copy the audio data from Delfina to Amiga and then back to
Delfina for playback which would of course be very inefficient!
one alternative could be something like a "delfmpeg.device", writing data
to it results in decoding and playback - just like DelfMPEG does it.
it will probably require changes in the player programs to support this
new external decoder. The goal is to create an efficient and easy to use
(for application developers) engine that can be added to existing programs
with little effort (Delfina DSP power for every MPEG player!).
ideas and design concepts for the API (device or library?) of the DelfMPEG
external decoding engine are welcome.
#known problems
-files are only recognized if they start with the MPEG1 audio sync word
-DelfMPEG causes deadlocks/crashes when other programs use AHI
(try the NOFASTP option, it seems to prevent these crashes but I have
no idea why! is there a bug in DelfMPEG or is this another problem of
the Delfina kernel?)
-"low bitrate" files (less than 48kbps per channel) sound very strange
(I've already spent several hours searching for that bug in the mp2
decoder but I couldn't locate/fix it yet, sorry)
#author
mailto: smack@smack.de
DelfMPEG - MPEG audio player for Delfina DSP
Copyright (C) 1999 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., 675 Mass Ave, Cambridge, MA 02139, USA.