arduino-audio-tools
Loading...
Searching...
No Matches
CameraFrameSourceESP32.h
Go to the documentation of this file.
1#pragma once
3#include "esp_camera.h"
4
5namespace audio_tools {
6
25 public:
26 CameraFrameSource() = default;
31
35 void setCameraConfig(camera_config_t config) { cfg = config; }
36
39 void setVideoInfo(VideoInfo info) { this->info = info; }
40
42 bool begin() { return esp_camera_init(&cfg) == ESP_OK; }
43
46 void end() {
48 esp_camera_deinit();
49 }
50
54 const uint8_t *nextFrame(size_t &len) override {
56 fb = esp_camera_fb_get();
57 if (fb == nullptr) {
58 len = 0;
59 return nullptr;
60 }
61 len = fb->len;
62 return fb->buf;
63 }
64
67 VideoInfo videoInfo() override { return info; }
68
69 protected:
70 camera_config_t cfg{};
71 camera_fb_t *fb = nullptr;
73
74 void releaseFrame() {
75 if (fb != nullptr) {
76 esp_camera_fb_return(fb);
77 fb = nullptr;
78 }
79 }
80};
81
82using CameraFrameSource = CameraFrameSourceESP32;
83
84} // namespace audio_tools
VideoFrameSource that pulls frames from the ESP32 camera (esp_camera.h, the Arduino-ESP32 "esp32-came...
Definition CameraFrameSourceESP32.h:24
VideoInfo videoInfo() override
Definition CameraFrameSourceESP32.h:67
camera_config_t cfg
Definition CameraFrameSourceESP32.h:70
void setCameraConfig(camera_config_t config)
Definition CameraFrameSourceESP32.h:35
bool begin()
Initializes the camera (esp_camera_init()).
Definition CameraFrameSourceESP32.h:42
const uint8_t * nextFrame(size_t &len) override
Definition CameraFrameSourceESP32.h:54
VideoInfo info
Definition CameraFrameSourceESP32.h:72
CameraFrameSource(VideoInfo info)
Definition CameraFrameSourceESP32.h:30
camera_fb_t * fb
Definition CameraFrameSourceESP32.h:71
void end()
Definition CameraFrameSourceESP32.h:46
void setVideoInfo(VideoInfo info)
Definition CameraFrameSourceESP32.h:39
void releaseFrame()
Definition CameraFrameSourceESP32.h:74
Pull-based provider of one already-encoded video/image frame at a time - e.g. wraps a camera capture ...
Definition Video.h:150
Generic Implementation of sound input and output for desktop environments using portaudio.
Definition LMSEchoCancellationStream.h:6
Basic video information (width/height/codec/frame size), analogous to AudioInfo - common to both Demu...
Definition Video.h:102