Anyone interested in doing a few odd-jobs?

It seems that the ability to decode MP3 with DirectShow is somehow limited, on certain Windows versions, correct me if i’m wrong. I’ve done 2 days of research but i found nothing really substantial. But i checked also the old Windows ACM architecture, and it works on Windows Vista and Windows 7, which is i think a good sign! (Jules i send you some files)

Windows ACM is a legacy API from the Windows 3.1 days. It should be left for dead along with VfW.

Ideally, the Windows Audio Format class should be written using Media Foundation and not DirectShow. DirectShow is deprecated and some of the newest encoders/decoders only work with Media Foundation. The only downside is no XP support.

Media Foundation supported codecs: WMA, AAC (Win7 Only)
Media Foundation supported decoders: MP3, μ-law, ADPCM, GSM 6.10
http://msdn.microsoft.com/en-us/library/dd757927(v=vs.85).aspx

DirectShow supported codecs: WMA, WM Speech
DirectShow supported decoders: MP3, WMAPro
http://blogs.msdn.com/b/matthew_van_eerde/archive/2010/05/27/how-to-enumerate-directsound-directx-media-objects-dmos-on-your-system.aspx

oh thats interesting, would be nice to know if that really works on Windows 7 and Vista for MP3 decoding (in practice), are there working examples somewhere?
I somewhere read that the mp3 DirectShow filters are somehow deactivated when using it in third-Party apps in the newer Windows versions. ( And i never found a example after intesive research)
Anyway, the ACM api seems to work, even if they are legacy, the most important thing to have a working solution for mp3 import.

Amen

Media Foundation sample code can be found here:
http://msdn.microsoft.com/en-us/library/aa371827(v=vs.85).aspx

ok, it seems that the examples are not compatible with the SDK of VS2008 (v6.0a), so can someone compile the audioclip example, and see if its possible to convert a mp3 file to wav pcm, please?

Compiles fine in VS2010. Both MP3 and AAC decoding are working fine using AudioClip on Windows 7.

Hi,
regarding a openGL/GLES backend I came across this lib today by google, seems interesting!
http://code.google.com/p/skia/
haven’t looked much into it but maybe a SkiaRenderer could work?

[quote=“drand48”]Hi,
regarding a openGL/GLES backend I came across this lib today by google, seems interesting!
http://code.google.com/p/skia/
haven’t looked much into it but maybe a SkiaRenderer could work?[/quote]

It’s the engine that they use in android, isn’t it? Could be interesting, but I’m really after a solution without all the baggage, i.e. just a one-file solution that renders a juce graphics context via GL calls without any external dependencies.

Since it seems that LAME is one of the better encoders and decoders, and is not patent-encumbered for application use if the end-user installs it, I’d really like to see support for an optional loading and use of LAME if the end-user has installed it, otherwise just return an error, etc. It’s a cross-platform way for JUCE to include support for MP3 encoding and decoding without running afoul of the patent restrictions. There would actually not be any MP3 code in JUCE, just support for use of an optionally-installed third-party library…

This is the way I planned to support MP3 decoding and encoding (which I need in my project). It’s been postponed due to my core work and other priorities, but that work has ended now and I’m finally renewing my interest in this project. I was hoping that someone else would have already gotten to this, but I will do this work if no one else does before I need it.

Given JUCE’s orientation towards audio, I find it very surprising we’ve come this far without more support for MP3s. Yeah, I know… it’s all the stinkin’ patent’s fault, but I think this end-user installed approach works well. It’s the approach that SAM Broadcaster uses to provide optional LAME encoding:
http://www.fastserv.com/kb/article/using_lame_acm_codec_with_spacial_audio_sam_broadcaster/
There’s a good discussion of using LAME as an alternative encoder in other apps here.

And LAME is available for all platforms, so it’s got great bang-for-the-buck potential in terms of the benefit of writing a JUCE encoder/decoder wrapper around it.

It seems that this is also the approach Audacity uses in order to enable read/write support for MP3s: http://audacity.sourceforge.net/help/faq?s=install&item=lame-mp3

Yes, I did the same thing myself a while ago, and I’ve got a half-finished class lying around somewhere that does it. I should clean it up when I get a moment.

[quote=“jules”]Yes, I did the same thing myself a while ago, and I’ve got a half-finished class lying around somewhere that does it. I should clean it up when I get a moment.[/quote]I’m sure that would be in very high demand, and much appreciated. :wink:

interested if you have any more odd jobs left. Like to see what you got and if I am capable.

I think most of the things I asked for in this post are done now. I gave up waiting for anyone to offer to do the openGL one, so did it myself and have almost finished now… The only thing still missing is a DirectShow audio codec, but I’ve actually got some half-finished code that’ll only take me a couple of hours to complete when I get chance.

Does that include the VST3 wrapper? :stuck_out_tongue:

Oh, I forgot about that one - sure, if anyone wants to make an offer to do that, I’d certainly be interested!

Thanks for the quick reply.

Cheers

happy to do any Obj.C/iOS UI related stuff;

I am also happy to do anything in Android/iOS Multimedia.