Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Runtime error: failed to load jnivideo.so when ffmpeg running the SDK2.1 environment #2

Open
Seasky opened this issue Sep 2, 2010 · 7 comments

Comments

@Seasky
Copy link

Seasky commented Sep 2, 2010

I want to know the required SDK version for ffmpeg, I saw a runtime error in SDK2.1 ENV. that is:

I/dalvikvm( 223): Unable to dlopen(/data/data/cz.havlena.ffmpeg.ui/lib/libjnivideo.so): Cannot load library: link_image[1721]: 30 could not load needed library 'libsurfaceflinger_client.so' for 'libjnivideo.so' (load_library[1051]: Library 'libsurfaceflinger_client.so' not found)
D/FFMpeg ( 223): Couldn't load lib: jnivideo - Library jnivideo not found

I check the /system/lib/ directory, and do not find the required libsurfaceflinger_client.so, So I must update my SDK to 2.2 or higher,right? If I want ffmpeg compatible with 2.1 platform, how to do it?

@havlenapetr
Copy link
Owner

when you are building apk from your java code and native libs in lib/armeabi you must have my libjnivideo.so and libjniaudio.so too in lib/armeabi, if you haven't them there eclipse doesn't pack them into apk and dalvik can't find them because they doesn't exists:-)

@Seasky
Copy link
Author

Seasky commented Sep 2, 2010

I have put these two files under lib/armeabi, and the jniaudio.so is loaded successfully, but the jnivideo.so failed due to the jnivideo.so need the libsurfaceflinger_client.so, which doesn't exist in SDK 2.1 system(there is no such file in /system/lib), So I ask which is the required SDK version for ffmpeg.

@havlenapetr
Copy link
Owner

libsurfaceflinger_client.so is in froyo but not in eclair, you should recompile my libjnivideo.so http://github.com/havlenapetr/android_frameworks_base/tree/froyo/native/video/jni/ for eclair or if I have time i will do it

@havlenapetr
Copy link
Owner

I think for eclair you just rewrite my makefile(in frameworks/base/native) from libsurfaceflinger_client.so to libsurfaceflinger.so

@Seasky
Copy link
Author

Seasky commented Sep 3, 2010

Thanks for your information. I compared the froyo frameworks/base/native directory with yours, the froyo native directory do not include the /audio and /video sub-directory, So I think these two directories are added by yourself and used to create the libjniaudio.so and libjnivideo.so, right?
And in android 2.1 platfrom, there aren't native directory under frameworks/base, So do you mean I just need copy the /native directory from your code base, then modify the makefile and can create these two libs too? Does these two libs need other libs or source codes which is not included in 2.1 platform?

@havlenapetr
Copy link
Owner

yes it is my libraries, yes you can compile them for eclair too, but some libraries will not be in eclair, so you must modify my makefiles for froyo(libraries will be there but with other name or other path for headers)

@yangchaoxun
Copy link

ok?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants