ffmpeg-v4l2-request-fourier: substitute H.264 qpel mc20 → daedalus-fourier #90
Reference in New Issue
Block a user
Delete Branch "claude-noether/marfrit-packages:noether/ffmpeg-fourier-qpel-mc20-daedalus"
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?
Cycle 9 of the daedalus-v4l2#11 step 2 substitution arc; closes the 4-cycle libavcodec.so substitution sequence:
H264QpelContext.put_h264_qpel_pixels_tab[1][2] (8x8 luma horizontal half-pel, 6-tap
put) now dispatches throughdaedalus_recipe_dispatch_h264_qpel_mc20instead offf_put_h264_qpel8_mc20_neondirectly.Pin bump
daedalus_recipe_dispatch_h264_qpel_mc20+DAEDALUS_KERNEL_H264_QPEL_MC20).Verdict
CPU NEON per
docs/k9_h264qpel_mc20.md:QPU dispatch floor ~250 ns vs 7.6 ns per-block makes any V3D shader strictly worse. Substitution is plumbing-only — same
daedalus_ctx_create_no_qpupthread_once shape the cycles 6/7/8 shims already own (kept SEPARATE from the H264DSP shim's ctx because H264QPEL is its own libavcodec Makefile module and link order does not guarantee a single .o owns the ctx symbol; one extra ~µs init per process, paid lazily on first MC call).Scope of substitution
Only
put_h264_qpel_pixels_tab[1][2]is substituted. Other H.264 luma MC variants (mc02, mc11, mc22 etc.) and the 16x16 size tier stay on the in-tree NEON.Scode per the cycle-9 phase-1 rationale (mc20 8x8 is representative; remaining variants would multiply recipe-lookup overhead without changing the substrate verdict).Smoke
Patch chain 0003→0007 dry-applied cleanly against the FFmpeg b57fbbe pin; new shim file compiles against the installed daedalus prefix (libavutil/attributes.h is the only FFmpeg header it needs).
PKGREL 9 → 10. No SONAME change, no Depends change.
Refs reauktion/daedalus-v4l2#11 — substitution arc step 2 cycle 9.