Android JNI Intro - Java Call Jni Example
MainActivity.java
public native int nativePushCameraData(byte[]data, int len);
Native-lib.cpp
extern "C"
JNIEXPORT int JNICALL
Java_com_example_MainActivity_nativePushCameraData(
JNIEnv *env,
jobject /* this */,
jbyteArray buf, jint len
) {
uint8_t * data;
data = (uint8_t *)env->GetByteArrayElements(buf, 0);
magics::TaskNode *node = gfreeQueue.Dequeue();
if(node == nullptr) {
node = gtaskQueue.Dequeue();
if(node == nullptr) return 0;
}
magics::TaskZone *zone = node->mTaskZone;
zone->tasktype = magics::enum_task_data;
zone->datatype = magics::enum_data_rgb;
memcpy(zone->vframe, data, len);
gtaskQueue.EnqueueWithSignal(node);
env->ReleaseByteArrayElements(buf, (jbyte *)data, 0);
return 0;
}
posted on 2017-12-11 19:28 fanbird2008 阅读(99) 评论(0) 收藏 举报
浙公网安备 33010602011771号