Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
358 changes: 358 additions & 0 deletions dependencies.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,358 @@
dependencies:
espp/adc:
component_hash: 27d5f5cf909b25d07ed24c88de6cd1201cd904d4af7dac6a11efe19a89bd99dd
dependencies:
- name: espp/base_component
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: espp/task
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: idf
require: private
version: '>=5.0'
source:
registry_url: https://components.espressif.com
type: service
version: 1.0.18
espp/base_component:
component_hash: 635bfa884f4dcbabbcca3ae50c4a92ba4d4271b81004e26b13fc1647be7a450b
dependencies:
- name: espp/logger
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: idf
require: private
version: '>=5.0'
source:
registry_url: https://components.espressif.com
type: service
version: 1.0.18
espp/base_peripheral:
component_hash: f1d0fc3623286d98648c9b91e00c312c6222a76eeaddfa23967d3284d6ec3cb6
dependencies:
- name: espp/base_component
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: idf
require: private
version: '>=5.0'
source:
registry_url: https://components.espressif.com
type: service
version: 1.0.18
espp/bm8563:
component_hash: 65d0532b92dc69c2aa6538e816ab99db10763598e1c59d993bd44d234d33cac5
dependencies:
- name: espp/base_peripheral
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: espp/utils
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: idf
require: private
version: '>=5.0'
source:
registry_url: https://components.espressif.com
type: service
version: 1.0.18
espp/cli:
component_hash: 5ec7838aa1740d49d43163487e272143adbeb7a616ff61dbbfcf287565d76d0b
dependencies:
- name: espp/logger
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: idf
require: private
version: '>=5.0'
source:
registry_url: https://components.espressif.com
type: service
version: 1.0.18
espp/esp32-timer-cam:
component_hash: 1e85ce60b52a250c81c8dbb91d8d308d5deb527b9229cc13ff7b82f441242416
dependencies:
- name: espp/adc
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: espp/base_component
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: espp/bm8563
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: espp/i2c
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: espp/interrupt
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: espp/led
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: espp/math
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: espp/task
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: idf
require: private
version: '>=5.0'
source:
registry_url: https://components.espressif.com/
type: service
version: 1.0.18
espp/format:
component_hash: aebe0d55e833d61eb53313dcdd3ee9bd8f2e328d6db1ae3e01bca49b17db39c6
dependencies:
- name: idf
require: private
version: '>=5.0'
source:
registry_url: https://components.espressif.com
type: service
version: 1.0.18
espp/i2c:
component_hash: 0b746f8d5c4df78f4437427a39a75242b8f6302f5d43b790a24ab1733f50057d
dependencies:
- name: espp/base_component
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: espp/cli
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: espp/task
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: idf
require: private
version: '>=5.0'
source:
registry_url: https://components.espressif.com
type: service
version: 1.0.18
espp/interrupt:
component_hash: 00207be0384cb68d79fc0b66d7264a63c967ca0509be459638590de3eb9dcd51
dependencies:
- name: espp/base_component
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: espp/task
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: idf
require: private
version: '>=5.0'
source:
registry_url: https://components.espressif.com
type: service
version: 1.0.18
espp/led:
component_hash: 7439dc35497547c352b0fe14bea4f37ca92cfd2df81ccfed0be545378a37d487
dependencies:
- name: espp/base_component
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: espp/task
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: idf
require: private
version: '>=5.0'
source:
registry_url: https://components.espressif.com
type: service
version: 1.0.18
espp/logger:
component_hash: d8d68bc881f613a4007f5cc18f11f4f270bb93d6f0adfaad80cc65593da03bd9
dependencies:
- name: espp/format
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: idf
require: private
version: '>=5.0'
source:
registry_url: https://components.espressif.com
type: service
version: 1.0.18
espp/math:
component_hash: 4d27b369dd40eef16bf5f8e9f0f4fb0281f8fe50cc88a1b840b1b134167a1f96
dependencies:
- name: espp/format
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: idf
require: private
version: '>=5.0'
source:
registry_url: https://components.espressif.com
type: service
version: 1.0.18
espp/monitor:
component_hash: a49ecc074a92683fcfda529300a06de3b7be9dec07775c4b690cf75ceaacb097
dependencies:
- name: espp/base_component
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: espp/task
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: idf
require: private
version: '>=5.0'
source:
registry_url: https://components.espressif.com/
type: service
version: 1.0.18
espp/nvs:
component_hash: 4e7fa7cbdaf30ed7f31938070d5aa57f0e00b2f3c8c01cb47c78d5cb4f22dde6
dependencies:
- name: espp/base_component
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: idf
require: private
version: '>=5.0'
source:
registry_url: https://components.espressif.com/
type: service
version: 1.0.18
espp/rtsp:
component_hash: 5bd62da21938c448603ca2b13c2b22509d00b4fc52aa3f12e93a595f41baaad4
dependencies:
- name: espp/base_component
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: espp/socket
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: espp/task
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: idf
require: private
version: '>=5.0'
source:
registry_url: https://components.espressif.com/
type: service
version: 1.0.18
espp/socket:
component_hash: f02123d81ea8dd83dc93d89e5322f47c1c91e4f1179190ca8f215ada27f7cfd6
dependencies:
- name: espp/base_component
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: espp/task
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: idf
require: private
version: '>=5.0'
source:
registry_url: https://components.espressif.com/
type: service
version: 1.0.18
espp/task:
component_hash: dd20f4dd144b4fb78ecaec896c0bc660a87eb8a8327d5051ee9852d7b685f1f7
dependencies:
- name: espp/base_component
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: idf
require: private
version: '>=5.0'
source:
registry_url: https://components.espressif.com/
type: service
version: 1.0.18
espp/utils:
component_hash: 3a5e5327693f2f062ba6c4edd37fa920966b3831556c2f926dd0d882dc3020b8
dependencies:
- name: idf
require: private
version: '>=5.0'
source:
registry_url: https://components.espressif.com
type: service
version: 1.0.18
espp/wifi:
component_hash: 4c51c4a6916b11834eb9ea3e0fb752e1a738b65c7f4265fc741cb63337dcfd87
dependencies:
- name: espp/base_component
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: espp/cli
registry_url: https://components.espressif.com
require: private
version: '>=1.0'
- name: idf
require: private
version: '>=5.0'
source:
registry_url: https://components.espressif.com/
type: service
version: 1.0.18
espressif/mdns:
component_hash: 3ec0af5f6bce310512e90f482388d21cc7c0e99668172d2f895356165fc6f7c5
dependencies:
- name: idf
require: private
version: '>=5.0'
source:
registry_url: https://components.espressif.com/
type: service
version: 1.8.2
idf:
source:
type: idf
version: 5.4.1
direct_dependencies:
- espp/esp32-timer-cam
- espp/monitor
- espp/nvs
- espp/rtsp
- espp/socket
- espp/task
- espp/wifi
- espressif/mdns
- idf
manifest_hash: 16aed063bc123c492341a183a55ed2138ec26f48fc99ba25380455c762a86ee9
target: esp32
version: 2.0.0
17 changes: 15 additions & 2 deletions main/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,8 @@ extern "C" void app_main(void) {
camera_task.reset();
logger.info("Stopping RTSP server");
rtsp_server.reset();
logger.info("Deiniting MDNS");
mdns_free();
},
.on_got_ip =
[](ip_event_got_ip_t *eventdata) {
Expand Down Expand Up @@ -186,7 +188,17 @@ esp_err_t initialize_camera(void) {
.grab_mode =
CAMERA_GRAB_LATEST // CAMERA_GRAB_WHEN_EMPTY // . Sets when buffers should be filled
};
return esp_camera_init(&camera_config);
auto err = esp_camera_init(&camera_config);
if (err != ESP_OK) {
logger.error("Could not initialize camera: {} '{}'", err, esp_err_to_name(err));
return err;
}
// set the mirror and flip - specific to the ESP32-TimerCam!
logger.info("Enabling camera vflip");
sensor_t *s = esp_camera_sensor_get();
s->set_vflip(s, true);
s->set_hmirror(s, false);
return ESP_OK;
}

void start_rtsp_server(std::string_view server_address, int server_port) {
Expand Down Expand Up @@ -250,7 +262,8 @@ bool camera_task_fn(const std::mutex &m, const std::condition_variable &cv) {
return false;
}

espp::JpegFrame image(reinterpret_cast<const char *>(_jpg_buf), _jpg_buf_len);
std::span<const uint8_t> jpg_buf(_jpg_buf, _jpg_buf_len);
espp::JpegFrame image(jpg_buf);
std::lock_guard<std::recursive_mutex> lock(server_mutex);
rtsp_server->send_frame(image);

Expand Down