Upstream commit: https://webrtc.googlesource.com/src/+/7e3a9ce99d832687d1eef3eaa270754970a761b0 Rely on TaskQueueBase interface in modules/rtp_rtcp Instead of requiring Thread to be passed to the RtpVideoStreamReceiverFrameTransformerDelegate. This class already uses it only though the TaskQueueBase interface. In tests rely on RunLoop helper when test makes calls that are required to be done on the same task queue, and rely on TaskQueueForTests where test does not make such calls. Bug: webrtc:42225410 Change-Id: I7aba5c696436d8ce43c85ccba5b9448e852ea81d Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/470880 Auto-Submit: Danil Chapovalov <danilchap@webrtc.org> Commit-Queue: Erik Språng <sprang@webrtc.org> Reviewed-by: Erik Språng <sprang@webrtc.org> Cr-Commit-Position: refs/heads/main@{#47662}
122 lines
6.5 KiB
Diff
122 lines
6.5 KiB
Diff
From: Jan Grulich <jgrulich@redhat.com>
|
|
Date: Thu, 30 Nov 2023 11:49:00 +0000
|
|
Subject: Bug 1844020 - Add option to DeviceInfo::GetDeviceName() identifying a
|
|
placeholder device r=pehrsons,webrtc-reviewers
|
|
|
|
Adds a new parameter "deviceIsPlaceholder" that will be set to true in
|
|
case the returned device is not a real device but a placeholder that is
|
|
just used to inform about camera device existence.
|
|
|
|
Differential Revision: https://phabricator.services.mozilla.com/D189929
|
|
Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/ed31b2acb5fbca3e2d0691a64bc52e65952070c0
|
|
---
|
|
modules/video_capture/linux/device_info_pipewire.cc | 4 +++-
|
|
modules/video_capture/linux/device_info_pipewire.h | 3 ++-
|
|
modules/video_capture/linux/device_info_v4l2.cc | 3 ++-
|
|
modules/video_capture/linux/device_info_v4l2.h | 3 ++-
|
|
modules/video_capture/video_capture.h | 3 ++-
|
|
modules/video_capture/windows/device_info_ds.cc | 3 ++-
|
|
modules/video_capture/windows/device_info_ds.h | 3 ++-
|
|
7 files changed, 15 insertions(+), 7 deletions(-)
|
|
|
|
diff --git a/modules/video_capture/linux/device_info_pipewire.cc b/modules/video_capture/linux/device_info_pipewire.cc
|
|
index 7748fcf08f..009e1408b9 100644
|
|
--- a/modules/video_capture/linux/device_info_pipewire.cc
|
|
+++ b/modules/video_capture/linux/device_info_pipewire.cc
|
|
@@ -44,8 +44,10 @@ int32_t DeviceInfoPipeWire::GetDeviceName(uint32_t deviceNumber,
|
|
uint32_t deviceUniqueIdUTF8Length,
|
|
char* productUniqueIdUTF8,
|
|
uint32_t productUniqueIdUTF8Length,
|
|
- pid_t* pid) {
|
|
+ pid_t* pid,
|
|
+ bool* deviceIsPlaceholder) {
|
|
RTC_CHECK(pipewire_session_);
|
|
+
|
|
if (deviceNumber >= NumberOfDevices())
|
|
return -1;
|
|
|
|
diff --git a/modules/video_capture/linux/device_info_pipewire.h b/modules/video_capture/linux/device_info_pipewire.h
|
|
index b3e6de6fee..354e309ff9 100644
|
|
--- a/modules/video_capture/linux/device_info_pipewire.h
|
|
+++ b/modules/video_capture/linux/device_info_pipewire.h
|
|
@@ -32,7 +32,8 @@ class DeviceInfoPipeWire : public DeviceInfoImpl {
|
|
uint32_t deviceUniqueIdUTF8Length,
|
|
char* productUniqueIdUTF8 = nullptr,
|
|
uint32_t productUniqueIdUTF8Length = 0,
|
|
- pid_t* pid = 0) override;
|
|
+ pid_t* pid = 0,
|
|
+ bool* deviceIsPlaceholder = 0) override;
|
|
/*
|
|
* Fills the membervariable _captureCapabilities with capabilites for the
|
|
* given device name.
|
|
diff --git a/modules/video_capture/linux/device_info_v4l2.cc b/modules/video_capture/linux/device_info_v4l2.cc
|
|
index 45de4c8a03..db53708781 100644
|
|
--- a/modules/video_capture/linux/device_info_v4l2.cc
|
|
+++ b/modules/video_capture/linux/device_info_v4l2.cc
|
|
@@ -232,7 +232,8 @@ int32_t DeviceInfoV4l2::GetDeviceName(uint32_t deviceNumber,
|
|
uint32_t deviceUniqueIdUTF8Length,
|
|
char* /*productUniqueIdUTF8*/,
|
|
uint32_t /*productUniqueIdUTF8Length*/,
|
|
- pid_t* /*pid*/) {
|
|
+ pid_t* /*pid*/,
|
|
+ bool* /*deviceIsPlaceholder*/) {
|
|
// Travel through /dev/video [0-63]
|
|
uint32_t count = 0;
|
|
char device[20];
|
|
diff --git a/modules/video_capture/linux/device_info_v4l2.h b/modules/video_capture/linux/device_info_v4l2.h
|
|
index db98a62bcc..0717ea05bd 100644
|
|
--- a/modules/video_capture/linux/device_info_v4l2.h
|
|
+++ b/modules/video_capture/linux/device_info_v4l2.h
|
|
@@ -37,7 +37,8 @@ class DeviceInfoV4l2 : public DeviceInfoImpl {
|
|
uint32_t deviceUniqueIdUTF8Length,
|
|
char* productUniqueIdUTF8 = 0,
|
|
uint32_t productUniqueIdUTF8Length = 0,
|
|
- pid_t* pid=0) override;
|
|
+ pid_t* pid = 0,
|
|
+ bool* deviceIsPlaceholder = 0) override;
|
|
/*
|
|
* Fills the membervariable _captureCapabilities with capabilites for the
|
|
* given device name.
|
|
diff --git a/modules/video_capture/video_capture.h b/modules/video_capture/video_capture.h
|
|
index d9a6d09e60..a7c1764c51 100644
|
|
--- a/modules/video_capture/video_capture.h
|
|
+++ b/modules/video_capture/video_capture.h
|
|
@@ -77,7 +77,8 @@ class VideoCaptureModule : public RefCountInterface {
|
|
uint32_t deviceUniqueIdUTF8Length,
|
|
char* productUniqueIdUTF8 = 0,
|
|
uint32_t productUniqueIdUTF8Length = 0,
|
|
- pid_t* pid = 0) = 0;
|
|
+ pid_t* pid = 0,
|
|
+ bool* deviceIsPlaceholder = 0) = 0;
|
|
|
|
// Returns the number of capabilities this device.
|
|
virtual int32_t NumberOfCapabilities(const char* deviceUniqueIdUTF8) = 0;
|
|
diff --git a/modules/video_capture/windows/device_info_ds.cc b/modules/video_capture/windows/device_info_ds.cc
|
|
index fcb9869f32..1a7098e3bf 100644
|
|
--- a/modules/video_capture/windows/device_info_ds.cc
|
|
+++ b/modules/video_capture/windows/device_info_ds.cc
|
|
@@ -173,7 +173,8 @@ int32_t DeviceInfoDS::GetDeviceName(uint32_t deviceNumber,
|
|
uint32_t deviceUniqueIdUTF8Length,
|
|
char* productUniqueIdUTF8,
|
|
uint32_t productUniqueIdUTF8Length,
|
|
- pid_t* pid) {
|
|
+ pid_t* pid,
|
|
+ bool* deviceIsPlaceholder) {
|
|
MutexLock lock(&_apiLock);
|
|
const int32_t result = GetDeviceInfo(
|
|
deviceNumber, deviceNameUTF8, deviceNameLength, deviceUniqueIdUTF8,
|
|
diff --git a/modules/video_capture/windows/device_info_ds.h b/modules/video_capture/windows/device_info_ds.h
|
|
index e6dfaed366..a9a1449b99 100644
|
|
--- a/modules/video_capture/windows/device_info_ds.h
|
|
+++ b/modules/video_capture/windows/device_info_ds.h
|
|
@@ -51,7 +51,8 @@ class DeviceInfoDS : public DeviceInfoImpl {
|
|
uint32_t deviceUniqueIdUTF8Length,
|
|
char* productUniqueIdUTF8,
|
|
uint32_t productUniqueIdUTF8Length,
|
|
- pid_t* pid) override;
|
|
+ pid_t* pid,
|
|
+ bool* deviceIsPlaceholder) override;
|
|
|
|
/*
|
|
* Display OS /capture device specific settings dialog
|