src.nth.io/

summaryrefslogtreecommitdiff
path: root/main/jpeg_decoder.h
diff options
context:
space:
mode:
authorLuke Hoersten <[email protected]>2026-07-17 18:56:03 -0500
committerLuke Hoersten <[email protected]>2026-07-17 18:56:03 -0500
commit9d94f710f7b00d109bf6f6ee57996f43bce5c67f (patch)
treeb86320353884536d2d1b342efa27600b19c845de /main/jpeg_decoder.h
parent866015678918560a0d0519be8a2549e4fc23b2cd (diff)
main: code-review fixes — brightness units, OTA stall cap, stats + locking
- display: s_last_pwm cached the raw 0-100 percentage at init but display_wake writes it straight to REG_PWM (0-255 duty) — first wake ran visibly dim until a /config brightness change. Shared pct_to_duty helper now converts in both paths. - http_api: cap consecutive OTA recv timeouts (a stalled client spun forever holding s_ota_in_progress, wedging OTA until reboot); cap viewport name at 54 chars so viewport-<name> fits the 63-byte mDNS label; log mdns_service_refresh failures; /state builds JSON from a snapshot instead of holding the state lock across ~25 cJSON allocs; respond_400 delegates to respond_status. - stream_server: bytes_in_window now counts painted frames only (frames discarded while asleep inflated the first post-wake window's MB/s, avg-jpeg and chunk/wire averages; recv_bytes folded in); so_rcvbuf carried into the stats snapshot under the mux; drop dead HEADER_BYTES; merge read_body_instrumented into read_n. - state_machine: transition mutex serializes concurrent wake/sleep (display side-effects ran after the state lock dropped, so racing callers could leave the backlight contradicting st->state); wake-path placeholder paint now takes the decoder lock like the stream path (concurrent esp_lcd_panel_draw_bitmap from two tasks isn't safe). - local_screens: overlay paint takes the decoder lock too; check the overlay timer create; panel dims from viewport_state.h. - jpeg_decoder: try_lock before init returns busy instead of passing a NULL semaphore to xSemaphoreTake. - net_eth: clear cached IP string on link down (stale /state + info). - dead code: display_present_bgr888, TOUCH_FT5426_ADDR, touch s_task, JPEG_DECODER_MAX_OUTPUT_BYTES; doc drift in nvs_config.h / jpeg_decoder.h / app_main flag legend.
Diffstat (limited to 'main/jpeg_decoder.h')
-rw-r--r--main/jpeg_decoder.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/main/jpeg_decoder.h b/main/jpeg_decoder.h
index 495b1a5..beb907b 100644
--- a/main/jpeg_decoder.h
+++ b/main/jpeg_decoder.h
@@ -7,10 +7,10 @@
#include "esp_err.h"
#define JPEG_DECODER_MAX_INPUT_BYTES (1024 * 1024) // 1 MB
-#define JPEG_DECODER_MAX_OUTPUT_BYTES (800 * 480 * 3) // BGR888 panel native
-// One-time setup of the ESP32-P4 hardware JPEG decoder. Allocates reusable
-// DMA-aligned input + output buffers in PSRAM.
+// One-time setup of the ESP32-P4 hardware JPEG decoder. Allocates a reusable
+// DMA-aligned input buffer in PSRAM; output goes to caller-provided buffers
+// (the display back-framebuffer in the hot paths).
esp_err_t jpeg_decoder_init(void);
// The decoder owns shared scratch buffers. Caller must serialize access.