[webkit-changes] [WebKit/WebKit] d377f5: [GStreamer][MediaStream] A muted microphone track ...

Philippe Normand noreply at github.com
Thu Jun 22 05:34:53 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d377f55ddfb4213b0897152a263dc71e0423fb19
      https://github.com/WebKit/WebKit/commit/d377f55ddfb4213b0897152a263dc71e0423fb19
  Author: Philippe Normand <philn at 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




More information about the webkit-changes mailing list