From eb6106e9d0a223f0c1f7a4c5c265f6521476092d Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Wed, 15 Nov 2023 10:50:10 +0100 Subject: [PATCH] DeviceInfoPipeWire: Add RTC_CHECKS for non-initialized PipeWire session Adds sanity checks for non-initialized PipeWire session in case caller forgets to initialize VideoCaptureOptions. Bug: webrtc:15654 Change-Id: Ic7afd2a9f7cd6ffdede612798544ad8826c96f74 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/327380 Reviewed-by: Ilya Nikolaevskiy Commit-Queue: Jan Grulich Cr-Commit-Position: refs/heads/main@{#41162} --- modules/video_capture/linux/device_info_pipewire.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/video_capture/linux/device_info_pipewire.cc b/modules/video_capture/linux/device_info_pipewire.cc index 1dee78f5ee..4782cee56a 100644 --- a/modules/video_capture/linux/device_info_pipewire.cc +++ b/modules/video_capture/linux/device_info_pipewire.cc @@ -38,6 +38,8 @@ int32_t DeviceInfoPipeWire::Init() { DeviceInfoPipeWire::~DeviceInfoPipeWire() = default; uint32_t DeviceInfoPipeWire::NumberOfDevices() { + RTC_CHECK(pipewire_session_); + return pipewire_session_->nodes().size(); } @@ -48,6 +50,8 @@ int32_t DeviceInfoPipeWire::GetDeviceName(uint32_t deviceNumber, uint32_t deviceUniqueIdUTF8Length, char* productUniqueIdUTF8, uint32_t productUniqueIdUTF8Length) { + RTC_CHECK(pipewire_session_); + if (deviceNumber >= NumberOfDevices()) return -1; @@ -83,6 +87,8 @@ int32_t DeviceInfoPipeWire::GetDeviceName(uint32_t deviceNumber, int32_t DeviceInfoPipeWire::CreateCapabilityMap( const char* deviceUniqueIdUTF8) { + RTC_CHECK(pipewire_session_); + for (auto& node : pipewire_session_->nodes()) { if (node.unique_id().compare(deviceUniqueIdUTF8) != 0) continue;