Package: mp3splt
Version: 2.1c-4
Severity: normal

mp3splt is apparently not lossless.  The concatenation of the decoding
(with madplay) of a sequence of split MP3 files varies from the
decoding of the original MP3.

The manual page describes the operations that mp3splt does as "without
decoding."  To me, that implies a lossless (reversible) operation.  If
mp3splt is not designed to be lossless, and the author has no interest
in implementing lossless splitting, please be clear about the lossy
nature of mp3splt in the manual and package description.

If mp3splt is intended to be lossless, please read on to my
description of how to reproduce the problem.


Step 1: I found a random free MP3 file that matches my original
problem file in terms of technical characteristics.  It is 3.58MB and
can be downloaded from:

  http://www.archive.org/download/Body/Intro.mp3

For reference, this is the SHA-1 I have of the file:
d22b3453b853419d3421e9993af8529388e03321

This file is a CBR 128kb/s MPEG 1 Layer III audio file, according to
mp3val and mpg321.

Step 2: To avoid complications with ID3 tags, I removed them (using
id3v2 version 0.1.11-3).

$ id3v2 --delete-all Intro.mp3

Step 3: I split the MP3 into two pieces: from the beginning to the
1-minute point, then from the 1-minute point to the end.  (I used
mp3splt version 2.1c-4.)

$ mp3splt -o intro-pa...@n -f -n Intro.mp3 0.00.00 1.00.00 EOF
Mp3Splt 2.1 (2004/Sep/28) by Matteo Trotta <matteo.tro...@lib.unimib.it>
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!
MPEG 1 Layer 3 - 44100 Hz - Stereo - FRAME MODE
  50 % -> Splitting Intro-part_1.mp3... OK
 100 % -> Splitting Intro-part_2.mp3... OK (EOF)
Processed 8982 frames - Sync errors: 0

Step 4: I took the SHA-1 digest of the raw-format decoding of the
original MP3 file.  (I used madplay version 0.15.2b-5 and libmad0
version 0.15.1b-4.)

$ madplay -o raw:- Intro.mp3 | sha1sum
MPEG Audio Decoder 0.15.2 (beta) - Copyright (C) 2000-2004 Robert Leslie et al.
8981 frames decoded (0:03:54.6), -0.1 dB peak amplitude, 0 clipped samples
591d33ff3b03a3e6ac2b446c77692814dcde54c1  -
[SHA-1 digest shown will be different on big-endian machines.]

Step 5: I decoded the two split MP3 files in sequence, concatenating
the raw-formatted results, and took the SHA-1 digest of that:

$ madplay -o raw:- Intro-part_*.mp3 | sha1sum
MPEG Audio Decoder 0.15.2 (beta) - Copyright (C) 2000-2004 Robert Leslie et al.
>> Intro-part_1.mp3
2296 frames decoded (0:00:59.9), -0.9 dB peak amplitude, 0 clipped samples
>> Intro-part_2.mp3
6683 frames decoded (0:02:54.5), -0.1 dB peak amplitude, 0 clipped samples
ed2c7674577bbfc9b3fe01f8782c0c39111e08dd  -
[SHA-1 digest shown will be different on big-endian machines.]

The digest from step 4 should match the digest from step 5.  It does
not.  This indicates to me that, unless there is an error in
madplay or libmad0, mp3splt is not losslessly splitting the MP3 file.

Note that the sum of the number of frames decoded in step 5 is 8979,
which is two less than the number of frames decoded in step 4.  I
don't know enough about the MP3 format and the implementation of
mp3splt to know whether this itself indicates a problem, but it's
worth pointing out.


I've also reproduced the same result (a mismatch of digests) with
another decoder (mpg123 version 1.4.3-4 and libmpg123-0 version
version 1.4.3-4):

$ mpg123 --stdout Intro.mp3 |sha1sum
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3
        version 1.4.3; written and copyright by Michael Hipp and others
        free software (LGPL/GPL) without any warranty but with best wishes

Playing MPEG stream 1 of 1: Intro.mp3 ...
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz stereo

[3:54] Decoding of Intro.mp3 finished.
7a0135949b5f3340ccb1a0894fde174297a404fd  -
$ mpg123 --stdout Intro-part_*.mp3 |sha1sum
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3
        version 1.4.3; written and copyright by Michael Hipp and others
        free software (LGPL/GPL) without any warranty but with best wishes

Playing MPEG stream 1 of 2: Intro-part_1.mp3 ...
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz stereo

[0:59] Decoding of Intro-part_1.mp3 finished.

Playing MPEG stream 2 of 2: Intro-part_2.mp3 ...
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz stereo

[2:54] Decoding of Intro-part_2.mp3 finished.
4a2c0e1800ba1a436e98b7a3b482fbb5a6182e02  -
[SHA-1 digests shown will be different on big-endian machines.]


That about wraps it up.  If you have questions, please get in touch.
Thanks for looking at this,

-- System Information:
Debian Release: 5.0.3
  APT prefers stable
  APT policy: (700, 'stable'), (650, 'testing')
Architecture: i386 (i686)

Kernel: Linux 2.6.26-2-686 (SMP w/1 CPU core)
Locale: LANG=C, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages mp3splt depends on:
ii  libc6                     2.9-25         GNU C Library: Shared libraries
ii  libmad0                   0.15.1b-4      MPEG audio decoder library
ii  libogg0                   1.1.3-4        Ogg Bitstream Library
ii  libvorbis0a               1.2.0.dfsg-3.1 The Vorbis General Audio Compressi
ii  libvorbisfile3            1.2.0.dfsg-3.1 The Vorbis General Audio Compressi

mp3splt recommends no packages.

mp3splt suggests no packages.

-- no debconf information

-- 
J.P. Larocque <j...@thoughtcrime.us>



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to