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,11 +384,21 @@ bool DxgiDuplicatorController::DoDuplicateOne(Context* context,
|
||||
|
||||
int64_t DxgiDuplicatorController::GetNumFramesCaptured(int monitor_id) const {
|
||||
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_) {
|
||||
if (monitor_id >= duplicator.screen_count()) {
|
||||
monitor_id -= duplicator.screen_count();
|
||||
} else {
|
||||
return duplicator.GetNumFramesCaptured(monitor_id);
|
||||
}
|
||||
}
|
||||
return min;
|
||||
}
|
||||
|
||||
DesktopSize DxgiDuplicatorController::desktop_size() const {
|
||||
return desktop_rect_.size();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user