mirror of
https://github.com/Rockbox/rockbox.git
synced 2026-10-10 08:03:04 -04:00
A single-component (grayscale) scan is non-interleaved, so its MCU is one 8x8 block regardless of the sampling factors in the frame header (T.81 A.2.2). Some encoders write H=2,V=2 for the lone component, which sent both the imageviewer plugin decoder and the core loader down the 4:2:0 path: 6 blocks per 16x16 MCU, the image treated as colour, and the entropy data overrun. Force 1x1 sampling for single-component frames when parsing SOF0 so these images use the 4:4:4 layout with one block per MCU. Also add the missing else in fix_headers() in the core loader, matching the plugin. Tested on a Sansa e200 with both the plugin and the core loader, and the plugin in the e200 simulator and built for PC and for ARM (qemu). Fixes FS#13749. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Change-Id: Iac2f925aab8cd602930470dca5da7dfb44e15961 |
||
|---|---|---|
| .. | ||
| albumart.c | ||
| albumart.h | ||
| bmp.c | ||
| bmp.h | ||
| icons.c | ||
| icons.h | ||
| jpeg_common.h | ||
| jpeg_idct_arm.S | ||
| jpeg_load.c | ||
| jpeg_load.h | ||
| keyboard.c | ||
| pcm_record.c | ||
| pcm_record.h | ||
| peakmeter.c | ||
| peakmeter.h | ||
| recording.c | ||
| recording.h | ||
| resize.c | ||
| resize.h | ||