Open GeorgesStavracas opened 1 year ago
I'll just list out the use cases for the other options than the "by device id" option.
Here the device is mapped by looking at which bus adress it is connected via. This in practice means that you can map devices to specific USB port or even internal PCI-E slots.
Pros:
Cons:
This is the current default on Linux and freeBSD. Even if this is not as useful for physical devices as the "By ID" or "By bus path" methods, there is still some cases where this is useful or needed. One of these is when using virtual v4l devices. These will not show up with the ID or Bus path method as they are nor real devices. For example if I create some virtual devices with https://github.com/umlaeute/v4l2loopback, they will not show up in any other mode than this one.
This is because the virtual devices only gets put in /sys/class/video4linux/
and /dev/
but not /dev/v4l/by-id/
and /dev/v4l/by-path/
.
Pros:
Cons:
/dev/video<number>
) as the number is determined by the order which the kernel initialized the devices in. So you can not count of the video source of have the same device file name between hot plugs or computer reboots.I think that the current pain point is that it is hard for a new user to realize what options are relevant as the current UI presents quite a few options at the same time with quite minimal amount of visual grouping:
I will suggest some potential solutions by looking at the UI from Blender. Note though that this is more as an example as we of course shouldn't copy this outright as we should come up with a solution that feels natural and is appropriate for the general OBS UI design language.
To break up the monotony of the drop down menu list. We could consider using radio buttons for the "Device Detection" setting. This would be at the top and also by it's different look perhaps signify that this is a more important option than then others:
In Blender there are places where there are an overwhelming amount of options. There they usually use a lot grouping of settings that can be nested and collapse able:
Collapsed view. This is what the user will see when the add create a brand new V4L source
Expanded view. If the user wants to get configure the more advanced options, they can expand the two extra sections:
This sparked from a discussion about how the V4L2 plugin matches capture devices (https://github.com/obsproject/obs-studio/pull/9246). Matching devices by the bus / port might be interesting, but we need to consider this approach holistically, both for other platforms, and also for other device types. It's unclear how the UI would look like, if it's a global vs per device type vs per source, etc.
TODO: list use cases