[MPlayer-dev-eng] [PATCH] replacement for internal mpg123 fork (mp3lib), Final version?

Thomas Orgis thomas-forum at orgis.org
Tue May 25 09:30:36 CEST 2010


Am Mon, 24 May 2010 16:49:48 +0200
schrieb Thomas Orgis <thomas-forum at orgis.org>: 

> Am Mon, 24 May 2010 13:49:06 +0200
> schrieb Diego Biurrun <diego at biurrun.de>: 
> 
> > > Can you compare
> > > 	mpg123 --cpu 3dnow -t file.mp3
> > > with
> > > 	mpg123 --cpu 3dnowext -t file.mp3
> > 
> > The latter is faster for me.

Indeed it is. I see that now, on the 550MHz K6-3+:

shell:~/mplayer-svn$ time ~/mpg123-test/bin/mpg123 --cpu 3dnowext -t
~/convergence_-_points_of_view/02\ -\ Strike\ the\ end.mp3 

real    0m4.711s
user    0m4.660s
sys     0m0.050s
shell:~/mplayer-svn$ time ~/mpg123-test/bin/mpg123 --cpu 3dnow -t
~/convergence_-_points_of_view/02\ -\ Strike\ the\ end.mp3 

real    0m5.384s
user    0m5.260s
sys     0m0.110s
shell:~/mplayer-svn$ time
LD_LIBRARY_PATH=/home/thomas/mpg123-test/lib/ ./mplayer -ac mpg123 -ao
pcm:file=/dev/null -quiet  ~/convergence_-_points_of_view/02\ -\
Strike\ the\ end.mp3 

real    0m5.262s
user    0m5.140s
sys     0m0.110s
shell:~/mplayer-svn$ time
LD_LIBRARY_PATH=/home/thomas/mpg123-test/lib/ ./mplayer -ac mp3 -ao
pcm:file=/dev/null -quiet  ~/convergence_-_points_of_view/02\ -\
Strike\ the\ end.mp3 

real    0m5.122s
user    0m4.990s
sys     0m0.120s
shell:~/mplayer-svn$ 

Oh, to be fair... comparison with actually writing of data to /dev/null

shell:~/mplayer-svn$  time ~/mpg123-test/bin/mpg123 --cpu 3dnowext
-w /dev/null  ~/convergence_-_points_of_view/02\ -\ Strike\ the\
end.mp3 

real    0m4.798s
user    0m4.700s
sys     0m0.090s

No signifcant difference to plain decoding with -t.

I remembered that result with an older mpg123 (I don't upgrade that box
that often, it's a server):

shell:~/mplayer-svn$ mpg123 --version
mpg123 1.5.1
shell:~/mplayer-svn$ time mpg123 --cpu 3dnow -t
~/convergence_-_points_of_view/02\ -\ Strike\ the\ end.mp3 

real    0m5.641s
user    0m5.550s
sys     0m0.080s
shell:~/mplayer-svn$ time mpg123 --cpu 3dnowext -t
~/convergence_-_points_of_view/02\ -\ Strike\ the\ end.mp3 

real    0m5.994s
user    0m5.900s
sys     0m0.090s

So perhaps that's only an aberration on this install? The 3DNowExt
optimization didn't really change -- it's still what has been imported
from MPlayer's mp3lib. Hm... now why is the new mpg123 faster with
3DNowExt ... I have a suspicion: I changed the handling of some buffers
with mpg123 1.12 (please ignore mpg123 1.11, the previous version was
1.10), in the course of that increasing alignment to 64 bytes.

shell:~$ time ~/mpg123-1.10/bin/mpg123 --cpu 3dnowext -t
~/convergence_-_points_of_view/02\ -\ Strike\ the\ end.mp3

real    0m4.765s
user    0m4.690s
sys     0m0.080s
shell:~$ time ~/mpg123-1.10/bin/mpg123 --cpu 3dnow -t 
~/convergence_-_points_of_view/02\ -\ Strike\ the\ end.mp3

real    0m5.436s
user    0m5.370s
sys     0m0.050s

No difference to version 1.12. Trying a re-build of 1.5.1:

thomas at knecht:~$ time ~/mpg123-1.5/bin/mpg123 --cpu 3dnowext -t 
~/convergence_-_points_of_view/02\ -\ Strike\ the\ end.mp3

real    0m5.690s
user    0m5.580s
sys     0m0.090s
thomas at knecht:~$ time ~/mpg123-1.5/bin/mpg123 --cpu 3dnow -t
~/convergence_-_points_of_view/02\ -\ Strike\ the\ end.mp3

real    0m5.338s
user    0m5.270s
sys     0m0.060s

So this is consistent. Digging further: Since mpg123 version 1.8,
3DNowExt got a performance boost. I'm not yet sure what exact change it
was, as the actual assembly code did not change. But, OK, we got that
settled.

Now, on to the question of making MPlayer about as fast as plain
mpg123 on this platform...


Alrighty then,

Thomas.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/attachments/20100525/44732c90/attachment.pgp>


More information about the MPlayer-dev-eng mailing list