[WebCodecs] Implement AudioEncoder
Categories
(Core :: Audio/Video: Web Codecs, task, P1)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox126 | --- | fixed |
People
(Reporter: chunmin, Assigned: padenot)
References
(Depends on 2 open bugs, Blocks 1 open bug)
Details
Attachments
(37 files)
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review |
| Reporter | ||
Updated•2 years ago
|
| Reporter | ||
Updated•2 years ago
|
| Assignee | ||
Comment 1•2 years ago
|
||
Depends on D192685
| Assignee | ||
Comment 2•2 years ago
|
||
Depends on D197915
| Assignee | ||
Comment 3•2 years ago
|
||
Depends on D197916
| Assignee | ||
Comment 4•2 years ago
|
||
Depends on D197917
| Assignee | ||
Comment 5•2 years ago
|
||
Depends on D197918
| Assignee | ||
Comment 6•2 years ago
|
||
| Assignee | ||
Comment 7•2 years ago
|
||
| Assignee | ||
Comment 8•2 years ago
|
||
| Assignee | ||
Comment 9•2 years ago
|
||
Sorry for the clang-format changes folded in.
| Assignee | ||
Comment 10•2 years ago
|
||
This look like it's missing quite a few methods, but this is because the code is
shared and mostly identical in behaviour to the VideoEncoder class -- the
AudioEncoder class only implements the bits of behaviour that are
audio-specific. The audio-specific adjustments to the base class (which are not
numerous) are in the next patch of this series.
| Assignee | ||
Comment 11•2 years ago
|
||
| Assignee | ||
Comment 12•2 years ago
|
||
I found that useful when debugging, let's land it.
| Assignee | ||
Comment 13•2 years ago
|
||
| Assignee | ||
Comment 14•2 years ago
|
||
| Assignee | ||
Comment 15•2 years ago
|
||
| Assignee | ||
Comment 16•2 years ago
|
||
| Assignee | ||
Comment 17•2 years ago
|
||
| Assignee | ||
Comment 18•2 years ago
|
||
| Assignee | ||
Comment 19•2 years ago
|
||
| Assignee | ||
Comment 20•2 years ago
|
||
InitPromise now doesn't return the track type (since we're not using anything
related to tracks on the encode side).
Methods now either return a result or a nsresult.
Time base is handled in the child class (since it's going to be different from
audio and video).
| Assignee | ||
Comment 21•2 years ago
|
||
It's very similar to the video counterpart, except:
- Conversion to planar is done as needed, f32 is always used.
- Most codec specific options are implemented later in the series.
- The time base is always the sameple-rate, as this is what ffmpeg does
internally, this limits conversions. - Codecs only accept a specific number of sample-frame per packet, this class
repacketizes the input audio in the correct packet size (that can depend on the
same rate, the codec, some other options). - The encoder delay isn't really handled, except all packets are shifted, and
mOriginalPresentationWindows is set as it should so that no timing information
is lost. This will be changed later.
| Assignee | ||
Comment 22•2 years ago
|
||
| Assignee | ||
Comment 23•2 years ago
|
||
| Assignee | ||
Comment 24•2 years ago
|
||
| Assignee | ||
Comment 25•2 years ago
|
||
| Assignee | ||
Comment 26•2 years ago
|
||
| Assignee | ||
Comment 27•2 years ago
|
||
| Assignee | ||
Comment 28•2 years ago
|
||
| Assignee | ||
Comment 29•2 years ago
|
||
| Assignee | ||
Comment 30•2 years ago
|
||
| Assignee | ||
Comment 31•2 years ago
|
||
| Assignee | ||
Comment 32•2 years ago
|
||
This fixes a test failure in audio encoder WPTs.
Updated•2 years ago
|
| Assignee | ||
Comment 33•2 years ago
|
||
| Assignee | ||
Comment 34•2 years ago
|
||
| Assignee | ||
Comment 35•2 years ago
|
||
| Assignee | ||
Comment 36•2 years ago
|
||
| Assignee | ||
Updated•2 years ago
|
Comment 37•2 years ago
|
||
| Assignee | ||
Comment 39•2 years ago
|
||
Updated•2 years ago
|
Comment 40•2 years ago
|
||
Comment 41•2 years ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/2610b665abfe
https://hg.mozilla.org/mozilla-central/rev/60f8d9644c5d
https://hg.mozilla.org/mozilla-central/rev/98f8a6b55cb0
https://hg.mozilla.org/mozilla-central/rev/f31d976a1a57
https://hg.mozilla.org/mozilla-central/rev/00f57d5f27f6
https://hg.mozilla.org/mozilla-central/rev/8ef0b45aa258
https://hg.mozilla.org/mozilla-central/rev/b12d9c0f52f1
https://hg.mozilla.org/mozilla-central/rev/22e7f89634b7
https://hg.mozilla.org/mozilla-central/rev/88b7fc2cbc1f
https://hg.mozilla.org/mozilla-central/rev/3de7e6e305e1
https://hg.mozilla.org/mozilla-central/rev/b116ff85089d
https://hg.mozilla.org/mozilla-central/rev/50d78605b761
https://hg.mozilla.org/mozilla-central/rev/eabb710ecc1c
https://hg.mozilla.org/mozilla-central/rev/ca880ba5c83d
https://hg.mozilla.org/mozilla-central/rev/7770bc65067f
https://hg.mozilla.org/mozilla-central/rev/e1f13ef3badd
https://hg.mozilla.org/mozilla-central/rev/dced90edf02c
https://hg.mozilla.org/mozilla-central/rev/dce9cbf1e6f4
https://hg.mozilla.org/mozilla-central/rev/47240f85df7c
https://hg.mozilla.org/mozilla-central/rev/31ec05902d0a
https://hg.mozilla.org/mozilla-central/rev/b05081eca4fe
https://hg.mozilla.org/mozilla-central/rev/7936d27e4a10
https://hg.mozilla.org/mozilla-central/rev/221953f41e1c
https://hg.mozilla.org/mozilla-central/rev/fe2e5e695048
https://hg.mozilla.org/mozilla-central/rev/9de63c54266d
https://hg.mozilla.org/mozilla-central/rev/42d651b12660
https://hg.mozilla.org/mozilla-central/rev/c36ec1343c7d
https://hg.mozilla.org/mozilla-central/rev/10a16e8a79ad
https://hg.mozilla.org/mozilla-central/rev/e96c1bc9e530
https://hg.mozilla.org/mozilla-central/rev/92a04a3d9162
https://hg.mozilla.org/mozilla-central/rev/96806c2bdb29
https://hg.mozilla.org/mozilla-central/rev/022e47d17cca
https://hg.mozilla.org/mozilla-central/rev/a1c56f710998
https://hg.mozilla.org/mozilla-central/rev/88078e99231d
https://hg.mozilla.org/mozilla-central/rev/2a446c2233a2
https://hg.mozilla.org/mozilla-central/rev/29994d907858
https://hg.mozilla.org/mozilla-central/rev/8b7f3601508a
https://hg.mozilla.org/mozilla-central/rev/a56c3a8cfb52
Description
•