Skip to content

Commit 520de16

Browse files
committed
Update to latest espp; free mdns memory when not needed; orient camera frame correctly
1 parent 9c19fc7 commit 520de16

File tree

2 files changed

+373
-2
lines changed

2 files changed

+373
-2
lines changed

dependencies.lock

Lines changed: 358 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,358 @@
1+
dependencies:
2+
espp/adc:
3+
component_hash: 27d5f5cf909b25d07ed24c88de6cd1201cd904d4af7dac6a11efe19a89bd99dd
4+
dependencies:
5+
- name: espp/base_component
6+
registry_url: https://components.espressif.com
7+
require: private
8+
version: '>=1.0'
9+
- name: espp/task
10+
registry_url: https://components.espressif.com
11+
require: private
12+
version: '>=1.0'
13+
- name: idf
14+
require: private
15+
version: '>=5.0'
16+
source:
17+
registry_url: https://components.espressif.com
18+
type: service
19+
version: 1.0.18
20+
espp/base_component:
21+
component_hash: 635bfa884f4dcbabbcca3ae50c4a92ba4d4271b81004e26b13fc1647be7a450b
22+
dependencies:
23+
- name: espp/logger
24+
registry_url: https://components.espressif.com
25+
require: private
26+
version: '>=1.0'
27+
- name: idf
28+
require: private
29+
version: '>=5.0'
30+
source:
31+
registry_url: https://components.espressif.com
32+
type: service
33+
version: 1.0.18
34+
espp/base_peripheral:
35+
component_hash: f1d0fc3623286d98648c9b91e00c312c6222a76eeaddfa23967d3284d6ec3cb6
36+
dependencies:
37+
- name: espp/base_component
38+
registry_url: https://components.espressif.com
39+
require: private
40+
version: '>=1.0'
41+
- name: idf
42+
require: private
43+
version: '>=5.0'
44+
source:
45+
registry_url: https://components.espressif.com
46+
type: service
47+
version: 1.0.18
48+
espp/bm8563:
49+
component_hash: 65d0532b92dc69c2aa6538e816ab99db10763598e1c59d993bd44d234d33cac5
50+
dependencies:
51+
- name: espp/base_peripheral
52+
registry_url: https://components.espressif.com
53+
require: private
54+
version: '>=1.0'
55+
- name: espp/utils
56+
registry_url: https://components.espressif.com
57+
require: private
58+
version: '>=1.0'
59+
- name: idf
60+
require: private
61+
version: '>=5.0'
62+
source:
63+
registry_url: https://components.espressif.com
64+
type: service
65+
version: 1.0.18
66+
espp/cli:
67+
component_hash: 5ec7838aa1740d49d43163487e272143adbeb7a616ff61dbbfcf287565d76d0b
68+
dependencies:
69+
- name: espp/logger
70+
registry_url: https://components.espressif.com
71+
require: private
72+
version: '>=1.0'
73+
- name: idf
74+
require: private
75+
version: '>=5.0'
76+
source:
77+
registry_url: https://components.espressif.com
78+
type: service
79+
version: 1.0.18
80+
espp/esp32-timer-cam:
81+
component_hash: 1e85ce60b52a250c81c8dbb91d8d308d5deb527b9229cc13ff7b82f441242416
82+
dependencies:
83+
- name: espp/adc
84+
registry_url: https://components.espressif.com
85+
require: private
86+
version: '>=1.0'
87+
- name: espp/base_component
88+
registry_url: https://components.espressif.com
89+
require: private
90+
version: '>=1.0'
91+
- name: espp/bm8563
92+
registry_url: https://components.espressif.com
93+
require: private
94+
version: '>=1.0'
95+
- name: espp/i2c
96+
registry_url: https://components.espressif.com
97+
require: private
98+
version: '>=1.0'
99+
- name: espp/interrupt
100+
registry_url: https://components.espressif.com
101+
require: private
102+
version: '>=1.0'
103+
- name: espp/led
104+
registry_url: https://components.espressif.com
105+
require: private
106+
version: '>=1.0'
107+
- name: espp/math
108+
registry_url: https://components.espressif.com
109+
require: private
110+
version: '>=1.0'
111+
- name: espp/task
112+
registry_url: https://components.espressif.com
113+
require: private
114+
version: '>=1.0'
115+
- name: idf
116+
require: private
117+
version: '>=5.0'
118+
source:
119+
registry_url: https://components.espressif.com/
120+
type: service
121+
version: 1.0.18
122+
espp/format:
123+
component_hash: aebe0d55e833d61eb53313dcdd3ee9bd8f2e328d6db1ae3e01bca49b17db39c6
124+
dependencies:
125+
- name: idf
126+
require: private
127+
version: '>=5.0'
128+
source:
129+
registry_url: https://components.espressif.com
130+
type: service
131+
version: 1.0.18
132+
espp/i2c:
133+
component_hash: 0b746f8d5c4df78f4437427a39a75242b8f6302f5d43b790a24ab1733f50057d
134+
dependencies:
135+
- name: espp/base_component
136+
registry_url: https://components.espressif.com
137+
require: private
138+
version: '>=1.0'
139+
- name: espp/cli
140+
registry_url: https://components.espressif.com
141+
require: private
142+
version: '>=1.0'
143+
- name: espp/task
144+
registry_url: https://components.espressif.com
145+
require: private
146+
version: '>=1.0'
147+
- name: idf
148+
require: private
149+
version: '>=5.0'
150+
source:
151+
registry_url: https://components.espressif.com
152+
type: service
153+
version: 1.0.18
154+
espp/interrupt:
155+
component_hash: 00207be0384cb68d79fc0b66d7264a63c967ca0509be459638590de3eb9dcd51
156+
dependencies:
157+
- name: espp/base_component
158+
registry_url: https://components.espressif.com
159+
require: private
160+
version: '>=1.0'
161+
- name: espp/task
162+
registry_url: https://components.espressif.com
163+
require: private
164+
version: '>=1.0'
165+
- name: idf
166+
require: private
167+
version: '>=5.0'
168+
source:
169+
registry_url: https://components.espressif.com
170+
type: service
171+
version: 1.0.18
172+
espp/led:
173+
component_hash: 7439dc35497547c352b0fe14bea4f37ca92cfd2df81ccfed0be545378a37d487
174+
dependencies:
175+
- name: espp/base_component
176+
registry_url: https://components.espressif.com
177+
require: private
178+
version: '>=1.0'
179+
- name: espp/task
180+
registry_url: https://components.espressif.com
181+
require: private
182+
version: '>=1.0'
183+
- name: idf
184+
require: private
185+
version: '>=5.0'
186+
source:
187+
registry_url: https://components.espressif.com
188+
type: service
189+
version: 1.0.18
190+
espp/logger:
191+
component_hash: d8d68bc881f613a4007f5cc18f11f4f270bb93d6f0adfaad80cc65593da03bd9
192+
dependencies:
193+
- name: espp/format
194+
registry_url: https://components.espressif.com
195+
require: private
196+
version: '>=1.0'
197+
- name: idf
198+
require: private
199+
version: '>=5.0'
200+
source:
201+
registry_url: https://components.espressif.com
202+
type: service
203+
version: 1.0.18
204+
espp/math:
205+
component_hash: 4d27b369dd40eef16bf5f8e9f0f4fb0281f8fe50cc88a1b840b1b134167a1f96
206+
dependencies:
207+
- name: espp/format
208+
registry_url: https://components.espressif.com
209+
require: private
210+
version: '>=1.0'
211+
- name: idf
212+
require: private
213+
version: '>=5.0'
214+
source:
215+
registry_url: https://components.espressif.com
216+
type: service
217+
version: 1.0.18
218+
espp/monitor:
219+
component_hash: a49ecc074a92683fcfda529300a06de3b7be9dec07775c4b690cf75ceaacb097
220+
dependencies:
221+
- name: espp/base_component
222+
registry_url: https://components.espressif.com
223+
require: private
224+
version: '>=1.0'
225+
- name: espp/task
226+
registry_url: https://components.espressif.com
227+
require: private
228+
version: '>=1.0'
229+
- name: idf
230+
require: private
231+
version: '>=5.0'
232+
source:
233+
registry_url: https://components.espressif.com/
234+
type: service
235+
version: 1.0.18
236+
espp/nvs:
237+
component_hash: 4e7fa7cbdaf30ed7f31938070d5aa57f0e00b2f3c8c01cb47c78d5cb4f22dde6
238+
dependencies:
239+
- name: espp/base_component
240+
registry_url: https://components.espressif.com
241+
require: private
242+
version: '>=1.0'
243+
- name: idf
244+
require: private
245+
version: '>=5.0'
246+
source:
247+
registry_url: https://components.espressif.com/
248+
type: service
249+
version: 1.0.18
250+
espp/rtsp:
251+
component_hash: 5bd62da21938c448603ca2b13c2b22509d00b4fc52aa3f12e93a595f41baaad4
252+
dependencies:
253+
- name: espp/base_component
254+
registry_url: https://components.espressif.com
255+
require: private
256+
version: '>=1.0'
257+
- name: espp/socket
258+
registry_url: https://components.espressif.com
259+
require: private
260+
version: '>=1.0'
261+
- name: espp/task
262+
registry_url: https://components.espressif.com
263+
require: private
264+
version: '>=1.0'
265+
- name: idf
266+
require: private
267+
version: '>=5.0'
268+
source:
269+
registry_url: https://components.espressif.com/
270+
type: service
271+
version: 1.0.18
272+
espp/socket:
273+
component_hash: f02123d81ea8dd83dc93d89e5322f47c1c91e4f1179190ca8f215ada27f7cfd6
274+
dependencies:
275+
- name: espp/base_component
276+
registry_url: https://components.espressif.com
277+
require: private
278+
version: '>=1.0'
279+
- name: espp/task
280+
registry_url: https://components.espressif.com
281+
require: private
282+
version: '>=1.0'
283+
- name: idf
284+
require: private
285+
version: '>=5.0'
286+
source:
287+
registry_url: https://components.espressif.com/
288+
type: service
289+
version: 1.0.18
290+
espp/task:
291+
component_hash: dd20f4dd144b4fb78ecaec896c0bc660a87eb8a8327d5051ee9852d7b685f1f7
292+
dependencies:
293+
- name: espp/base_component
294+
registry_url: https://components.espressif.com
295+
require: private
296+
version: '>=1.0'
297+
- name: idf
298+
require: private
299+
version: '>=5.0'
300+
source:
301+
registry_url: https://components.espressif.com/
302+
type: service
303+
version: 1.0.18
304+
espp/utils:
305+
component_hash: 3a5e5327693f2f062ba6c4edd37fa920966b3831556c2f926dd0d882dc3020b8
306+
dependencies:
307+
- name: idf
308+
require: private
309+
version: '>=5.0'
310+
source:
311+
registry_url: https://components.espressif.com
312+
type: service
313+
version: 1.0.18
314+
espp/wifi:
315+
component_hash: 4c51c4a6916b11834eb9ea3e0fb752e1a738b65c7f4265fc741cb63337dcfd87
316+
dependencies:
317+
- name: espp/base_component
318+
registry_url: https://components.espressif.com
319+
require: private
320+
version: '>=1.0'
321+
- name: espp/cli
322+
registry_url: https://components.espressif.com
323+
require: private
324+
version: '>=1.0'
325+
- name: idf
326+
require: private
327+
version: '>=5.0'
328+
source:
329+
registry_url: https://components.espressif.com/
330+
type: service
331+
version: 1.0.18
332+
espressif/mdns:
333+
component_hash: 3ec0af5f6bce310512e90f482388d21cc7c0e99668172d2f895356165fc6f7c5
334+
dependencies:
335+
- name: idf
336+
require: private
337+
version: '>=5.0'
338+
source:
339+
registry_url: https://components.espressif.com/
340+
type: service
341+
version: 1.8.2
342+
idf:
343+
source:
344+
type: idf
345+
version: 5.4.1
346+
direct_dependencies:
347+
- espp/esp32-timer-cam
348+
- espp/monitor
349+
- espp/nvs
350+
- espp/rtsp
351+
- espp/socket
352+
- espp/task
353+
- espp/wifi
354+
- espressif/mdns
355+
- idf
356+
manifest_hash: 16aed063bc123c492341a183a55ed2138ec26f48fc99ba25380455c762a86ee9
357+
target: esp32
358+
version: 2.0.0

main/main.cpp

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,8 @@ extern "C" void app_main(void) {
8888
camera_task.reset();
8989
logger.info("Stopping RTSP server");
9090
rtsp_server.reset();
91+
logger.info("Deiniting MDNS");
92+
mdns_free();
9193
},
9294
.on_got_ip =
9395
[](ip_event_got_ip_t *eventdata) {
@@ -186,7 +188,17 @@ esp_err_t initialize_camera(void) {
186188
.grab_mode =
187189
CAMERA_GRAB_LATEST // CAMERA_GRAB_WHEN_EMPTY // . Sets when buffers should be filled
188190
};
189-
return esp_camera_init(&camera_config);
191+
auto err = esp_camera_init(&camera_config);
192+
if (err != ESP_OK) {
193+
logger.error("Could not initialize camera: {} '{}'", err, esp_err_to_name(err));
194+
return err;
195+
}
196+
// set the mirror and flip - specific to the ESP32-TimerCam!
197+
logger.info("Enabling camera vflip");
198+
sensor_t *s = esp_camera_sensor_get();
199+
s->set_vflip(s, true);
200+
s->set_hmirror(s, false);
201+
return ESP_OK;
190202
}
191203

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

253-
espp::JpegFrame image(reinterpret_cast<const char *>(_jpg_buf), _jpg_buf_len);
265+
std::span<const uint8_t> jpg_buf(_jpg_buf, _jpg_buf_len);
266+
espp::JpegFrame image(jpg_buf);
254267
std::lock_guard<std::recursive_mutex> lock(server_mutex);
255268
rtsp_server->send_frame(image);
256269

0 commit comments

Comments
 (0)