|
let maxDDPpx = 472; // must fit into one WebSocket frame of 1428 bytes, DDP header is 10+1 bytes -> 472 RGB pixels |
|
} else { |
|
DEBUG_PRINTF_P(PSTR("WS multipart message: final %u index %u len %u total %u\n"), info->final, info->index, len, (uint32_t)info->len); |
|
//message is comprised of multiple frames or the frame is split into multiple packets |
|
//if(info->index == 0){ |
|
//if (!wsFrameBuffer && len < 4096) wsFrameBuffer = new uint8_t[4096]; |
|
//} |
|
|
When trying videolab on a setup with 128x64 pxels (wled 16.0 HUB75), I still have a very laggy/jumpy playback at low FPS. In debug mode, there are tons of WS multipart messages that arrive from the frontend. Multi-part messages are not reduced when lowering the maxDDPpx parameter in common.js. My conclusion is that the esp32 side is splitting some ws messages into multi-part, especially when the receiver is under heavy load.
I think we should implement multi-part binary message handling, to improve performance on fixtures that are larger than 48x64 pixels.
WLED/wled00/data/common.js
Line 218 in a8ae8af
WLED/wled00/ws.cpp
Lines 99 to 105 in a8ae8af
When trying videolab on a setup with 128x64 pxels (wled 16.0 HUB75), I still have a very laggy/jumpy playback at low FPS. In debug mode, there are tons of WS multipart messages that arrive from the frontend. Multi-part messages are not reduced when lowering the
maxDDPpxparameter in common.js. My conclusion is that the esp32 side is splitting some ws messages into multi-part, especially when the receiver is under heavy load.I think we should implement multi-part binary message handling, to improve performance on fixtures that are larger than 48x64 pixels.