From fb151d762312a93fd33a44b9e14e1bdfa31e331e Mon Sep 17 00:00:00 2001
From: xuxiuxi <xuxiuxi@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期三, 03 五月 2017 14:21:09 +0800
Subject: [PATCH]
---
VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp | 55 +++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 43 insertions(+), 12 deletions(-)
diff --git a/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp b/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp
index 834affc..375c7eb 100644
--- a/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp
+++ b/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp
@@ -58,6 +58,24 @@
env->ReleaseStringUTFChars(ipaddr, utf8);
}
+void createHiddenSurface(JNIEnv *env, int cameraIdx)
+{
+ CameraWrapper& cameraWrapper(g_CameraWrappers[cameraIdx]);
+
+ //OutputSurface outputSurface = null;
+ //outputSurface = new OutputSurface(mWidth, mHeight);
+ //outputSurface.getSurface();
+ //outputSurface.release();
+
+ jclass jcOutputSurface = env->FindClass("com/example/nativecodec/OutputSurface");
+ jmethodID jmOutputSurface_ctor = env->GetMethodID(jcOutputSurface, "<init>", "(II)V");
+ jmethodID jmOutputSurface_getSurface = env->GetMethodID(jcOutputSurface, "getSurface", "()Landroid/view/Surface;");
+
+ jobject jobjOutputSurface = env->NewObject(jcOutputSurface , jmOutputSurface_ctor, 1920, 1088);
+ jobject jobjSurface = env->CallObjectMethod(jobjOutputSurface, jmOutputSurface_getSurface);
+ cameraWrapper.windowDecode = ANativeWindow_fromSurface(env, jobjSurface);
+}
+
// set the surface
void Java_cn_com_basic_face_util_RtspFaceNative_setSurface(JNIEnv *env, jclass clazz, jint cameraIdx, jobject surface)
{
@@ -67,14 +85,17 @@
CameraWrapper& cameraWrapper(g_CameraWrappers[cameraIdx]);
- // obtain a native window from a Java surface
- if (cameraWrapper.window)
+ // obtain a native windowRender from a Java surface
+ if (cameraWrapper.windowRender)
{
- ANativeWindow_release((ANativeWindow*)(cameraWrapper.window));
- cameraWrapper.window = NULL;
+ ANativeWindow_release((ANativeWindow*)(cameraWrapper.windowRender));
+ cameraWrapper.windowRender = NULL;
}
- cameraWrapper.window = ANativeWindow_fromSurface(env, surface);
- LOGP(DEBUG, "@@@ setsurface %p", cameraWrapper.window);
+ cameraWrapper.windowRender = ANativeWindow_fromSurface(env, surface);
+
+ //createHiddenSurface(env, cameraIdx);
+
+ LOGP(DEBUG, "@@@ setsurface %p", cameraWrapper.windowRender);
}
jboolean Java_cn_com_basic_face_util_RtspFaceNative_createPlayer(JNIEnv* env, jclass clazz, jint cameraIdx, jstring uri)
@@ -101,20 +122,23 @@
cameraWrapper.amcdConfig.ak_mime = "video/avc";
cameraWrapper.amcdConfig.ak_width = 640;
cameraWrapper.amcdConfig.ak_height = 480;
- cameraWrapper.amcdConfig.windowSurface = nullptr; // cameraWrapper.window
- cameraWrapper.amcdConfig.releaseOutputBuffIdx = true;
+ cameraWrapper.amcdConfig.windowSurfaceDecode = nullptr; //cameraWrapper.windowDecode;
+ cameraWrapper.amcdConfig.windowSurfaceRender = nullptr;
+ cameraWrapper.amcdConfig.releaseOutputBuffIdx = true;
+ cameraWrapper.amcdConfig.releaseOutputBuffIdxInPay = false;
cameraWrapper.amcdConfig.generateDecodedDataPerFrame = 1;
- cameraWrapper.amcdConfig.renderFromOutputBuffIdx = false;//true
- cameraWrapper.amcdConfig.renderFromOutputBuff = false;
+
#ifndef USE_ST_SDK
cameraWrapper.amcdConfig.releaseOutputBuffIdxInPay = true;
#endif
}
{
- cameraWrapper.asvrConfig.windowSurface = cameraWrapper.window;
+ cameraWrapper.asvrConfig.windowSurface = cameraWrapper.windowRender;
cameraWrapper.asvrConfig.outputOriginFrame = true;
cameraWrapper.asvrConfig.outputRenderFrame = true;
+ cameraWrapper.asvrConfig.scaleToWidth = 640;
+ cameraWrapper.asvrConfig.scaleToHeight = 480;
}
{
@@ -122,7 +146,9 @@
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_feature = true;
+ cameraWrapper.sftConfig.explode_feature_rect_x = 30;
+ cameraWrapper.sftConfig.explode_feature_rect_y = 40;
cameraWrapper.sftConfig.doTrackPerFrame = 50;
}
@@ -443,4 +469,9 @@
#endif
}
+jstring Java_cn_com_basic_face_util_RtspFaceNative_dbgGetLog(JNIEnv *env, jclass clazz)
+{
+ return env->NewStringUTF(g_dbgLog.c_str());
+}
+
}
--
Gitblit v1.8.0