diff --git a/docs/WebCam_CSI.md b/docs/WebCam_CSI.md index 684acc9..94bebe9 100644 --- a/docs/WebCam_CSI.md +++ b/docs/WebCam_CSI.md @@ -65,7 +65,7 @@ } ``` -* index landing page callback to read camera source and publish camera image +* index landing page callback ``` static esp_err_t index_handler(httpd_req_t *req){ @@ -80,11 +80,36 @@ ``` * streaming of camera source - + + `fb = esp_camera_fb_get();` : Grab camera image frame buffer + + `frame2jpg(fb, 80, &_jpg_buf, &_jpg_buf_len)` : convert a frame buffer to jpg format + + `res = httpd_resp_send_chunk(req, (const char *)_jpg_buf, _jpg_buf_len);` : publish frame image ``` static esp_err_t stream_handler(httpd_req_t *req){ camera_fb_t * fb = NULL; esp_err_t res = ESP_OK; size_t _jpg_buf_len = 0; - ``` \ No newline at end of file + ``` + +* capture image of camera source + + `fb = esp_camera_fb_get();` : Grab camera image frame buffer + + `res = httpd_resp_send(req, (const char *)fb->buf, fb->len);` : publish + ``` + static esp_err_t capture_handler(httpd_req_t *req){ + camera_fb_t * fb = NULL; + esp_err_t res = ESP_OK; + int64_t fr_start = esp_timer_get_time(); + + fb = esp_camera_fb_get(); + if (!fb) { + Serial.println("Camera capture failed"); + httpd_resp_send_500(req); + return ESP_FAIL; + } + ... + } + + ``` + +* Browser Page using ESP WebServer Library +![](./images/browser.png) \ No newline at end of file diff --git a/docs/images/browser.png b/docs/images/browser.png new file mode 100644 index 0000000..6580c68 Binary files /dev/null and b/docs/images/browser.png differ