AVIF (AV1 Image File Format): decode with dav1d
Categories
(Core :: Audio/Video: Playback, task, P1)
Tracking
()
Tracking | Status | |
---|---|---|
firefox78 | --- | fixed |
People
(Reporter: jbauman, Assigned: jbauman)
References
Details
Attachments
(1 file)
Implement support for decoding dav1d. Initially this will be as an option in addition to libaom, controlled with a image.avif.use-dav1d
pref (true by default) since in the experimental phases it will be useful to easily compare decoder differences.
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Comment 1•4 years ago
|
||
Also, add clang-format off
directives to files which are ignored by
.clang-format-ignore so that the editor isn't trying to reformat them
Pushed by malexandru@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/301cb0eb1e48 AVIF (AV1 Image File Format): decode with dav1d. r=aosmond
Comment 3•4 years ago
|
||
bugherder |
Assignee | ||
Updated•4 years ago
|
Comment 4•4 years ago
•
|
||
Jon, is my understanding correct that this means we're now running an (additional) AV1 decoder in the content process, rather than in the more sandboxed RDD?
Comment 5•4 years ago
•
|
||
The AV1 decoder is considered untrusted that it must run in the RDD process (which was created for AV1) and that there are objections against bug 1657041. AVIF blocks bug 1621548 while targeting bug 1595994 and bug 1456748. IMHO, if it doesn't run in the RDD process, it shouldn't be listed yet on about:preferences#experimental.
Assignee | ||
Comment 6•4 years ago
|
||
(In reply to Gian-Carlo Pascutto [:gcp] from comment #4)
Jon, is my understanding correct that this means we're now running an (additional) AV1 decoder in the content process, rather than in the more sandboxed RDD?
That's correct. The initial implementation was modelled on our existing image decoding architecture which occurs in the content process. This was done for the sake of expediting shipping a working prototype that users could try out and give feedback on. Deciding the architecture for the final implementation is still a work in progress, but it's quite likely it will take advantage of the more asynchronous media stack and do decoding in a more sandboxed process (either RDD or something new, per bug 1657041 as Jan mentions).
The initial AV1 implementation in Firefox all happened before my time, but my understanding of the reason that AV1 decoding is in the RDD process was due to the fact that there were security concerns around a very new decoder library (libaom). Both AV1 and AVIF are now decoded instead with libdav1d by default and we've had time to focus a lot more analysis and fuzzing at AV1/AVIF decoding, so I think it's fair to say our level of trust is significantly higher, but as I said, the final architecture is not yet decided.
Description
•