esp32_camera.h 876 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #ifndef ESP32_CAMERA_H
  2. #define ESP32_CAMERA_H
  3. #include <esp_camera.h>
  4. #include <lvgl.h>
  5. #include <thread>
  6. #include <memory>
  7. #include <freertos/FreeRTOS.h>
  8. #include <freertos/queue.h>
  9. #include "camera.h"
  10. struct JpegChunk {
  11. uint8_t* data;
  12. size_t len;
  13. };
  14. class Esp32Camera : public Camera {
  15. private:
  16. camera_fb_t* fb_ = nullptr;
  17. lv_img_dsc_t preview_image_;
  18. std::string explain_url_;
  19. std::string explain_token_;
  20. std::thread encoder_thread_;
  21. public:
  22. Esp32Camera(const camera_config_t& config);
  23. ~Esp32Camera();
  24. virtual void SetExplainUrl(const std::string& url, const std::string& token);
  25. virtual bool Capture();
  26. // 翻转控制函数
  27. virtual bool SetHMirror(bool enabled) override;
  28. virtual bool SetVFlip(bool enabled) override;
  29. virtual std::string Explain(const std::string& question);
  30. };
  31. #endif // ESP32_CAMERA_H