android_get_device_api_level

 

///Users/yzfhkms-m/pripro/D/library/ffmpeg/ffmpeg-6.1.1/libavcodec/mediacodec_wrapper.c

 

{

//ret = android_get_device_api_level();
//ndk 编译的api层级
ret = 28;/21

}

 

{


int ff_Build_SDK_INT(AVCodecContext *avctx)
{
int ret = -1;

#if __ANDROID_API__ >= 24
// android_get_device_api_level() is a static inline before API level 29.
// dlsym() might doesn't work.
//
// We can implement android_get_device_api_level() by
// __system_property_get(), but __system_property_get() has created a lot of
// troubles and is deprecated. So avoid using __system_property_get() for
// now.
//
// Hopy we can remove the conditional compilation finally by bumping the
// required API level.
//
//ret = android_get_device_api_level();
ret = 28;
#else
JNIEnv *env = NULL;
jclass versionClass;
jfieldID sdkIntFieldID;
JNI_GET_ENV_OR_RETURN(env, avctx, -1);

versionClass = (*env)->FindClass(env, "android/os/Build$VERSION");
sdkIntFieldID = (*env)->GetStaticFieldID(env, versionClass, "SDK_INT", "I");
ret = (*env)->GetStaticIntField(env, versionClass, sdkIntFieldID);
(*env)->DeleteLocalRef(env, versionClass);
#endif
av_log(avctx, AV_LOG_DEBUG, "device api level %d\n", ret);
return ret;
}

}

posted @ 2024-03-15 23:13  YZFHKMS-X  阅读(57)  评论(0编辑  收藏  举报