Investigate removing Theora support
Categories
(Core :: Audio/Video: Playback, task)
Tracking
()
Tracking | Status | |
---|---|---|
firefox126 | --- | fixed |
People
(Reporter: padenot, Assigned: padenot)
References
(Regressed 2 open bugs)
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
HTMLMediaElement
had 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•1 year 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•1 year ago
|
Comment 3•1 year ago
|
||
FYI - Early spring target for shipping this to release.
Assignee | ||
Comment 4•9 months ago
|
||
Assignee | ||
Comment 5•9 months ago
|
||
Assignee | ||
Comment 6•9 months ago
|
||
Updated•9 months ago
|
Updated•8 months ago
|
Assignee | ||
Comment 7•8 months 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•8 months ago
|
||
The OGG Theora files have been replaced with functionally equivalent WebM
containing VP9.
Assignee | ||
Comment 9•8 months 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•8 months 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•8 months 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•8 months ago
|
||
Switched to using a functionally equivalent video.
Assignee | ||
Comment 13•8 months ago
|
||
Switch to using a functionally equivalent videos using the VP9 codec in WebM
container.
Assignee | ||
Comment 14•8 months ago
|
||
Assignee | ||
Comment 15•8 months ago
|
||
Assignee | ||
Comment 16•8 months ago
|
||
Comment 17•8 months ago
|
||
Comment 19•8 months 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•8 months ago
|
Comment 21•8 months ago
|
||
Comment 22•8 months ago
|
||
Comment 23•8 months 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•8 months ago
|
||
Comment 26•8 months 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•8 months ago
|
Assignee | ||
Updated•6 months ago
|
Description
•