OESF Portables Forum

Model Specific Forums => Sharp Zaurus => Zaurus - pdaXrom => Topic started by: maystorm on August 03, 2006, 07:09:23 pm

Title: Xmms - Need Mpeg 1/2/3 Plugin
Post by: maystorm on August 03, 2006, 07:09:23 pm
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!
Title: Xmms - Need Mpeg 1/2/3 Plugin
Post by: maystorm on August 05, 2006, 08:38:22 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?
Title: Xmms - Need Mpeg 1/2/3 Plugin
Post by: alee16 on August 05, 2006, 09:14:48 pm
Quote
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?
[div align=\"right\"][a href=\"index.php?act=findpost&pid=137542\"][{POST_SNAPBACK}][/a][/div]

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?).
Title: Xmms - Need Mpeg 1/2/3 Plugin
Post by: maystorm on August 06, 2006, 06:41:06 am
Quote
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!
Title: Xmms - Need Mpeg 1/2/3 Plugin
Post by: alee16 on August 06, 2006, 02:49:32 pm
Quote
Quote
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!
[div align=\"right\"][{POST_SNAPBACK}][/a][/div]
 (http://index.php?act=findpost&pid=137554\")

OK, I found it , but it's called mpg321 and I think it has the mpg123 library.  Here's the link:
[a href=\"http://ewi546.ewi.utwente.nl/mirror/www.openzaurus.org/official/unstable/3.5.4.1/feed/base/mpg321_0.2.10-r0_arm.ipk]mpg321[/url]

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/ (http://ewi546.ewi.utwente.nl/mirror/www.openzaurus.org/official/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.
Title: Xmms - Need Mpeg 1/2/3 Plugin
Post by: pelrun on August 06, 2006, 04:03:22 pm
Quote
Wamdue Project - King Of My Castle.mp3: RIFF (little-endian) data, WAVE audio, MPEG Layer 3, stereo 44100 Hz
[div align=\"right\"][{POST_SNAPBACK}][/a][/div] (http://index.php?act=findpost&pid=137398\")

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!

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 [a href=\"http://home.hccnet.nl/p.luijer/others.html]WaveMP3[/url] 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: [Select]
dd if=input.mp3 of=fixed.mp3 bs=44 skip=1
Title: Xmms - Need Mpeg 1/2/3 Plugin
Post by: maystorm on August 06, 2006, 06:33:53 pm
Quote
but I think you can strip off the header with dd like this (it's completely untested, though):

Code: [Select]
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: [Select]
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 .) . 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!
Title: Xmms - Need Mpeg 1/2/3 Plugin
Post by: maystorm on August 06, 2006, 07:04:03 pm
Quote
OK, I found it , but it's called mpg321 and I think it has the mpg123 library.  Here's the link:
mpg321 (http://ewi546.ewi.utwente.nl/mirror/www.openzaurus.org/official/unstable/3.5.4.1/feed/base/mpg321_0.2.10-r0_arm.ipk)

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/ (http://ewi546.ewi.utwente.nl/mirror/www.openzaurus.org/official/unstable/)
Thanks for this link!

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

Code: [Select]
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??
Title: Xmms - Need Mpeg 1/2/3 Plugin
Post by: InSearchOf on August 06, 2006, 07:12:23 pm
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*
Title: Xmms - Need Mpeg 1/2/3 Plugin
Post by: maystorm on August 06, 2006, 07:17:34 pm
Oops, they are really different?

How can I extract files from OZ ipk's?
Title: Xmms - Need Mpeg 1/2/3 Plugin
Post by: InSearchOf on August 06, 2006, 08:05:44 pm
I know under windows using WinRAR... but under linux I have never did it... I would assuming xarchiver should do it...

Late
Title: Xmms - Need Mpeg 1/2/3 Plugin
Post by: Greg2 on August 06, 2006, 08:40:01 pm
Quote
How can I extract files from OZ ipk's?
Code: [Select]
[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
Title: Xmms - Need Mpeg 1/2/3 Plugin
Post by: maystorm on August 07, 2006, 02:53:12 am
@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 (http://sourceforge.net/projects/mpg321/) is a free MP3 player, no libraries included. Anyway, thanks for your help.