Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: b074e03b7fb3286fe2be9bdbe4bdcb4bf6bfc884
      
https://github.com/WebKit/WebKit/commit/b074e03b7fb3286fe2be9bdbe4bdcb4bf6bfc884
  Author: Youenn Fablet <[email protected]>
  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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to