89a4b81654
Probe `/tmp/expbuf_probe.c` (snapshot at probes/expbuf_probe.c) opens /dev/video1, sets OUTPUT format H264_SLICE 1920x1088, REQBUFS 4 capture buffers, EXPBUF on plane 0 of buffer 0, lseek(fd, 0, SEEK_END). On ohm (kernel besser-7.0, hantro-vpu / rk3568-vpu-dec): CAPTURE: NV12 1920x1088 num_planes=1 sizeimage=3655712 EXPBUF fd lseek(SEEK_END) = 3657728 (page-rounded from 3655712) Kernel exports the dma_buf at full sizeimage; offset 2,088,960 (plane 1 base in ffmpeg's drm-frame-descriptor) is well inside. Hantro is innocent. Side observation: sizeimage = 3,655,712 > naive NV12's 3,133,440. The 522,272-byte excess is trailing padding (likely Rockchip per-frame MV / context metadata) past the UV plane. Y and UV layout fit cleanly within [0, 3,133,440), exactly where mpv/ffmpeg expect. Remaining hypothesis space: H1 (panfrost EGL non-zero plane offset), H2 (KWin wl_dmabuf import), H4 (kwin-fourier residual, low conf). Next probe queued: H2 source-read of KWin 6.6.4 wl_dmabuf import path. ~30 min, no hardware needed. If that turns up nothing, write the EGL importer harness for H1. Posted to dmabuf-modifier-triage#1 comment 255.