Closed Bug 1639409 Opened 4 years ago Closed 4 years ago

AVIF (AV1 Image File Format): decode with dav1d

Categories

(Core :: Audio/Video: Playback, task, P1)

task

Tracking

()

RESOLVED FIXED
mozilla78
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: nobody → jbauman
Severity: -- → N/A
Priority: -- → P1
See Also: → 1474684

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
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla78
See Also: → AVIF, 1625363

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?

Flags: needinfo?(jbauman)

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.

(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.

Flags: needinfo?(jbauman)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: