Skip to content

Commit da69830

Browse files
authored
Merge pull request #1042 from tychedelia/webcam-fix
Sort by device index.
2 parents f38e6d9 + 702568b commit da69830

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

nannou_webcam/src/native.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ fn query_device_formats(index: &CameraIndex) -> Vec<WebcamSupportedFormat> {
8989
let mut camera = match Camera::new(index.clone(), requested) {
9090
Ok(c) => c,
9191
Err(err) => {
92-
warn!("failed to query device formats: {err}");
92+
debug!("failed to query device formats: {err}");
9393
return Vec::new();
9494
}
9595
};
@@ -103,7 +103,7 @@ fn query_device_formats(index: &CameraIndex) -> Vec<WebcamSupportedFormat> {
103103
})
104104
.collect(),
105105
Err(err) => {
106-
warn!("failed to query compatible formats: {err}");
106+
debug!("failed to query compatible formats: {err}");
107107
Vec::new()
108108
}
109109
}
@@ -187,7 +187,11 @@ fn open_webcams(
187187
device
188188
} else {
189189
let in_use: Vec<Entity> = active_captures.iter().map(|c| c.device_entity).collect();
190-
match devices.iter().find(|(e, _)| !in_use.contains(e)) {
190+
match devices
191+
.iter()
192+
.filter(|(e, _)| !in_use.contains(e))
193+
.min_by_key(|(_, idx)| idx.0.clone())
194+
{
191195
Some((e, _)) => e,
192196
None => {
193197
let msg = "no available webcam device found";

0 commit comments

Comments
 (0)