[webkit-changes] [WebKit/WebKit] 6c5b04: [GStreamer] Crash after 10 seconds on watchdog thr...
Philippe Normand
noreply at github.com
Mon Jan 1 06:51:39 PST 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 6c5b045e794c3917520ab419400d51db47d74b8c
https://github.com/WebKit/WebKit/commit/6c5b045e794c3917520ab419400d51db47d74b8c
Author: Philippe Normand <philn at igalia.com>
Date: 2024-01-01 (Mon, 01 Jan 2024)
Changed paths:
M Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp
M Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp
M Source/WebCore/platform/audio/gstreamer/AudioEncoderGStreamer.cpp
M Source/WebCore/platform/audio/gstreamer/AudioFileReaderGStreamer.cpp
M Source/WebCore/platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/GStreamerAudioMixer.cpp
M Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp
M Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp
M Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.h
M Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h
M Source/WebCore/platform/gstreamer/GStreamerElementHarness.cpp
M Source/WebCore/platform/gstreamer/PlatformSpeechSynthesizerGStreamer.cpp
M Source/WebCore/platform/mediarecorder/MediaRecorderPrivateGStreamer.cpp
M Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.cpp
Log Message:
-----------
[GStreamer] Crash after 10 seconds on watchdog thread due to hang in gst_deinit()
https://bugs.webkit.org/show_bug.cgi?id=257551
Reviewed by Xabier Rodriguez-Calvar.
Keep track of every GStreamer pipeline during the life-time of the WebProcess and make sure no
active pipeline processing is left before calling gst_deinit().
Also, driving-by, the AppendPipeline is now explicitely cleared when the SourceBuffer has been
removed from the MediaSource, as an attempt to reduce memory pressure and keep open file descriptors
under control...
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp:
(WebCore::GStreamerMediaEndpoint::initializePipeline):
(WebCore::GStreamerMediaEndpoint::teardownPipeline):
* Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
(WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
(WebCore::AudioDestinationGStreamer::~AudioDestinationGStreamer):
* Source/WebCore/platform/audio/gstreamer/AudioEncoderGStreamer.cpp:
(WebCore::GStreamerInternalAudioEncoder::GStreamerInternalAudioEncoder):
(WebCore::GStreamerInternalAudioEncoder::initialize):
* Source/WebCore/platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
(WebCore::AudioFileReader::~AudioFileReader):
(WebCore::AudioFileReader::decodeAudioForBusCreation):
* Source/WebCore/platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:
(WebCore::AudioSourceProviderGStreamer::AudioSourceProviderGStreamer):
(WebCore::AudioSourceProviderGStreamer::~AudioSourceProviderGStreamer):
* Source/WebCore/platform/graphics/gstreamer/GStreamerAudioMixer.cpp:
(WebCore::GStreamerAudioMixer::GStreamerAudioMixer):
(WebCore::GStreamerAudioMixer::ensureState):
* Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp:
(WebCore::activePipelinesMap):
(WebCore::registerActivePipeline):
(WebCore::unregisterPipeline):
(WebCore::deinitializeGStreamer):
* Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h:
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
* Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::~AppendPipeline):
* Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:
(WebCore::SourceBufferPrivateGStreamer::SourceBufferPrivateGStreamer):
(WebCore::SourceBufferPrivateGStreamer::removedFromMediaSource):
* Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h:
* Source/WebCore/platform/gstreamer/GStreamerElementHarness.cpp:
(WebCore::GStreamerElementHarness::GStreamerElementHarness):
(WebCore::GStreamerElementHarness::~GStreamerElementHarness):
* Source/WebCore/platform/gstreamer/PlatformSpeechSynthesizerGStreamer.cpp:
(WebCore::GstSpeechSynthesisWrapper::GstSpeechSynthesisWrapper):
(WebCore::GstSpeechSynthesisWrapper::~GstSpeechSynthesisWrapper):
* Source/WebCore/platform/mediarecorder/MediaRecorderPrivateGStreamer.cpp:
(WebCore::MediaRecorderPrivateBackend::~MediaRecorderPrivateBackend):
(WebCore::MediaRecorderPrivateBackend::preparePipeline):
* Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.cpp:
(WebCore::GStreamerCapturer::~GStreamerCapturer):
(WebCore::GStreamerCapturer::setupPipeline):
(WebCore::GStreamerCapturer::stop):
Canonical link: https://commits.webkit.org/272552@main
More information about the webkit-changes
mailing list