From 59f1d083ea9c949251e786b29781a927afd6911e Mon Sep 17 00:00:00 2001 From: Pablo Garrido Date: Wed, 12 Feb 2025 13:37:36 +0100 Subject: [PATCH] Initial esp_camera_available_frames implementation --- driver/cam_hal.c | 5 +++++ driver/esp_camera.c | 7 +++++++ driver/include/esp_camera.h | 5 +++++ driver/private_include/cam_hal.h | 2 ++ 4 files changed, 19 insertions(+) diff --git a/driver/cam_hal.c b/driver/cam_hal.c index 86b430a..4daaee7 100644 --- a/driver/cam_hal.c +++ b/driver/cam_hal.c @@ -535,3 +535,8 @@ void cam_give_all(void) { cam_obj->frames[x].en = 1; } } + +bool cam_get_available_frames(void) +{ + return 0 < uxQueueMessagesWaiting(cam_obj->frame_buffer_queue); +} \ No newline at end of file diff --git a/driver/esp_camera.c b/driver/esp_camera.c index 7c693a6..20a0367 100644 --- a/driver/esp_camera.c +++ b/driver/esp_camera.c @@ -490,3 +490,10 @@ void esp_camera_return_all(void) { cam_give_all(); } +bool esp_camera_available_frames(void) +{ + if (s_state == NULL) { + return false; + } + return cam_get_available_frames(); +} diff --git a/driver/include/esp_camera.h b/driver/include/esp_camera.h index ff459cb..01af844 100755 --- a/driver/include/esp_camera.h +++ b/driver/include/esp_camera.h @@ -240,6 +240,11 @@ esp_err_t esp_camera_load_from_nvs(const char *key); */ void esp_camera_return_all(void); +/** + * @brief Check if there are available frames to be immediately acquired + */ +bool esp_camera_available_frames(void); + #ifdef __cplusplus } diff --git a/driver/private_include/cam_hal.h b/driver/private_include/cam_hal.h index cd0d3aa..b6f812f 100644 --- a/driver/private_include/cam_hal.h +++ b/driver/private_include/cam_hal.h @@ -57,6 +57,8 @@ void cam_give(camera_fb_t *dma_buffer); void cam_give_all(void); +bool cam_get_available_frames(void); + #ifdef __cplusplus } #endif