haikuwebkit/LayoutTests/webrtc/clone-audio-track.html

50 lines
1.9 KiB
HTML
Raw Permalink Normal View History

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
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Testing local audio capture playback causes "playing" event to fire</title>
<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();
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
promise_test((test) => {
if (window.testRunner)
testRunner.setUserMediaPermission(true);
return navigator.mediaDevices.getUserMedia({audio: true}).then((localStream) => {
var clonedTrack;
var remoteTrack;
var remoteStream;
return new Promise((resolve, reject) => {
createConnections((firstConnection) => {
var track = localStream.getAudioTracks()[0];
clonedTrack = track.clone();
track.enabled = false;
firstConnection.addTrack(localStream.getAudioTracks()[0], localStream);
}, (secondConnection) => {
secondConnection.ontrack = (trackEvent) => {
remoteStream = trackEvent.streams[0];
remoteTrack = remoteStream.getAudioTracks()[0];
resolve();
};
});
}).then(() => {
return analyseAudio(remoteStream, 200, context).then((results) => {
[WPE][GTK] Implement WebAudioSourceProviderGStreamer to allow bridging MediaStream and the WebAudio APIs https://bugs.webkit.org/show_bug.cgi?id=186933 Source/WebCore: Reusing the AudioSourceProviderGStreamer itself as it was doing almost everything we needed, just added a constructor to be able to create it from a MediaStreamTrackPrivate and made it a WebAudioSourceProvider which only means it is now a ThreadSafeRefCounted. Sensibily refactored GStreamerMediaStreamSource so that we could reuse it to track a single MediaStreamTrack. Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-12-07 Reviewed by Philippe Normand. Enabled all tests depending on that feature. * platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp: (WebCore::AudioSourceProviderGStreamer::AudioSourceProviderGStreamer): (WebCore::AudioSourceProviderGStreamer::~AudioSourceProviderGStreamer): (WebCore::AudioSourceProviderGStreamer::setClient): * platform/audio/gstreamer/AudioSourceProviderGStreamer.h: * platform/mediastream/MediaStreamTrackPrivate.cpp: (WebCore::MediaStreamTrackPrivate::audioSourceProvider): * platform/mediastream/gstreamer/GStreamerAudioCapturer.cpp: (WebCore::GStreamerAudioCapturer::GStreamerAudioCapturer): * platform/mediastream/gstreamer/GStreamerAudioStreamDescription.h: * platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp: (WebCore::webkitMediaStreamSrcSetupSrc): (WebCore::webkitMediaStreamSrcSetupAppSrc): (WebCore::webkitMediaStreamSrcAddTrack): (WebCore::webkitMediaStreamSrcSetStream): (WebCore::webkitMediaStreamSrcNew): * platform/mediastream/gstreamer/GStreamerMediaStreamSource.h: * platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.cpp: (WebCore::WrappedMockRealtimeAudioSource::WrappedMockRealtimeAudioSource): (WebCore::WrappedMockRealtimeAudioSource::start): (WebCore::WrappedMockRealtimeAudioSource::addHum): (WebCore::WrappedMockRealtimeAudioSource::render): (WebCore::WrappedMockRealtimeAudioSource::settingsDidChange): (WebCore::MockGStreamerAudioCaptureSource::startProducingData): * platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceLibWebRTC.cpp: (WebCore::RealtimeOutgoingAudioSourceLibWebRTC::pullAudioData): Handle the case where input buffers are "big" and process all the data we can for each runs of the method. LayoutTests: Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-12-07 Reviewed by Philippe Normand. Enabled all tests depending on that feature. * platform/gtk/TestExpectations: * webrtc/clone-audio-track.html: Canonical link: https://commits.webkit.org/207075@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@238951 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-12-07 10:48:56 +00:00
assert_false(results.heardHum, "Did not hear hum from remote disabled track");
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
});
}).then(() => {
return analyseAudio(new MediaStream([clonedTrack]), 200, context).then((results) => {
assert_true(results.heardHum, "Heard hum from cloned track");
});
}).then(() => {
return context.close();
});
});
}, "Muting an outgoing audio track but not its clone");
</script>
</body>
</html>