[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