Wrong color matrix is used in BasicCompositor
Categories
(Core :: Audio/Video: Playback, defect, P3)
Tracking
()
People
(Reporter: Xterminator3000, Unassigned)
References
(Blocks 1 open bug)
Details
(Whiteboard: [gfx-noted])
Attachments
(24 files)
|
2.37 MB,
image/png
|
Details | |
|
326.61 KB,
image/png
|
Details | |
|
322.00 KB,
image/png
|
Details | |
|
2.65 MB,
image/png
|
Details | |
|
2.91 MB,
image/png
|
Details | |
|
2.48 MB,
image/png
|
Details | |
|
101.10 KB,
image/png
|
Details | |
|
2.37 MB,
image/png
|
Details | |
|
1.92 MB,
image/png
|
Details | |
|
1.43 MB,
image/png
|
Details | |
|
1.26 MB,
image/png
|
Details | |
|
712.90 KB,
image/png
|
Details | |
|
868.59 KB,
image/png
|
Details | |
|
3.11 MB,
image/png
|
Details | |
|
1.37 MB,
image/png
|
Details | |
|
2.22 MB,
image/gif
|
Details | |
|
1.14 MB,
image/png
|
Details | |
|
991.81 KB,
image/gif
|
Details | |
|
2.18 MB,
image/png
|
Details | |
|
2.41 MB,
image/png
|
Details | |
|
1.53 MB,
image/png
|
Details | |
|
501.72 KB,
video/mp4
|
Details | |
|
192.14 KB,
video/mp4
|
Details | |
|
173.33 KB,
video/mp4
|
Details |
| Reporter | ||
Comment 1•9 years ago
|
||
| Reporter | ||
Comment 2•9 years ago
|
||
| Reporter | ||
Updated•9 years ago
|
| Reporter | ||
Updated•9 years ago
|
Updated•9 years ago
|
Comment 3•9 years ago
|
||
| Reporter | ||
Comment 4•9 years ago
|
||
| Reporter | ||
Comment 6•9 years ago
|
||
| Reporter | ||
Comment 7•9 years ago
|
||
| Reporter | ||
Comment 8•9 years ago
|
||
| Reporter | ||
Comment 9•9 years ago
|
||
| Reporter | ||
Comment 11•9 years ago
|
||
| Reporter | ||
Comment 12•9 years ago
|
||
| Reporter | ||
Comment 13•9 years ago
|
||
| Reporter | ||
Comment 14•9 years ago
|
||
| Reporter | ||
Comment 15•9 years ago
|
||
| Reporter | ||
Comment 16•9 years ago
|
||
| Reporter | ||
Comment 17•9 years ago
|
||
| Reporter | ||
Comment 18•9 years ago
|
||
| Reporter | ||
Comment 19•9 years ago
|
||
| Reporter | ||
Comment 20•9 years ago
|
||
| Reporter | ||
Comment 21•9 years ago
|
||
| Reporter | ||
Comment 22•9 years ago
|
||
| Reporter | ||
Comment 23•9 years ago
|
||
| Reporter | ||
Comment 24•9 years ago
|
||
| Reporter | ||
Comment 25•9 years ago
|
||
| Reporter | ||
Comment 26•9 years ago
|
||
| Reporter | ||
Comment 27•9 years ago
|
||
Comment 29•9 years ago
|
||
Comment 30•9 years ago
|
||
| Reporter | ||
Comment 31•9 years ago
|
||
| Reporter | ||
Comment 32•9 years ago
|
||
Comment 33•9 years ago
|
||
| Reporter | ||
Comment 34•9 years ago
|
||
Comment 35•9 years ago
|
||
| Reporter | ||
Comment 36•9 years ago
|
||
| Reporter | ||
Comment 37•9 years ago
|
||
| Reporter | ||
Comment 38•9 years ago
|
||
| Reporter | ||
Comment 39•9 years ago
|
||
| Reporter | ||
Comment 40•9 years ago
|
||
| Reporter | ||
Comment 41•9 years ago
|
||
| Reporter | ||
Comment 42•9 years ago
|
||
| Reporter | ||
Comment 43•9 years ago
|
||
| Reporter | ||
Comment 44•9 years ago
|
||
| Reporter | ||
Comment 45•9 years ago
|
||
| Reporter | ||
Comment 46•9 years ago
|
||
| Reporter | ||
Comment 47•9 years ago
|
||
Comment 48•9 years ago
|
||
| Reporter | ||
Comment 49•9 years ago
|
||
| Reporter | ||
Comment 50•9 years ago
|
||
| Reporter | ||
Comment 51•9 years ago
|
||
Updated•9 years ago
|
Comment 52•9 years ago
|
||
| Reporter | ||
Comment 53•9 years ago
|
||
Comment 54•9 years ago
|
||
Comment 55•9 years ago
|
||
Comment 56•9 years ago
|
||
Comment 57•9 years ago
|
||
| Reporter | ||
Comment 58•8 years ago
|
||
| Reporter | ||
Comment 60•8 years ago
|
||
Comment 61•8 years ago
|
||
Comment 62•8 years ago
|
||
Comment 63•8 years ago
|
||
| Reporter | ||
Comment 64•8 years ago
|
||
| Reporter | ||
Comment 65•8 years ago
|
||
Comment 66•8 years ago
|
||
| Reporter | ||
Comment 67•8 years ago
|
||
Comment 68•8 years ago
|
||
| Reporter | ||
Comment 69•8 years ago
|
||
Comment 70•8 years ago
|
||
| Reporter | ||
Comment 71•8 years ago
|
||
Comment 72•8 years ago
|
||
| Reporter | ||
Comment 73•8 years ago
|
||
| Reporter | ||
Comment 74•8 years ago
|
||
| Reporter | ||
Comment 75•8 years ago
|
||
Comment 76•8 years ago
|
||
| Reporter | ||
Comment 77•8 years ago
|
||
Comment 78•8 years ago
|
||
Comment 80•8 years ago
|
||
Comment 81•7 years ago
|
||
Updated•7 years ago
|
Comment 83•7 years ago
|
||
Comment 84•7 years ago
|
||
Comment 85•7 years ago
|
||
Comment 86•7 years ago
|
||
Comment 87•7 years ago
|
||
Comment 88•7 years ago
|
||
Comment 89•7 years ago
|
||
Comment 90•7 years ago
|
||
Comment 91•7 years ago
|
||
Updated•7 years ago
|
Comment 93•5 years ago
|
||
First things first @Thomas Daede : Maybe this bug can also get attached to / added as dependency for meta bug 1459526? This one is old, refers to a similar issue and has quite some comments. ( Bug 1237562 is also on the same subject and maybe should be added to bug 1459526)
I just tested different configurations with the following system:
FF Developer Edition 76.0b5
Windows 10 x64 1909
AMD Radeon RX580
Latest AMD Driver 20.4.1
For the tests I used the colorspace website from Tuanese ( http://hr-a.akamaihd.net/test/colorspaceTest/videoplayer.html ). Left of the vertical bar (|) are the shortened results of the test website. On the right I manually checked the colors actually displayed on my screen. I did this in two ways:
- I screenshoted the screen, pasted the content into MS Paint and used the color picker to get the RGB values of the bars.
- I opened the videos in different tabs side-by-side and switched between them to check if they have the same color. I did that to rule out any errors due to copying and pasting the screen content.
That check (MS Paint and judging by eye) was consistent and conclusive.
Without HW acceleration enabled in FF (about:support: Compositing Basic / HW_COMPOSITING disabled by user: Disabled by pref)
Results of test website:
bt601 1920x1080 50p 8000kbit: . OK | <-- Correct. Confirmed by manual inspection
bt601 1280x720 50p 5000kbit: .. OK |
bt601 960x540 50p 1800kbit: ... OK | <-- Correct. Confirmed by manual inspection
bt601 640x360 25p 1000kbit: ... OK |
bt601 512x288 25p 500kbit: .... OK |
bt601 480x270 25p 250kbit: .... OK | <-- Correct. Confirmed by manual inspection
bt601 320x180 12p 125kbit: .... OK |
bt709 1920x1080 50p 8000kbit: . (x)wrong Colorspace. | <-- Correct. Confirmed by manual inspection
bt709 1280x720 50p 5000kbit: .. (x)wrong Colorspace. |
bt709 960x540 50p 1800kbit: ... (x)wrong Colorspace. | <-- Correct. Confirmed by manual inspection
bt709 640x360 25p 1000kbit: ... (x)wrong Colorspace. |
bt709 512x288 25p 500kbit: .... (x)wrong Colorspace. |
bt709 480x270 25p 250kbit: .... (x)wrong Colorspace. | <-- Correct. Confirmed by manual inspection
bt709 320x180 12p 125kbit: .... (x)wrong Colorspace. |
With HW acceleration enabled in F (about:support: Compositing WebRender )
bt601 1920x1080 50p 8000kbit: . (x)wrong Colorspace. | <-- WRONG! The colors shown on the screen are correct!
bt601 1280x720 50p 5000kbit: .. (x)wrong Colorspace. | <-- WRONG! The colors shown on the screen are correct!
bt601 960x540 50p 1800kbit: ... OK | <-- Correct. Confirmed by manual inspection
bt601 640x360 25p 1000kbit: ... OK |
bt601 512x288 25p 500kbit: .... OK |
bt601 480x270 25p 250kbit: .... OK | <-- Correct. Confirmed by manual inspection
bt601 320x180 12p 125kbit: .... OK |
bt709 1920x1080 50p 8000kbit: . OK | <-- Correct. Confirmed by manual inspection
bt709 1280x720 50p 5000kbit: .. OK | <-- Correct. Confirmed by manual inspection
bt709 960x540 50p 1800kbit: ... (x)wrong Colorspace. | <-- WRONG! The colors shown on the screen are correct!
bt709 640x360 25p 1000kbit: ... (x)wrong Colorspace. |
bt709 512x288 25p 500kbit: .... (x)wrong Colorspace. |
bt709 480x270 25p 250kbit: .... (x)wrong Colorspace. | <-- WRONG! The colors shown on the screen are correct!
bt709 320x180 12p 125kbit: .... (x)wrong Colorspace. |
So my results summed up:
- Without HW-acceleration all videos are interpreted by Firefox to be bt601 and are rendered that way. bt709 is ignored and videos are erroneously decoded/rendered as bt601.
- With HW-acceleration all videos are decoded and rendered correctly on the screen. The colorspaces bt601/bt709 are checked on a per file basis, interpreted and handled correctly.
- When HW-acceleration is enabled there seems to be a mismatch between the colors actually shown on screen and the colors that are painted onto a Canvas in Javascript. (That's what Tuanese test website does: Play the video, draw a video frame onto a canvas and check the RGB values for each color bar of that canvas.) Using this method Firefox seems to fall back somewhere to the "stupid" algorithm of "SD videos are all bt601, HD videos are all bt709". Can anyone with a in-depth understanding of Firefox' rendering make any sense of that? Strangely without HW-acceleration FF is even more stupid ignoring the resolution entirely. With HW-acceleration the rendering to the Canvas at least tries to respect different colorspaces, but does it the easy way and gets it wrong sometimes. But the HW-accelerated decoder/renderer gets it right at the same time.
Comment 94•5 years ago
|
||
Maybe file a separate bug for the canvas painting issue?
Comment 95•5 years ago
|
||
New bug for the new investigation, please.
Comment 96•5 years ago
|
||
It seems that BasicCompositor uses libyuv for conversion. Libyuv's source code has 3 color conversion functions in it - limited range 601, full range 601, and limited range 709. It should be possible to wire these up. It uses the rather archaic notations I420, J420, and H420 for these, respectively.
Comment 97•5 years ago
|
||
601 is obsolete. It should have full-range 709 for completeness.
Updated•4 years ago
|
Description
•