deltabeard / ctrmus

3DS Music Player
GNU General Public License v3.0
94 stars 12 forks source link

Add AAC Support #25

Open thejsa opened 7 years ago

thejsa commented 7 years ago

Can you implement support for AAC? (See: libfaad)

deltabeard commented 7 years ago

I'll look in to libfaad2. According to http://www.audiocoding.com/faad2.html binary distributions require a patent license. I'm not sure whether this means it can be included in ctrmus or not.

deltabeard commented 7 years ago

According to this if I were to add AAC decoding (using any AAC decoding library) then I would only be able to distribute my application in source form to avoid patent infringement - which is unacceptable.

I'll look in to it further later and make a decision.

deltabeard commented 7 years ago

According to VIA Licensing, a license is required to add an AAC decoder. AAC is therefore non-free and will not be added to ctrmus unfortunately, unless I'm reading this incorrectly.

Nintendo is on the list of licensees which is how they are able to add AAC file support.

MP3 patents have expired in the European Union, so that is fine. And Opus is royalty free. Please consider consider using Opus as an alternative.

Sorry.

deltabeard commented 7 years ago

ffmpeg now has a fully open AAC encoder (& decoder) that does not seem to require a license to use. So AAC support can still be considered. Here was the discussion.

thejsa commented 7 years ago

That's great news. Perhaps you could migrate the codebase to simply use FFmpeg's libavcodec platform?

deltabeard commented 7 years ago

Yes, I will at some point. I'm still trying to get my head around threads and how they work on the 3DS for queue support. I think once queue and playlist support gets polished, I'll begin working on ffmpeg. :+1:

deltabeard commented 7 years ago

Working on this in the ffmpeg branch. I've got ffmpeg to compile and play files that use an encoder that decodes to 16 bit. Current issues include:

Debugging on the 3DS is a pain. Actually, I don't think it's even possible other than using loads of printf's, so I'm going to write a music decoder using ffmpeg on the computer, check to make sure it works properly, then port it to the 3DS.

deltabeard commented 7 years ago

So ffmpeg has turned out to be a pain in the ass, so I've paused working on it for now.

In other news, freeshop has decided to add AAC support showing that clearly they don't care, or don't know about whatever licencing issues that may arise with using AAC. Of course freeshop is already in deep water so maybe they don't give a shit about licencing issues?

deltabeard commented 3 years ago

libfaad2 will be used to add AAC support.

deltabeard commented 1 year ago

libfaad2 is not available on devkitpro.