xuning

引入ncnn

// RVMNcnn.java
package com.tencent.rvmncnn;
package io.livekit.android.track.processing.video;// RVMNcnn.java
import android.content.res.AssetManager;
import android.view.Surface;
... ... @@ -15,4 +14,4 @@ public class RVMNcnn
static {
System.loadLibrary("rvmncnn");
}
}
\ No newline at end of file
}
... ...
... ... @@ -178,7 +178,7 @@ JNIEXPORT void JNI_OnUnload(JavaVM* vm, void* reserved)
}
// public native boolean loadModel(AssetManager mgr, int modelid, int sizeid, int intrainterid, int postprocid, int cpugpu);
JNIEXPORT jboolean JNICALL Java_org_example_project_RVMNcnn_loadModel(JNIEnv* env, jobject thiz, jobject assetManager, jint modelid, jint sizeid, jint intrainterid, jint postprocid, jint cpugpu)
JNIEXPORT jboolean JNICALL Java_io_livekit_android_track_processing_video_RVMNcnn_loadModel(JNIEnv* env, jobject thiz, jobject assetManager, jint modelid, jint sizeid, jint intrainterid, jint postprocid, jint cpugpu)
{
if (modelid < 0 || modelid > 1 || sizeid < 0 || sizeid > 6 || intrainterid < 0 || intrainterid > 1 || postprocid < 0 || postprocid > 2 || cpugpu < 0 || cpugpu > 2)
{
... ... @@ -270,7 +270,7 @@ JNIEXPORT jboolean JNICALL Java_org_example_project_RVMNcnn_loadModel(JNIEnv* en
}
// public native boolean openCamera(int facing);
JNIEXPORT jboolean JNICALL Java_org_example_project_RVMNcnn_openCamera(JNIEnv* env, jobject thiz, jint facing)
JNIEXPORT jboolean JNICALL Java_io_livekit_android_track_processing_video_RVMNcnn_openCamera(JNIEnv* env, jobject thiz, jint facing)
{
if (facing < 0 || facing > 1)
return JNI_FALSE;
... ... @@ -283,7 +283,7 @@ JNIEXPORT jboolean JNICALL Java_org_example_project_RVMNcnn_openCamera(JNIEnv* e
}
// public native boolean closeCamera();
JNIEXPORT jboolean JNICALL Java_org_example_project_RVMNcnn_closeCamera(JNIEnv* env, jobject thiz)
JNIEXPORT jboolean JNICALL Java_io_livekit_android_track_processing_video_RVMNcnn_closeCamera(JNIEnv* env, jobject thiz)
{
__android_log_print(ANDROID_LOG_DEBUG, "ncnn", "closeCamera");
... ... @@ -293,7 +293,7 @@ JNIEXPORT jboolean JNICALL Java_org_example_project_RVMNcnn_closeCamera(JNIEnv*
}
// public native boolean setOutputWindow(Surface surface);
JNIEXPORT jboolean JNICALL Java_org_example_project_RVMNcnn_setOutputWindow(JNIEnv* env, jobject thiz, jobject surface)
JNIEXPORT jboolean JNICALL Java_io_livekit_android_track_processing_video_RVMNcnn_setOutputWindow(JNIEnv* env, jobject thiz, jobject surface)
{
ANativeWindow* win = ANativeWindow_fromSurface(env, surface);
... ... @@ -305,7 +305,7 @@ JNIEXPORT jboolean JNICALL Java_org_example_project_RVMNcnn_setOutputWindow(JNIE
}
// public native boolean setBackgroundImage(Bitmap bitmap);
JNIEXPORT jboolean JNICALL Java_org_example_project_RVMNcnn_setBackgroundImage(JNIEnv* env, jobject thiz, jobject bitmap)
JNIEXPORT jboolean JNICALL Java_io_livekit_android_track_processing_video_RVMNcnn_setBackgroundImage(JNIEnv* env, jobject thiz, jobject bitmap)
{
if (!bitmap)
{
... ... @@ -371,7 +371,7 @@ JNIEXPORT jboolean JNICALL Java_org_example_project_RVMNcnn_setBackgroundImage(J
// public native boolean processFrame(long rgbaAddr, int width, int height, int rotation);
JNIEXPORT jboolean JNICALL Java_com_tencent_rvmncnn_RVMNcnn_processFrame(JNIEnv* env, jobject thiz, jlong rgbaAddr, jint width, jint height, jint rotation)
JNIEXPORT jboolean JNICALL Java_io_livekit_android_track_processing_video_RVMNcnn_processFrame(JNIEnv* env, jobject thiz, jlong rgbaAddr, jint width, jint height, jint rotation)
{
cv::Mat* rgba = (cv::Mat*)rgbaAddr;
if (rgba == nullptr || rgba->empty()) {
... ...