Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AAC + MPEG/AAC decoder #351

Closed
probablykasper opened this issue Feb 13, 2021 · 4 comments · Fixed by #376
Closed

AAC + MPEG/AAC decoder #351

probablykasper opened this issue Feb 13, 2021 · 4 comments · Fixed by #376

Comments

@probablykasper
Copy link

I made the crate redlux which decodes AAC, as well as AAC from MPEG-4 containers. It uses fdk-aac bindings to decode AAC and rust-mp4 to read the MPEG-4 containers.

If it's something that could potentially be used by rodio, feel free to. It already implements the Source trait.

It does have some potential caveats though, and to decode MPEG-4 files it needs to get the size of the file.

@est31
Copy link
Member

est31 commented Feb 13, 2021

Oh nice that's pretty cool! Generally, why not? I have some concerns with the fdk-aac bindings link. The -sys crate mentions the MIT license while vendoring the fdk-aac library which apparently has a custom (but open source, at least copyright wise) license.

I'm not sure about the patent situation though. It seems you'll need a license to distribute AAC decoders? If it's added to rodio it can't be turned on by default.

@probablykasper
Copy link
Author

@est31 Yeah I had only briefly looked at the fdk-aac license.

I'm not really sure when you need a license. Many device manufacturers seem to be licensing AAC already, so does that mean you're good to go for playback on those devices since fdk-aac itself is open source?

via-corp.com's AAC FAQ says this:

Who must sign a license?

An AAC patent license is needed by manufacturers or developers of end-user encoder and/or decoder products.

Apparently the patents for LC-AAC expired over a year ago, but haven't found a good source to verify that.

@Shnatsel
Copy link
Contributor

https://github.com/pdeljanov/Symphonia implements a pure-Rust LC-AAC decoder.

@aschey
Copy link
Contributor

aschey commented Jun 7, 2021

I have a branch with a Symphonia implementation working with basic functionality along with a few other changes such as seek support, although it's quite hacky and has some major caveats. See this comment for more details.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants