我在armv5下编译FFmpeg,它可以在Android NDK r5上很好地工作,但是我在armv6下编译FFmpeg,它可以成功,但是当我调用av_new_stream函数时,它崩溃了,它在libavutil.c/rational.c:
if(num<=max && den<=max){
a1= (AVRational){num, den};
den=0;
}
有人遇到这个问题吗?
The LOCAL_FLAGS
include $(CLEAR_VARS)
LOCAL_ARM_MODE := arm
LOCAL_MODULE := ffmpeg
LOCAL_CFLAGS := -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DPIC -std=gnu99 -march=armv6
这里有错误吗?
如果您在模拟器下运行代码,这是完全正常的。仿真器只支持ARMv5。不是ARMv6,当然也不是ARMv7。
Update:对于较新的模拟器版本,这不再是正确的。它完全支持ARMv7.