Bug 218221 - [GStreamer][WebRTC] Support for VP9 Profile 2 (10-bit color) encoding
Summary: [GStreamer][WebRTC] Support for VP9 Profile 2 (10-bit color) encoding
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebRTC (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Philippe Normand
URL:
Keywords: InRadar
Depends on: 222795
Blocks: GstWebRTC
  Show dependency treegraph
 
Reported: 2020-10-26 20:59 PDT by Carlos Alberto Lopez Perez
Modified: 2022-07-15 04:39 PDT (History)
7 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Carlos Alberto Lopez Perez 2020-10-26 20:59:30 PDT
On r268971 support for  VP9 Profile 2 (10-bit color) was added, but the feature is not working still for the GTK or WPE ports.

The layout test webrtc/vp9-profile2.html added on r268971 fails with:

--- /home/igalia/clopez/webkit/webkit-flatpak/layout-test-results/webrtc/vp9-profile2-expected.txt
+++ /home/igalia/clopez/webkit/webkit-flatpak/layout-test-results/webrtc/vp9-profile2-actual.txt
@@ -1,10 +1,4 @@
 
 
-PASS VP9 profile 2 in getCapabilities
-PASS Verify VP9 activation
-PASS Setting video exchange
-PASS Ensuring connection state is connected
-PASS Track is enabled, video should not be black
-PASS Track is disabled, video should be black
-PASS Track is enabled, video should not be black 2
+FAIL VP9 profile 2 in getCapabilities assert_equals: expected 1 but got 0
Comment 1 Carlos Alberto Lopez Perez 2020-10-26 21:40:30 PDT
Updated expectations in r269021
Comment 2 Philippe Normand 2021-04-01 08:19:03 PDT
I had a look at this one, a few notes:

- the libvpx shipped in the SDK doesn't support high bit depth pixel formats, but that's easy to fix (--enable-vp9-highbitdepth configure option)
- the gst 1.18 vp9dec still chokes after fixing libvpx
- gst 1.19 vp9dec works better thanks to the vp9parse element autoplugged in decodebin3
- the test still fails, here's the diff:

--- /app/webkit/WebKitBuild/Release/layout-test-results/webrtc/vp9-profile2-expected.txt
+++ /app/webkit/WebKitBuild/Release/layout-test-results/webrtc/vp9-profile2-actual.txt
@@ -4,7 +4,7 @@
 PASS Verify VP9 activation
 PASS Setting video exchange
 PASS Ensuring connection state is connected
-PASS Track is enabled, video should not be black
-PASS Track is disabled, video should be black
-PASS Track is enabled, video should not be black 2
+FAIL Track is enabled, video should not be black promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
+FAIL Track is disabled, video should be black promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
+FAIL Track is enabled, video should not be black 2 promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
 

I suspect the decoded video dimensions are not correctly propagated from the player to the media element.
Comment 3 Philippe Normand 2022-07-14 09:51:28 PDT
Re-purposing to GstWebRTC. Patch incoming.
Comment 4 Philippe Normand 2022-07-14 10:29:11 PDT
Pull request: https://github.com/WebKit/WebKit/pull/2414
Comment 5 EWS 2022-07-15 04:38:15 PDT
Committed 252497@main (d3c0cebbf427): <https://commits.webkit.org/252497@main>

Reviewed commits have been landed. Closing PR #2414 and removing active labels.
Comment 6 Radar WebKit Bug Importer 2022-07-15 04:39:16 PDT
<rdar://problem/97068026>