summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/moz-patch-stack/0100.patch
blob: 07be6fc9349c6b06a9da9703f332d6a179c2422c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
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 fc0554f384..f9f08a9c27 100644
--- a/modules/video_capture/linux/device_info_pipewire.cc
+++ b/modules/video_capture/linux/device_info_pipewire.cc
@@ -50,8 +50,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 8a33d75892..00715c94bc 100644
--- a/modules/video_capture/linux/device_info_pipewire.h
+++ b/modules/video_capture/linux/device_info_pipewire.h
@@ -30,7 +30,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 04caaea592..401c38f9c5 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 0bec3eb765..55415845ad 100644
--- a/modules/video_capture/linux/device_info_v4l2.h
+++ b/modules/video_capture/linux/device_info_v4l2.h
@@ -36,7 +36,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 43a6a7f832..f59c34f8b2 100644
--- a/modules/video_capture/video_capture.h
+++ b/modules/video_capture/video_capture.h
@@ -74,7 +74,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 f6927281f3..8ca741239c 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