I am exhausted searching for a c++ mp3 decoding library, preferably free (like lgpl) and cross-platform or for windows and mac. Can anyone suggest such library and post some tutorial for using it? ffmpeg and sdl (sdl_sound, sdl_mixer) aren't compiling. I am unable to get mpg123 working - is it for linux world only or what? Is there some tutorial on using mpg123 on windows? mpg123 is unable to find some symbols that is I am not putting some dll's at right path - but which?
Overall, I want be able to read and write all major audio file formats on windows and mac - starting with windows.
I think last time i needed i used libMAD. Worked well but it's a C lib.
Take a look at bass:
I have worked with it some years ago, it was easy to use, multiplatform, with a good sound quality and the developer was very supportive. It is free for non-commercial use.
There are a couple of options:
This page has some very interesting info on GStreamer and the MP3 format, it's a must-read if you decide to go with GStreamer:
Besides that, Gstreamer ofers a command-line interface through gst-launch which is very useful to test the pipeline you are assembling in your program before you start to write code the actual code:
And if you need to build GStreamer on Windows, check this tutorial for Visual Studio.
The MP3 support comes through libmad. There are tutorials that help building and using the library.
I guess that the gstreamer is a best choice but you could also use the LibVLC which is a core of vlc player.
Have you looked into LAME? Also, note that the mp3 algorithm is subject to patents, so you need to tread carefully no matter which library you use.
You could try Helix.
It has an optimized version for embedded platforms and arm architectures.