Menu

#140 Loading multi-device WCS environment is not tolerant of device reordering

Unspecified
New
Tetsujin
None
Medium
Linux
UI
Defect
2016-03-11
2016-03-11
Tetsujin
No

Currently when I use WCS I use two USB webcam sources, and the loopback device. In a recent session, WCS accessed the wrong devices for each of the cameras in the WCS save file, apparently because their corresponding /dev/video device numbers had changed.

The problem is compounded by the fact that, once a camera is configured, it apparently can't be changed to use another device without rebuilding the whole studio file. IMO the proper solution would be something like this:

  1. Use additional information about the webcam to locate the correct video device upon reloading the session. (We have device name currently, we may want to add more)
  2. If the process fails upon startup, the user should be made aware that those devices couldn't be located. In the cameras tab, the source in question should be put into an "unconfigured" state that prevents the device's activation until a new device is selected.
  3. The source config UI should allow for manual selection of the device to be used for a source. One way we could incorporate this is to replace the "Back-End Switch" button with a "Source Properties" button which would pop-up a dialog allowing selection of the source device as well as the back-end software to be used for reading the device.

What steps will reproduce the problem?
1. Establish a multi-camera WCS environment. Save it and quit.
2. Change the order of the /dev/video devices. (If both USB devices are external, this can sometimes be done by unplugging them and then plugging them back in in a different order. Another method is to rmmod uvcvideo and rmmod v4l2loopback and then modprobe them again, v4l2loopback first (and with no device number specified) so it gets /dev/video0.
3. Run WCS and reload the studio file. Turn on loopback device output and activate the cameras.

What is the expected output?
The configuration should be the same as before the restart

What do you see instead?
Each camera device apparently takes input from the same /dev/video device it used previously.

The Operating system you are using (Linux, Windows etc)?
Linux

What version of WebcamStudio are you using?
0.73 version (currently from my asynchronous source polling branch)

What version of Java are you using?
openjdk version "1.8.0_72-internal"
OpenJDK Runtime Environment (build 1.8.0_72-internal-b05)
OpenJDK 64-Bit Server VM (build 25.72-b05, mixed mode)

What is your Webcamera vendor, model and version?
Thinkpad integrated camera + Logitech HD Pro C920

Discussion


Log in to post a comment.