Comments (5)
Hi @inflation,
Thanks for your interest!
Coincidentally enough, ALAC is something I've been working on. So far, I've made some progress on extending the IsoMp4Reader
to support demuxing ALAC (among other) bitstreams and have not gotten to the decoder yet. If the decoder is something you'd like to write, then it's not too late to jump in.
There is no specification for the ALAC codec. We only have Apple's official reference implementation to work with. This means that for the most part, we just need to port the reference implementation over to Rust, and make it idiomatic (i.e., use iterators instead of for loops, etc.).
A good starting point would be to look at the PCM decoder to understand how a Symphonia decoder is structured (the Decoder
trait). Then check out the FLAC decoder to see how a similar lossless audio decoder is implemented.
If this is something you're interested in working on, you can jump right in.
Since this is something I was planning to include in v0.5 (next release), please keep me posted occasionally on your progress, and let me know if you won't be able to complete it for whatever reason.
Of course, please feel free to reach out and ask if you have any questions or are getting stuck.
from symphonia.
To give you a head start, I pushed the stubbed out AlacDecoder
I had previously implemented to the alac
branch.
from symphonia.
Sure, I will read the source and start on porting the reference implementation.
from symphonia.
I'll need more time on this because of personal issues. Feel free to take it over. Sorry.
from symphonia.
Hey @inflation, I hope you are doing okay.
I'm not in a rush to push a new release, so if you are still interested in it after things settle down, feel free to jump back in if the ticket is still open.
from symphonia.
Related Issues (20)
- [Feature Request]: get all streams of file from probe HOT 1
- PCM decoder "pcm: maximum frames per packet is required"
- verify_timebase test failing on i386 architecture HOT 3
- License clarification (for the SUN Microsystems part) HOT 3
- [Feature request] make it easier to detect what a track / codec type is HOT 2
- style: `symphonia_format_mkv::ebml` prints a lot of `element with tag: A3` HOT 1
- `seek(SeekMode::Accurate, x)` can jump onto a position that is after the requested seek position HOT 14
- [Feature request] Proivde a way to transfer whole buffer from the SampleBuf HOT 2
- README claims support of AAC profiles other than AAC-LC using non-existent feature flags HOT 2
- [Doc request] Multi-value tags in metadata HOT 2
- Update benchmarks following v0.5.4 HOT 1
- Issue parsing AIFF files: "invalid chunk-id, expected 'FORM'" and "FourCC contains invalid characters: 02 87 04 06" HOT 3
- isomp4: `CodecType` and `extra_data` missing from `avc1` track HOT 1
- Log flood HOT 3
- [mkv] How to obtain `InfoElement::title` (mkv segment title)? HOT 5
- mp3 Seeking has warnings in logs HOT 1
- Probe result fails for FLAC files above 96kHz
- Mkv/Webm seeking error HOT 4
- How to decode an async stream? HOT 2
- Mono MP3 audio is sped up when using symphonia-play
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
š Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ššš
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ā¤ļø Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from symphonia.