Hi Carl,

On 22/06/12 17:24, Carl Eugen Hoyos wrote:
Michael Zucchi<notzed@...>  writes:

PS I tried compiling with no optimisation but the build
fails if i do that

How? / Did you report this?

I didn't report it because I assumed it was a mistake my end or just an unsupported configuration. I tried various things in the past but following this email I had another go to confirm the details. The configure options are otherwise the same as in my previous email.

If I add:

 --disable-optimisations

So it looks like the FFmpeg build itself goes through (i'm only building the libs), but when linking to my code it fails with a bunch of stuff like this:

/home/notzed/svn/jjmpeg-0.11/jjmpeg-android/obj/local/armeabi/libavcodec.a(h264dsp_init_arm.o): In function `ff_h264dsp_init_neon': /home/notzed/svn/jjmpeg-0.11/jjmpeg-core/jni/ffmpeg-0.11/libavcodec/arm/h264dsp_init_arm.c:99: undefined reference to `ff_h264_v_loop_filter_luma_neon' /home/notzed/svn/jjmpeg-0.11/jjmpeg-core/jni/ffmpeg-0.11/libavcodec/arm/h264dsp_init_arm.c:99: undefined reference to `ff_h264_h_loop_filter_luma_neon'
.. a bunch more in the same file
/home/notzed/svn/jjmpeg-0.11/jjmpeg-android/obj/local/armeabi-v7a/libavcodec.a(h264pred_init_arm.o): In function `ff_h264_pred_init_neon': /home/notzed/svn/jjmpeg-0.11/jjmpeg-core/jni/ffmpeg-0.11/libavcodec/arm/h264pred_init_arm.c:77: undefined reference to `ff_pred8x8_vert_neon' /home/notzed/svn/jjmpeg-0.11/jjmpeg-core/jni/ffmpeg-0.11/libavcodec/arm/h264pred_init_arm.c:77: undefined reference to `ff_pred8x8_hor_neon' /home/notzed/svn/jjmpeg-0.11/jjmpeg-core/jni/ffmpeg-0.11/libavcodec/arm/h264pred_init_arm.c:77: undefined reference to `ff_pred8x8_plane_neon'
.. and more in that file


It may make sense to fix this to get more useful information
about the crash.

Yeah, I thought as much.

What about --disable-asm (--disable-neon if this is neon)?

If I also add to the above:
 --disable-asm

Then it builds and runs ok - but it doesn't crash either. I didn't test it exhaustively - but I will leave it running for the next hour (the length of the video) in gdb and see how it goes (i got sidetracked and tried more stuff and it's still going after nearly an hour). But this is close to the 'armeabi' config anyway which i've already found to be pretty stable.

If I change that to:
 --disable-neon

Then the FFmpeg build fails on the first file:

/usr/local/android-ndk-r7c/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc -I. -I/home/notzed/svn/jjmpeg-0.11/jjmpeg-core/jni/ffmpeg-0.11/ -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -DHAVE_AV_CONFIG_H -I/usr/local/android-ndk-r7c/platforms/android-8/arch-arm//usr/include -mfloat-abi=softfp -mfpu=neon -marm -march=armv7-a --sysroot=/usr/local/android-ndk-r7c/platforms/android-8/arch-arm/ -std=c99 -fPIC -marm -g -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -fno-math-errno -fno-signed-zeros -fno-tree-vectorize -Werror=implicit-function-declaration -Werror=missing-prototypes -MMD -MF libavformat/4xm.d -MT libavformat/4xm.o -c -o libavformat/4xm.o /home/notzed/svn/jjmpeg-0.11/jjmpeg-core/jni/ffmpeg-0.11/libavformat/4xm.c In file included from /home/notzed/svn/jjmpeg-0.11/jjmpeg-core/jni/ffmpeg-0.11/libavutil/intmath.h:36, from /home/notzed/svn/jjmpeg-0.11/jjmpeg-core/jni/ffmpeg-0.11/libavutil/common.h:102, from /home/notzed/svn/jjmpeg-0.11/jjmpeg-core/jni/ffmpeg-0.11/libavutil/avutil.h:327, from /home/notzed/svn/jjmpeg-0.11/jjmpeg-core/jni/ffmpeg-0.11/libavutil/samplefmt.h:22, from /home/notzed/svn/jjmpeg-0.11/jjmpeg-core/jni/ffmpeg-0.11/libavcodec/avcodec.h:30, from /home/notzed/svn/jjmpeg-0.11/jjmpeg-core/jni/ffmpeg-0.11/libavformat/avformat.h:197, from /home/notzed/svn/jjmpeg-0.11/jjmpeg-core/jni/ffmpeg-0.11/libavformat/4xm.c:32: /home/notzed/svn/jjmpeg-0.11/jjmpeg-core/jni/ffmpeg-0.11/libavutil/arm/intmath.h: In function 'av_clip_uintp2_arm': /home/notzed/svn/jjmpeg-0.11/jjmpeg-core/jni/ffmpeg-0.11/libavutil/arm/intmath.h:82: warning: asm operand 2 probably doesn't match constraints /home/notzed/svn/jjmpeg-0.11/jjmpeg-core/jni/ffmpeg-0.11/libavutil/arm/intmath.h:82: error: impossible constraint in 'asm'
make[1]: *** [libavformat/4xm.o] Error 1

If I comment out av_clip_uintp2_arm() in that function, then it compiles until it hits this:

In file included from /home/notzed/svn/jjmpeg-0.11/jjmpeg-core/jni/ffmpeg-0.11/libavcodec/dca.c:48: /home/notzed/svn/jjmpeg-0.11/jjmpeg-core/jni/ffmpeg-0.11/libavcodec/arm/dca.h: In function 'decode_blockcodes': /home/notzed/svn/jjmpeg-0.11/jjmpeg-core/jni/ffmpeg-0.11/libavcodec/arm/dca.h:36: error: can't find a register in class 'CORE_REGS' while reloading 'asm' /home/notzed/svn/jjmpeg-0.11/jjmpeg-core/jni/ffmpeg-0.11/libavcodec/arm/dca.h:36: error: 'asm' operand has impossible constraints

If I comment out decode_blockcodes() it compiles the libraries ok. But then it fails linking my library with all the missing *_neon functions as described in the first part of this mail.

I can log reports for this if that would help.

 Michael
_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user

Reply via email to