[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
•