Investigate removing Theora support
Categories
(Core :: Audio/Video: Playback, task)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox126 | --- | fixed |
People
(Reporter: padenot, Assigned: padenot)
References
Details
Attachments
(13 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 |
The Theora codec served us well, but isn't really used any more. When it's used, it's also not uncommon that it's higher in the <source> list compared to more modern codec, and it ends up picked instead of a codec that offers better compression or hardware acceleration (there never was a Theora hardware decoder shipped in Firefox). Sandboxing of Theora is quite good (via the RDD, it can never run in content processes), but the less code the better.
Theora currently accounts for ~0.09% of media resource loads in Firefox. Big services that had lots of Theora content (e.g. Wikipedia) have switched away from it and now use more modern codecs.
Chromium plans to remove entirely Theora from their implementation in version 123, there is some more information in https://chromestatus.com/feature/5158654475239424. This releases in March 2024, according to their release calendar. Chrome on Android and Safari never supported Theora. https://github.com/brion/ogv.js/ can be used to play Theora videos on the web if need be (this library is already in used on some websites).
The plan on our side is as follows:
- disable Theora in Firefox Nightly, fix lots of tests that rely on Theora, by converting the test vectors to e.g. vp9 when it makes sense, or removing the test otherwise. Removing Theora means that there is no video codec in OGG anymore in Firefox, and simplifies also the OGG demuxer. Historically, there's been more than one problem in our demuxers, so this is also good.
- add a bit of telemetry that pings back in the following situations:
- media load failed -- the only source was a media containing a Theora track
- media load succeeded, but the
HTMLMediaElementhad multiple <source> and a Theora source was higher than the list that the source that was eventually picked (we could check what codec was picked instead, but since all codecs are better than Theora I don't think it's super useful in practice, just for curiosity maybe)
- wait a couple cycles, maybe extend this to "early beta", which is something like the first 3 or 4 beta of a beta cycle (to account for the population skews in nightly vs. beta vs. release of course)
- if all is fine (and it's probably going to be just fine), deprecate on the same timeline as Chromium's stable release
| Comment hidden (advocacy) |
Comment 2•2 years ago
|
||
The severity field is not set for this bug.
:jimm, could you have a look please?
For more information, please visit BugBot documentation.
Updated•2 years ago
|
Comment 3•2 years ago
|
||
FYI - Early spring target for shipping this to release.
| Assignee | ||
Comment 4•1 year ago
|
||
| Assignee | ||
Comment 5•1 year ago
|
||
| Assignee | ||
Comment 6•1 year ago
|
||
Updated•1 year ago
|
Updated•1 year ago
|
| Assignee | ||
Comment 7•1 year ago
|
||
OGG can only contain the theora video codec, and theora is being removed from
the Web. All of this have WebM versions in a directory alongside this (that I
converted from the OGG tests a while back).
| Assignee | ||
Comment 8•1 year ago
|
||
The OGG Theora files have been replaced with functionally equivalent WebM
containing VP9.
| Assignee | ||
Comment 9•1 year ago
|
||
Files containing theora have been modified to use VP9 in WebM, which is
equivalent for those tests, that only require a video with or without sound.
| Assignee | ||
Comment 10•1 year ago
|
||
Files containing theora have been modified to use VP9 in WebM, which is
equivalent for those tests, that only require a video with or without sound.
| Assignee | ||
Comment 11•1 year ago
|
||
Files containing theora have been modified to use VP9 in WebM, which is
equivalent for those tests, that only require a video with or without sound.
| Assignee | ||
Comment 12•1 year ago
|
||
Switched to using a functionally equivalent video.
| Assignee | ||
Comment 13•1 year ago
|
||
Switch to using a functionally equivalent videos using the VP9 codec in WebM
container.
| Assignee | ||
Comment 14•1 year ago
|
||
| Assignee | ||
Comment 15•1 year ago
|
||
| Assignee | ||
Comment 16•1 year ago
|
||
Comment 17•1 year ago
|
||
Comment 19•1 year ago
•
|
||
Backed out for causing multiple failures
-
Failure line: TEST-UNEXPECTED-FAIL | browser/base/content/test/contextMenu/browser_contextmenu.js | Uncaught exception in test bound test_setup_html - at chrome://mochitests/content/browser/browser/base/content/test/contextMenu/browser_contextmenu.js:140 - TypeError: can't access property "loop", video is null
- Push with failures - gpu failures
- Failure Log
- Failure line: TEST-UNEXPECTED-FAIL | dom/canvas/test/crossorigin/test_video_crossorigin.html | changing the CORS mode should not allow reading data from remote videos
- Push with failures - wpt failures
- Failure Log
- Failure line: TEST-UNEXPECTED-FAIL | /css/css-sizing/aspect-ratio/replaced-element-003.html | Testing http://web-platform.test:8000/css/css-sizing/aspect-ratio/replaced-element-003.html == http://web-platform.test:8000/css/reference/ref-filled-green-100px-square.xht
- Push with failures - another mochitests failures
- Failure Log
- Failure line: TEST-UNEXPECTED-FAIL | dom/canvas/test/test_imagebitmap.html | Promise failure: InvalidStateError: An attempt was made to use an object that is not, or is no longer, usable
- Push with failures - mda failures
- Failure Log
- Failure line: TEST-UNEXPECTED-FAIL | dom/media/test/test_load_same_resource.html | Test timed out!
Updated•1 year ago
|
Comment 21•1 year ago
|
||
Comment 22•1 year ago
|
||
Comment 23•1 year ago
|
||
Backed out for mda failure on test_closing_connections
Backout link: https://hg.mozilla.org/integration/autoland/rev/4f25d5d8a7f95de5caa0a504594a0f1c9005c38e
Log link: https://treeherder.mozilla.org/logviewer?job_id=453397376&repo=autoland&lineNumber=2038
Comment 25•1 year ago
|
||
Comment 26•1 year ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/97298991b864
https://hg.mozilla.org/mozilla-central/rev/17ea9bd7979d
https://hg.mozilla.org/mozilla-central/rev/783875421564
https://hg.mozilla.org/mozilla-central/rev/e56f721a11a5
https://hg.mozilla.org/mozilla-central/rev/370c3d3941bd
https://hg.mozilla.org/mozilla-central/rev/76d69c25320d
https://hg.mozilla.org/mozilla-central/rev/5b301ec4e01f
https://hg.mozilla.org/mozilla-central/rev/bfb9b0e704f2
https://hg.mozilla.org/mozilla-central/rev/e68e06324af5
https://hg.mozilla.org/mozilla-central/rev/8b4762de8fd0
https://hg.mozilla.org/mozilla-central/rev/f7fcc884e8e2
https://hg.mozilla.org/mozilla-central/rev/91467fac1e6a
https://hg.mozilla.org/mozilla-central/rev/98d171e8ce25
Updated•1 year ago
|
| Assignee | ||
Updated•1 year ago
|
Description
•