Skip to content

Commit 7631594

Browse files
committed
Avoid pointer alignment error on espressif
1 parent d89ccbe commit 7631594

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

shared-module/uvc/__init__.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,9 @@ bool shared_module_uvc_enable(mp_int_t frame_width, mp_int_t frame_height) {
4949

5050
size_t framebuffer_size = uvc_frame_width * uvc_frame_height * 2;
5151
frame_buffer_yuyv = port_malloc(framebuffer_size, false);
52-
frame_buffer_rgb565 = port_malloc(framebuffer_size, false);
52+
uint32_t *frame_buffer_rgb565_uint32 = port_malloc(framebuffer_size, false);
53+
frame_buffer_rgb565 = (uint16_t *)frame_buffer_rgb565_uint32;
54+
5355
if (!frame_buffer_yuyv || !frame_buffer_rgb565) {
5456
// this will free either of the buffers allocated just above, in
5557
// case one succeeded and the other failed.
@@ -59,7 +61,7 @@ bool shared_module_uvc_enable(mp_int_t frame_width, mp_int_t frame_height) {
5961
memset(frame_buffer_yuyv, 0, framebuffer_size);
6062
memset(frame_buffer_rgb565, 0, framebuffer_size);
6163

62-
uvc_bitmap_obj.data = (uint32_t *)frame_buffer_rgb565;
64+
uvc_bitmap_obj.data = (uint32_t *)frame_buffer_rgb565_uint32;
6365
uvc_bitmap_obj.width = uvc_frame_width;
6466
uvc_bitmap_obj.height = uvc_frame_height;
6567
uvc_bitmap_obj.stride = uvc_frame_width / 2; /* in uint32_t units */

0 commit comments

Comments
 (0)