Support both esp_video and esp32_camera (#1671)

* Update project version to 2.2.1 and refactor camera component handling

- Incremented project version from 2.2.0 to 2.2.1 in CMakeLists.txt.
- Removed legacy esp32_camera component and replaced it with esp_video for ESP32-S3 and ESP32-P4 boards.
- Updated board implementations to utilize the new esp_video component, ensuring compatibility and improved functionality.
- Cleaned up Kconfig options related to camera selection, streamlining the configuration process.
- Enhanced camera initialization logic across various board files to support the new component structure.

* Refactor camera handling in AtomS3R CAM/M12 EchoBase board

- Replaced the legacy EspVideo component with the new Esp32Camera class for improved camera functionality.
- Updated camera initialization logic to utilize a more structured configuration approach, enhancing clarity and maintainability.
- Removed outdated comments and code related to the previous camera implementation in the README file.

* Update camera configuration for atoms3r-cam-m12-echo-base

- Removed outdated camera configuration options from config.json to streamline the setup.
- Retained essential partition table configuration for improved clarity.

* Enhance Esp32Camera functionality and memory management

- Added esp_timer.h for improved timing functionality.
- Streamlined camera initialization by removing redundant frame buffer setup and logging.
- Improved memory allocation for JPEG encoding and added error handling for unsupported pixel formats.
- Updated comments for clarity and consistency, ensuring better understanding of the code flow.
This commit is contained in:
Xiaoxia
2026-01-20 22:44:37 +08:00
committed by GitHub
parent d5ec8f7081
commit 734b5b410a
41 changed files with 1348 additions and 1581 deletions

View File

@@ -52,8 +52,6 @@ list(APPEND SOURCES
"boards/common/axp2101.cc"
"boards/common/backlight.cc"
"boards/common/button.cc"
"boards/common/esp32_camera.cc"
"boards/common/esp32s3_camera.cc"
"boards/common/i2c_device.cc"
"boards/common/knob.cc"
"boards/common/power_save_timer.cc"
@@ -758,29 +756,18 @@ if(CONFIG_IDF_TARGET_ESP32)
"led/gpio_led.cc"
"display/lvgl_display/jpg/image_to_jpeg.cpp"
"display/lvgl_display/jpg/jpeg_to_image.c"
"boards/common/esp32_camera.cc"
"boards/common/esp32s3_camera.cc"
"boards/common/nt26_board.cc"
)
endif()
# ESP32-S3: 根据 Kconfig 选择使用哪个摄像头组件
if(CONFIG_IDF_TARGET_ESP32S3)
if(CONFIG_XIAOZHI_USE_ESP_CAMERA)
# 使用 esp_camera 组件,排除 esp32_camera.cc
list(REMOVE_ITEM SOURCES "boards/common/esp32_camera.cc")
elseif(CONFIG_XIAOZHI_USE_ESP_VIDEO)
# 使用 esp_video 组件,排除 esp32s3_camera.cc
list(REMOVE_ITEM SOURCES "boards/common/esp32s3_camera.cc")
else()
# 默认使用 esp_camera 组件
list(REMOVE_ITEM SOURCES "boards/common/esp32_camera.cc")
endif()
# Include EspVideo if target is ESP32S3 or ESP32P4
if(CONFIG_IDF_TARGET_ESP32S3 OR CONFIG_IDF_TARGET_ESP32P4)
list(APPEND SOURCES "boards/common/esp_video.cc")
endif()
# ESP32-P4: 只能使用 esp_video 组件,排除 esp32s3_camera.cc
if(CONFIG_IDF_TARGET_ESP32P4)
list(REMOVE_ITEM SOURCES "boards/common/esp32s3_camera.cc")
# Include Esp32Camera if target is ESP32S3
if(CONFIG_IDF_TARGET_ESP32S3)
list(APPEND SOURCES "boards/common/esp32_camera.cc")
endif()
idf_component_register(SRCS ${SOURCES}