is there a way to get a higher framerate from the vivid webcam capture device?
it seems at 1080p 5 fps is the maximum
mriesch: it's limited by the CPU power, as the test pattern is generated by the CPU
it could be increased by avoiding all the CPU-based processing
ah no, vivid, not vimc. I don't think there's any processing then
but still, the test pattern is generated by the CPU
so there's a bottleneck there
pinchartl: ok, that confirms what i already was afraid of. nevertheless thanks for the confirmation.
mriesch, I'm sure there are artificial delays in vivid though.
I suspect the 5 FPS is a soft limitation.
I'm sure I recall editing a table in vivid to add different distinct sizes and rates in the past.
kbingham: ah ok. not sure how to proceed here, i need a test input for benchmarking but 5fps is not quite the challenge i was aiming for :-) i think i'll look for a different input device
mriesch, the 'magic' happens around https://elixir.bootlin.com/linux/v5.15-rc1/source/drivers/media/test-drivers/vivid/vivid-vid-cap.c#L54
There is a list of webcam sizes, and webcam intervals.
It's arragned so that as the framesize increases, it supports less intervals.
(To 'simulate' webcams with different framerates for different frame sizes I expect)
You can change { 1, 5 } to {1, 60 } to bump it up I suspect.
kbingham: i'll try that in a sec
or hack https://elixir.bootlin.com/linux/v5.15-rc1/source/drivers/media/test-drivers/vivid/vivid-vid-cap.c#L1854 so that it returns all frame intervals for all framesizes instead.
kbingham: that did the trick, thanks a lot :-)
great, hope it helps.
Let us know what maximum frame rates you get, and where the actual limits might lie ... I wonder if it's worth adding an 'HD' webcam mode to vivid ;-)
kbingham: can do. bets on the max. frame rate, anyone? (on a rockchip rk3568)
kbingham: 1080p@1200 fps seems to work fine. for 2400 fps i get timestamping warnings from my gst pipeline
never even thought of possibly running a gst pipeline at such a high rate
mriesch: good way to benchmark gst internal overhead