зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1828065 - cherry-pick upstream libwebrtc commit 6fc1ae58be. r=webrtc-reviewers,mjf
Upstream commit: https://webrtc.googlesource.com/src/+/6fc1ae58be7cbb61ad0431d90eb7a7dc333de2f2 In DeviceInfoDS check that out vars were set Bug: chromium:1441804 Change-Id: Id07cb61519315d77c2d7cdab1053efaaf7473e1a Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/304060 Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org> Reviewed-by: Per Kjellander <perkj@webrtc.org> Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org> Cr-Commit-Position: refs/heads/main@{#39982} Differential Revision: https://phabricator.services.mozilla.com/D177236
This commit is contained in:
Родитель
9cb76a249e
Коммит
d1c02f18a4
|
@ -505,9 +505,9 @@ int32_t DeviceInfoDS::CreateCapabilityMap(const char* deviceUniqueIdUTF8)
|
|||
}
|
||||
|
||||
if (hrVC == S_OK) {
|
||||
LONGLONG* frameDurationList;
|
||||
LONGLONG maxFPS;
|
||||
long listSize;
|
||||
LONGLONG* frameDurationList = NULL;
|
||||
LONGLONG maxFPS = 0;
|
||||
long listSize = 0;
|
||||
SIZE size;
|
||||
size.cx = capability.width;
|
||||
size.cy = capability.height;
|
||||
|
@ -520,9 +520,10 @@ int32_t DeviceInfoDS::CreateCapabilityMap(const char* deviceUniqueIdUTF8)
|
|||
hrVC = videoControlConfig->GetFrameRateList(
|
||||
outputCapturePin, tmp, size, &listSize, &frameDurationList);
|
||||
|
||||
// On some odd cameras, you may get a 0 for duration.
|
||||
// GetMaxOfFrameArray returns the lowest duration (highest FPS)
|
||||
if (hrVC == S_OK && listSize > 0 &&
|
||||
// On some odd cameras, you may get a 0 for duration. Some others may
|
||||
// not update the out vars. GetMaxOfFrameArray returns the lowest
|
||||
// duration (highest FPS), or 0 if there was no list with elements.
|
||||
if (hrVC == S_OK &&
|
||||
0 != (maxFPS = GetMaxOfFrameArray(frameDurationList, listSize))) {
|
||||
capability.maxFPS = static_cast<int>(10000000 / maxFPS);
|
||||
capability.supportFrameRateControl = true;
|
||||
|
|
|
@ -21,6 +21,9 @@ namespace webrtc {
|
|||
namespace videocapturemodule {
|
||||
// This returns minimum :), which will give max frame rate...
|
||||
LONGLONG GetMaxOfFrameArray(LONGLONG* maxFps, long size) {
|
||||
if (!maxFps || size <= 0) {
|
||||
return 0;
|
||||
}
|
||||
LONGLONG maxFPS = maxFps[0];
|
||||
for (int i = 0; i < size; i++) {
|
||||
if (maxFPS > maxFps[i])
|
||||
|
|
Загрузка…
Ссылка в новой задаче