haikuwebkit/LayoutTests/webrtc/peer-connection-audio-mute2...

49 lines
1.8 KiB
HTML
Raw Permalink Normal View History

Improve WebRTC track enabled support https://bugs.webkit.org/show_bug.cgi?id=169727 Patch by Youenn Fablet <youenn@apple.com> on 2017-03-16 Reviewed by Alex Christensen. Source/WebCore: Tests: webrtc/peer-connection-audio-mute2.html webrtc/peer-connection-remote-audio-mute.html webrtc/video-remote-mute.html Making sure muted/disabled sources produce silence/black frames. For outgoing audio/video sources, this should be done by the actual a/v providers. We keep this filtering here until we are sure they implement that. * platform/audio/mac/AudioSampleDataSource.mm: (WebCore::AudioSampleDataSource::pullAvalaibleSamplesAsChunks): Ensuring disabled audio tracks send silence. Used for outgoing webrtc tracks. * platform/mediastream/mac/MockRealtimeAudioSourceMac.mm: (WebCore::MockRealtimeAudioSourceMac::render): Ditto. * platform/mediastream/mac/RealtimeIncomingAudioSource.cpp: (WebCore::RealtimeIncomingAudioSource::OnData): Ditto. * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: (WebCore::RealtimeIncomingVideoSource::pixelBufferFromVideoFrame): Generating black frames if muted. (WebCore::RealtimeIncomingVideoSource::OnFrame): * platform/mediastream/mac/RealtimeIncomingVideoSource.h: * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: (WebCore::RealtimeOutgoingVideoSource::videoSampleAvailable): Ensuring we quit after sending black frame. LayoutTests: * TestExpectations: * webrtc/audio-peer-connection-webaudio.html: * webrtc/peer-connection-audio-mute-expected.txt: * webrtc/peer-connection-audio-mute.html: * webrtc/peer-connection-audio-mute2-expected.txt: Added. * webrtc/peer-connection-audio-mute2.html: Added. * webrtc/peer-connection-remote-audio-mute-expected.txt: Added. * webrtc/peer-connection-remote-audio-mute.html: Added. * webrtc/video-mute-expected.txt: * webrtc/video-mute.html: * webrtc/video-remote-mute-expected.txt: Added. * webrtc/video-remote-mute.html: Added. Canonical link: https://commits.webkit.org/186716@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214044 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-03-16 16:09:50 +00:00
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Testing web audio on peer connection audio tracks</title>
Improve WebRTC track enabled support https://bugs.webkit.org/show_bug.cgi?id=169727 Patch by Youenn Fablet <youenn@apple.com> on 2017-03-16 Reviewed by Alex Christensen. Source/WebCore: Tests: webrtc/peer-connection-audio-mute2.html webrtc/peer-connection-remote-audio-mute.html webrtc/video-remote-mute.html Making sure muted/disabled sources produce silence/black frames. For outgoing audio/video sources, this should be done by the actual a/v providers. We keep this filtering here until we are sure they implement that. * platform/audio/mac/AudioSampleDataSource.mm: (WebCore::AudioSampleDataSource::pullAvalaibleSamplesAsChunks): Ensuring disabled audio tracks send silence. Used for outgoing webrtc tracks. * platform/mediastream/mac/MockRealtimeAudioSourceMac.mm: (WebCore::MockRealtimeAudioSourceMac::render): Ditto. * platform/mediastream/mac/RealtimeIncomingAudioSource.cpp: (WebCore::RealtimeIncomingAudioSource::OnData): Ditto. * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: (WebCore::RealtimeIncomingVideoSource::pixelBufferFromVideoFrame): Generating black frames if muted. (WebCore::RealtimeIncomingVideoSource::OnFrame): * platform/mediastream/mac/RealtimeIncomingVideoSource.h: * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: (WebCore::RealtimeOutgoingVideoSource::videoSampleAvailable): Ensuring we quit after sending black frame. LayoutTests: * TestExpectations: * webrtc/audio-peer-connection-webaudio.html: * webrtc/peer-connection-audio-mute-expected.txt: * webrtc/peer-connection-audio-mute.html: * webrtc/peer-connection-audio-mute2-expected.txt: Added. * webrtc/peer-connection-audio-mute2.html: Added. * webrtc/peer-connection-remote-audio-mute-expected.txt: Added. * webrtc/peer-connection-remote-audio-mute.html: Added. * webrtc/video-mute-expected.txt: * webrtc/video-mute.html: * webrtc/video-remote-mute-expected.txt: Added. * webrtc/video-remote-mute.html: Added. Canonical link: https://commits.webkit.org/186716@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214044 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-03-16 16:09:50 +00:00
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
</head>
<body>
<script src ="routines.js"></script>
<script>
Turn off the legacy prefixed WebAudio API https://bugs.webkit.org/show_bug.cgi?id=216886 Reviewed by Sam Weinig. LayoutTests/imported/w3c: * web-platform-tests/webaudio/historical-expected.txt: Rebaseline test that is now passing. Source/WebCore: Turn off the legacy prefixed WebAudio API, now that the modern unprefixed API has been enabled in r267488. No new tests, rebaselined existing tests. * Modules/webaudio/AudioBufferSourceNode.idl: Make sure legacy constants get unexposed if the PrefixedWebAudio setting is disabled. * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (GetRuntimeEnabledStaticProperties): * bindings/scripts/test/JS/JSTestConditionalIncludes.cpp: (WebCore::JSTestConditionalIncludesConstructor::initializeProperties): (WebCore::JSTestConditionalIncludesPrototype::finishCreation): * bindings/scripts/test/JS/JSTestEnabledBySetting.cpp: (WebCore::JSTestEnabledBySettingConstructor::prototypeForStructure): (WebCore::JSTestEnabledBySettingConstructor::initializeProperties): (WebCore::JSTestEnabledBySettingPrototype::finishCreation): * bindings/scripts/test/TestEnabledBySetting.idl: Add support for using [EnabledBySetting=X] on constants. Source/WebKit: Turn off the legacy prefixed WebAudio API, now that the modern unprefixed API has been enabled in r267488. * Shared/WebPreferencesInternal.yaml: Source/WebKitLegacy/mac: Turn off the legacy prefixed WebAudio API, now that the modern unprefixed API has been enabled in r267488. * WebView/WebView.mm: (-[WebView _preferencesChanged:]): LayoutTests: Port existing layout tests from the prefixed WebAudio API to the new unprefixed version. * fast/history/page-cache-closed-audiocontext.html: * fast/history/page-cache-running-audiocontext.html: * fast/history/page-cache-suspended-audiocontext.html: * fast/mediastream/getUserMedia-webaudio.html: * fast/mediastream/media-devices-enumerate-devices.html: * fast/mediastream/mediastreamtrack-audio-clone.html: * fast/mediastream/mock-media-source-webaudio.html: * http/tests/security/webaudio-render-remote-audio-allowed-crossorigin.html: * http/tests/security/webaudio-render-remote-audio-blocked-no-crossorigin.html: * http/wpt/mediarecorder/MediaRecorder-onremovetrack.html: * http/wpt/webaudio/resources/audiocontext-stopped-iframe.html: * platform/ios/webaudio/realtimeanalyser-fft-sizing-expected.txt: * resources/testharnessreport.js: * webaudio/analyser-exception.html: * webaudio/audiobuffer-crash-expected.txt: * webaudio/audiobuffer-crash.html: * webaudio/audiobuffer-expected.txt: * webaudio/audiobuffer-neuter.html: * webaudio/audiobuffer.html: * webaudio/audiobuffersource-channels-expected.txt: * webaudio/audiobuffersource-channels.html: * webaudio/audiobuffersource-ended.html: * webaudio/audiobuffersource-multi-channels.html: * webaudio/audiobuffersource-negative-playbackrate-interpolated-loop.html: * webaudio/audiobuffersource-negative-playbackrate-interpolated.html: * webaudio/audiobuffersource-negative-playbackrate-loop.html: * webaudio/audiobuffersource-negative-playbackrate.html: * webaudio/audiobuffersource-not-gced-until-ended.html: * webaudio/audiobuffersource-playbackState-expected.txt: Removed. * webaudio/audiobuffersource-playbackState.html: Removed. * webaudio/audiobuffersource-playbackrate.html: * webaudio/audiobuffersource-start.html: * webaudio/audiobuffersource.html: * webaudio/audiobuffersourcenode-legacy-api-expected.txt: * webaudio/audiobuffersourcenode-legacy-api.html: * webaudio/audiochannelmerger-basic.html: * webaudio/audiochannelmerger-stereo.html: * webaudio/audiochannelsplitter.html: * webaudio/audiocontext-promise-throwing-expected.txt: * webaudio/audiocontext-promise-throwing.html: * webaudio/audiocontext-promise.html: * webaudio/audiocontext-restriction-audiobuffersourcenode-start.html: * webaudio/audiocontext-restriction.html: * webaudio/audiocontext-state-interrupted.html: * webaudio/audiocontext-state.html: * webaudio/audionode-connect-order.html: * webaudio/audionode.html: * webaudio/audioparam-connect-audioratesignal.html: * webaudio/audioparam-summingjunction.html: * webaudio/audioprocessingevent.html: * webaudio/automatic-pull-node.html: * webaudio/convolution-mono-mono.html: * webaudio/convolver-channels.html: * webaudio/convolver-setBuffer-different-samplerate.html: * webaudio/convolver-setBuffer-null.html: * webaudio/createMediaStreamSource-null-expected.txt: * webaudio/createMediaStreamSource-null.html: * webaudio/decode-audio-data-basic-expected.txt: * webaudio/decode-audio-data-basic.html: * webaudio/decode-audio-data-too-short.html: * webaudio/delaynode-max-default-delay.html: * webaudio/delaynode-max-nondefault-delay.html: * webaudio/delaynode-maxdelay.html: * webaudio/delaynode-maxdelaylimit.html: * webaudio/delaynode-scheduling.html: * webaudio/delaynode.html: * webaudio/distance-exponential.html: * webaudio/distance-inverse.html: * webaudio/distance-linear.html: * webaudio/dynamicscompressor-basic.html: * webaudio/finished-audio-buffer-source-nodes-should-be-collectable.html: * webaudio/gain-basic.html: * webaudio/gain.html: * webaudio/mediaelementaudiosourcenode-expected.txt: * webaudio/mediaelementaudiosourcenode-gc.html: * webaudio/mediaelementaudiosourcenode.html: * webaudio/mixing.html: * webaudio/offlineaudiocontext-gc.html: * webaudio/offlineaudiocontext-restriction.html: * webaudio/oscillatornode-legacy-api-expected.txt: * webaudio/oscillatornode-legacy-api.html: * webaudio/page-canstartmedia.html: * webaudio/panner-equalpower-stereo.html: * webaudio/panner-equalpower.html: * webaudio/prefixed-pannernode-basic-expected.txt: Removed. * webaudio/prefixed-pannernode-basic.html: Removed. * webaudio/realtimeanalyser-fft-sizing-expected.txt: * webaudio/realtimeanalyser-fft-sizing.html: * webaudio/resources/audio-codec-test.js: (runDecodingTest): * webaudio/resources/audiobuffersource-ended-detached-frame-iframe.html: * webaudio/resources/audioparam-testing-legacy.js: (createAudioGraphAndTest): * webaudio/resources/compatibility.js: Removed. * webaudio/resources/javascriptaudionode-testing.js: (runJSNodeTest): * webaudio/resources/oscillator-testing-legacy.js: (generateExponentialOscillatorSweep): * webaudio/sample-accurate-scheduling.html: * webaudio/silence-after-playback.html: * webaudio/silent-audio-interrupted-in-background.html: * webaudio/stereo2mono-down-mixing.html: * webaudio/test-basic.html: * webaudio/up-mixing-mono-51.html: * webaudio/up-mixing-mono-stereo.html: * webaudio/up-mixing-stereo-51.html: * webaudio/waveshaper.html: * webaudio/web-audio-is-playing.html: * webaudio/webaudio-gc.html: * webaudio/webkitofflineaudiocontext-startRendering-crash-expected.txt: * webaudio/webkitofflineaudiocontext-startRendering-crash.html: * webrtc/audio-peer-connection-g722.html: * webrtc/audio-peer-connection-webaudio.html: * webrtc/clone-audio-track.html: * webrtc/getUserMedia-webaudio-autoplay.html: * webrtc/peer-connection-audio-mute.html: * webrtc/peer-connection-audio-mute2.html: * webrtc/peer-connection-createMediaStreamDestination.html: * webrtc/peer-connection-remote-audio-mute.html: * webrtc/peer-connection-remote-audio-mute2.html: * webrtc/routines.js: Canonical link: https://commits.webkit.org/229688@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267504 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-09-23 22:48:05 +00:00
var context = new AudioContext();
Improve WebRTC track enabled support https://bugs.webkit.org/show_bug.cgi?id=169727 Patch by Youenn Fablet <youenn@apple.com> on 2017-03-16 Reviewed by Alex Christensen. Source/WebCore: Tests: webrtc/peer-connection-audio-mute2.html webrtc/peer-connection-remote-audio-mute.html webrtc/video-remote-mute.html Making sure muted/disabled sources produce silence/black frames. For outgoing audio/video sources, this should be done by the actual a/v providers. We keep this filtering here until we are sure they implement that. * platform/audio/mac/AudioSampleDataSource.mm: (WebCore::AudioSampleDataSource::pullAvalaibleSamplesAsChunks): Ensuring disabled audio tracks send silence. Used for outgoing webrtc tracks. * platform/mediastream/mac/MockRealtimeAudioSourceMac.mm: (WebCore::MockRealtimeAudioSourceMac::render): Ditto. * platform/mediastream/mac/RealtimeIncomingAudioSource.cpp: (WebCore::RealtimeIncomingAudioSource::OnData): Ditto. * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: (WebCore::RealtimeIncomingVideoSource::pixelBufferFromVideoFrame): Generating black frames if muted. (WebCore::RealtimeIncomingVideoSource::OnFrame): * platform/mediastream/mac/RealtimeIncomingVideoSource.h: * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: (WebCore::RealtimeOutgoingVideoSource::videoSampleAvailable): Ensuring we quit after sending black frame. LayoutTests: * TestExpectations: * webrtc/audio-peer-connection-webaudio.html: * webrtc/peer-connection-audio-mute-expected.txt: * webrtc/peer-connection-audio-mute.html: * webrtc/peer-connection-audio-mute2-expected.txt: Added. * webrtc/peer-connection-audio-mute2.html: Added. * webrtc/peer-connection-remote-audio-mute-expected.txt: Added. * webrtc/peer-connection-remote-audio-mute.html: Added. * webrtc/video-mute-expected.txt: * webrtc/video-mute.html: * webrtc/video-remote-mute-expected.txt: Added. * webrtc/video-remote-mute.html: Added. Canonical link: https://commits.webkit.org/186716@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214044 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-03-16 16:09:50 +00:00
promise_test((test) => {
var localTrack;
return navigator.mediaDevices.getUserMedia({audio: true}).then((localStream) => {
localTrack = localStream.getAudioTracks()[0];
var remoteStream;
return new Promise((resolve, reject) => {
createConnections((firstConnection) => {
Add a runtime flag for WebRTC unified plan https://bugs.webkit.org/show_bug.cgi?id=189068 Reviewed by Eric Carlson. LayoutTests/imported/w3c: * web-platform-tests/webrtc/RTCPeerConnection-addTrack.https-expected.txt: Source/WebCore: Covered by existing updated tests. Main change is to call addTrack with a stream parameter so that on the other side, the track will be tied to a stream. Receive-only case in unified plan is not yet supported. This will be supported in follow-up patches. * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: (WebCore::LibWebRTCMediaEndpoint::setConfiguration): Activate unified plan based on runtime flag. (WebCore::LibWebRTCMediaEndpoint::addTrack): Do not use AddStream in case of unified plan. (WebCore::LibWebRTCMediaEndpoint::shouldOfferAllowToReceiveAudio const): (WebCore::LibWebRTCMediaEndpoint::shouldOfferAllowToReceiveVideo const): (WebCore::LibWebRTCMediaEndpoint::doCreateOffer): Use legacy webrtc option for receive only cases only in plan B case. * page/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::webRTCUnifiedPlanEnabled const): (WebCore::RuntimeEnabledFeatures::setWebRTCUnifiedPlanEnabled): Source/WebKit: * Shared/WebPreferences.yaml: * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): Tools: * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setWebRTCUnifiedPlanEnabled): * WebKitTestRunner/InjectedBundle/TestRunner.h: LayoutTests: * fast/mediastream/RTCPeerConnection-add-removeTrack-expected.txt: * webrtc/peer-connection-audio-mute2.html: * webrtc/peer-connection-remote-audio-mute2.html: * webrtc/video-addTrack-expected.txt: * webrtc/video-addTrack.html: * webrtc/video-addTransceiver.html: Canonical link: https://commits.webkit.org/204132@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@235480 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-08-29 21:50:28 +00:00
firstConnection.addTrack(localTrack, localStream);
Improve WebRTC track enabled support https://bugs.webkit.org/show_bug.cgi?id=169727 Patch by Youenn Fablet <youenn@apple.com> on 2017-03-16 Reviewed by Alex Christensen. Source/WebCore: Tests: webrtc/peer-connection-audio-mute2.html webrtc/peer-connection-remote-audio-mute.html webrtc/video-remote-mute.html Making sure muted/disabled sources produce silence/black frames. For outgoing audio/video sources, this should be done by the actual a/v providers. We keep this filtering here until we are sure they implement that. * platform/audio/mac/AudioSampleDataSource.mm: (WebCore::AudioSampleDataSource::pullAvalaibleSamplesAsChunks): Ensuring disabled audio tracks send silence. Used for outgoing webrtc tracks. * platform/mediastream/mac/MockRealtimeAudioSourceMac.mm: (WebCore::MockRealtimeAudioSourceMac::render): Ditto. * platform/mediastream/mac/RealtimeIncomingAudioSource.cpp: (WebCore::RealtimeIncomingAudioSource::OnData): Ditto. * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: (WebCore::RealtimeIncomingVideoSource::pixelBufferFromVideoFrame): Generating black frames if muted. (WebCore::RealtimeIncomingVideoSource::OnFrame): * platform/mediastream/mac/RealtimeIncomingVideoSource.h: * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: (WebCore::RealtimeOutgoingVideoSource::videoSampleAvailable): Ensuring we quit after sending black frame. LayoutTests: * TestExpectations: * webrtc/audio-peer-connection-webaudio.html: * webrtc/peer-connection-audio-mute-expected.txt: * webrtc/peer-connection-audio-mute.html: * webrtc/peer-connection-audio-mute2-expected.txt: Added. * webrtc/peer-connection-audio-mute2.html: Added. * webrtc/peer-connection-remote-audio-mute-expected.txt: Added. * webrtc/peer-connection-remote-audio-mute.html: Added. * webrtc/video-mute-expected.txt: * webrtc/video-mute.html: * webrtc/video-remote-mute-expected.txt: Added. * webrtc/video-remote-mute.html: Added. Canonical link: https://commits.webkit.org/186716@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214044 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-03-16 16:09:50 +00:00
}, (secondConnection) => {
secondConnection.ontrack = (trackEvent) => {
remoteStream = trackEvent.streams[0];
Improve WebRTC track enabled support https://bugs.webkit.org/show_bug.cgi?id=169727 Patch by Youenn Fablet <youenn@apple.com> on 2017-03-16 Reviewed by Alex Christensen. Source/WebCore: Tests: webrtc/peer-connection-audio-mute2.html webrtc/peer-connection-remote-audio-mute.html webrtc/video-remote-mute.html Making sure muted/disabled sources produce silence/black frames. For outgoing audio/video sources, this should be done by the actual a/v providers. We keep this filtering here until we are sure they implement that. * platform/audio/mac/AudioSampleDataSource.mm: (WebCore::AudioSampleDataSource::pullAvalaibleSamplesAsChunks): Ensuring disabled audio tracks send silence. Used for outgoing webrtc tracks. * platform/mediastream/mac/MockRealtimeAudioSourceMac.mm: (WebCore::MockRealtimeAudioSourceMac::render): Ditto. * platform/mediastream/mac/RealtimeIncomingAudioSource.cpp: (WebCore::RealtimeIncomingAudioSource::OnData): Ditto. * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: (WebCore::RealtimeIncomingVideoSource::pixelBufferFromVideoFrame): Generating black frames if muted. (WebCore::RealtimeIncomingVideoSource::OnFrame): * platform/mediastream/mac/RealtimeIncomingVideoSource.h: * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: (WebCore::RealtimeOutgoingVideoSource::videoSampleAvailable): Ensuring we quit after sending black frame. LayoutTests: * TestExpectations: * webrtc/audio-peer-connection-webaudio.html: * webrtc/peer-connection-audio-mute-expected.txt: * webrtc/peer-connection-audio-mute.html: * webrtc/peer-connection-audio-mute2-expected.txt: Added. * webrtc/peer-connection-audio-mute2.html: Added. * webrtc/peer-connection-remote-audio-mute-expected.txt: Added. * webrtc/peer-connection-remote-audio-mute.html: Added. * webrtc/video-mute-expected.txt: * webrtc/video-mute.html: * webrtc/video-remote-mute-expected.txt: Added. * webrtc/video-remote-mute.html: Added. Canonical link: https://commits.webkit.org/186716@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214044 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-03-16 16:09:50 +00:00
resolve();
};
});
}).then(() => {
return doHumAnalysis(remoteStream, true);
}).then((value) => {
assert_true(value, "heard hum from remote enabled track");
Improve WebRTC track enabled support https://bugs.webkit.org/show_bug.cgi?id=169727 Patch by Youenn Fablet <youenn@apple.com> on 2017-03-16 Reviewed by Alex Christensen. Source/WebCore: Tests: webrtc/peer-connection-audio-mute2.html webrtc/peer-connection-remote-audio-mute.html webrtc/video-remote-mute.html Making sure muted/disabled sources produce silence/black frames. For outgoing audio/video sources, this should be done by the actual a/v providers. We keep this filtering here until we are sure they implement that. * platform/audio/mac/AudioSampleDataSource.mm: (WebCore::AudioSampleDataSource::pullAvalaibleSamplesAsChunks): Ensuring disabled audio tracks send silence. Used for outgoing webrtc tracks. * platform/mediastream/mac/MockRealtimeAudioSourceMac.mm: (WebCore::MockRealtimeAudioSourceMac::render): Ditto. * platform/mediastream/mac/RealtimeIncomingAudioSource.cpp: (WebCore::RealtimeIncomingAudioSource::OnData): Ditto. * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: (WebCore::RealtimeIncomingVideoSource::pixelBufferFromVideoFrame): Generating black frames if muted. (WebCore::RealtimeIncomingVideoSource::OnFrame): * platform/mediastream/mac/RealtimeIncomingVideoSource.h: * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: (WebCore::RealtimeOutgoingVideoSource::videoSampleAvailable): Ensuring we quit after sending black frame. LayoutTests: * TestExpectations: * webrtc/audio-peer-connection-webaudio.html: * webrtc/peer-connection-audio-mute-expected.txt: * webrtc/peer-connection-audio-mute.html: * webrtc/peer-connection-audio-mute2-expected.txt: Added. * webrtc/peer-connection-audio-mute2.html: Added. * webrtc/peer-connection-remote-audio-mute-expected.txt: Added. * webrtc/peer-connection-remote-audio-mute.html: Added. * webrtc/video-mute-expected.txt: * webrtc/video-mute.html: * webrtc/video-remote-mute-expected.txt: Added. * webrtc/video-remote-mute.html: Added. Canonical link: https://commits.webkit.org/186716@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214044 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-03-16 16:09:50 +00:00
}).then(() => {
localTrack.enabled = false;
return doHumAnalysis(remoteStream, false);
}).then((value) => {
assert_true(value, "not heard hum from remote disabled track");
Improve WebRTC track enabled support https://bugs.webkit.org/show_bug.cgi?id=169727 Patch by Youenn Fablet <youenn@apple.com> on 2017-03-16 Reviewed by Alex Christensen. Source/WebCore: Tests: webrtc/peer-connection-audio-mute2.html webrtc/peer-connection-remote-audio-mute.html webrtc/video-remote-mute.html Making sure muted/disabled sources produce silence/black frames. For outgoing audio/video sources, this should be done by the actual a/v providers. We keep this filtering here until we are sure they implement that. * platform/audio/mac/AudioSampleDataSource.mm: (WebCore::AudioSampleDataSource::pullAvalaibleSamplesAsChunks): Ensuring disabled audio tracks send silence. Used for outgoing webrtc tracks. * platform/mediastream/mac/MockRealtimeAudioSourceMac.mm: (WebCore::MockRealtimeAudioSourceMac::render): Ditto. * platform/mediastream/mac/RealtimeIncomingAudioSource.cpp: (WebCore::RealtimeIncomingAudioSource::OnData): Ditto. * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: (WebCore::RealtimeIncomingVideoSource::pixelBufferFromVideoFrame): Generating black frames if muted. (WebCore::RealtimeIncomingVideoSource::OnFrame): * platform/mediastream/mac/RealtimeIncomingVideoSource.h: * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: (WebCore::RealtimeOutgoingVideoSource::videoSampleAvailable): Ensuring we quit after sending black frame. LayoutTests: * TestExpectations: * webrtc/audio-peer-connection-webaudio.html: * webrtc/peer-connection-audio-mute-expected.txt: * webrtc/peer-connection-audio-mute.html: * webrtc/peer-connection-audio-mute2-expected.txt: Added. * webrtc/peer-connection-audio-mute2.html: Added. * webrtc/peer-connection-remote-audio-mute-expected.txt: Added. * webrtc/peer-connection-remote-audio-mute.html: Added. * webrtc/video-mute-expected.txt: * webrtc/video-mute.html: * webrtc/video-remote-mute-expected.txt: Added. * webrtc/video-remote-mute.html: Added. Canonical link: https://commits.webkit.org/186716@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214044 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-03-16 16:09:50 +00:00
}).then(() => {
localTrack.enabled = true;
return doHumAnalysis(remoteStream, true);
}).then((value) => {
assert_true(value, "heard hum from remote reenabled track");
[iOS] Unset active media capture source when stopped capturing https://bugs.webkit.org/show_bug.cgi?id=171815 <rdar://problem/32117885> Patch by Youenn Fablet <youenn@apple.com> on 2017-05-11 Reviewed by Eric Carlson. Source/WebCore: Test: platform/ios/mediastream/getUserMedia-single-capture.html Introducing SingleSourceFactory template class to be used by capture factories for iOS. This class ensures that only one source is active at a time. Update all capture sources accordingly. Ensure sources are no longer considered as active sources when being destroyed. Add support for mock sources and introducing m_isProducingData for them as well. Update WebRTC outgoing source classes to handle the case of replaced track and resetting the enabled/mute state according the new source. Update the way we handle timestamps for audio data. We now consider that we read/write as a flow. This allows smooth audio track replacing. * platform/mediastream/RealtimeMediaSource.h: * platform/mediastream/mac/AVAudioCaptureSource.mm: (WebCore::AVAudioCaptureSource::~AVAudioCaptureSource): (WebCore::AVAudioCaptureSourceFactory::setActiveSource): Deleted. * platform/mediastream/mac/AVVideoCaptureSource.mm: (WebCore::AVVideoCaptureSource::~AVVideoCaptureSource): (WebCore::AVVideoCaptureSourceFactory::setActiveSource): Deleted. * platform/mediastream/mac/CoreAudioCaptureSource.cpp: (WebCore::CoreAudioCaptureSource::~CoreAudioCaptureSource): (WebCore::CoreAudioCaptureSource::stopProducingData): (WebCore::CoreAudioCaptureSourceFactory::setActiveSource): Deleted. * platform/mediastream/mac/RealtimeOutgoingAudioSource.cpp: (WebCore::RealtimeOutgoingAudioSource::setSource): (WebCore::RealtimeOutgoingAudioSource::audioSamplesAvailable): (WebCore::RealtimeOutgoingAudioSource::pullAudioData): * platform/mediastream/mac/RealtimeOutgoingAudioSource.h: * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: (WebCore::RealtimeOutgoingVideoSource::setSource): (WebCore::RealtimeOutgoingVideoSource::sourceMutedChanged): (WebCore::RealtimeOutgoingVideoSource::sourceEnabledChanged): * platform/mock/MockRealtimeAudioSource.cpp: (WebCore::mockAudioCaptureSourceFactory): (WebCore::MockRealtimeAudioSource::factory): (WebCore::MockRealtimeAudioSource::~MockRealtimeAudioSource): (WebCore::MockRealtimeAudioSource::startProducingData): (WebCore::MockRealtimeAudioSource::stopProducingData): * platform/mock/MockRealtimeAudioSource.h: * platform/mock/MockRealtimeVideoSource.cpp: (WebCore::mockVideoCaptureSourceFactory): (WebCore::MockRealtimeVideoSource::factory): (WebCore::MockRealtimeVideoSource::~MockRealtimeVideoSource): (WebCore::MockRealtimeVideoSource::startProducingData): (WebCore::MockRealtimeVideoSource::stopProducingData): * platform/mock/MockRealtimeVideoSource.h: (WebCore::MockRealtimeVideoSource::~MockRealtimeVideoSource): Deleted. LayoutTests: Improving the existing tests for better reliability and debugability. Updating tests to use less webkitAudioContext. * platform/ios/mediastream/getUserMedia-single-capture-expected.txt: Added. * platform/ios/mediastream/getUserMedia-single-capture.html: Added. * webrtc/audio-peer-connection-webaudio.html: * webrtc/audio-replace-track-expected.txt: * webrtc/audio-replace-track.html: * webrtc/peer-connection-audio-mute.html: * webrtc/peer-connection-audio-mute2.html: * webrtc/peer-connection-remote-audio-mute.html: * webrtc/peer-connection-remote-audio-mute2.html: * webrtc/routines.js: * webrtc/video-replace-track-expected.txt: * webrtc/video-replace-track.html: Canonical link: https://commits.webkit.org/188932@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216712 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-05-12 00:52:45 +00:00
}).then(() => {
return context.close();
Improve WebRTC track enabled support https://bugs.webkit.org/show_bug.cgi?id=169727 Patch by Youenn Fablet <youenn@apple.com> on 2017-03-16 Reviewed by Alex Christensen. Source/WebCore: Tests: webrtc/peer-connection-audio-mute2.html webrtc/peer-connection-remote-audio-mute.html webrtc/video-remote-mute.html Making sure muted/disabled sources produce silence/black frames. For outgoing audio/video sources, this should be done by the actual a/v providers. We keep this filtering here until we are sure they implement that. * platform/audio/mac/AudioSampleDataSource.mm: (WebCore::AudioSampleDataSource::pullAvalaibleSamplesAsChunks): Ensuring disabled audio tracks send silence. Used for outgoing webrtc tracks. * platform/mediastream/mac/MockRealtimeAudioSourceMac.mm: (WebCore::MockRealtimeAudioSourceMac::render): Ditto. * platform/mediastream/mac/RealtimeIncomingAudioSource.cpp: (WebCore::RealtimeIncomingAudioSource::OnData): Ditto. * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: (WebCore::RealtimeIncomingVideoSource::pixelBufferFromVideoFrame): Generating black frames if muted. (WebCore::RealtimeIncomingVideoSource::OnFrame): * platform/mediastream/mac/RealtimeIncomingVideoSource.h: * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: (WebCore::RealtimeOutgoingVideoSource::videoSampleAvailable): Ensuring we quit after sending black frame. LayoutTests: * TestExpectations: * webrtc/audio-peer-connection-webaudio.html: * webrtc/peer-connection-audio-mute-expected.txt: * webrtc/peer-connection-audio-mute.html: * webrtc/peer-connection-audio-mute2-expected.txt: Added. * webrtc/peer-connection-audio-mute2.html: Added. * webrtc/peer-connection-remote-audio-mute-expected.txt: Added. * webrtc/peer-connection-remote-audio-mute.html: Added. * webrtc/video-mute-expected.txt: * webrtc/video-mute.html: * webrtc/video-remote-mute-expected.txt: Added. * webrtc/video-remote-mute.html: Added. Canonical link: https://commits.webkit.org/186716@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214044 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-03-16 16:09:50 +00:00
});
});
}, "Muting and unmuting a local audio track");
</script>
</body>
</html>