ffmpeg-v4l2-request-fourier: patch NV15 to P010 unpack for Hi10P / Main10 #26
Reference in New Issue
Block a user
Delete Branch "claude-noether/marfrit-packages:noether/ffmpeg-v4l2-request-fourier-nv15-p010"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes marfrit/marfrit-packages#21.
Root cause
The issue's premise (rebase onto Kwiboo's
v4l2request-2024-v2-rkvdecfor Hi10P/Main10 userspace plumbing) turned out to be inverted. The n8.1 pin (b57fbbe50c) is the newer Karlman rewrite and already carries all the bit-depth-aware plumbing the gist used to ship separately. The actual gap was inv4l2request_transfer_get_formats(hwcontext_v4l2request.c:1076), which deliberately blanks the format list forAV_PIX_FMT_YUV420P10sw_format. Consequence: kernel-side decode succeeds (Using CAPTURE buffer format NV15, "2 frames decoded; 0 decode errors") buthwdownloadrejects the surface at filter-init with -22 EINVAL because no transfer format is exposed.Fix
0002-nv15-to-p010-unpack.patchagainstv4l2-request-n8.1:v4l2request_transfer_data_from(5 bytes per 4 samples LE → high-10-of-16 P010 layout, both luma and chroma planes).AV_PIX_FMT_P010intransfer_get_formatswhen sw_format isYUV420P10.ENOSYSfor non-P010 destinations instead of silently corrupting output viaav_frame_copyon NV15-packed bytes (Phase 5 review hardening).Other "needs custom unpack" sw_formats (
YUV420P/ AllwinnerNV12_32L32tiled,YUV422P10/ rkvdecNV20) keep the original ENOSYS path — separate follow-up.Verification (fresnel, RK3399,
linux-fresnel-fourier 7.0-14)7d9b66d48d8f17b2281da1881c663ecc31722bb218aba1ae23bf28d07aa66b08The bit-exact 20-frame result also overturns the existing
feedback_rk3399_h264_hi10p_advertised_not_functionalmemory entry (the original "all-zero" was actually the 5-frame fadein title card). RK3399 rkvdec Hi10P is functional, contrary to the prior phase 7 close.Upstream
This patch is a clean candidate for sending to Kwiboo's
v4l2-request-n8.1branch.🤖 Generated with Claude Code