avoid hang on closing webcam due to rescans for new camera devices
@@ -8,8 +8,11 @@ import java.util.ArrayList;
import java.util.List;
public class WebcamScanDriver extends WebcamDefaultDriver {
+ private List<WebcamDevice> foundScanDevices;
+
@Override
public List<WebcamDevice> getDevices() {
+ if(foundScanDevices == null || foundScanDevices.isEmpty()) {
List<WebcamDevice> devices = super.getDevices();
List<WebcamDevice> scanDevices = new ArrayList<>();
for(WebcamDevice device : devices) {
@@ -17,6 +20,9 @@ public class WebcamScanDriver extends WebcamDefaultDriver {
scanDevices.add(new WebcamScanDevice(defaultDevice.getDeviceRef()));
}
- return scanDevices;
+ foundScanDevices = scanDevices;
+ }
+
+ return foundScanDevices;
}
}
