From afcb649c8a2785c6095be5762c6077f9e15afd1a Mon Sep 17 00:00:00 2001
From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期三, 02 八月 2017 10:33:31 +0800
Subject: [PATCH] c++ dupl image

---
 VisitFace/RtspNativeCodec/app/src/main/cpp/cpu_sched_test.cpp                        |   18 +++-
 VisitFace/RtspNativeCodec/app/src/main/cpp/FaceCacheForPLBG.cpp                      |   48 +++++++++++
 VisitFace/RtspNativeCodec/app/src/main/java/com/example/nativecodec/NativeCodec.java |   12 ++
 VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp                    |    5 
 VisitFace/RtspNativeCodec/app/src/main/cpp/CMakeLists.txt                            |  157 +++++++++++++++++++++------------------
 5 files changed, 154 insertions(+), 86 deletions(-)

diff --git a/VisitFace/RtspNativeCodec/app/src/main/cpp/CMakeLists.txt b/VisitFace/RtspNativeCodec/app/src/main/cpp/CMakeLists.txt
index 7c2ed7a..8511bca 100644
--- a/VisitFace/RtspNativeCodec/app/src/main/cpp/CMakeLists.txt
+++ b/VisitFace/RtspNativeCodec/app/src/main/cpp/CMakeLists.txt
@@ -6,52 +6,57 @@
 #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 -std=c++11 -fno-rtti  -Wall -UNDEBUG")
 #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 -std=c++11 -DANDROID_PLATFORM=android-22  -DANDROID_TOOLCHAIN=gcc -DANDROID_STL=gnustl_static -Wall -UNDEBUG")
 
+set(WORKSPACE_PATH "D:/workspace/proxy")
+set(ARCH "armeabi-v7a")
+
 add_library(rtspface SHARED
-            RtspNativeCodecJNI.cpp
-            CameraWrapper.cpp
-            FaceCache.cpp
-            FaceCacheForPLBG.cpp
-            DebugNetwork.cpp
-            CaptureCamera.cpp
-            serial.c
-            cpu_sched_test.cpp
-            TeleWrapper.cpp
+			RtspNativeCodecJNI.cpp
+			CameraWrapper.cpp
+			FaceCache.cpp
+			FaceCacheForPLBG.cpp
+			DebugNetwork.cpp
+			CaptureCamera.cpp
+			cpu_sched_test.cpp
+			serial.c
+			TeleWrapper.cpp
 
-            "D:/Documents/works/RtspFace/PL_Scale.cpp"
-            "D:/Documents/works/RtspFace/PipeLine.cpp"
-            "D:/Documents/works/RtspFace/Logger/src/logger.cc"
-			"D:/Documents/works/RtspFace/MediaHelper.cpp"
-			"D:/Documents/works/RtspFace/GraphicHelper.cpp"
-            "D:/Documents/works/RtspFace/PL_RTSPClient.cpp"
-            "D:/Documents/works/RtspFace/PL_AndroidMediaCodecDecoder_ndk.cpp"
-            "D:/Documents/works/RtspFace/PL_AndroidSurfaceViewRender.cpp"
-            "D:/Documents/works/RtspFace/PL_SensetimeFaceTrackMultiTrd.cpp"
-            "D:/Documents/works/RtspFace/PL_ColorConv.cpp"
-            "D:/Documents/works/RtspFace/PL_Gainer.cpp"
-            "D:/Documents/works/RtspFace/PL_Paint.cpp"
-            "D:/Documents/works/RtspFace/PL_V4L2Source.cpp"
-            "D:/Documents/works/RtspFace/PL_BlockGrouping.cpp"
-            "D:/Documents/works/RtspFace/PL_Queue.cpp"
+			"${WORKSPACE_PATH}/RtspFace/PipeLine.cpp"
+			"${WORKSPACE_PATH}/RtspFace/Logger/src/logger.cc"
+			"${WORKSPACE_PATH}/RtspFace/MediaHelper.cpp"
+			"${WORKSPACE_PATH}/RtspFace/GraphicHelper.cpp"
+			"${WORKSPACE_PATH}/RtspFace/PL_RTSPClient.cpp"
+			"${WORKSPACE_PATH}/RtspFace/PL_AndroidMediaCodecDecoder_ndk.cpp"
+			"${WORKSPACE_PATH}/RtspFace/PL_AndroidSurfaceViewRender.cpp"
+			"${WORKSPACE_PATH}/RtspFace/PL_SensetimeFaceTrackMultiTrd.cpp"
+			"${WORKSPACE_PATH}/RtspFace/PL_Gainer.cpp"
+            "${WORKSPACE_PATH}/RtspFace/PL_Scale.cpp"
+			"${WORKSPACE_PATH}/RtspFace/PL_ColorConv.cpp"
+			"${WORKSPACE_PATH}/RtspFace/PL_Paint.cpp"
+			"${WORKSPACE_PATH}/RtspFace/PL_V4L2Source.cpp"
+			"${WORKSPACE_PATH}/RtspFace/PL_BlockGrouping.cpp"
+			#"${WORKSPACE_PATH}/RtspFace/PL_Queue.cpp"
+			#"${WORKSPACE_PATH}/RtspFace/PL_Fork2.cpp"
+			"${WORKSPACE_PATH}/RtspFace/PL_AndroidMediaCodecEncoder.cpp"
 
-            "D:/Documents/works/FaceServer/proto_hton_ntoh.cpp"
-            "D:/Documents/works/FaceServer/PbFaceList.pb.cc"
+			"${WORKSPACE_PATH}/FaceServer/proto_hton_ntoh.cpp"
+			"${WORKSPACE_PATH}/FaceServer/PbFaceList.pb.cc"
 
-             "D:/Documents/works/RtspFace/libv4l2cpp/src/V4l2Capture.cpp"
-             "D:/Documents/works/RtspFace/libv4l2cpp/src/V4l2Device.cpp"
-             "D:/Documents/works/RtspFace/libv4l2cpp/src/V4l2MmapDevice.cpp"
-             "D:/Documents/works/RtspFace/libv4l2cpp/src/V4l2Output.cpp"
+			 "${WORKSPACE_PATH}/RtspFace/libv4l2cpp/src/V4l2Capture.cpp"
+			 "${WORKSPACE_PATH}/RtspFace/libv4l2cpp/src/V4l2Device.cpp"
+			 "${WORKSPACE_PATH}/RtspFace/libv4l2cpp/src/V4l2MmapDevice.cpp"
+			 "${WORKSPACE_PATH}/RtspFace/libv4l2cpp/src/V4l2Output.cpp"
 
-             "D:/Documents/works/RtspFace/CvUtil/CvxText.cpp"
+			"${WORKSPACE_PATH}/RtspFace/CvUtil/CvxText.cpp"
 
-            )
+			)
 
 # Include libraries needed for native-codec-jni lib
 target_link_libraries(rtspface
-                      android
-                      log
-                      #ui
-                      mediandk
-                      #OpenMAXAL
+					  android
+					  log
+					  #ui
+					  mediandk
+					  #OpenMAXAL
 					  #jnigraphics
 					  #EGL
 					  #GLESv2
@@ -59,52 +64,58 @@
 					  )
 
 include_directories(
-                    "D:/Documents/works/RtspFace"
-                    "D:/Documents/works/FaceServer"
+					"${WORKSPACE_PATH}/RtspFace"
+					"${WORKSPACE_PATH}/FaceServer"
 
-                    #"D:/workspace/libhardware-android-5.1.1_r38/include"
-                    #"D:/workspace/core-android-5.1.1_r38/include"
-                    #"D:/workspace/native-android-5.1.1_r38/include"
-                    #"D:/workspace/core-android-5.1.1_r38/libsync/include"
-                    #"D:/workspace/native-android-5.1.1_r38/opengl/include"
+					#"D:/workspace/libhardware-android-5.1.1_r38/include"
+					#"D:/workspace/core-android-5.1.1_r38/include"
+					#"D:/workspace/native-android-5.1.1_r38/include"
+					#"D:/workspace/core-android-5.1.1_r38/libsync/include"
+					#"D:/workspace/native-android-5.1.1_r38/opengl/include"
 
-                    "D:/Documents/works/VisitFace/RtspNativeCodec/app/libs/live555/include"
-                    "D:/Documents/works/VisitFace/RtspNativeCodec/app/libs/live555/include/BasicUsageEnvironment"
-                    "D:/Documents/works/VisitFace/RtspNativeCodec/app/libs/live555/include/groupsock"
-                    "D:/Documents/works/VisitFace/RtspNativeCodec/app/libs/live555/include/liveMedia"
-                    "D:/Documents/works/VisitFace/RtspNativeCodec/app/libs/live555/include/UsageEnvironment"
+					"${WORKSPACE_PATH}/VisitFace/RtspNativeCodec/app/libs/live555/include"
+					"${WORKSPACE_PATH}/VisitFace/RtspNativeCodec/app/libs/live555/include/BasicUsageEnvironment"
+					"${WORKSPACE_PATH}/VisitFace/RtspNativeCodec/app/libs/live555/include/groupsock"
+					"${WORKSPACE_PATH}/VisitFace/RtspNativeCodec/app/libs/live555/include/liveMedia"
+					"${WORKSPACE_PATH}/VisitFace/RtspNativeCodec/app/libs/live555/include/UsageEnvironment"
 
-                    "D:/Documents/works/VisitFace/RtspNativeCodec/app/libs/libyuv/include"
+					"${WORKSPACE_PATH}/VisitFace/RtspNativeCodec/app/libs/libyuv/include"
 
-                    "D:/Documents/works/VisitFace/RtspNativeCodec/app/libs/opencv/include"
+					"${WORKSPACE_PATH}/VisitFace/RtspNativeCodec/app/libs/opencv/include"
 
-                    "D:/Documents/works/VisitFace/RtspNativeCodec/app/libs/protobuf/include"
+					"${WORKSPACE_PATH}/VisitFace/RtspNativeCodec/app/libs/protobuf/include"
 
-                    "D:/Documents/works/VisitFace/RtspNativeCodec/app/libs/st_face/include"
+					"${WORKSPACE_PATH}/VisitFace/RtspNativeCodec/app/libs/st_face/include"
+					
+					"${WORKSPACE_PATH}/VisitFace/RtspNativeCodec/app/libs/capnproto/include"
 
-                    "D:/Documents/works/RtspFace/libv4l2cpp/inc"
+					"${WORKSPACE_PATH}/RtspFace/libv4l2cpp/inc"
+					#"${WORKSPACE_PATH}/VisitFace/RtspNativeCodec/app/libs/libv4l2wrapper/include"
 
-                    "D:/Documents/works/VisitFace/RtspNativeCodec/app/libs/freetype/include/freetype2"
-
-                    #"D:/Documents/works/VisitFace/RtspNativeCodec/app/libs/libv4l2wrapper/include"
-                    )
+					"${WORKSPACE_PATH}/VisitFace/RtspNativeCodec/app/libs/freetype/include/freetype2"
+					)
 
 target_link_libraries(rtspface
-                      "D:/Documents/works/VisitFace/RtspNativeCodec/app/libs/live555/lib/arm64-v8a/libliveMedia.a"
-                      "D:/Documents/works/VisitFace/RtspNativeCodec/app/libs/live555/lib/arm64-v8a/libgroupsock.a"
-                      "D:/Documents/works/VisitFace/RtspNativeCodec/app/libs/live555/lib/arm64-v8a/libBasicUsageEnvironment.a"
-                      "D:/Documents/works/VisitFace/RtspNativeCodec/app/libs/live555/lib/arm64-v8a/libUsageEnvironment.a"
+					  "${WORKSPACE_PATH}/VisitFace/RtspNativeCodec/app/libs/live555/lib/${ARCH}/libliveMedia.a"
+					  "${WORKSPACE_PATH}/VisitFace/RtspNativeCodec/app/libs/live555/lib/${ARCH}/libgroupsock.a"
+					  "${WORKSPACE_PATH}/VisitFace/RtspNativeCodec/app/libs/live555/lib/${ARCH}/libBasicUsageEnvironment.a"
+					  "${WORKSPACE_PATH}/VisitFace/RtspNativeCodec/app/libs/live555/lib/${ARCH}/libUsageEnvironment.a"
 
-                      "D:/Documents/works/VisitFace/RtspNativeCodec/app/libs/libyuv/lib/arm64-v8a/libyuv_static.a"
-                      "D:/Documents/works/VisitFace/RtspNativeCodec/app/libs/opencv/lib/arm64-v8a/libopencv_java3.so"
-                      "D:/Documents/works/VisitFace/RtspNativeCodec/app/libs/protobuf/lib/arm64-v8a/libprotobuf.so"
-                      "D:/Documents/works/VisitFace/RtspNativeCodec/app/libs/st_face/lib/arm64-v8a/libcvface_api.so"
-                      "D:/Documents/works/VisitFace/RtspNativeCodec/app/libs/freetype/lib/arm64-v8a/libfreetype.so"
+					  "${WORKSPACE_PATH}/VisitFace/RtspNativeCodec/app/libs/libyuv/lib/${ARCH}/libyuv_static.a"
+					  "${WORKSPACE_PATH}/VisitFace/RtspNativeCodec/app/libs/opencv/lib/${ARCH}/libopencv_java3.so"
+					  "${WORKSPACE_PATH}/VisitFace/RtspNativeCodec/app/libs/protobuf/lib/${ARCH}/libprotobuf.so"
+					  "${WORKSPACE_PATH}/VisitFace/RtspNativeCodec/app/libs/st_face/lib/${ARCH}/libcvface_api.so"
+					  "${WORKSPACE_PATH}/VisitFace/RtspNativeCodec/app/libs/freetype/lib/${ARCH}/libfreetype.so"
 
-                      #"D:/Documents/works/VisitFace/RtspNativeCodec/app/libs/libv4l2wrapper/lib/arm64-v8a/libv4l2wrapper.a"
+					  "${WORKSPACE_PATH}/VisitFace/RtspNativeCodec/app/libs/capnproto/lib/${ARCH}/libcapnp-0.6.1.so"
+					  "${WORKSPACE_PATH}/VisitFace/RtspNativeCodec/app/libs/capnproto/lib/${ARCH}/libcapnpc-0.6.1.so"
+					  "${WORKSPACE_PATH}/VisitFace/RtspNativeCodec/app/libs/capnproto/lib/${ARCH}/libkj-0.6.1.so"
 
-                      #"D:/Documents/works/VisitFace/RtspNativeCodec/app/libs/android_sys/libgui.so"
-                      #"D:/Documents/works/VisitFace/RtspNativeCodec/app/libs/android_sys/libui.so"
-                      #"D:/Documents/works/VisitFace/RtspNativeCodec/app/libs/android_sys/libEGL.so"
-                      #"D:/Documents/works/VisitFace/RtspNativeCodec/app/libs/android_sys/libGLESv3.so"
-                      )
+
+					  #"${WORKSPACE_PATH}/VisitFace/RtspNativeCodec/app/libs/libv4l2wrapper/lib/${ARCH}/libv4l2wrapper.a"
+
+					  #"${WORKSPACE_PATH}/VisitFace/RtspNativeCodec/app/libs/android_sys/libgui.so"
+					  #"${WORKSPACE_PATH}/VisitFace/RtspNativeCodec/app/libs/android_sys/libui.so"
+					  #"${WORKSPACE_PATH}/VisitFace/RtspNativeCodec/app/libs/android_sys/libEGL.so"
+					  #"${WORKSPACE_PATH}/VisitFace/RtspNativeCodec/app/libs/android_sys/libGLESv3.so"
+					  )
diff --git a/VisitFace/RtspNativeCodec/app/src/main/cpp/FaceCacheForPLBG.cpp b/VisitFace/RtspNativeCodec/app/src/main/cpp/FaceCacheForPLBG.cpp
index 9c1fc23..7a82720 100644
--- a/VisitFace/RtspNativeCodec/app/src/main/cpp/FaceCacheForPLBG.cpp
+++ b/VisitFace/RtspNativeCodec/app/src/main/cpp/FaceCacheForPLBG.cpp
@@ -39,9 +39,13 @@
 	size_t frameRGBSize;
 	bool frameTruncated;
 
+	typedef std::map<int, float> block_score_filter_map_t;
+	block_score_filter_map_t blockScoreFilter;
+
 	FcPmBreackerContextPLBG() :
 			lastOutputs(), lastOutputsRGBBufs(), frameYUV(), frameYUVSize(0), frameRGB(),frameRGBSize(0),
-			frameTruncated(false)
+			frameTruncated(false),
+			blockScoreFilter()
 	{}
 
 	void reset()
@@ -178,8 +182,48 @@
 
 size_t FaceCacheForPLBG::getFaceCount(const PipeMaterial& pm) const
 {
+	FcPmBreackerContextPLBG& ctx(*(FcPmBreackerContextPLBG*)_ctx);
 	plbg_output_vec_t* plbgOut = (plbg_output_vec_t*)pm.buffer;
-	return plbgOut->size();
+
+	bool hasFiltedBlock = false;
+	int min_st_track_id = 0;
+
+	for (plbg_output_vec_t::iterator iterBGOut = plbgOut->begin(); iterBGOut != plbgOut->end(); ++iterBGOut)
+	{
+		int st_track_id = (int)(int64_t)(iterBGOut->rectInOriginFrame.userData);
+		float score = iterBGOut->score;
+
+		FcPmBreackerContextPLBG::block_score_filter_map_t::iterator iterFilter = ctx.blockScoreFilter.find(st_track_id);
+		if (iterFilter == ctx.blockScoreFilter.end())
+		{
+			ctx.blockScoreFilter.insert(std::make_pair(st_track_id, score));
+			hasFiltedBlock = true;
+		}
+		else
+		{
+			if (iterFilter->second < score)
+			{
+				iterFilter->second = score;
+				hasFiltedBlock = true;
+			}
+		}
+
+		if (min_st_track_id > st_track_id)
+			min_st_track_id = st_track_id;
+	}
+
+	for(FcPmBreackerContextPLBG::block_score_filter_map_t::iterator iterFilter = ctx.blockScoreFilter.begin(); iterFilter != ctx.blockScoreFilter.end(); )
+	{
+		if (iterFilter->first < min_st_track_id)
+			iterFilter = ctx.blockScoreFilter.erase(iterFilter);
+		else
+			++iterFilter;
+	}
+
+	if (hasFiltedBlock)
+		return plbgOut->size();
+	else
+		return 0;
 }
 
 
diff --git a/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp b/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp
index 540437c..177b924 100644
--- a/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp
+++ b/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp
@@ -15,7 +15,6 @@
 #include <face_daemon_proto.h>
 
 #include <stdlib.h>
-#include <endian.h>
 
 #include "DebugNetwork.h"
 #include "TeleWrapper.h"
@@ -337,8 +336,8 @@
         cameraWrapper.sftConfig.clamp_feature_rect = true;
         cameraWrapper.sftConfig.doTrackPerFrame = 1;
         //cameraWrapper.sftConfig.license_str = g_stface_license_str;
-        cameraWrapper.sftConfig.visionConeAngle = 35.0f;
-        cameraWrapper.sftConfig.score_min = 0.2f;
+        cameraWrapper.sftConfig.visionConeAngle = 30.0f;
+        cameraWrapper.sftConfig.score_min = 0.4f;
     }
 
 	cameraWrapper.fontPath = "/data/msyh.ttc";
diff --git a/VisitFace/RtspNativeCodec/app/src/main/cpp/cpu_sched_test.cpp b/VisitFace/RtspNativeCodec/app/src/main/cpp/cpu_sched_test.cpp
index 5568ac2..47ffe6c 100644
--- a/VisitFace/RtspNativeCodec/app/src/main/cpp/cpu_sched_test.cpp
+++ b/VisitFace/RtspNativeCodec/app/src/main/cpp/cpu_sched_test.cpp
@@ -32,16 +32,22 @@
 	//CPU_CLR(0x0004, &mask);
 	//CPU_CLR(0x0005, &mask);
 
+	CPU_SET(0x0000, &mask);
+	CPU_SET(0x0001, &mask);
+	CPU_SET(0x0002, &mask);
+	CPU_SET(0x0003, &mask);
+	CPU_SET(0x0004, &mask);
+	CPU_SET(0x0005, &mask);
+
+	if (sched_setaffinity(0, sizeof(mask), &mask) == -1)
+	{
+		LOG_ERROR << "warning: could not set CPU affinity" << LOG_ENDL;
+	}
+
 	for(int i= 0; i< num; i++)
 	{
 		LOG_ERROR << "cpu " << i <<": " << CPU_ISSET(i, &mask) <<LOG_ENDL;
 	}
-
-    //CPU_SET(id, &mask);
-    if (sched_setaffinity(0, sizeof(mask), &mask) == -1)
-    {
-		LOG_ERROR << "warning: could not set CPU affinity" << LOG_ENDL;
-    }
 }
 
 void cpu_sched()
diff --git a/VisitFace/RtspNativeCodec/app/src/main/java/com/example/nativecodec/NativeCodec.java b/VisitFace/RtspNativeCodec/app/src/main/java/com/example/nativecodec/NativeCodec.java
index 400dadc..0801cfe 100644
--- a/VisitFace/RtspNativeCodec/app/src/main/java/com/example/nativecodec/NativeCodec.java
+++ b/VisitFace/RtspNativeCodec/app/src/main/java/com/example/nativecodec/NativeCodec.java
@@ -46,6 +46,7 @@
 import android.widget.TextView;
 
 import java.io.BufferedReader;
+import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.nio.ByteBuffer;
@@ -85,6 +86,13 @@
         setContentView(R.layout.main);
         ThisActivity = this;
 
+        try {
+            Process su = Runtime.getRuntime().exec("su");
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        //Runtime.getRuntime().exec(new String[]{"/system/bin/su","-c", cmd});
+
         RtspFaceNative.init();
         for (int i=0 ;i < 32; i+=2){
             RtspFaceNative.setFaceLabel(1, i, "涓枃鍚嶅瓧");
@@ -93,7 +101,7 @@
             RtspFaceNative.setFaceLabel(2, i+1, "abcd");
         }
 
-        RtspFaceNative.setLocalIP("192.168.1.75");
+        RtspFaceNative.setLocalIP("192.168.1.82");
 
         mGLView1 = (MyGLSurfaceView) findViewById(R.id.glsurfaceview1);
 
@@ -288,7 +296,7 @@
                         //mCreated = RtspFaceNative.createPlayer(1, "rtsp://admin:admin@192.168.1.188:554/cam/realmonitor?channel=1&subtype=2");
                         mCreated = RtspFaceNative.createPlayer(1, "rtsp://admin:admin12345@192.168.1.202:554/h264/ch1/main/av_stream");
                         //mCreated = RtspFaceNative.createPlayer(2, "rtsp://Admin:1234@192.168.1.22/h264");
-                        mCreated = RtspFaceNative.createPlayer(2, "rtsp://admin:a1234567@192.168.1.201:554/h264/ch1/main/av_stream");
+                        //mCreated = RtspFaceNative.createPlayer(2, "rtsp://admin:a1234567@192.168.1.201:554/h264/ch1/main/av_stream");
                         //mCreated = createPlayer(1, "rtsp://192.168.1.56:8554");
 
                         //byte[] arr = new byte[5];

--
Gitblit v1.8.0