Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: d377f55ddfb4213b0897152a263dc71e0423fb19 https://github.com/WebKit/WebKit/commit/d377f55ddfb4213b0897152a263dc71e0423fb19 Author: Philippe Normand <ph...@igalia.com> Date: 2023-06-22 (Thu, 22 Jun 2023)
Changed paths: M LayoutTests/platform/glib/TestExpectations M Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.cpp M Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h M Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp M Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCaptureSource.h M Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCapturer.cpp M Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCapturer.h M Source/WebCore/platform/mediastream/gstreamer/GStreamerCaptureDeviceManager.cpp M Source/WebCore/platform/mediastream/gstreamer/GStreamerCaptureDeviceManager.h M Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.cpp M Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.h M Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp M Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h M Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCapturer.cpp M Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCapturer.h M Source/WebCore/platform/mediastream/gstreamer/MockRealtimeAudioSourceGStreamer.cpp M Source/WebCore/platform/mediastream/gstreamer/MockRealtimeAudioSourceGStreamer.h M Source/WebCore/platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp M Source/WebCore/platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.h M Source/WebCore/platform/mediastream/mac/BaseAudioSharedUnit.h M Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp M Source/WebKit/UIProcess/UserMediaProcessManager.h M Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.h Log Message: ----------- [GStreamer][MediaStream] A muted microphone track should get ended if its device disappears https://bugs.webkit.org/show_bug.cgi?id=258347 Reviewed by Xabier Rodriguez-Calvar. When a microphone device disappears the GStreamer capture device manager is now notified. Because it now tracks each capturer pipeline it is able to interrupt the corresponding pipeline and that will trigger a notification in the corresponding RealtimeMediaSource, which then signals the related MediaStreamTrack ended, using `captureFailed()`. * LayoutTests/platform/glib/TestExpectations: * Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.cpp: (WebCore::RealtimeMediaSourceCenter::captureDeviceWillBeRemoved): * Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h: * Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp: (WebCore::GStreamerAudioCaptureSource::GStreamerAudioCaptureSource): (WebCore::GStreamerAudioCaptureSource::~GStreamerAudioCaptureSource): (WebCore::GStreamerAudioCaptureSource::captureEnded): * Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCaptureSource.h: * Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCapturer.cpp: (WebCore::GStreamerAudioCapturer::~GStreamerAudioCapturer): Deleted. * Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCapturer.h: * Source/WebCore/platform/mediastream/gstreamer/GStreamerCaptureDeviceManager.cpp: (WebCore::GStreamerCaptureDeviceManager::GStreamerCaptureDeviceManager): (WebCore::GStreamerCaptureDeviceManager::devicesChanged): (WebCore::GStreamerCaptureDeviceManager::deviceWillBeRemoved): (WebCore::GStreamerCaptureDeviceManager::registerCapturer): (WebCore::GStreamerCaptureDeviceManager::unregisterCapturer): (WebCore::GStreamerCaptureDeviceManager::stopCapturing): (WebCore::GStreamerCaptureDeviceManager::captureDevices): (WebCore::GStreamerCaptureDeviceManager::addDevice): (WebCore::GStreamerCaptureDeviceManager::removeDevice): (WebCore::GStreamerCaptureDeviceManager::refreshCaptureDevices): * Source/WebCore/platform/mediastream/gstreamer/GStreamerCaptureDeviceManager.h: * Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.cpp: (WebCore::GStreamerCapturer::~GStreamerCapturer): (WebCore::GStreamerCapturer::stopDevice): * Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.h: (WebCore::GStreamerCapturer::Observer::captureEnded): (WebCore::GStreamerCapturer::sink const): (WebCore::GStreamerCapturer::devicePersistentId const): (WebCore::GStreamerCapturer::setSink): Deleted. * Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp: (WebCore::m_deviceType): (WebCore::GStreamerVideoCaptureSource::~GStreamerVideoCaptureSource): (WebCore::GStreamerVideoCaptureSource::captureEnded): * Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h: * Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCapturer.cpp: (WebCore::GStreamerVideoCapturer::~GStreamerVideoCapturer): Deleted. * Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCapturer.h: * Source/WebCore/platform/mediastream/gstreamer/MockRealtimeAudioSourceGStreamer.cpp: (WebCore::MockRealtimeAudioSourceGStreamer::~MockRealtimeAudioSourceGStreamer): (WebCore::MockRealtimeAudioSourceGStreamer::stopProducingData): (WebCore::MockRealtimeAudioSourceGStreamer::captureEnded): * Source/WebCore/platform/mediastream/gstreamer/MockRealtimeAudioSourceGStreamer.h: * Source/WebCore/platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp: (WebCore::MockRealtimeVideoSourceGStreamer::~MockRealtimeVideoSourceGStreamer): (WebCore::MockRealtimeVideoSourceGStreamer::captureEnded): * Source/WebCore/platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.h: * Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp: (WebCore::MockRealtimeMediaSourceCenter::setDevices): (WebCore::MockRealtimeMediaSourceCenter::removeDevice): * Source/WebKit/UIProcess/UserMediaProcessManager.h: * Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.h: Canonical link: https://commits.webkit.org/265401@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes