9 #include <esp_camera.h> 10 #include <freertos/FreeRTOS.h> 11 #include <freertos/queue.h> 14 namespace esp32_camera {
70 CameraImage(camera_fb_t *buffer, uint8_t requester);
84 void set_image(std::shared_ptr<CameraImage> image);
85 size_t available()
const;
86 uint8_t *peek_data_buffer();
87 void consume_data(
size_t consumed);
103 void set_data_pins(std::array<uint8_t, 8> pins);
104 void set_vsync_pin(uint8_t pin);
105 void set_href_pin(uint8_t pin);
106 void set_pixel_clock_pin(uint8_t pin);
107 void set_external_clock(uint8_t pin, uint32_t
frequency);
108 void set_i2c_pins(uint8_t sda, uint8_t scl);
109 void set_reset_pin(uint8_t pin);
110 void set_power_down_pin(uint8_t pin);
113 void set_jpeg_quality(uint8_t quality);
114 void set_vertical_flip(
bool vertical_flip);
115 void set_horizontal_mirror(
bool horizontal_mirror);
116 void set_contrast(
int contrast);
117 void set_brightness(
int brightness);
118 void set_saturation(
int saturation);
122 void set_aec2(
bool aec2);
123 void set_ae_level(
int ae_level);
124 void set_aec_value(uint32_t aec_value);
127 void set_agc_value(uint8_t agc_value);
132 void set_test_pattern(
bool test_pattern);
134 void set_max_update_interval(uint32_t max_update_interval);
135 void set_idle_update_interval(uint32_t idle_update_interval);
138 void setup()
override;
139 void loop()
override;
140 void dump_config()
override;
141 float get_setup_priority()
const override;
143 void add_image_callback(std::function<
void(std::shared_ptr<CameraImage>)> &&f);
147 void update_camera_parameters();
149 void add_stream_start_callback(std::function<
void()> &&callback);
150 void add_stream_stop_callback(std::function<
void()> &&callback);
154 bool has_requested_image_()
const;
155 bool can_return_image_()
const;
157 static void framebuffer_task(
void *pv);
161 camera_config_t config_{};
163 bool vertical_flip_{
true};
164 bool horizontal_mirror_{
true};
173 uint32_t aec_value_{300};
176 uint8_t agc_value_{0};
181 bool test_pattern_{
false};
183 uint32_t max_update_interval_{1000};
184 uint32_t idle_update_interval_{15000};
186 esp_err_t init_error_{ESP_OK};
188 uint8_t single_requesters_{0};
189 uint8_t stream_requesters_{0};
196 uint32_t last_idle_request_{0};
197 uint32_t last_update_{0};
std::shared_ptr< CameraImage > current_image_
std::shared_ptr< CameraImage > image_
ESP32CameraStreamStopTrigger(ESP32Camera *parent)
void add_stream_start_callback(std::function< void()> &&callback)
QueueHandle_t framebuffer_get_queue_
ESP32Camera * global_esp32_camera
BedjetMode mode
BedJet operating mode.
void add_stream_stop_callback(std::function< void()> &&callback)
camera_fb_t * get_raw_buffer()
uint8_t * get_data_buffer()
bool was_requested_by(CameraRequester requester) const
ESP32CameraStreamStartTrigger(ESP32Camera *parent)
CameraImage(camera_fb_t *buffer, uint8_t requester)
QueueHandle_t framebuffer_return_queue_