Closed Bug 1867492 Opened 2 years ago Closed 2 years ago

[wpt-sync] Sync PR 43447 - Reland "Allow createEncodedStreams on PCs without encodedInsertableStreams param"

Categories

(Testing :: web-platform-tests, task, P4)

task

Tracking

(firefox122 fixed)

RESOLVED FIXED
122 Branch
Tracking Status
firefox122 --- fixed

People

(Reporter: wpt-sync, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

Sync web-platform-tests PR 43447 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/web-platform-tests/wpt/pull/43447
Details from upstream follow.

Tony Herre <toprice@chromium.org> wrote:

Reland "Allow createEncodedStreams on PCs without encodedInsertableStreams param"

This is a reland of commit e5518aa87b722a83596d1fb2a7506d0ab76f1207

Original change's description:

Allow createEncodedStreams on PCs without encodedInsertableStreams param

Allow creating Encoded Transforms for any Receivers and Senders, so
long as createEncodedStreams() is called by JS synchronously after
sender/receiver creation. This is achieved by setting up a WebRTC
transform on all transceivers, but "short circuiting" it if JS hasn't
set up its own transform within an event loop spin of creation. This
will make the transform just pass frames to be transformed directly back
without invoking the cost of a thread hop or any JS work.

The existing behaviour (dropping all frames until a JS transform is
installed) is preserved for PCs created with {encodedInsertableStreams:
true}.

This implements the algorithm defined in https://www.w3.org/TR/2023/WD-webrtc-encoded-transform-20231012/#stream-creation,
but for the Chromium createEncodedStreams() method, improving
conformance incrementally.

Bug: 1502781
Change-Id: Ie36d8ed8f431afa97307030646d3b207bf14cf7a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5040731
Commit-Queue: Tony Herre \<toprice@chromium.org>
Reviewed-by: Guido Urdaneta \<guidou@chromium.org>
Reviewed-by: Harald Alvestrand \<hta@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1230611}

Bug: 1502781
Change-Id: I70b366f375e1b6c8e90567f5c994423fd738c8fa

Reviewed-on: https://chromium-review.googlesource.com/5077034
WPT-Export-Revision: 3eff4d81e2f12a25d851b41c095cc2e4c4efc58e

CI Results

Ran 9 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI

Total 5 tests and 4 subtests

Status Summary

Firefox

OK : 5
FAIL: 20

Chrome

OK : 5
PASS: 12
FAIL: 8

Safari

OK : 5
FAIL: 20

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

  • /webrtc-encoded-transform/RTCPeerConnection-insertable-streams-audio.https.html [wpt.fyi]: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: OK, Safari: OK)
    • Frames flow correctly using insertable streams: FAIL (Chrome: FAIL, Safari: FAIL)
    • Frames flow correctly using insertable streams when receiver starts negotiation: FAIL (Chrome: FAIL, Safari: FAIL)
    • Frames flow correctly using insertable streams with param: FAIL (Chrome: PASS, Safari: FAIL)
    • Frames flow correctly using insertable streams when receiver starts negotiation with param: FAIL (Chrome: PASS, Safari: FAIL)
    • Enqueuing the same frame twice fails: FAIL (Chrome: PASS, Safari: FAIL)
    • Creating streams twice throws: FAIL (Chrome: PASS, Safari: FAIL)
    • Encoded frames serialize and deserialize into a deep clone: FAIL (Chrome: FAIL, Safari: FAIL)
    • Modifying rtp timestamp: FAIL (Chrome: FAIL, Safari: FAIL)
  • /webrtc-encoded-transform/RTCPeerConnection-insertable-streams-errors.https.html [wpt.fyi]: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: OK, Safari: OK)
    • Enqueuing the same frame twice fails: FAIL (Chrome: PASS, Safari: FAIL)
  • /webrtc-encoded-transform/RTCPeerConnection-insertable-streams-video-frames.https.html [wpt.fyi]: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: OK, Safari: OK)
    • Key and Delta frames are sent and received: FAIL (Chrome: PASS, Safari: FAIL)
  • /webrtc-encoded-transform/RTCPeerConnection-insertable-streams-video.https.html [wpt.fyi]: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: OK, Safari: OK)
    • Frames flow correctly using insertable streams: FAIL (Chrome: FAIL, Safari: FAIL)
    • Frames flow correctly using insertable streams when receiver starts negotiation: FAIL (Chrome: FAIL, Safari: FAIL)
    • Frames flow correctly using insertable streams with param: FAIL (Chrome: PASS, Safari: FAIL)
    • Frames flow correctly using insertable streams when receiver starts negotiation with param: FAIL (Chrome: PASS, Safari: FAIL)
    • Creating streams twice throws: FAIL (Chrome: FAIL, Safari: FAIL)
    • Encoded frames serialize and deserialize into a deep clone: FAIL (Chrome: FAIL, Safari: FAIL)
  • /webrtc-encoded-transform/RTCPeerConnection-insertable-streams-worker.https.html [wpt.fyi]: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: OK, Safari: OK)
    • RTCRtpSender readable stream transferred to a Worker and the Worker sends an RTCEncodedAudioFrame back: FAIL (Chrome: PASS, Safari: FAIL)
    • RTCRtpSender readable stream transferred to a Worker and the Worker sends an RTCEncodedVideoFrame back: FAIL (Chrome: PASS, Safari: FAIL)
    • Video RTCRtpSender insertable streams transferred to a worker, which tries to write an invalid frame: FAIL (Chrome: PASS, Safari: FAIL)
    • Audio RTCRtpSender insertable streams transferred to a worker, which tries to write an invalid frame: FAIL (Chrome: PASS, Safari: FAIL)

Tests Disabled in Gecko Infrastructure

  • /webrtc-encoded-transform/RTCPeerConnection-insertable-streams-audio.https.html [wpt.fyi]: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: OK, Safari: OK)
  • /webrtc-encoded-transform/RTCPeerConnection-insertable-streams-errors.https.html [wpt.fyi]: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: OK, Safari: OK)
  • /webrtc-encoded-transform/RTCPeerConnection-insertable-streams-video-frames.https.html [wpt.fyi]: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: OK, Safari: OK)
  • /webrtc-encoded-transform/RTCPeerConnection-insertable-streams-video.https.html [wpt.fyi]: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: OK, Safari: OK)
  • /webrtc-encoded-transform/RTCPeerConnection-insertable-streams-worker.https.html [wpt.fyi]: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: OK, Safari: OK)
Pushed by wptsync@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/535fb3a55e85 [wpt PR 43447] - Reland "Allow createEncodedStreams on PCs without encodedInsertableStreams param", a=testonly
Pushed by wptsync@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/b55375f6a626 [wpt PR 43447] - Reland "Allow createEncodedStreams on PCs without encodedInsertableStreams param", a=testonly
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 122 Branch
You need to log in before you can comment on or make changes to this bug.