JPEGDEC (error 3: UNSUPPORTED_FEATURE) and M5GFX's TJpgDec both failed on ~70% of Immich preview images due to: - Optimized Huffman tables exceeding 12-bit DC code limit - Extended sequential mode (SOF1) misidentified as baseline - Progressive JPEG not handled by either decoder stb_image.h handles all standard JPEG modes (baseline, progressive, extended sequential, arbitrary Huffman tables) in a single decoder. Changes: - Add vendored stb_image.h (JPEG-only, PSRAM allocator) - Rewrite decodeAndFit() to use stbi_load_from_memory() - Remove JPEGDEC library dependency - Remove jpegDrawCallback, DecodeContext, parseJpegHeader, decodeFallbackLGFX (all obsolete) - Flash usage decreased: 1345KB -> 1317KB Co-authored-by: Cursor <cursoragent@cursor.com>
16 lines
467 B
C++
16 lines
467 B
C++
#include <esp_heap_caps.h>
|
|
|
|
#define STB_IMAGE_IMPLEMENTATION
|
|
#define STBI_ONLY_JPEG
|
|
#define STBI_NO_STDIO
|
|
#define STBI_NO_HDR
|
|
#define STBI_NO_LINEAR
|
|
#define STBI_MALLOC(sz) heap_caps_malloc(sz, MALLOC_CAP_SPIRAM)
|
|
#define STBI_REALLOC(p,newsz) heap_caps_realloc(p, newsz, MALLOC_CAP_SPIRAM)
|
|
#define STBI_FREE(p) free(p)
|
|
|
|
#pragma GCC diagnostic push
|
|
#pragma GCC diagnostic ignored "-Wunused-function"
|
|
#include "stb_image.h"
|
|
#pragma GCC diagnostic pop
|