Files
party-cam/include/camera_service.h
2026-01-12 00:53:54 +01:00

31 lines
928 B
C++

#pragma once
#include "esp_camera.h"
class CameraService {
public:
class Frame {
camera_fb_t* fb;
public:
Frame(camera_fb_t* _fb) : fb(_fb) {}
~Frame() {
if (fb) {
esp_camera_fb_return(fb);
}
}
Frame(const Frame&) = delete;
Frame& operator=(const Frame&) = delete;
Frame(Frame&& other) noexcept : fb(other.fb) {
other.fb = nullptr;
}
bool isValid() const { return fb != nullptr; }
uint8_t* getData() const { return fb ? fb->buf : nullptr; }
size_t getWidth() const { return fb ? fb->width : 0; }
size_t getHeight() const { return fb ? fb->height : 0; }
size_t getLength() const { return fb ? fb->len : 0; }
};
static void init();
static Frame capture();
};