feat: encoder - #1183
feat: encoder#1183mdydek wants to merge 36 commits into
Conversation
Resolves conflicts between the encoder work and the OS-APIs decoding refactor (#1177): - AudioFileConcatenator: main's decoder-factory WAV path + encoder's OS remux (M4A/MP4) path; all FFmpeg remux code removed - AudioEventHandlerRegistry -> IAudioEventHandlerRegistry (#1212) in encoder file writers - AndroidEncoding/AndroidRemux moved to android/src/main/cpp/audioapi/android/ to match AndroidDecoding placement - docs/flags updated: recording and concatAudioFiles are FFmpeg-free Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
WPT non-regression comparisonPASS — no regressions · 0 improved section(s) · overall 3420 → 3420 (0) Unchanged sections (28)
Baseline: Workflow run · this comment is updated on every push. |
closetcaiman
left a comment
There was a problem hiding this comment.
Please add description to the PR for fast-access reference to the scope of these changes.
maciejmakowski2003
left a comment
There was a problem hiding this comment.
could you add an overview of refactor? would be great to get some diagram
There was a problem hiding this comment.
Shouldn't those be conditionally compiled per platform (like we used to do with decoding)? Now the common header actually considers both platforms.
There was a problem hiding this comment.
hmmm, don't you think that it would introduce some unnecessary noise, it's only option and the name directly suggest that where to use it. Maybe we could introduce some defaults there, to not use them directly in another system (ios properties in android), left for discussion
| }; | ||
| offloader_ = std::make_unique<Offloader>(FILE_WRITER_CHANNEL_CAPACITY, offloaderLambda); | ||
| } | ||
|
|
There was a problem hiding this comment.
I'd also consider this worker thread to be a separate class - worth to skim a bit, but if the shared state is too much I'd stick to offloader approach so that it doesn't get messy.
There was a problem hiding this comment.
you mean that runWriterTask should be in a different class?
Closes #1299, because it uses different resampler, which does not produce this issue
Introduced changes
Proposed architecture:

Checklist