As far as I know, the best way to implement run-time detection of hardware capabilities is with getauxval(AT_HWCAP) and getauxval(AT_HWCAP2).
There is some kind of NEON detection in ffmeg. See, for example: https://sources.debian.net/src/ffmpeg/7:3.3.3-1/libavutil/arm/cpu.c/ That code appears to use /proc rather than getauxval. Is there a good reason for that? In case someone reading this has access to hardware (or a simulator) without NEON but is not familiar with ffmpeg, what is a quick and easy way of checking whether ffmpeg is working? There are other libraries in Debian that do run-time detection of NEON: fftw3 is one, I think.