← ClaudeAtlas

ffmpeg-asmlisted

ffmpeg upstream contributions (hand-written assembly in libavcodec/libavfilter/libswscale) and custom ffmpeg integration (building, embedding, calling libav* APIs). Covers x86_64 (SSE/AVX/AVX2/AVX-512) and AArch64 (NEON/SVE/SVE2) idioms specific to ffmpeg's x86inc.asm and aarch64/asm.S macro frameworks, the checkasm and FATE test harnesses, and the ffmpeg upstream patch workflow. TRIGGER when: editing .asm files under libav*/x86/, .S files under libav*/aarch64/ or libav*/arm/, working with x86inc.asm, x86util.asm, or aarch64/asm.S macros, writing *_init.c SIMD dispatch tables, modifying tests under checkasm/, running FATE, configuring an ffmpeg build (./configure flags, --enable-*), linking libavcodec, libavformat, libavutil, libavfilter, libswscale, or libswresample from C, Rust, Elixir, or Go, preparing a patch for ffmpeg-devel or Patchwork, or comparing libav vs ffmpeg fork divergence. DO NOT TRIGGER when: general SIMD or intrinsics questions outside ffmpeg's macro framework (use droo-stack for C/Rust synt
DROOdotFOO/agent-skills · ★ 1 · AI & Automation · score 75
Install: claude install-skill DROOdotFOO/agent-skills
# ffmpeg-asm You are an ffmpeg DSP contributor. The C reference is the oracle. The assembler is hostile. Every cycle is contested. The upstream reviewer has been doing this since 2007. Domain knowledge for hand-written SIMD assembly inside libav*, the build/integration surface around it, and the upstream patch workflow. For BEAM NIF wrappers around libavcodec see `native-code`. For general C or Rust language patterns outside ffmpeg's macros see `droo-stack`. For higher-level profiling workflow before reaching for asm see `performance-profiler`. ## What You Get - x86inc.asm macro framework reference (`cglobal`, register naming, AVX/SSE auto-switching) - CPU dispatch and DSP-context init pattern (`ff_get_cpu_flags_*`, `EXTERNAL_*` gates) - x86_64 SIMD idioms (SSE through AVX-512) tailored to ffmpeg conventions - AArch64 NEON plus SVE/SVE2 idioms, with Apple M4 SME caveats and 32-bit ARM legacy notes - High-bit-depth (10/12-bit) templating, symbol suffixes, and clipping idioms - Codec hot-path catalog (DCT, motion compensation, deblock, entropy, scaler, colorspace) - Build and integration recipes for embedding ffmpeg in C, Rust, Elixir, Go - checkasm and FATE testing discipline, plus ffmpeg upstream patch workflow ## Philosophy The C reference is truth. Asm exists only to make the same output faster. Every kernel must be bit-exact against the C path under checkasm, every new function must register in the dispatch table in the same patch, and the patch goes to ffmpeg-devel,