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