mirror of
https://github.com/esphome/esphome.git
synced 2025-09-26 23:22:21 +01:00
[camera-encoder] Use defines instead of build flags (#10824)
Co-authored-by: J. Nick Koston <nick@koston.org>
This commit is contained in:
@@ -2,7 +2,6 @@ import esphome.codegen as cg
|
|||||||
from esphome.components.esp32 import add_idf_component
|
from esphome.components.esp32 import add_idf_component
|
||||||
import esphome.config_validation as cv
|
import esphome.config_validation as cv
|
||||||
from esphome.const import CONF_BUFFER_SIZE, CONF_ID, CONF_TYPE
|
from esphome.const import CONF_BUFFER_SIZE, CONF_ID, CONF_TYPE
|
||||||
from esphome.core import CORE
|
|
||||||
from esphome.types import ConfigType
|
from esphome.types import ConfigType
|
||||||
|
|
||||||
CODEOWNERS = ["@DT-art1"]
|
CODEOWNERS = ["@DT-art1"]
|
||||||
@@ -51,9 +50,8 @@ async def to_code(config: ConfigType) -> None:
|
|||||||
buffer = cg.new_Pvariable(config[CONF_ENCODER_BUFFER_ID])
|
buffer = cg.new_Pvariable(config[CONF_ENCODER_BUFFER_ID])
|
||||||
cg.add(buffer.set_buffer_size(config[CONF_BUFFER_SIZE]))
|
cg.add(buffer.set_buffer_size(config[CONF_BUFFER_SIZE]))
|
||||||
if config[CONF_TYPE] == ESP32_CAMERA_ENCODER:
|
if config[CONF_TYPE] == ESP32_CAMERA_ENCODER:
|
||||||
if CORE.using_esp_idf:
|
add_idf_component(name="espressif/esp32-camera", ref="2.1.1")
|
||||||
add_idf_component(name="espressif/esp32-camera", ref="2.1.0")
|
cg.add_define("USE_ESP32_CAMERA_JPEG_ENCODER")
|
||||||
cg.add_build_flag("-DUSE_ESP32_CAMERA_JPEG_ENCODER")
|
|
||||||
var = cg.new_Pvariable(
|
var = cg.new_Pvariable(
|
||||||
config[CONF_ID],
|
config[CONF_ID],
|
||||||
config[CONF_QUALITY],
|
config[CONF_QUALITY],
|
||||||
|
@@ -1,3 +1,5 @@
|
|||||||
|
#include "esphome/core/defines.h"
|
||||||
|
|
||||||
#ifdef USE_ESP32_CAMERA_JPEG_ENCODER
|
#ifdef USE_ESP32_CAMERA_JPEG_ENCODER
|
||||||
|
|
||||||
#include "esp32_camera_jpeg_encoder.h"
|
#include "esp32_camera_jpeg_encoder.h"
|
||||||
@@ -15,7 +17,7 @@ camera::EncoderError ESP32CameraJPEGEncoder::encode_pixels(camera::CameraImageSp
|
|||||||
this->bytes_written_ = 0;
|
this->bytes_written_ = 0;
|
||||||
this->out_of_output_memory_ = false;
|
this->out_of_output_memory_ = false;
|
||||||
bool success = fmt2jpg_cb(pixels->get_data_buffer(), pixels->get_data_length(), spec->width, spec->height,
|
bool success = fmt2jpg_cb(pixels->get_data_buffer(), pixels->get_data_length(), spec->width, spec->height,
|
||||||
to_internal_(spec->format), this->quality_, callback_, this);
|
to_internal_(spec->format), this->quality_, callback, this);
|
||||||
|
|
||||||
if (!success)
|
if (!success)
|
||||||
return camera::ENCODER_ERROR_CONFIGURATION;
|
return camera::ENCODER_ERROR_CONFIGURATION;
|
||||||
@@ -49,7 +51,7 @@ void ESP32CameraJPEGEncoder::dump_config() {
|
|||||||
this->output_->get_max_size(), this->quality_, this->buffer_expand_size_);
|
this->output_->get_max_size(), this->quality_, this->buffer_expand_size_);
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t ESP32CameraJPEGEncoder::callback_(void *arg, size_t index, const void *data, size_t len) {
|
size_t ESP32CameraJPEGEncoder::callback(void *arg, size_t index, const void *data, size_t len) {
|
||||||
ESP32CameraJPEGEncoder *that = reinterpret_cast<ESP32CameraJPEGEncoder *>(arg);
|
ESP32CameraJPEGEncoder *that = reinterpret_cast<ESP32CameraJPEGEncoder *>(arg);
|
||||||
uint8_t *buffer = that->output_->get_data();
|
uint8_t *buffer = that->output_->get_data();
|
||||||
size_t buffer_length = that->output_->get_max_size();
|
size_t buffer_length = that->output_->get_max_size();
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include "esphome/core/defines.h"
|
||||||
|
|
||||||
#ifdef USE_ESP32_CAMERA_JPEG_ENCODER
|
#ifdef USE_ESP32_CAMERA_JPEG_ENCODER
|
||||||
|
|
||||||
#include <esp_camera.h>
|
#include <esp_camera.h>
|
||||||
@@ -24,7 +26,7 @@ class ESP32CameraJPEGEncoder : public camera::Encoder {
|
|||||||
void dump_config() override;
|
void dump_config() override;
|
||||||
// -------------------------
|
// -------------------------
|
||||||
protected:
|
protected:
|
||||||
static size_t callback_(void *arg, size_t index, const void *data, size_t len);
|
static size_t callback(void *arg, size_t index, const void *data, size_t len);
|
||||||
pixformat_t to_internal_(camera::PixelFormat format);
|
pixformat_t to_internal_(camera::PixelFormat format);
|
||||||
|
|
||||||
camera::EncoderBuffer *output_{};
|
camera::EncoderBuffer *output_{};
|
||||||
|
@@ -157,6 +157,7 @@
|
|||||||
#define USE_ESP32_BLE_SERVER
|
#define USE_ESP32_BLE_SERVER
|
||||||
#define USE_ESP32_BLE_UUID
|
#define USE_ESP32_BLE_UUID
|
||||||
#define USE_ESP32_BLE_ADVERTISING
|
#define USE_ESP32_BLE_ADVERTISING
|
||||||
|
#define USE_ESP32_CAMERA_JPEG_ENCODER
|
||||||
#define USE_I2C
|
#define USE_I2C
|
||||||
#define USE_IMPROV
|
#define USE_IMPROV
|
||||||
#define USE_MICROPHONE
|
#define USE_MICROPHONE
|
||||||
|
Reference in New Issue
Block a user