From 142117991fae65646bc5dd59d96c4a5c5e8559ca Mon Sep 17 00:00:00 2001
From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期四, 10 八月 2017 14:54:25 +0800
Subject: [PATCH] bug fix
---
VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNIClient.cpp | 65 ++++++++++++++++++++++++--------
1 files changed, 48 insertions(+), 17 deletions(-)
diff --git a/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNIClient.cpp b/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNIClient.cpp
index c4a679e..4934102 100644
--- a/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNIClient.cpp
+++ b/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNIClient.cpp
@@ -59,7 +59,6 @@
g_CameraWrappers[i].cameraIdx = i + 1;
g_CameraWrappers[i].pipeLineDecoderDetector = new PipeLine;
- g_CameraWrappers[i].pipeLineAnalyzer = new PipeLine;
g_CameraWrappers[i].pipeLineRender = new PipeLine;
//PipeLine& pipeLine(*(g_CameraWrappers[i].pipeLineDecoderDetector));
}
@@ -80,6 +79,54 @@
g_CameraWrappers[i].rtspConfig.requestStreamingOverTcp = true;
}
env->ReleaseStringUTFChars(ipaddr, utf8);
+}
+
+// set the surface
+void Java_cn_com_basic_face_util_RtspFaceNative_setSurface(JNIEnv *env, jclass clazz, jint cameraIdx,
+ jobject surfaceRender)
+{
+ LOG_DEBUG << "@@@ Java_cn_com_basic_face_util_RtspFaceNative_setSurface" << LOG_ENDL;
+ assert(cameraIdx > 0 && cameraIdx <= CAMERA_COUNT);
+ cameraIdx -= 1;
+
+ CameraWrapper &cameraWrapper(g_CameraWrappers[cameraIdx]);
+
+ // obtain a native windowRender from a Java surface
+ if (cameraWrapper.windowDecode != nullptr)
+ {
+ ANativeWindow_release((ANativeWindow *) (cameraWrapper.windowDecode));
+ cameraWrapper.windowDecode = NULL;
+ }
+ cameraWrapper.windowDecode = ANativeWindow_fromSurface(env, surfaceRender);
+ //cameraWrapper.windowDecode = getSurfaceHolderGetSurface(env, surfaceRender);
+ //cameraWrapper.windowDecode = ANativeWindow_fromSurface(env, (jobject)getSurfaceHolderGetSurface(env, surfaceRender));
+
+ if (cameraWrapper.windowRender != nullptr)
+ {
+ ANativeWindow_release((ANativeWindow *) (cameraWrapper.windowRender));
+ cameraWrapper.windowRender = NULL;
+ }
+ cameraWrapper.windowRender = ANativeWindow_fromSurface(env, surfaceRender);
+ cameraWrapper.asvrConfig.windowSurface = cameraWrapper.windowRender; // support reset
+ //cameraWrapper.windowRender = ANativeWindow_fromSurface(env, (jobject)getSurfaceHolderGetSurface(env, surfaceRender));
+
+ {
+ ANativeWindow* window = (ANativeWindow*)(cameraWrapper.windowRender);
+ ANativeWindow_Buffer buffer;
+ if(cameraWrapper.windowRender != nullptr && ANativeWindow_lock(window, &buffer, NULL) == 0)
+ {
+ cameraWrapper.plScaleCfg.toHeight=buffer.height;
+ cameraWrapper.plScaleCfg.toWidth=buffer.stride;
+ ANativeWindow_unlockAndPost(window);
+ }
+ else
+ {
+ cameraWrapper.plScaleCfg.toHeight=480;
+ cameraWrapper.plScaleCfg.toWidth=640;
+ }
+ }
+
+ LOGP(DEBUG, "@@@ setsurface %p,%p", cameraWrapper.windowDecode, cameraWrapper.windowRender);
}
jboolean
@@ -159,22 +206,6 @@
cameraWrapper.asvrConfig.scaleToWidth = 0;
cameraWrapper.asvrConfig.scaleToHeight = 0;
cameraWrapper.asvrConfig.directlyDisplay = true;
- }
-
- {
- cameraWrapper.sftConfig.point_size = 21;
- cameraWrapper.sftConfig.detect_face_cnt_limit = MAX_FACE;
- cameraWrapper.sftConfig.draw_face_rect = false;
- cameraWrapper.sftConfig.draw_face_feature_point = false;
- cameraWrapper.sftConfig.generate_face_feature = true;
- cameraWrapper.sftConfig.generate_face_point = false;
- cameraWrapper.sftConfig.explode_feature_rect_x = 30;
- cameraWrapper.sftConfig.explode_feature_rect_y = 40;
- cameraWrapper.sftConfig.clamp_feature_rect = true;
- cameraWrapper.sftConfig.doTrackPerFrame = 1;
- //cameraWrapper.sftConfig.license_str = g_stface_license_str;
- cameraWrapper.sftConfig.visionConeAngle = 30.0f;
- cameraWrapper.sftConfig.score_min = 0.4f;
}
cameraWrapper.fontPath = "/data/msyh.ttc";
--
Gitblit v1.8.0