linux-pipewire: Use list-based format selector for video capture#11741
Conversation
1fdcb9b to
65891c4
Compare
|
We had a lot of discussion about the string formatting for #10895 so I'd like to copy that as closely as possible for this. |
65891c4 to
9ae7734
Compare
9ae7734 to
f7f7068
Compare
|
@Warchamp7 does this now copy #10895 as closely as possible to be acceptable? |
|
f7f7068 to
a47e245
Compare
|
@Warchamp7 requested changes are done. |
a47e245 to
37857a4
Compare
37857a4 to
6dc08ff
Compare
|
Not that this is intended to be addressed with this PR (or perhaps a sensible default would be to assume 'N/A' FPS) - but 'ranged' FPS is not supported. E.g. start a loopback device and feed it some frames: This can be viewed using V4L2 input, but doesn't work with pipewire (camera) capture. Also; I see errors in my log related to reading the format: test-v4l2loopback-pw.log - and the dropdown for format and FPS are empty. |
It is already explicitly marked/logged unsupported on master. |
Negotiation is now made with the user selected format. Also fixes a typo in the name of a structure.
6dc08ff to
70171b0
Compare
The refactor in obsproject#11741 made it so that if an offered format of a node does not have a frame rate, then that is ignored. Instead of ignoring those formats, just skip those parts from the format description.
The refactor in obsproject#11741 made it so that if an offered format of a node does not have a frame rate, then that is ignored. Instead of ignoring those formats, just skip those parts from the format description.



Description
Change the video capture source UX to choose between formats provided as is by PipeWire and avoid providing non-functional combination.
Also it avoid the user to check every format to find the right resolution.
Negotiation is now made with the user selected format (the choice was ignored before).
Also fixes a typo in the name of a structure.
Note
Formatting of the strings case can be discussed, and FPS values (mainly multiple choices per format) could be added.
Before:
After first commit:

After second and third commit:

Motivation and Context
Inspired by #10895 and the fact the actual code was not respecting the user chosen format and potentially showing non-available resolution for some formats.
How Has This Been Tested?
Types of changes
Checklist: