Upstream commit: https://webrtc.googlesource.com/src/+/9a1c966dec0d1d83b3168b8586dab30c626baf85 In the latest version of Windows OS, the camera supports three Pin types: PreviewResolution, StillResolution, VideoResolution. Initially, WebRTC uses the first pin(PreviewResolution Pin)to create the _captureCapabilities. However, when creating the actual capture device, WebRTC uses the VideoResolution(PIN_CATEGORY_CAPTURE ). If the number of supported resolutions in PreviewResolution is greater than that in VideoResolution, the application will crash due to a mismatch in capabilities. To fix this issue, change to using PIN_CTEGORY_CPTURE for all Bug: none Change-Id: I8bca0ac2c8ae12aa119b9a9f70a5220749701a21 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/417200 Reviewed-by: Per Kjellander <perkj@webrtc.org> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org> Auto-Submit: Sai Xu <saixu@qti.qualcomm.com> Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org> Cr-Commit-Position: refs/heads/main@{#46368}
55 lines
2.4 KiB
Diff
55 lines
2.4 KiB
Diff
From: Nico Grunbaum <na-g@nostrum.com>
|
|
Date: Thu, 18 Feb 2021 17:23:00 -0800
|
|
Subject: Bug 1654112 - fix device_info_ds pid and Windows constants includes;
|
|
r=pehrsons
|
|
|
|
Upstreaming bug 1697385
|
|
|
|
Differential Revision: https://phabricator.services.mozilla.com/D107899
|
|
Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/24809d566449907edea49ea47528065ad0f76910
|
|
---
|
|
modules/video_capture/windows/device_info_ds.cc | 3 ++-
|
|
modules/video_capture/windows/device_info_ds.h | 6 +++++-
|
|
2 files changed, 7 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/modules/video_capture/windows/device_info_ds.cc b/modules/video_capture/windows/device_info_ds.cc
|
|
index 132c360457..fcb9869f32 100644
|
|
--- a/modules/video_capture/windows/device_info_ds.cc
|
|
+++ b/modules/video_capture/windows/device_info_ds.cc
|
|
@@ -172,7 +172,8 @@ int32_t DeviceInfoDS::GetDeviceName(uint32_t deviceNumber,
|
|
char* deviceUniqueIdUTF8,
|
|
uint32_t deviceUniqueIdUTF8Length,
|
|
char* productUniqueIdUTF8,
|
|
- uint32_t productUniqueIdUTF8Length) {
|
|
+ uint32_t productUniqueIdUTF8Length,
|
|
+ pid_t* pid) {
|
|
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 ed2a726d6f..e6dfaed366 100644
|
|
--- a/modules/video_capture/windows/device_info_ds.h
|
|
+++ b/modules/video_capture/windows/device_info_ds.h
|
|
@@ -12,8 +12,11 @@
|
|
#define MODULES_VIDEO_CAPTURE_MAIN_SOURCE_WINDOWS_DEVICE_INFO_DS_H_
|
|
|
|
#include <dshow.h>
|
|
+#include <Ks.h>
|
|
+#include <dbt.h>
|
|
|
|
#include "modules/video_capture/device_info_impl.h"
|
|
+#include "modules/video_capture/video_capture.h"
|
|
#include "modules/video_capture/video_capture_impl.h"
|
|
|
|
namespace webrtc {
|
|
@@ -47,7 +50,8 @@ class DeviceInfoDS : public DeviceInfoImpl {
|
|
char* deviceUniqueIdUTF8,
|
|
uint32_t deviceUniqueIdUTF8Length,
|
|
char* productUniqueIdUTF8,
|
|
- uint32_t productUniqueIdUTF8Length) override;
|
|
+ uint32_t productUniqueIdUTF8Length,
|
|
+ pid_t* pid) override;
|
|
|
|
/*
|
|
* Display OS /capture device specific settings dialog
|