haikuwebkit/LayoutTests/webrtc/video-disabled-black.html

70 lines
2.1 KiB
HTML
Raw Permalink Normal View History

Disabled Media Sources should render black/silence https://bugs.webkit.org/show_bug.cgi?id=168281 Source/WebCore: Reviewed by Eric Carlson. Test: webrtc/video-disabled-black.html Pass the enabled flag setting down from the MediaStreamTrackPrivate to its underlying source, including RealtimeMediaSource and RealtimeOutgoingAudio/VideoSource. When either enabled is cleared or muted is set, generate empty (black or silent) media, as opposed to pausing media or (worse) continuing to send generated media. * platform/mediastream/MediaStreamTrackPrivate.cpp: (WebCore::MediaStreamTrackPrivate::setEnabled): (WebCore::MediaStreamTrackPrivate::sourceEnabledChanged): * platform/mediastream/MediaStreamTrackPrivate.h: * platform/mediastream/RealtimeMediaSource.cpp: (WebCore::RealtimeMediaSource::setEnabled): * platform/mediastream/RealtimeMediaSource.h: (WebCore::RealtimeMediaSource::enabled): * platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.h: * platform/mediastream/mac/MockRealtimeAudioSourceMac.mm: (WebCore::MockRealtimeAudioSourceMac::render): * platform/mediastream/mac/RealtimeOutgoingAudioSource.cpp: (WebCore::RealtimeOutgoingAudioSource::sourceMutedChanged): (WebCore::RealtimeOutgoingAudioSource::sourceEnabledChanged): (WebCore::RealtimeOutgoingAudioSource::pullAudioData): * platform/mediastream/mac/RealtimeOutgoingAudioSource.h: * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: (WebCore::RealtimeOutgoingVideoSource::sourceMutedChanged): (WebCore::RealtimeOutgoingVideoSource::sourceEnabledChanged): (WebCore::RealtimeOutgoingVideoSource::videoSampleAvailable): * platform/mediastream/mac/RealtimeOutgoingVideoSource.h: * platform/mock/MockRealtimeVideoSource.cpp: (WebCore::MockRealtimeVideoSource::generateFrame): LayoutTests: <rdar://problem/30508003> Reviewed by Eric Carlson. * webrtc/video-disabled-black-expected.txt: Added. * webrtc/video-disabled-black.html: Added. Canonical link: https://commits.webkit.org/185422@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@212399 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-02-15 22:44:25 +00:00
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Testing basic video exchange from offerer to receiver</title>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
</head>
<body>
[MediaStream] Clean up RealtimeMediaSource settings change handling https://bugs.webkit.org/show_bug.cgi?id=189998 <rdar://problem/44797884> Reviewed by Youenn Fablet. Source/WebCore: No new tests, updated webrtc/video-disabled-black.html. * Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp: (WebCore::CanvasCaptureMediaStreamTrack::Source::Source): (WebCore::CanvasCaptureMediaStreamTrack::Source::settings): (WebCore::CanvasCaptureMediaStreamTrack::Source::settingsDidChange): (WebCore::CanvasCaptureMediaStreamTrack::Source::canvasResized): * Modules/mediastream/CanvasCaptureMediaStreamTrack.h: * platform/mediastream/RealtimeIncomingVideoSource.cpp: (WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): (WebCore::RealtimeIncomingVideoSource::settings): (WebCore::RealtimeIncomingVideoSource::settingsDidChange): * platform/mediastream/RealtimeIncomingVideoSource.h: * platform/mediastream/RealtimeMediaSource.cpp: (WebCore::RealtimeMediaSource::settingsDidChange): (WebCore::RealtimeMediaSource::notifySettingsDidChangeObservers): (WebCore::RealtimeMediaSource::setSize): (WebCore::RealtimeMediaSource::setFrameRate): (WebCore::RealtimeMediaSource::setAspectRatio): (WebCore::RealtimeMediaSource::setFacingMode): (WebCore::RealtimeMediaSource::setVolume): (WebCore::RealtimeMediaSource::setSampleRate): (WebCore::RealtimeMediaSource::setSampleSize): (WebCore::RealtimeMediaSource::setEchoCancellation): * platform/mediastream/RealtimeMediaSource.h: * platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp: (WebCore::GStreamerAudioCaptureSource::settingsDidChange): * platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp: (WebCore::GStreamerVideoCaptureSource::settingsDidChange): * platform/mediastream/mac/AVVideoCaptureSource.mm: (WebCore::AVVideoCaptureSource::settingsDidChange): * platform/mediastream/mac/CoreAudioCaptureSource.cpp: (WebCore::CoreAudioCaptureSource::settingsDidChange): * platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp: (WebCore::DisplayCaptureSourceCocoa::settingsDidChange): * platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm: (WebCore::RealtimeIncomingVideoSourceCocoa::processNewSample): * platform/mock/MockRealtimeAudioSource.cpp: (WebCore::MockRealtimeAudioSource::settingsDidChange): * platform/mock/MockRealtimeVideoSource.cpp: (WebCore::MockRealtimeVideoSource::settingsDidChange): Source/WebKit: * WebProcess/cocoa/UserMediaCaptureManager.cpp: (WebKit::UserMediaCaptureManager::Source::setSettings): LayoutTests: * webrtc/video-disabled-black.html: Canonical link: https://commits.webkit.org/205075@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@236646 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-09-30 14:32:15 +00:00
<video id="video" autoplay playsinline></video>
Disabled Media Sources should render black/silence https://bugs.webkit.org/show_bug.cgi?id=168281 Source/WebCore: Reviewed by Eric Carlson. Test: webrtc/video-disabled-black.html Pass the enabled flag setting down from the MediaStreamTrackPrivate to its underlying source, including RealtimeMediaSource and RealtimeOutgoingAudio/VideoSource. When either enabled is cleared or muted is set, generate empty (black or silent) media, as opposed to pausing media or (worse) continuing to send generated media. * platform/mediastream/MediaStreamTrackPrivate.cpp: (WebCore::MediaStreamTrackPrivate::setEnabled): (WebCore::MediaStreamTrackPrivate::sourceEnabledChanged): * platform/mediastream/MediaStreamTrackPrivate.h: * platform/mediastream/RealtimeMediaSource.cpp: (WebCore::RealtimeMediaSource::setEnabled): * platform/mediastream/RealtimeMediaSource.h: (WebCore::RealtimeMediaSource::enabled): * platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.h: * platform/mediastream/mac/MockRealtimeAudioSourceMac.mm: (WebCore::MockRealtimeAudioSourceMac::render): * platform/mediastream/mac/RealtimeOutgoingAudioSource.cpp: (WebCore::RealtimeOutgoingAudioSource::sourceMutedChanged): (WebCore::RealtimeOutgoingAudioSource::sourceEnabledChanged): (WebCore::RealtimeOutgoingAudioSource::pullAudioData): * platform/mediastream/mac/RealtimeOutgoingAudioSource.h: * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: (WebCore::RealtimeOutgoingVideoSource::sourceMutedChanged): (WebCore::RealtimeOutgoingVideoSource::sourceEnabledChanged): (WebCore::RealtimeOutgoingVideoSource::videoSampleAvailable): * platform/mediastream/mac/RealtimeOutgoingVideoSource.h: * platform/mock/MockRealtimeVideoSource.cpp: (WebCore::MockRealtimeVideoSource::generateFrame): LayoutTests: <rdar://problem/30508003> Reviewed by Eric Carlson. * webrtc/video-disabled-black-expected.txt: Added. * webrtc/video-disabled-black.html: Added. Canonical link: https://commits.webkit.org/185422@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@212399 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-02-15 22:44:25 +00:00
<canvas id="canvas" width="640" height="480"></canvas>
<script src ="routines.js"></script>
<script>
if (window.testRunner)
testRunner.setUserMediaPermission(true);
video = document.getElementById("video");
canvas = document.getElementById("canvas");
// FIXME: We should use tracks
function testImage()
{
try {
[MediaStream] Clean up RealtimeMediaSource settings change handling https://bugs.webkit.org/show_bug.cgi?id=189998 <rdar://problem/44797884> Reviewed by Youenn Fablet. Source/WebCore: No new tests, updated webrtc/video-disabled-black.html. * Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp: (WebCore::CanvasCaptureMediaStreamTrack::Source::Source): (WebCore::CanvasCaptureMediaStreamTrack::Source::settings): (WebCore::CanvasCaptureMediaStreamTrack::Source::settingsDidChange): (WebCore::CanvasCaptureMediaStreamTrack::Source::canvasResized): * Modules/mediastream/CanvasCaptureMediaStreamTrack.h: * platform/mediastream/RealtimeIncomingVideoSource.cpp: (WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): (WebCore::RealtimeIncomingVideoSource::settings): (WebCore::RealtimeIncomingVideoSource::settingsDidChange): * platform/mediastream/RealtimeIncomingVideoSource.h: * platform/mediastream/RealtimeMediaSource.cpp: (WebCore::RealtimeMediaSource::settingsDidChange): (WebCore::RealtimeMediaSource::notifySettingsDidChangeObservers): (WebCore::RealtimeMediaSource::setSize): (WebCore::RealtimeMediaSource::setFrameRate): (WebCore::RealtimeMediaSource::setAspectRatio): (WebCore::RealtimeMediaSource::setFacingMode): (WebCore::RealtimeMediaSource::setVolume): (WebCore::RealtimeMediaSource::setSampleRate): (WebCore::RealtimeMediaSource::setSampleSize): (WebCore::RealtimeMediaSource::setEchoCancellation): * platform/mediastream/RealtimeMediaSource.h: * platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp: (WebCore::GStreamerAudioCaptureSource::settingsDidChange): * platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp: (WebCore::GStreamerVideoCaptureSource::settingsDidChange): * platform/mediastream/mac/AVVideoCaptureSource.mm: (WebCore::AVVideoCaptureSource::settingsDidChange): * platform/mediastream/mac/CoreAudioCaptureSource.cpp: (WebCore::CoreAudioCaptureSource::settingsDidChange): * platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp: (WebCore::DisplayCaptureSourceCocoa::settingsDidChange): * platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm: (WebCore::RealtimeIncomingVideoSourceCocoa::processNewSample): * platform/mock/MockRealtimeAudioSource.cpp: (WebCore::MockRealtimeAudioSource::settingsDidChange): * platform/mock/MockRealtimeVideoSource.cpp: (WebCore::MockRealtimeVideoSource::settingsDidChange): Source/WebKit: * WebProcess/cocoa/UserMediaCaptureManager.cpp: (WebKit::UserMediaCaptureManager::Source::setSettings): LayoutTests: * webrtc/video-disabled-black.html: Canonical link: https://commits.webkit.org/205075@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@236646 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-09-30 14:32:15 +00:00
if (!video.videoWidth || !video.videoHeight)
throw `Video size invalid: ${video.videoWidth}x${video.videoHeight}`;
Disabled Media Sources should render black/silence https://bugs.webkit.org/show_bug.cgi?id=168281 Source/WebCore: Reviewed by Eric Carlson. Test: webrtc/video-disabled-black.html Pass the enabled flag setting down from the MediaStreamTrackPrivate to its underlying source, including RealtimeMediaSource and RealtimeOutgoingAudio/VideoSource. When either enabled is cleared or muted is set, generate empty (black or silent) media, as opposed to pausing media or (worse) continuing to send generated media. * platform/mediastream/MediaStreamTrackPrivate.cpp: (WebCore::MediaStreamTrackPrivate::setEnabled): (WebCore::MediaStreamTrackPrivate::sourceEnabledChanged): * platform/mediastream/MediaStreamTrackPrivate.h: * platform/mediastream/RealtimeMediaSource.cpp: (WebCore::RealtimeMediaSource::setEnabled): * platform/mediastream/RealtimeMediaSource.h: (WebCore::RealtimeMediaSource::enabled): * platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.h: * platform/mediastream/mac/MockRealtimeAudioSourceMac.mm: (WebCore::MockRealtimeAudioSourceMac::render): * platform/mediastream/mac/RealtimeOutgoingAudioSource.cpp: (WebCore::RealtimeOutgoingAudioSource::sourceMutedChanged): (WebCore::RealtimeOutgoingAudioSource::sourceEnabledChanged): (WebCore::RealtimeOutgoingAudioSource::pullAudioData): * platform/mediastream/mac/RealtimeOutgoingAudioSource.h: * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: (WebCore::RealtimeOutgoingVideoSource::sourceMutedChanged): (WebCore::RealtimeOutgoingVideoSource::sourceEnabledChanged): (WebCore::RealtimeOutgoingVideoSource::videoSampleAvailable): * platform/mediastream/mac/RealtimeOutgoingVideoSource.h: * platform/mock/MockRealtimeVideoSource.cpp: (WebCore::MockRealtimeVideoSource::generateFrame): LayoutTests: <rdar://problem/30508003> Reviewed by Eric Carlson. * webrtc/video-disabled-black-expected.txt: Added. * webrtc/video-disabled-black.html: Added. Canonical link: https://commits.webkit.org/185422@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@212399 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-02-15 22:44:25 +00:00
canvas.width = video.videoWidth;
canvas.height = video.videoHeight;
canvas.getContext('2d').drawImage(video, 0, 0, canvas.width, canvas.height);
imageData = canvas.getContext('2d').getImageData(0, 0, canvas.width, canvas.height);
assert_true(imageData.data.every( (pixel, index) => {
A cloned MediaStreamTrack should mute independently other tracks using the same source https://bugs.webkit.org/show_bug.cgi?id=172831 <rdar://problem/32518527> Patch by Youenn Fablet <youenn@apple.com> on 2017-06-19 Reviewed by Eric Carlson. Source/WebCore: Test: webrtc/clone-audio-track.html Move enabled handling in MediaStreamTrackPrivate instead of RealtimeMediaSource. Move WebRTC and WebAudio customers of RealtimeMediaSource to MediaStreamTrackPrivate. Move creation of WebAudio provider to MediaStreamTrackPrivate. This allows changing some parameters of tracks having the same source independently. Using this for enabled track attribute. We no longer stop generating frames in case track is disabled. This should be added back as an optimization in a follow-up. * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: (WebCore::LibWebRTCMediaEndpoint::addTrack): * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp: (WebCore::LibWebRTCPeerConnectionBackend::replaceTrack): * Modules/webaudio/MediaStreamAudioSource.cpp: * Modules/webaudio/MediaStreamAudioSource.h: * WebCore.xcodeproj/project.pbxproj: * platform/mediastream/MediaStreamTrackPrivate.cpp: (WebCore::MediaStreamTrackPrivate::create): (WebCore::MediaStreamTrackPrivate::~MediaStreamTrackPrivate): (WebCore::MediaStreamTrackPrivate::setEnabled): (WebCore::MediaStreamTrackPrivate::audioSourceProvider): (WebCore::MediaStreamTrackPrivate::videoSampleAvailable): (WebCore::MediaStreamTrackPrivate::audioSamplesAvailable): * platform/mediastream/MediaStreamTrackPrivate.h: (WebCore::MediaStreamTrackPrivate::Observer::audioSamplesAvailable): * platform/mediastream/RealtimeMediaSource.cpp: (WebCore::RealtimeMediaSource::removeObserver): * platform/mediastream/RealtimeMediaSource.h: * platform/mediastream/mac/AVMediaCaptureSource.h: * platform/mediastream/mac/AVMediaCaptureSource.mm: * platform/mediastream/mac/CoreAudioCaptureSource.cpp: (WebCore::CoreAudioCaptureSource::startProducingData): (WebCore::CoreAudioCaptureSource::stopProducingData): * platform/mediastream/mac/CoreAudioCaptureSource.h: * platform/mediastream/mac/MockRealtimeAudioSourceMac.h: * platform/mediastream/mac/MockRealtimeAudioSourceMac.mm: (WebCore::MockRealtimeAudioSourceMac::render): * platform/mediastream/mac/RealtimeIncomingAudioSource.cpp: (WebCore::RealtimeIncomingAudioSource::~RealtimeIncomingAudioSource): (WebCore::RealtimeIncomingAudioSource::OnData): * platform/mediastream/mac/RealtimeIncomingAudioSource.h: * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: (WebCore::RealtimeIncomingVideoSource::pixelBufferFromVideoFrame): * platform/mediastream/mac/RealtimeOutgoingAudioSource.cpp: (WebCore::RealtimeOutgoingAudioSource::RealtimeOutgoingAudioSource): (WebCore::RealtimeOutgoingAudioSource::setSource): * platform/mediastream/mac/RealtimeOutgoingAudioSource.h: * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: (WebCore::RealtimeOutgoingVideoSource::RealtimeOutgoingVideoSource): (WebCore::RealtimeOutgoingVideoSource::setSource): (WebCore::RealtimeOutgoingVideoSource::initializeFromSource): * platform/mediastream/mac/RealtimeOutgoingVideoSource.h: * platform/mediastream/mac/WebAudioSourceProviderAVFObjC.h: * platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm: (WebCore::WebAudioSourceProviderAVFObjC::create): (WebCore::WebAudioSourceProviderAVFObjC::WebAudioSourceProviderAVFObjC): (WebCore::WebAudioSourceProviderAVFObjC::setClient): (WebCore::WebAudioSourceProviderAVFObjC::audioSamplesAvailable): * platform/mock/MockRealtimeVideoSource.cpp: (WebCore::MockRealtimeVideoSource::generateFrame): * platform/spi/cocoa/PassKitSPI.h: Source/WebKit2: * WebProcess/cocoa/UserMediaCaptureManager.cpp: (WebKit::UserMediaCaptureManager::Source::setStorage): LayoutTests: * webrtc/clone-audio-track.html: Added. * webrtc/video-disabled-black.html: * webrtc/video-unmute-expected.txt: * webrtc/video-unmute.html: Canonical link: https://commits.webkit.org/190441@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@218497 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-06-19 17:12:57 +00:00
return pixel === 0 || (index % 4) === 3;
Disabled Media Sources should render black/silence https://bugs.webkit.org/show_bug.cgi?id=168281 Source/WebCore: Reviewed by Eric Carlson. Test: webrtc/video-disabled-black.html Pass the enabled flag setting down from the MediaStreamTrackPrivate to its underlying source, including RealtimeMediaSource and RealtimeOutgoingAudio/VideoSource. When either enabled is cleared or muted is set, generate empty (black or silent) media, as opposed to pausing media or (worse) continuing to send generated media. * platform/mediastream/MediaStreamTrackPrivate.cpp: (WebCore::MediaStreamTrackPrivate::setEnabled): (WebCore::MediaStreamTrackPrivate::sourceEnabledChanged): * platform/mediastream/MediaStreamTrackPrivate.h: * platform/mediastream/RealtimeMediaSource.cpp: (WebCore::RealtimeMediaSource::setEnabled): * platform/mediastream/RealtimeMediaSource.h: (WebCore::RealtimeMediaSource::enabled): * platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.h: * platform/mediastream/mac/MockRealtimeAudioSourceMac.mm: (WebCore::MockRealtimeAudioSourceMac::render): * platform/mediastream/mac/RealtimeOutgoingAudioSource.cpp: (WebCore::RealtimeOutgoingAudioSource::sourceMutedChanged): (WebCore::RealtimeOutgoingAudioSource::sourceEnabledChanged): (WebCore::RealtimeOutgoingAudioSource::pullAudioData): * platform/mediastream/mac/RealtimeOutgoingAudioSource.h: * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: (WebCore::RealtimeOutgoingVideoSource::sourceMutedChanged): (WebCore::RealtimeOutgoingVideoSource::sourceEnabledChanged): (WebCore::RealtimeOutgoingVideoSource::videoSampleAvailable): * platform/mediastream/mac/RealtimeOutgoingVideoSource.h: * platform/mock/MockRealtimeVideoSource.cpp: (WebCore::MockRealtimeVideoSource::generateFrame): LayoutTests: <rdar://problem/30508003> Reviewed by Eric Carlson. * webrtc/video-disabled-black-expected.txt: Added. * webrtc/video-disabled-black.html: Added. Canonical link: https://commits.webkit.org/185422@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@212399 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-02-15 22:44:25 +00:00
}));
finishTest();
} catch(e) {
errorTest(e);
}
}
function testStream(stream)
{
video.srcObject = stream;
video.onplay = setTimeout(() => {
A cloned MediaStreamTrack should mute independently other tracks using the same source https://bugs.webkit.org/show_bug.cgi?id=172831 <rdar://problem/32518527> Patch by Youenn Fablet <youenn@apple.com> on 2017-06-19 Reviewed by Eric Carlson. Source/WebCore: Test: webrtc/clone-audio-track.html Move enabled handling in MediaStreamTrackPrivate instead of RealtimeMediaSource. Move WebRTC and WebAudio customers of RealtimeMediaSource to MediaStreamTrackPrivate. Move creation of WebAudio provider to MediaStreamTrackPrivate. This allows changing some parameters of tracks having the same source independently. Using this for enabled track attribute. We no longer stop generating frames in case track is disabled. This should be added back as an optimization in a follow-up. * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: (WebCore::LibWebRTCMediaEndpoint::addTrack): * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp: (WebCore::LibWebRTCPeerConnectionBackend::replaceTrack): * Modules/webaudio/MediaStreamAudioSource.cpp: * Modules/webaudio/MediaStreamAudioSource.h: * WebCore.xcodeproj/project.pbxproj: * platform/mediastream/MediaStreamTrackPrivate.cpp: (WebCore::MediaStreamTrackPrivate::create): (WebCore::MediaStreamTrackPrivate::~MediaStreamTrackPrivate): (WebCore::MediaStreamTrackPrivate::setEnabled): (WebCore::MediaStreamTrackPrivate::audioSourceProvider): (WebCore::MediaStreamTrackPrivate::videoSampleAvailable): (WebCore::MediaStreamTrackPrivate::audioSamplesAvailable): * platform/mediastream/MediaStreamTrackPrivate.h: (WebCore::MediaStreamTrackPrivate::Observer::audioSamplesAvailable): * platform/mediastream/RealtimeMediaSource.cpp: (WebCore::RealtimeMediaSource::removeObserver): * platform/mediastream/RealtimeMediaSource.h: * platform/mediastream/mac/AVMediaCaptureSource.h: * platform/mediastream/mac/AVMediaCaptureSource.mm: * platform/mediastream/mac/CoreAudioCaptureSource.cpp: (WebCore::CoreAudioCaptureSource::startProducingData): (WebCore::CoreAudioCaptureSource::stopProducingData): * platform/mediastream/mac/CoreAudioCaptureSource.h: * platform/mediastream/mac/MockRealtimeAudioSourceMac.h: * platform/mediastream/mac/MockRealtimeAudioSourceMac.mm: (WebCore::MockRealtimeAudioSourceMac::render): * platform/mediastream/mac/RealtimeIncomingAudioSource.cpp: (WebCore::RealtimeIncomingAudioSource::~RealtimeIncomingAudioSource): (WebCore::RealtimeIncomingAudioSource::OnData): * platform/mediastream/mac/RealtimeIncomingAudioSource.h: * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: (WebCore::RealtimeIncomingVideoSource::pixelBufferFromVideoFrame): * platform/mediastream/mac/RealtimeOutgoingAudioSource.cpp: (WebCore::RealtimeOutgoingAudioSource::RealtimeOutgoingAudioSource): (WebCore::RealtimeOutgoingAudioSource::setSource): * platform/mediastream/mac/RealtimeOutgoingAudioSource.h: * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: (WebCore::RealtimeOutgoingVideoSource::RealtimeOutgoingVideoSource): (WebCore::RealtimeOutgoingVideoSource::setSource): (WebCore::RealtimeOutgoingVideoSource::initializeFromSource): * platform/mediastream/mac/RealtimeOutgoingVideoSource.h: * platform/mediastream/mac/WebAudioSourceProviderAVFObjC.h: * platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm: (WebCore::WebAudioSourceProviderAVFObjC::create): (WebCore::WebAudioSourceProviderAVFObjC::WebAudioSourceProviderAVFObjC): (WebCore::WebAudioSourceProviderAVFObjC::setClient): (WebCore::WebAudioSourceProviderAVFObjC::audioSamplesAvailable): * platform/mock/MockRealtimeVideoSource.cpp: (WebCore::MockRealtimeVideoSource::generateFrame): * platform/spi/cocoa/PassKitSPI.h: Source/WebKit2: * WebProcess/cocoa/UserMediaCaptureManager.cpp: (WebKit::UserMediaCaptureManager::Source::setStorage): LayoutTests: * webrtc/clone-audio-track.html: Added. * webrtc/video-disabled-black.html: * webrtc/video-unmute-expected.txt: * webrtc/video-unmute.html: Canonical link: https://commits.webkit.org/190441@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@218497 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-06-19 17:12:57 +00:00
stream.getTracks()[0].enabled = false;
setTimeout(() => {
testImage();
}, 0);
[MediaStream] Clean up RealtimeMediaSource settings change handling https://bugs.webkit.org/show_bug.cgi?id=189998 <rdar://problem/44797884> Reviewed by Youenn Fablet. Source/WebCore: No new tests, updated webrtc/video-disabled-black.html. * Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp: (WebCore::CanvasCaptureMediaStreamTrack::Source::Source): (WebCore::CanvasCaptureMediaStreamTrack::Source::settings): (WebCore::CanvasCaptureMediaStreamTrack::Source::settingsDidChange): (WebCore::CanvasCaptureMediaStreamTrack::Source::canvasResized): * Modules/mediastream/CanvasCaptureMediaStreamTrack.h: * platform/mediastream/RealtimeIncomingVideoSource.cpp: (WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): (WebCore::RealtimeIncomingVideoSource::settings): (WebCore::RealtimeIncomingVideoSource::settingsDidChange): * platform/mediastream/RealtimeIncomingVideoSource.h: * platform/mediastream/RealtimeMediaSource.cpp: (WebCore::RealtimeMediaSource::settingsDidChange): (WebCore::RealtimeMediaSource::notifySettingsDidChangeObservers): (WebCore::RealtimeMediaSource::setSize): (WebCore::RealtimeMediaSource::setFrameRate): (WebCore::RealtimeMediaSource::setAspectRatio): (WebCore::RealtimeMediaSource::setFacingMode): (WebCore::RealtimeMediaSource::setVolume): (WebCore::RealtimeMediaSource::setSampleRate): (WebCore::RealtimeMediaSource::setSampleSize): (WebCore::RealtimeMediaSource::setEchoCancellation): * platform/mediastream/RealtimeMediaSource.h: * platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp: (WebCore::GStreamerAudioCaptureSource::settingsDidChange): * platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp: (WebCore::GStreamerVideoCaptureSource::settingsDidChange): * platform/mediastream/mac/AVVideoCaptureSource.mm: (WebCore::AVVideoCaptureSource::settingsDidChange): * platform/mediastream/mac/CoreAudioCaptureSource.cpp: (WebCore::CoreAudioCaptureSource::settingsDidChange): * platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp: (WebCore::DisplayCaptureSourceCocoa::settingsDidChange): * platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm: (WebCore::RealtimeIncomingVideoSourceCocoa::processNewSample): * platform/mock/MockRealtimeAudioSource.cpp: (WebCore::MockRealtimeAudioSource::settingsDidChange): * platform/mock/MockRealtimeVideoSource.cpp: (WebCore::MockRealtimeVideoSource::settingsDidChange): Source/WebKit: * WebProcess/cocoa/UserMediaCaptureManager.cpp: (WebKit::UserMediaCaptureManager::Source::setSettings): LayoutTests: * webrtc/video-disabled-black.html: Canonical link: https://commits.webkit.org/205075@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@236646 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-09-30 14:32:15 +00:00
}, 2000);
Disabled Media Sources should render black/silence https://bugs.webkit.org/show_bug.cgi?id=168281 Source/WebCore: Reviewed by Eric Carlson. Test: webrtc/video-disabled-black.html Pass the enabled flag setting down from the MediaStreamTrackPrivate to its underlying source, including RealtimeMediaSource and RealtimeOutgoingAudio/VideoSource. When either enabled is cleared or muted is set, generate empty (black or silent) media, as opposed to pausing media or (worse) continuing to send generated media. * platform/mediastream/MediaStreamTrackPrivate.cpp: (WebCore::MediaStreamTrackPrivate::setEnabled): (WebCore::MediaStreamTrackPrivate::sourceEnabledChanged): * platform/mediastream/MediaStreamTrackPrivate.h: * platform/mediastream/RealtimeMediaSource.cpp: (WebCore::RealtimeMediaSource::setEnabled): * platform/mediastream/RealtimeMediaSource.h: (WebCore::RealtimeMediaSource::enabled): * platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.h: * platform/mediastream/mac/MockRealtimeAudioSourceMac.mm: (WebCore::MockRealtimeAudioSourceMac::render): * platform/mediastream/mac/RealtimeOutgoingAudioSource.cpp: (WebCore::RealtimeOutgoingAudioSource::sourceMutedChanged): (WebCore::RealtimeOutgoingAudioSource::sourceEnabledChanged): (WebCore::RealtimeOutgoingAudioSource::pullAudioData): * platform/mediastream/mac/RealtimeOutgoingAudioSource.h: * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: (WebCore::RealtimeOutgoingVideoSource::sourceMutedChanged): (WebCore::RealtimeOutgoingVideoSource::sourceEnabledChanged): (WebCore::RealtimeOutgoingVideoSource::videoSampleAvailable): * platform/mediastream/mac/RealtimeOutgoingVideoSource.h: * platform/mock/MockRealtimeVideoSource.cpp: (WebCore::MockRealtimeVideoSource::generateFrame): LayoutTests: <rdar://problem/30508003> Reviewed by Eric Carlson. * webrtc/video-disabled-black-expected.txt: Added. * webrtc/video-disabled-black.html: Added. Canonical link: https://commits.webkit.org/185422@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@212399 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-02-15 22:44:25 +00:00
}
var finishTest, errorTest;
promise_test((test) => {
return navigator.mediaDevices.getUserMedia({ video: true}).then((stream) => {
return new Promise((resolve, reject) => {
finishTest = resolve;
errorTest = reject;
createConnections((firstConnection) => {
firstConnection.addTrack(stream.getVideoTracks()[0], stream);
Disabled Media Sources should render black/silence https://bugs.webkit.org/show_bug.cgi?id=168281 Source/WebCore: Reviewed by Eric Carlson. Test: webrtc/video-disabled-black.html Pass the enabled flag setting down from the MediaStreamTrackPrivate to its underlying source, including RealtimeMediaSource and RealtimeOutgoingAudio/VideoSource. When either enabled is cleared or muted is set, generate empty (black or silent) media, as opposed to pausing media or (worse) continuing to send generated media. * platform/mediastream/MediaStreamTrackPrivate.cpp: (WebCore::MediaStreamTrackPrivate::setEnabled): (WebCore::MediaStreamTrackPrivate::sourceEnabledChanged): * platform/mediastream/MediaStreamTrackPrivate.h: * platform/mediastream/RealtimeMediaSource.cpp: (WebCore::RealtimeMediaSource::setEnabled): * platform/mediastream/RealtimeMediaSource.h: (WebCore::RealtimeMediaSource::enabled): * platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.h: * platform/mediastream/mac/MockRealtimeAudioSourceMac.mm: (WebCore::MockRealtimeAudioSourceMac::render): * platform/mediastream/mac/RealtimeOutgoingAudioSource.cpp: (WebCore::RealtimeOutgoingAudioSource::sourceMutedChanged): (WebCore::RealtimeOutgoingAudioSource::sourceEnabledChanged): (WebCore::RealtimeOutgoingAudioSource::pullAudioData): * platform/mediastream/mac/RealtimeOutgoingAudioSource.h: * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: (WebCore::RealtimeOutgoingVideoSource::sourceMutedChanged): (WebCore::RealtimeOutgoingVideoSource::sourceEnabledChanged): (WebCore::RealtimeOutgoingVideoSource::videoSampleAvailable): * platform/mediastream/mac/RealtimeOutgoingVideoSource.h: * platform/mock/MockRealtimeVideoSource.cpp: (WebCore::MockRealtimeVideoSource::generateFrame): LayoutTests: <rdar://problem/30508003> Reviewed by Eric Carlson. * webrtc/video-disabled-black-expected.txt: Added. * webrtc/video-disabled-black.html: Added. Canonical link: https://commits.webkit.org/185422@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@212399 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-02-15 22:44:25 +00:00
}, (secondConnection) => {
secondConnection.ontrack = (trackEvent) => { testStream(trackEvent.streams[0]); };
Disabled Media Sources should render black/silence https://bugs.webkit.org/show_bug.cgi?id=168281 Source/WebCore: Reviewed by Eric Carlson. Test: webrtc/video-disabled-black.html Pass the enabled flag setting down from the MediaStreamTrackPrivate to its underlying source, including RealtimeMediaSource and RealtimeOutgoingAudio/VideoSource. When either enabled is cleared or muted is set, generate empty (black or silent) media, as opposed to pausing media or (worse) continuing to send generated media. * platform/mediastream/MediaStreamTrackPrivate.cpp: (WebCore::MediaStreamTrackPrivate::setEnabled): (WebCore::MediaStreamTrackPrivate::sourceEnabledChanged): * platform/mediastream/MediaStreamTrackPrivate.h: * platform/mediastream/RealtimeMediaSource.cpp: (WebCore::RealtimeMediaSource::setEnabled): * platform/mediastream/RealtimeMediaSource.h: (WebCore::RealtimeMediaSource::enabled): * platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.h: * platform/mediastream/mac/MockRealtimeAudioSourceMac.mm: (WebCore::MockRealtimeAudioSourceMac::render): * platform/mediastream/mac/RealtimeOutgoingAudioSource.cpp: (WebCore::RealtimeOutgoingAudioSource::sourceMutedChanged): (WebCore::RealtimeOutgoingAudioSource::sourceEnabledChanged): (WebCore::RealtimeOutgoingAudioSource::pullAudioData): * platform/mediastream/mac/RealtimeOutgoingAudioSource.h: * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: (WebCore::RealtimeOutgoingVideoSource::sourceMutedChanged): (WebCore::RealtimeOutgoingVideoSource::sourceEnabledChanged): (WebCore::RealtimeOutgoingVideoSource::videoSampleAvailable): * platform/mediastream/mac/RealtimeOutgoingVideoSource.h: * platform/mock/MockRealtimeVideoSource.cpp: (WebCore::MockRealtimeVideoSource::generateFrame): LayoutTests: <rdar://problem/30508003> Reviewed by Eric Carlson. * webrtc/video-disabled-black-expected.txt: Added. * webrtc/video-disabled-black.html: Added. Canonical link: https://commits.webkit.org/185422@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@212399 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-02-15 22:44:25 +00:00
});
});
});
}, "Disabled source exchange");
</script>
</body>
</html>