AminetAminet
Search:
84782 packages online
About
Recent
Browse
Search
Upload
Setup
Services

mus/play/mpeg3play.lha

Mirror:Random
Showing: ppc-morphos icongeneric icon
No screenshot available
Short:Optimised MP3 (MPEG 1 Layer 3 audio) decoder
Author:Fraunhofer institute and Johan Hagman
Uploader:Troels Walsted Hansen (troels stud cs uit no)
Type:mus/play
Architecture:m68k-amigaos
Date:1997-02-14
Requires:ixemul.library V45+
Download:mus/play/mpeg3play.lha - View contents
Readme:mus/play/mpeg3play.readme
Downloads:761

This is a decoder for MPEG 1 Layer 3 audio (often refered to as MP3).  It is
based on the same freeware source as the other two archives currently on
aminet (mp3.lha and mpeg1_iis.lha), but the source has been optimised a lot
by Johan Hagman.

I downloaded the source after a tip from Cstar on irc, and compiled it with
ADE gcc.  This decoder is more than 4 times faster than the one found in
mp3.lha.  It is also completely selfcontained, you don't need the external
tables/#?  files anymore.

I changed the makefile for ADE gcc and changed the source to write a raw PCM
file instead of an AIFF file with a header.  This means you can make the
decoder write to the PIPE:  device and have some other program read the audio
data from the pipe at the same time.  I use this for converting mp3 files to
mp2.

To convert an mp3 file to mp2 for realtime playback with the mpegaudio.lha
delitracker player on aminet execute the following commands in a shell:

stack 100000
run mpeg3play -o pipe:mp3 <mp3file>
musicin pipe:mp3 <mp2file> -b128

(You need the pipe device mounted, I think it is found in some other archive
on aminet..)

You can also decode mp3 files to a PCM audio file and play it back using for
example Play16. To do that, try the following commands:

stack 100000
mpeg3play -o <pcmfile> <mp3file>
play16 <pcmfile> tracks=2 bits=16 freq=44100 hifi

Here's some timings I made on my CS060mkII equipped A4000.  I used "timer"
from the Executive 2.0 package to make the timings, so they should be as
exact as possible.

The file is spot1.mp3, 130836 bytes, 416 frames, 11 seconds of audio.

The suffix of the decoder filenames indicate the CPU they were optimised for
by the compiler.

Decoder           Time w/CyberPatcher      Time w/o CyberPatcher
----------------------------------------------------------------
decode020-040     0:09:17.67               0:09:19.51
decode020881      0:06:49.29               0:04:47.49
decode040         0:05:41.69               0:04:26.27
decode040881      0:05:32.96               0:04:19.18

mpeg3play000                               0:04:36.61
mpeg3play020                               0:04:45.35
mpeg3play040                               0:01:07.13
mpeg3play040881   0:01:00.68               0:00:59.06

Yabbadecode060    0:01:05.04               0:01:10.51

Yabbadecode060 is a work in progress.  Just like mpeg3play it is based on the
original mpeg1_iis sources and it has been optimised by Stefan Burström and
compiled for 060 with SAS/C 6.57.  All the other decoders were compiled with
ADE gcc (which does not have an option to optimise for 060).  As you can see
from the timings, mpeg3play is currently the fastest decoder available (even
if it is still far from realtime).

Troels Walsted Hansen, troels@stud.cs.uit.no, Troels on IRC


Contents of mus/play/mpeg3play.lha
 PERMSSN    UID  GID    PACKED    SIZE  RATIO     CRC       STAMP          NAME
---------- ----------- ------- ------- ------ ---------- ------------ -------------
[generic]                 4925   11147  44.2% -lh5- 080e Feb 11  1997 mpeg3play/doc/README.ISO_1994
[generic]                 1485    4300  34.5% -lh5- 7c3d Feb 11  1997 mpeg3play/doc/README.ISO_1996
[generic]                13538   48093  28.1% -lh5- 8728 Feb 11  1997 mpeg3play/src/common.c
[generic]                 5548   20546  27.0% -lh5- 1cca Feb 11  1997 mpeg3play/src/common.h
[generic]                19148   79011  24.2% -lh5- 4c87 Feb 11  1997 mpeg3play/src/decode.c
[generic]                 2069    8391  24.7% -lh5- c063 Feb 11  1997 mpeg3play/src/decoder.h
[generic]                 3326   10614  31.3% -lh5- ea94 Feb 11  1997 mpeg3play/src/huffman.c
[generic]                  880    2185  40.3% -lh5- 6293 Feb 11  1997 mpeg3play/src/huffman.h
[generic]                 5857   28027  20.9% -lh5- 1950 Feb 11  1997 mpeg3play/src/ieeefloat.c
[generic]                 1176    2660  44.2% -lh5- 5464 Feb 11  1997 mpeg3play/src/ieeefloat.h
[generic]                 1051    2570  40.9% -lh5- 9c50 Feb 12  1997 mpeg3play/src/Makefile
[generic]                 8203   26566  30.9% -lh5- 042e Feb 12  1997 mpeg3play/src/musicout.c
[generic]                 1861    6797  27.4% -lh5- e1b0 Feb 11  1997 mpeg3play/src/portableio.c
[generic]                 1306    3789  34.5% -lh5- 58de Feb 11  1997 mpeg3play/src/portableio.h
[generic]                10745   64701  16.6% -lh5- 912b Feb 11  1997 mpeg3play/src/tables.c
[generic]                 1406    3002  46.8% -lh5- 6e80 Feb 12  1997 mpeg3play/doc/mpeg3play.readme
[generic]                  666    1281  52.0% -lh5- e1d0 Feb 11  1997 mpeg3play/doc/README.Fraunhofer
[generic]                 2545    5785  44.0% -lh5- e21d Feb 11  1997 mpeg3play/doc/README.mpeg3play
[generic]                50176  116668  43.0% -lh5- bdf6 Feb 12  1997 mpeg3play/mpeg3play000
[generic]                49253  112808  43.7% -lh5- 55f3 Feb 12  1997 mpeg3play/mpeg3play020
[generic]                37090   85720  43.3% -lh5- 5b1c Feb 12  1997 mpeg3play/mpeg3play040881
---------- ----------- ------- ------- ------ ---------- ------------ -------------
 Total        21 files  222254  644661  34.5%            Feb 14  1997
Page generated in 0.02 seconds
Aminet © 1992-2024 Urban Müller and the Aminet team. Aminet contact address: <aminetaminet net>