编译FFmpeg遇到的问题,放弃了

来源:互联网 发布:php开源仓库管理系统 编辑:程序博客网 时间:2024/05/01 10:19

项目里头需要用到FFMPEG,网上GOOGLE到的BLOG基本都一样。因为FFMPEG每个版本变化都很大,所以网上的资料也只能做参考,主要还是靠自己慢慢排错,手动修改config.h或者添加删减代码。本人C++水平太有限了,加上时间不够,最后决定放弃移植。

最后遇到的错误如下:

/home/kexi/workspace/android/HelloJni/jni/ffmpeg/libswscale/swscale.c: In function 'yuv2yuvX9BE_c':
/home/kexi/workspace/android/HelloJni/jni/ffmpeg/libavutil/x86/bswap.h:34:5: error: invalid 'asm': invalid operand for code 'w'
/home/kexi/workspace/android/HelloJni/jni/ffmpeg/libavutil/x86/bswap.h:34:5: error: invalid 'asm': invalid operand for code 'w'
/home/kexi/workspace/android/HelloJni/jni/ffmpeg/libavutil/x86/bswap.h:34:5: error: invalid 'asm': invalid operand for code 'w'
/home/kexi/workspace/android/HelloJni/jni/ffmpeg/libavutil/x86/bswap.h:34:5: error: invalid 'asm': invalid operand for code 'w'
/home/kexi/workspace/android/HelloJni/jni/ffmpeg/libavutil/x86/bswap.h:34:5: error: invalid 'asm': invalid operand for code 'w'
/home/kexi/workspace/android/HelloJni/jni/ffmpeg/libavutil/x86/bswap.h:34:5: error: invalid 'asm': invalid operand for code 'w'
/home/kexi/workspace/android/HelloJni/jni/ffmpeg/libavutil/x86/bswap.h:34:5: error: invalid 'asm': invalid operand for code 'w'
/home/kexi/workspace/android/HelloJni/jni/ffmpeg/libavutil/x86/bswap.h:34:5: error: invalid 'asm': invalid operand for code 'w'
make: *** [/home/kexi/workspace/android/HelloJni/obj/local/armeabi/objs-debug/ffmpeg/libswscale/swscale.o] Error 1


看了下,是bswap.h里使用的_asm_()函数没有指明,查到_asm_其实是一个C++库里头的指令,可以调用汇编完成输入的指令,用来完成原子级操作。我猜想在Android.mk里头添加LOCAL_CFLAGS参数,或者LOCAL_LDLIBS参数,或者建立APPLICATION.MK在里头制定C++库的能解决。但是具体是需要什么库我就不知道了。希望最后调出来的朋友也能留言指点下。


PS:API16已经提供了MEDIACODEC类可以输出LOW LEVEL解码编码流了。。NDK移植FFMPEG的时代就要过去了。


原创粉丝点击