GNOME Bugzilla – Bug 100582
wavparse plugin doesn't support big endian machines
Last modified: 2004-12-22 21:47:04 UTC
the wavparse plugin in the gst-plugins component doesn't work on big endian machines. i looked at the source, and there's a lot of pointer arithmetic going on that's only valid for little endian machines. so this plugin is absolutely worthless for PPC/Sparc boxes. i'll be glad to provide more info if desired.
A patch would be even better than more info :). Anyway we have some PPC developers on GStreamer so hopefully I can get them to look into this if you can't make us a patch.
Created attachment 12823 [details] [review] patch to correctly parse wav headers for big endian machines
a patch you want, a patch you got! i used the define __BIG_ENDIAN__ to qualify stuff. i know this works on gcc-3.2.1. i'm not sure about others (figuring that out in configure is probably the correct solution). this was my first cut at something. it seems to work. i've also "fixed" the "signed" parameter in caps, however it looks like osssink doesn't support unsigned data. enjoy.
Created attachment 12825 [details] [review] changed to use G_BIG_ENDIAN and fixed unsigned data problem
Created attachment 12826 [details] an 8-bit unsigned wav i used for testing
Created attachment 12828 [details] [review] fix to use G*_FROM_LE
Ok Jon, patch applied and commited to CVS and you added to the credits section in the release notes. Thanks :)
Created attachment 12854 [details] [review] there's also bad code in gst-libs/gst/riff/riffutils.c. this fixes that file.
reopening due to addition patch that needs to be applied.
ok, this last patch also commited, thanks Jon