[webkit-changes] [WebKit/WebKit] b074e0: Implement VideoTrackGenerator

youennf noreply at github.com
Fri Jan 12 08:03:29 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: b074e03b7fb3286fe2be9bdbe4bdcb4bf6bfc884
      https://github.com/WebKit/WebKit/commit/b074e03b7fb3286fe2be9bdbe4bdcb4bf6bfc884
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2024-01-12 (Fri, 12 Jan 2024)

  Changed paths:
    A LayoutTests/http/wpt/mediastream/worker-mediastreamtrack.worker-expected.txt
    A LayoutTests/http/wpt/mediastream/worker-mediastreamtrack.worker.html
    A LayoutTests/http/wpt/mediastream/worker-mediastreamtrack.worker.js
    M LayoutTests/imported/w3c/web-platform-tests/mediacapture-insertable-streams/idlharness.any.worker-expected.txt
    M Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp
    M Source/WebCore/Modules/mediastream/VideoTrackGenerator.cpp
    M Source/WebCore/Modules/mediastream/VideoTrackGenerator.h
    M Source/WebCore/Modules/mediastream/VideoTrackGenerator.idl
    M Source/WebCore/platform/mediastream/MediaStreamTrackPrivate.h

  Log Message:
  -----------
  Implement VideoTrackGenerator
https://bugs.webkit.org/show_bug.cgi?id=267319
rdar://120772003

Reviewed by Eric Carlson.

We implement VideoTrackGenerator now that we can create a MediaStreamTrack out of main thread.
To allow posting tasks, we use ScriptExecutionContext::postTaskTo.
We implement the track source and the writable sink.
The writable sink is getting video frames and pushing them to the source.
The video frames are thus provided to media observer on the worker thread.

The IDL tests are not yet fully passing as we do not yet expose MediaStreamTrack to worker contexts.
We will do that when allowing to transfer MediaStreamTrack to workers.

* LayoutTests/http/wpt/mediastream/worker-mediastreamtrack.worker-expected.txt: Added.
* LayoutTests/http/wpt/mediastream/worker-mediastreamtrack.worker.html: Added.
* LayoutTests/http/wpt/mediastream/worker-mediastreamtrack.worker.js: Added.
(makeOffscreenCanvasVideoFrame):
(promise_test.async t):
* LayoutTests/imported/w3c/web-platform-tests/mediacapture-insertable-streams/idlharness.any.worker-expected.txt:
* Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::trackMutedChanged):
* Source/WebCore/Modules/mediastream/VideoTrackGenerator.cpp:
(WebCore::VideoTrackGenerator::create):
(WebCore::VideoTrackGenerator::VideoTrackGenerator):
(WebCore::VideoTrackGenerator::setMuted):
(WebCore::VideoTrackGenerator::writable):
(WebCore::VideoTrackGenerator::track):
(WebCore::VideoTrackGenerator::Source::Source):
(WebCore::VideoTrackGenerator::Source::writeVideoFrame):
(WebCore::VideoTrackGenerator::Sink::Sink):
(WebCore::VideoTrackGenerator::Sink::write):
(WebCore::VideoTrackGenerator::Sink::close):
(WebCore::VideoTrackGenerator::Sink::error):
* Source/WebCore/Modules/mediastream/VideoTrackGenerator.h:
(WebCore::VideoTrackGenerator::muted const):
(WebCore::VideoTrackGenerator::create): Deleted.
* Source/WebCore/Modules/mediastream/VideoTrackGenerator.idl:
* Source/WebCore/platform/mediastream/MediaStreamTrackPrivate.h:

Canonical link: https://commits.webkit.org/272973@main




More information about the webkit-changes mailing list