Nirbheek Chauhan
29098aeba8
gstdevice: Fetch device provider from message source
The GstDevice removed may not have a parent anymore when we check
whether the provider is hidden. Let's fetch the provider from the
message source, which is more reliable.
Fixes a racy nullptr deref on macOS when a device is unplugged:
```
libgstreamer-1.0.0.dylib!is_provider_hidden (gstreamer/subprojects/gstreamer/gst/gstdevicemonitor.c:240)
libgstreamer-1.0.0.dylib!bus_sync_message (gstreamer/subprojects/gstreamer/gst/gstdevicemonitor.c:286)
libgstreamer-1.0.0.dylib!gst_bus_post (gstreamer/subprojects/gstreamer/gst/gstbus.c:358)
libgstreamer-1.0.0.dylib!gst_device_provider_device_remove (gstreamer/subprojects/gstreamer/gst/gstdeviceprovider.c:685)
libgstosxaudio.dylib!gst_osx_audio_device_provider_update_devices ([...]/sys/osxaudio/gstosxaudiodeviceprovider.c:539)
libgstosxaudio.dylib!_audio_devices_changed_cb ([...]/sys/osxaudio/gstosxaudiodeviceprovider.c:313)
CoreAudio!HALObject::PropertiesChanged(unsigned int, AudioObjectPropertyAddress const*) (Unknown Source:0)
CoreAudio!HALSystem::PropertiesChanged(unsigned int, AudioObjectPropertyAddress const*) (Unknown Source:0)
CoreAudio!HALSystem::ObjectsPublishedAndDied(...) (Unknown Source:0)
CoreAudio!HALSystem::AudioObjectsPublishedAndDied(...) (Unknown Source:0)
CoreAudio!HALC_ShellPlugIn::ReconcileDeviceList(bool, bool) (Unknown Source:0)
CoreAudio!HALC_ShellPlugIn::CreateAggregateDevice(__CFDictionary const*, unsigned int&) (Unknown Source:0)
CoreAudio!AudioHardwareCreateAggregateDevice_mac_imp (Unknown Source:0)
AudioDSP!___lldb_unnamed_symbol15046 (Unknown Source:0)
AudioDSP!___lldb_unnamed_symbol15038 (Unknown Source:0)
AudioDSP!___lldb_unnamed_symbol33307 (Unknown Source:0)
AudioToolboxCore!APComponent::newInstance(...) (Unknown Source:0)
AudioToolboxCore!instantiate(...) (Unknown Source:0)
AudioToolboxCore!__AudioComponentInstanceNew_block_invoke (Unknown Source:0)
AudioToolboxCore!Synchronously (Unknown Source:0)
```
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8320>
2025-01-20 15:44:20 +05:30
..
2025-01-17 20:36:06 +01:00
2025-01-17 20:36:06 +01:00
2025-01-17 20:36:06 +01:00
2025-01-14 15:00:43 +00:00
2025-01-17 20:22:34 +01:00
2025-01-20 08:58:01 +00:00
2025-01-20 01:12:21 +09:00
2025-01-17 20:36:06 +01:00
2025-01-17 20:36:06 +01:00
2025-01-17 20:36:06 +01:00
2025-01-17 20:22:34 +01:00
2025-01-17 20:36:06 +01:00
2025-01-20 15:44:20 +05:30
2025-01-17 20:22:34 +01:00
2025-01-17 20:22:34 +01:00
2024-12-04 18:29:34 +00:00
2024-11-06 17:20:37 +00:00
2024-11-07 10:38:08 +00:00
2024-10-24 15:52:15 +05:30
2024-10-26 14:33:11 +03:00
2025-01-14 15:00:43 +00:00
2024-11-07 13:43:29 +00:00
2024-09-27 16:43:37 +00:00
2024-11-07 13:43:29 +00:00