Changeset 272646 in webkit
- Timestamp:
- Feb 10, 2021, 4:43:20 AM (6 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 4 edited
-
ChangeLog (modified) (1 diff)
-
platform/audio/AudioSourceProviderClient.h (modified) (1 diff)
-
platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp (modified) (2 diffs)
-
platform/audio/gstreamer/AudioSourceProviderGStreamer.h (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r272641 r272646 1 2021-02-10 Xabier Rodriguez Calvar <calvaris@igalia.com> 2 3 [GStreamer] Make m_client WeakPtr in AudioSourceProviderGStreamer 4 https://bugs.webkit.org/show_bug.cgi?id=217952 5 6 Reviewed by Carlos Garcia Campos. 7 8 * platform/audio/AudioSourceProviderClient.h: Turned into 9 CanMakeWeakPtr. 10 * platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp: 11 (WebCore::AudioSourceProviderGStreamer::setClient): Adapt to use 12 WeakPtr. 13 * platform/audio/gstreamer/AudioSourceProviderGStreamer.h: Turned 14 m_client into WeakPtr. 15 1 16 2021-02-10 Carlos Garcia Campos <cgarcia@igalia.com> 2 17 -
trunk/Source/WebCore/platform/audio/AudioSourceProviderClient.h
r223728 r272646 26 26 #define AudioSourceProviderClient_h 27 27 28 #include <wtf/WeakPtr.h> 29 28 30 namespace WebCore { 29 31 30 class AudioSourceProviderClient {32 class AudioSourceProviderClient : public CanMakeWeakPtr<AudioSourceProviderClient, WeakPtrFactoryInitialization::Eager> { 31 33 public: 32 34 virtual void setFormat(size_t numberOfChannels, float sampleRate) = 0; -
trunk/Source/WebCore/platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp
r271290 r272646 192 192 } 193 193 194 void AudioSourceProviderGStreamer::setClient(AudioSourceProviderClient* client)195 { 196 if ( m_client == client)194 void AudioSourceProviderGStreamer::setClient(AudioSourceProviderClient* newClient) 195 { 196 if (client() == newClient) 197 197 return; 198 198 199 GST_DEBUG("Setting up client %p (previous: %p)", client, m_client);200 bool previousClientWasValid = m_client;201 m_client = client;199 GST_DEBUG("Setting up client %p (previous: %p)", newClient, client()); 200 bool previousClientWasValid = !!m_client; 201 m_client = makeWeakPtr(newClient); 202 202 203 203 // The volume element is used to mute audio playback towards the … … 208 208 209 209 if (volumeElement) { 210 bool shouldMute = m_client;210 bool shouldMute = !!m_client; 211 211 g_object_set(volumeElement.get(), "mute", shouldMute, nullptr); 212 212 } -
trunk/Source/WebCore/platform/audio/gstreamer/AudioSourceProviderGStreamer.h
r268727 r272646 22 22 23 23 #include "AudioSourceProvider.h" 24 #include "AudioSourceProviderClient.h" 24 25 #include "GRefPtrGStreamer.h" 25 26 #include "MainThreadNotifier.h" … … 61 62 void provideInput(AudioBus*, size_t framesToProcess) override; 62 63 void setClient(AudioSourceProviderClient*) override; 63 const AudioSourceProviderClient* client() const { return m_client ; }64 const AudioSourceProviderClient* client() const { return m_client.get(); } 64 65 65 66 void handleNewDeinterleavePad(GstPad*); … … 79 80 Ref<MainThreadNotifier<MainThreadNotification>> m_notifier; 80 81 GRefPtr<GstElement> m_audioSinkBin; 81 AudioSourceProviderClient* m_client { nullptr };82 WeakPtr<AudioSourceProviderClient> m_client; 82 83 int m_deinterleaveSourcePads { 0 }; 83 84 HashMap<int, GRefPtr<GstAdapter>> m_adapters;
Note:
See TracChangeset
for help on using the changeset viewer.