diff options
author | pommicket <pommicket@gmail.com> | 2025-02-24 23:56:53 -0500 |
---|---|---|
committer | pommicket <pommicket@gmail.com> | 2025-02-25 15:16:08 -0500 |
commit | e8c5a90014982f423fbdcd3f8b3e7edacdb4b91c (patch) | |
tree | 8ecea8dfe07421691707aa7a20d527d544e7b373 /camera.c | |
parent | cfd34de0dbedc7c2aca2c03853ddbd4489a1244e (diff) |
adjustable framerate
Diffstat (limited to 'camera.c')
-rw-r--r-- | camera.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -251,6 +251,10 @@ uint32_t *camera_get_pixfmts(Camera *camera) { PictureFormat camera_closest_picfmt(Camera *camera, PictureFormat desired) { PictureFormat best_format = {0}; int32_t best_score = INT32_MIN; + if (desired.pixfmt == 0) { + // sensible default + desired.pixfmt = V4L2_PIX_FMT_RGB24; + } arr_foreach_ptr(camera->formats, const PictureFormat, fmt) { int32_t score = 0; if (fmt->pixfmt != desired.pixfmt) { @@ -796,7 +800,8 @@ bool camera_set_format(Camera *camera, PictureFormat picfmt, int desired_framera } if (!force && camera->access_method == access - && picture_format_cmp_qsort((PictureFormat[1]) { camera_picture_format(camera) }, &picfmt) == 0) { + && picture_format_cmp_qsort((PictureFormat[1]) { camera_picture_format(camera) }, &picfmt) == 0 + && (desired_framerate == 0 || camera->framerate == desired_framerate)) { // no changes needed return true; } |