dotnet / iot

This repo includes .NET Core implementations for various IoT boards, chips, displays and PCBs.
MIT License
2.18k stars 586 forks source link

Missing commonly required options in new Camera module #2164

Closed CodedBeard closed 11 months ago

CodedBeard commented 1 year ago

While testing the new Camera module for #1688, I noticed that some commonly required options are either missing completely in the case of --framerate, or do not have an predefined builder in the case of --tuningfile.

The Raspberry Pi Cam V3's default frame rate is 120fps which is likely excessive for most peoples requirements and certainly is for mine. In my case, there are LED lights in use near the camera, which causes a flickering in the video footage if the cameras FPS is higher than the LED hz. As such in order to use this, I need to be able to specify a lower frame rate (below 30fps). In the new Camera module, the Command enum does not have an entry for Framerate, so its not currently possible to change (that I could see anyway)

For the tuning file, while the option exists in the enum so it can be specified using the With builder method, its pretty cumbersome for an option that is frequently used with certain types of cameras, most commonly NoIR cameras. From the Raspberry Pi camera documentation:

For this reason it is sometimes necessary to override the default tuning file for a particular sensor.

For example, the NOIR (no IR-filter) versions of sensors require different AWB settings to the standard versions

As such, it would be nice to have a default builder method for specifying this option instead of having to use the With method.

I've fixed both of these in my own fork, and am happy to submit the PR for it.

Ellerbach commented 1 year ago

I've fixed both of these in my own fork, and am happy to submit the PR for it.

[Triage] Thanks @CodedBeard for the suggestion and if you want to submit a PR, we'll be very happy to review it.