Fix inconsistent monitor id handling in DxgiDuplicatorController
In all the other functions `monitor_id` is a global id from range [0..total monitor count), but each DxgiAdapterDuplicator always assumes that it gets a local id from range [0..adapter monitor count). Bug: chromium:395807060 Change-Id: I4bb232ee5d83f09859534f813111446763fe9fc9 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376840 Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org> Reviewed-by: Henrik Andreassson <henrika@webrtc.org> Cr-Commit-Position: refs/heads/main@{#43867}
This commit is contained in:
parent
9bbd4d34e9
commit
7f0c39115e
@ -384,8 +384,18 @@ bool DxgiDuplicatorController::DoDuplicateOne(Context* context,
|
|||||||
|
|
||||||
int64_t DxgiDuplicatorController::GetNumFramesCaptured(int monitor_id) const {
|
int64_t DxgiDuplicatorController::GetNumFramesCaptured(int monitor_id) const {
|
||||||
int64_t min = INT64_MAX;
|
int64_t min = INT64_MAX;
|
||||||
|
if (monitor_id < 0) {
|
||||||
|
for (const auto& duplicator : duplicators_) {
|
||||||
|
min = std::min(min, duplicator.GetNumFramesCaptured(monitor_id));
|
||||||
|
}
|
||||||
|
return min;
|
||||||
|
}
|
||||||
for (const auto& duplicator : duplicators_) {
|
for (const auto& duplicator : duplicators_) {
|
||||||
min = std::min(min, duplicator.GetNumFramesCaptured(monitor_id));
|
if (monitor_id >= duplicator.screen_count()) {
|
||||||
|
monitor_id -= duplicator.screen_count();
|
||||||
|
} else {
|
||||||
|
return duplicator.GetNumFramesCaptured(monitor_id);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return min;
|
return min;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user