Help - Search - Members - Calendar
Full Version: Xmms - Need Mpeg 1/2/3 Plugin
OESF Forums > Distros, Development, and Model Specific Forums > Distro Support and Discussion > pdaXrom
maystorm
Lately I came across a number of files which xmms would refuse to play on my C3000. Xmms on my desktop PC plays them fine. I checked those MP3's with the 'file' utility which prints:

Wamdue Project - King Of My Castle.mp3: RIFF (little-endian) data, WAVE audio, MPEG Layer 3, stereo 44100 Hz

Comparing the plugins on my desktop PC with those on my Zaurus I found out that I'm missing following plugin:

MPEG Layer 1/2/3 Player 1.2.10 [libmpg123.so]

Can somebody tell me where I can find this plugin for my C3000?

TIA!
maystorm
Update:

I've now been trying to compile xmms (version 1.2.10 sources) myself in order to get the MPG123 plugin. However, although building and installing xmms works fine the build process wouldn't create the shared libraries "libmpg123.so"! It only creates static libraries "libmpg123.a". I have tried to run ./configure with and without the "--enable-shared" option (which should be on by default anyway), however, both to no avail. Also other plugins such as the OSS output plugin are not created as shared libraries only as static ones (so I can run xmms but don't hear anything). Only libwav.so and libtonegen.so are build as shared versions so building shared libraries in general should work.

When I run the exact same build process on my X86 desktop PC each plugin gets created as a shared library.

What would prevent the build process on the ARM architecture to create shared libraries? I must be missing something?

Help?
alee16
QUOTE(maystorm @ Aug 5 2006, 08:38 PM)
Update:

I've now been trying to compile xmms (version 1.2.10 sources) myself in order to get the MPG123 plugin. However, although building and installing xmms works fine the build process wouldn't create the shared libraries "libmpg123.so"! It only creates static libraries "libmpg123.a". I have tried to run ./configure with and without the "--enable-shared" option (which should be on by default anyway), however, both to no avail. Also other plugins such as the OSS output plugin are not created as shared libraries only as static ones (so I can run xmms but don't hear anything). Only libwav.so and libtonegen.so are build as shared versions so building shared libraries in general should work.

When I run the exact same build process on my X86 desktop PC each plugin gets created as a shared library.

What would prevent the build process on the ARM architecture to create shared libraries? I must be missing something?

Help?
*


I think you are misssing the mpg123 library. I'm not sure if it is already built for pdaxrom or not, I'm pretty sure they have it in OZ (maybe it would work?).
maystorm
QUOTE(alee16 @ Aug 6 2006, 03:14 AM)
I think you are misssing the mpg123 library.  I'm not sure if it is already built for pdaxrom or not, I'm pretty sure they have it in OZ (maybe it would work?).
Hmm, I thought that the make/build process would create this library? It is part of the xmms sources and located in directory xmms-1.2.10/Input/mpg123. However, it only creates the static version.

Where exactly can I find it in OZ as you mentioned so I can try it? TIA!
alee16
QUOTE(maystorm @ Aug 6 2006, 06:41 AM)
QUOTE(alee16 @ Aug 6 2006, 03:14 AM)
I think you are misssing the mpg123 library.  I'm not sure if it is already built for pdaxrom or not, I'm pretty sure they have it in OZ (maybe it would work?).
Hmm, I thought that the make/build process would create this library? It is part of the xmms sources and located in directory xmms-1.2.10/Input/mpg123. However, it only creates the static version.

Where exactly can I find it in OZ as you mentioned so I can try it? TIA!
*



OK, I found it , but it's called mpg321 and I think it has the mpg123 library. Here's the link:
mpg321

If that version doesn't work, you might try some of the older versions found here:
http://ewi546.ewi.utwente.nl/mirror/www.op...icial/unstable/

Just click on "version number" (3.5.4, 3.5.3, etc.) then go into the feed folder, and the base folder and the package should be there. The link I posted for it is the most recent version from the 3.5.4.1 feed.
pelrun
QUOTE(maystorm @ Aug 3 2006, 11:09 PM)
Wamdue Project - King Of My Castle.mp3: RIFF (little-endian) data, WAVE audio, MPEG Layer 3, stereo 44100 Hz
*


It looks like what you actually have here is an mp3 in a .wav (RIFF) container. It's a funny format which is only intended to trick some windows software that uses wav's into supporting mp3's.

Obviously, that's not needed for 99.99% of mp3 playback, and definitely not on a linux machine! smile.gif

But since it's an option in some encoding software, there are cases where people turn the option on because they don't understand what it's for. It also generally means they get saved as *.mp3 instead of the correct *.wav, causing trouble whenever mp3 software that doesn't understand such weird files tries to play them.

Maybe recompiling xmms will allow it to play these files, but you can also try stripping off the RIFF header giving you the proper mp3 file, which may just work with the original player.

If you have access to a windows box there's a win32 tool called WaveMP3 for the job. A bit of searching hasn't turned up an equivalent linux-based tool, but I think you can strip off the header with dd like this (it's completely untested, though):

CODE
dd if=input.mp3 of=fixed.mp3 bs=44 skip=1
maystorm
QUOTE(pelrun @ Aug 6 2006, 10:03 PM)
but I think you can strip off the header with dd like this (it's completely untested, though):

CODE
dd if=input.mp3 of=fixed.mp3 bs=44 skip=1

Ah, thanks for this hint! I checked a number of MP3 files and it seems that they all start with 0xfffa or 0xfffb in the first two bytes. Some of those MP3's which xmms wouldn't play have an arbitary number of "other" bytes before that tag. For example, for the song I mentioned in my earlier posting I need to skip 70 bytes (instead of those 44 you mentioned):

CODE
dd if=Wamdue{...}.mp3 of=Wamdue{...}-fixed.mp3 bs=70 skip=1


For another of my unplayable MP3 files I have to skip 6758 bytes (that one would not have been reported as an RIFF/Wave format just as of type 'data' by the "file" utility. I don't know where these bytes come from sad.gif.) . However, after stripping those bytes they play now fine in xmms!

If I find the time I'll do some research on MP3 file formats. Perhaps it is possible to write a small shell script which searches for the proper MP3 tag and automatically strips off everything before.

At least I know now how to convert them manually if I come across these "illegal" MP3's. Thanks!
maystorm
QUOTE(alee16 @ Aug 6 2006, 08:49 PM)
OK, I found it , but it's called mpg321 and I think it has the mpg123 library.  Here's the link:
mpg321

If that version doesn't work, you might try some of the older versions found here:
http://ewi546.ewi.utwente.nl/mirror/www.op...icial/unstable/

Thanks for this link!

However, it seems that this ipk package is broken as an ipkg install gives following errors:

CODE
zcat: mpg321_0.2.10-r0_arm.ipk: not in gzip format
tar: ./control.tar.gz: Not found in archive
tar: Error exit delayed from previous errors

zcat: stdin: unexpected end of file
mv: unable to rename `//home/tmp/ipkg/mpg321/control/*': No such file or directory

I also tried the versions from the previous feeds, however, they all give this error. Is OZ using a different ipk format than pdaXrom??
InSearchOf
QUOTE
I also tried the versions from the previous feeds, however, they all give this error. Is OZ using a different ipk format than pdaXrom??


There different...

*sits back and waits for a post by keon to rant about this, closes eyes*
maystorm
Oops, they are really different?

How can I extract files from OZ ipk's?
InSearchOf
I know under windows using WinRAR... but under linux I have never did it... I would assuming xarchiver should do it...

Late
Greg2
QUOTE(maystorm @ Aug 6 2006, 07:17 PM)
How can I extract files from OZ ipk's?
CODE
[greg@nfis test]$ ar -x mpg321_0.2.10-r0_arm.ipk
[greg@nfis test]$ ls
control.tar.gz  data.tar.gz  debian-binary  mpg321_0.2.10-r0_arm.ipk
[greg@nfis test]$ tar xvzf data.tar.gz
./
./usr/
./usr/bin/
./usr/bin/mpg321
./usr/bin/mpg123
maystorm
@Greg2,
@InSearchOf:

Thank you, 'ar' does the job!

@alee16:

This ipk does only contain one binary and one symlink. As far as I understand mpg321 is a free MP3 player, no libraries included. Anyway, thanks for your help.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2014 Invision Power Services, Inc.