Closed caseykneale closed 2 months ago
For anyone wondering the OpenCV crate does support this functionality without any issues.
The bug is from these lines: https://github.com/wangjia184/nokhwa/blob/8890670bf107fe7252d416a480dbe696de4211a8/nokhwa-bindings-linux/src/lib.rs#L200-L207
A fix is here : https://github.com/kendfrey/nokhwa/compare/0.10...wangjia184:nokhwa:0.10
you may try it
# https://github.com/l1npengtul/nokhwa/issues/177
# https://github.com/l1npengtul/nokhwa/issues/164
nokhwa = { version = "0.10.4", features = ["input-native"], git = "https://github.com/wangjia184/nokhwa.git", branch = "0.10" }
Thanks for the fix and the reply I would say this is now closed :).
I tried to write some code where I switched devices with the V4L backend. IE:
When I get to the open stream phase of this I get an assertion failure:
Ordinarily I would share code but this is easily reproduced. I've tried pretty much every pattern to avoid this. From mutating the camera instance by changing it's device id (same error), not closing the streams, not opening a new stream etc.
Ultimately I'm not sure why a global device list is creating a new device entry. I tried inspecting the docs for what happens when a stream is closed, it says there are quirks and to check the backend portion of the docs. Those notes seem to be missing?
Is there a preferred method to switch devices, is this currently unsupported, or broken?