Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: dfa421425d517ac2b7822c9b758cacb9d52743b2 https://github.com/WebKit/WebKit/commit/dfa421425d517ac2b7822c9b758cacb9d52743b2 Author: Philippe Normand <ph...@igalia.com> Date: 2023-08-22 (Tue, 22 Aug 2023)
Changed paths: M Source/WebCore/platform/graphics/gstreamer/ImageGStreamer.h M Source/WebCore/platform/graphics/gstreamer/ImageGStreamerCairo.cpp M Source/WebCore/platform/graphics/gstreamer/VideoDecoderGStreamer.cpp Log Message: ----------- [GStreamer][WebCodecs] Circular references in video decoder leading to memory leaks https://bugs.webkit.org/show_bug.cgi?id=260423 Reviewed by Xabier Rodriguez-Calvar. Circular references between the GStreamerInternalVideoDecoder and its harness through captured references in lambdas was preventing proper cleanup of the harness when closing the decoder. Using WeakPtrs instead of strong Refs in captured variables fixes the issue. Also, driving-by, fixing the ImageGStreamer API to fit with our style guidelines and making sure the sample is cleared *after* the associated video frame is un-mapped. * Source/WebCore/platform/graphics/gstreamer/ImageGStreamer.h: (WebCore::ImageGStreamer::createImage): * Source/WebCore/platform/graphics/gstreamer/ImageGStreamerCairo.cpp: (WebCore::ImageGStreamer::~ImageGStreamer): * Source/WebCore/platform/graphics/gstreamer/VideoDecoderGStreamer.cpp: (WebCore::GStreamerInternalVideoDecoder::harnessedElement const): (WebCore::GStreamerVideoDecoder::create): (WebCore::GStreamerVideoDecoder::~GStreamerVideoDecoder): (WebCore::GStreamerInternalVideoDecoder::GStreamerInternalVideoDecoder): (WebCore::GStreamerInternalVideoDecoder::decode): Canonical link: https://commits.webkit.org/267132@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes