2013/4/11 Reuben Scratton <[email protected]>

> Hi,
>
> How can I get FFmpeg to detect and use ARM Neon code at runtime?
>
> If I compile with -mfpu=neon then FFmpeg blows up with SIGILL (ILLOPTPC)
> when run on a non-Neon CPU.
> If I compile with -mfpu=vfvp3 then FFmpeg runs fine, but presumably
> without the optimized code because this is what I currently have and I am
> getting performance complaints...
>
>
> Would it be possible for FFmpeg to detect Neon at runtime? This is for
> Android and the Android NDK does includes a demo project that shows how to
> do CPU feature detection at runtime... that's the easy bit. I don't know
> how or where to begin updating FFmpeg to use it.
>
>
>
We had similar problems with optimized code for ARM that was caused by an
outdated gas-preprocessor.pl. Try to update it from
https://github.com/mansr/gas-preprocessor and recompile. A good indicator
if you need to update your gas-preproc is that you get a lot of warnings
like this:

ld: warning: ARM function not 4-byte aligned: empty_row from
libavcodec/libavcodec.a(jrevdct_arm.o)
ld: warning: ARM function not 4-byte aligned: end_of_row_loop from
libavcodec/libavcodec.a(jrevdct_arm.o)
ld: warning: ARM function not 4-byte aligned: start_column_loop from
libavcodec/libavcodec.a(jrevdct_arm.o)
ld: warning: ARM function not 4-byte aligned: column_loop from
libavcodec/libavcodec.a(jrevdct_arm.o)
ld: warning: ARM function not 4-byte aligned: empty_odd_column from
libavcodec/libavcodec.a(jrevdct_arm.o)
ld: warning: ARM function not 4-byte aligned: the_end from
libavcodec/libavcodec.a(jrevdct_arm.o)
ld: warning: ARM function not 4-byte aligned: __b_evaluation from
libavcodec/libavcodec.a(simple_idct_arm.o)
ld: warning: ARM function not 4-byte aligned: __end_b_evaluation from
libavcodec/libavcodec.a(simple_idct_arm.o)
ld: warning: ARM function not 4-byte aligned: __a_evaluation from
libavcodec/libavcodec.a(simple_idct_arm.o)
ld: warning: ARM function not 4-byte aligned: __almost_empty_row from
libavcodec/libavcodec.a(simple_idct_arm.o)
ld: warning: ARM function not 4-byte aligned: __end_row_loop from
libavcodec/libavcodec.a(simple_idct_arm.o)
ld: warning: ARM function not 4-byte aligned: __end_b_evaluation2 from
libavcodec/libavcodec.a(simple_idct_arm.o)
ld: warning: ARM function not 4-byte aligned: __a_evaluation2 from
libavcodec/libavcodec.a(simple_idct_arm.o)
ld: warning: ARM function not 4-byte aligned: __end_simple_idct_arm from
libavcodec/libavcodec.a(simple_idct_arm.o)
*ld: in libavcodec/libavcodec.a(h264qpel_neon.o), in section __TEXT,__text
reloc 12: R_ABS reloc but no absolute symbol at target address for
architecture armv7*
*
*
_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user

Reply via email to