Files
Michael Froman def8a5f3cd Bug 2025559 - Vendor libwebrtc from 9a1c966dec
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}
2026-03-28 16:54:38 +00:00

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