-
Notifications
You must be signed in to change notification settings - Fork 149
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
Add ADPCM Decoder #160
Add ADPCM Decoder #160
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey, this is really great! Thanks for implementing these decoders!
There are some minor changes that need to be made, and a couple other things that I think need to be double checked, but overall it looks good to me.
A couple general items:
- Please add yourself to the CONTRIBUTORS file
- It's not very obvious, but you need to run a nightly version of
cargo fmt
for the code to be formatted correctly. The CI will complain otherwise.
In terms of testing, have you ran your test files through symphonia-check
?
I transcoded a couple files to ADPCM and checked them, but that's a very small test.
Thanks again, and hope to get this merged soon!
Just FYI, FWIW there's also an ADPCM implementation here: https://github.com/ruffle-rs/ruffle/blob/master/core/src/backend/audio/decoders/adpcm.rs It might be too simplistic (it has to support only what Flash Player did), but it could still be interesting for cross-referencing. |
I will look into it. Seems to be the IMA Codec. |
I tested my 2868 files (all with the Microsoft ADPCM Codec) and all passed. |
@geckoxx, thanks for making those changes. Things look good to me, and your test results are very promising. Once you are ready we can merge the decoder and let it sit in the main branch for a bit. I'm sure some people will experiment with it, and perform further testing. |
Thanks for your work, @geckoxx! Merged! |
This adds an ADPCM decoder with following limitations:
It also expands the Wave Format to support ADPCM and the packetization over a number of samples (PCM) or blocks (ADPCM).
To support multiple data blocks per packet
CodecParameters
has a new parameter:frames_per_block
.Related Issue: #124
Resolves: #41