Title: [272714] releases/WebKitGTK/webkit-2.30/Source/WebCore
- Revision
- 272714
- Author
- [email protected]
- Date
- 2021-02-11 01:31:51 -0800 (Thu, 11 Feb 2021)
Log Message
Merge r272646 - [GStreamer] Make m_client WeakPtr in AudioSourceProviderGStreamer
https://bugs.webkit.org/show_bug.cgi?id=217952
Reviewed by Carlos Garcia Campos.
* platform/audio/AudioSourceProviderClient.h: Turned into
CanMakeWeakPtr.
* platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:
(WebCore::AudioSourceProviderGStreamer::setClient): Adapt to use
WeakPtr.
* platform/audio/gstreamer/AudioSourceProviderGStreamer.h: Turned
m_client into WeakPtr.
Modified Paths
Diff
Modified: releases/WebKitGTK/webkit-2.30/Source/WebCore/ChangeLog (272713 => 272714)
--- releases/WebKitGTK/webkit-2.30/Source/WebCore/ChangeLog 2021-02-11 09:31:45 UTC (rev 272713)
+++ releases/WebKitGTK/webkit-2.30/Source/WebCore/ChangeLog 2021-02-11 09:31:51 UTC (rev 272714)
@@ -1,3 +1,18 @@
+2021-02-10 Xabier Rodriguez Calvar <[email protected]>
+
+ [GStreamer] Make m_client WeakPtr in AudioSourceProviderGStreamer
+ https://bugs.webkit.org/show_bug.cgi?id=217952
+
+ Reviewed by Carlos Garcia Campos.
+
+ * platform/audio/AudioSourceProviderClient.h: Turned into
+ CanMakeWeakPtr.
+ * platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:
+ (WebCore::AudioSourceProviderGStreamer::setClient): Adapt to use
+ WeakPtr.
+ * platform/audio/gstreamer/AudioSourceProviderGStreamer.h: Turned
+ m_client into WeakPtr.
+
2020-11-27 Philippe Normand <[email protected]>
[GStreamer] AudioSourceProvider can potentially invoke an already-freed client
Modified: releases/WebKitGTK/webkit-2.30/Source/WebCore/platform/audio/AudioSourceProviderClient.h (272713 => 272714)
--- releases/WebKitGTK/webkit-2.30/Source/WebCore/platform/audio/AudioSourceProviderClient.h 2021-02-11 09:31:45 UTC (rev 272713)
+++ releases/WebKitGTK/webkit-2.30/Source/WebCore/platform/audio/AudioSourceProviderClient.h 2021-02-11 09:31:51 UTC (rev 272714)
@@ -25,9 +25,11 @@
#ifndef AudioSourceProviderClient_h
#define AudioSourceProviderClient_h
+#include <wtf/WeakPtr.h>
+
namespace WebCore {
-class AudioSourceProviderClient {
+class AudioSourceProviderClient : public CanMakeWeakPtr<AudioSourceProviderClient, WeakPtrFactoryInitialization::Eager> {
public:
virtual void setFormat(size_t numberOfChannels, float sampleRate) = 0;
protected:
Modified: releases/WebKitGTK/webkit-2.30/Source/WebCore/platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp (272713 => 272714)
--- releases/WebKitGTK/webkit-2.30/Source/WebCore/platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp 2021-02-11 09:31:45 UTC (rev 272713)
+++ releases/WebKitGTK/webkit-2.30/Source/WebCore/platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp 2021-02-11 09:31:51 UTC (rev 272714)
@@ -228,12 +228,12 @@
return GST_FLOW_OK;
}
-void AudioSourceProviderGStreamer::setClient(AudioSourceProviderClient* client)
+void AudioSourceProviderGStreamer::setClient(AudioSourceProviderClient* newClient)
{
- if (m_client == client)
+ if (client() == newClient)
return;
- m_client = client;
+ m_client = makeWeakPtr(newClient);
if (m_pipeline)
gst_element_set_state(m_pipeline.get(), m_client ? GST_STATE_PLAYING : GST_STATE_NULL);
Modified: releases/WebKitGTK/webkit-2.30/Source/WebCore/platform/audio/gstreamer/AudioSourceProviderGStreamer.h (272713 => 272714)
--- releases/WebKitGTK/webkit-2.30/Source/WebCore/platform/audio/gstreamer/AudioSourceProviderGStreamer.h 2021-02-11 09:31:45 UTC (rev 272713)
+++ releases/WebKitGTK/webkit-2.30/Source/WebCore/platform/audio/gstreamer/AudioSourceProviderGStreamer.h 2021-02-11 09:31:51 UTC (rev 272714)
@@ -22,6 +22,7 @@
#if ENABLE(WEB_AUDIO) && ENABLE(VIDEO) && USE(GSTREAMER)
#include "AudioSourceProvider.h"
+#include "AudioSourceProviderClient.h"
#include "GRefPtrGStreamer.h"
#include "MainThreadNotifier.h"
#include <gst/gst.h>
@@ -61,7 +62,7 @@
void provideInput(AudioBus*, size_t framesToProcess) override;
void setClient(AudioSourceProviderClient*) override;
- const AudioSourceProviderClient* client() const { return m_client; }
+ const AudioSourceProviderClient* client() const { return m_client.get(); }
void handleNewDeinterleavePad(GstPad*);
void deinterleavePadsConfigured();
@@ -78,7 +79,7 @@
};
Ref<MainThreadNotifier<MainThreadNotification>> m_notifier;
GRefPtr<GstElement> m_audioSinkBin;
- AudioSourceProviderClient* m_client;
+ WeakPtr<AudioSourceProviderClient> m_client;
int m_deinterleaveSourcePads;
GstAdapter* m_frontLeftAdapter;
GstAdapter* m_frontRightAdapter;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes