From 72481c0ede11920945d886ff9ad4be4b266863a3 Mon Sep 17 00:00:00 2001
From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期四, 20 七月 2017 20:00:08 +0800
Subject: [PATCH] lib

---
 VisitFace/RtspNativeCodec/app/src/main/cpp/cpu_sched_test.cpp              |   20 ++
 VisitFace/RtspNativeCodec/app/libs/freetype/lib/armeabi-v7a/libfreetype.la |   41 +++++
 VisitFace/RtspNativeCodec/app/src/main/cpp/FaceCacheForPLBG.cpp            |  372 +++++++++++++++++++++++-----------------------
 VisitFace/RtspNativeCodec/app/libs/freetype/lib/armeabi-v7a/libfreetype.a  |    0 
 VisitFace/RtspNativeCodec/app/src/main/cpp/cpu_sched_test.h                |    4 
 VisitFace/RtspNativeCodec/app/libs/freetype/lib/armeabi-v7a/libfreetype.so |    0 
 VisitFace/RtspNativeCodec/app/app.iml                                      |   16 +-
 7 files changed, 256 insertions(+), 197 deletions(-)

diff --git a/VisitFace/RtspNativeCodec/app/app.iml b/VisitFace/RtspNativeCodec/app/app.iml
index 4e99529..ddf393d 100644
--- a/VisitFace/RtspNativeCodec/app/app.iml
+++ b/VisitFace/RtspNativeCodec/app/app.iml
@@ -83,14 +83,6 @@
       <sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
       <sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
       <sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
       <sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
@@ -99,6 +91,14 @@
       <sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
       <sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
       <sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
diff --git a/VisitFace/RtspNativeCodec/app/libs/freetype/lib/armeabi-v7a/libfreetype.a b/VisitFace/RtspNativeCodec/app/libs/freetype/lib/armeabi-v7a/libfreetype.a
new file mode 100644
index 0000000..4889779
--- /dev/null
+++ b/VisitFace/RtspNativeCodec/app/libs/freetype/lib/armeabi-v7a/libfreetype.a
Binary files differ
diff --git a/VisitFace/RtspNativeCodec/app/libs/freetype/lib/armeabi-v7a/libfreetype.la b/VisitFace/RtspNativeCodec/app/libs/freetype/lib/armeabi-v7a/libfreetype.la
new file mode 100644
index 0000000..d38ed33
--- /dev/null
+++ b/VisitFace/RtspNativeCodec/app/libs/freetype/lib/armeabi-v7a/libfreetype.la
@@ -0,0 +1,41 @@
+# libfreetype.la - a libtool library file
+# Generated by libtool (GNU libtool) 2.4.6
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libfreetype.so'
+
+# Names of this library.
+library_names='libfreetype.so'
+
+# The name of the static archive.
+old_library='libfreetype.a'
+
+# Linker flags that cannot go in dependency_libs.
+inherited_linker_flags=''
+
+# Libraries that this one depends upon.
+dependency_libs=' -lz'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for libfreetype.
+current=20
+age=14
+revision=0
+
+# Is this an already installed library?
+installed=yes
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/opt/freetype-2.8/build/lib'
diff --git a/VisitFace/RtspNativeCodec/app/libs/freetype/lib/armeabi-v7a/libfreetype.so b/VisitFace/RtspNativeCodec/app/libs/freetype/lib/armeabi-v7a/libfreetype.so
new file mode 100644
index 0000000..b55bfce
--- /dev/null
+++ b/VisitFace/RtspNativeCodec/app/libs/freetype/lib/armeabi-v7a/libfreetype.so
Binary files differ
diff --git a/VisitFace/RtspNativeCodec/app/src/main/cpp/FaceCacheForPLBG.cpp b/VisitFace/RtspNativeCodec/app/src/main/cpp/FaceCacheForPLBG.cpp
index 9bac863..9c1fc23 100644
--- a/VisitFace/RtspNativeCodec/app/src/main/cpp/FaceCacheForPLBG.cpp
+++ b/VisitFace/RtspNativeCodec/app/src/main/cpp/FaceCacheForPLBG.cpp
@@ -18,134 +18,134 @@
 
 struct OutRGBBufferWrapper
 {
-    uint8_t* buffer;
-    size_t buffSize;
+	uint8_t* buffer;
+	size_t buffSize;
 
-    OutRGBBufferWrapper() : buffer(nullptr), buffSize(0)
-    { }
+	OutRGBBufferWrapper() : buffer(nullptr), buffSize(0)
+	{ }
 
-    OutRGBBufferWrapper(uint8_t* _buffer, size_t _buffSize) : buffer(_buffer), buffSize(_buffSize)
-    { }
+	OutRGBBufferWrapper(uint8_t* _buffer, size_t _buffSize) : buffer(_buffer), buffSize(_buffSize)
+	{ }
 };
 
 struct FcPmBreackerContextPLBG
 {
-    plbg_output_vec_t lastOutputs;
-    std::vector<OutRGBBufferWrapper> lastOutputsRGBBufs;
+	plbg_output_vec_t lastOutputs;
+	std::vector<OutRGBBufferWrapper> lastOutputsRGBBufs;
 
-    uint8_t frameYUV[1920*1080*4];
-    size_t frameYUVSize;
-    uint8_t frameRGB[1920*1080*4];
-    size_t frameRGBSize;
-    bool frameTruncated;
+	uint8_t frameYUV[1920*1080*4];
+	size_t frameYUVSize;
+	uint8_t frameRGB[1920*1080*4];
+	size_t frameRGBSize;
+	bool frameTruncated;
 
-    FcPmBreackerContextPLBG() :
-            lastOutputs(), lastOutputsRGBBufs(), frameYUV(), frameYUVSize(0), frameRGB(),frameRGBSize(0),
-            frameTruncated(false)
-    {}
+	FcPmBreackerContextPLBG() :
+			lastOutputs(), lastOutputsRGBBufs(), frameYUV(), frameYUVSize(0), frameRGB(),frameRGBSize(0),
+			frameTruncated(false)
+	{}
 
-    void reset()
-    {
-        lastOutputs.clear();
-        lastOutputsRGBBufs.clear();
-        frameYUVSize = 0;
-        frameRGBSize = 0;
-        frameTruncated = false;
-    }
+	void reset()
+	{
+		lastOutputs.clear();
+		lastOutputsRGBBufs.clear();
+		frameYUVSize = 0;
+		frameRGBSize = 0;
+		frameTruncated = false;
+	}
 
-    void copy_data()
-    {
-        uint8_t* bufPtr = frameYUV;
-        for (plbg_output_vec_t::iterator iter = lastOutputs.begin(); iter != lastOutputs.end(); ++iter)
-        {
-            const uint8_t* originBuf = iter->croppedData;
-            if (originBuf == nullptr || iter->croppedDataSize == 0)
-                continue;
+	void copy_data()
+	{
+		uint8_t* bufPtr = frameYUV;
+		for (plbg_output_vec_t::iterator iter = lastOutputs.begin(); iter != lastOutputs.end(); ++iter)
+		{
+			const uint8_t* originBuf = iter->croppedData;
+			if (originBuf == nullptr || iter->croppedDataSize == 0)
+				continue;
 
-            if (sizeof(frameYUV) - (bufPtr - frameYUV) < iter->croppedDataSize)
-            {
-                frameTruncated = true;
-                LOG_WARN << "yuv buffer truncated" << LOG_ENDL;
-                break;
-            }
+			if (sizeof(frameYUV) - (bufPtr - frameYUV) < iter->croppedDataSize)
+			{
+				frameTruncated = true;
+				LOG_WARN << "yuv buffer truncated" << LOG_ENDL;
+				break;
+			}
 
-            iter->croppedData = bufPtr;
-            memcpy(bufPtr, originBuf, iter->croppedDataSize);
-            bufPtr += iter->croppedDataSize;
-            frameYUVSize += iter->croppedDataSize;
-        }
-    }
+			iter->croppedData = bufPtr;
+			memcpy(bufPtr, originBuf, iter->croppedDataSize);
+			bufPtr += iter->croppedDataSize;
+			frameYUVSize += iter->croppedDataSize;
+		}
+	}
 
-    void convert_data()
-    {
-        uint8_t* bufPtr = frameRGB;
-        for (plbg_output_vec_t::iterator iter = lastOutputs.begin(); iter != lastOutputs.end(); ++iter)
-        {
-            if (iter->croppedData == nullptr || iter->croppedDataSize == 0)
-            {
-                OutRGBBufferWrapper bw;
-                lastOutputsRGBBufs.push_back(bw);
-                continue;
-            }
+	void convert_data()
+	{
+		uint8_t* bufPtr = frameRGB;
+		for (plbg_output_vec_t::iterator iter = lastOutputs.begin(); iter != lastOutputs.end(); ++iter)
+		{
+			if (iter->croppedData == nullptr || iter->croppedDataSize == 0)
+			{
+				OutRGBBufferWrapper bw;
+				lastOutputsRGBBufs.push_back(bw);
+				continue;
+			}
 
-            OutRGBBufferWrapper bw;
-            bw.buffer = bufPtr;
-            bw.buffSize = iter->rectInOriginFrame.rect.width() * iter->rectInOriginFrame.rect.height() * 2; //RGB565
-            if (sizeof(frameRGB) - (bufPtr - frameRGB) < bw.buffSize)
-            {
-                frameTruncated = true;
-                OutRGBBufferWrapper bw;
-                lastOutputsRGBBufs.push_back(bw);
-                LOG_WARN << "rgb buffer truncated" << LOG_ENDL;
-                continue;
-            }
+			OutRGBBufferWrapper bw;
+			bw.buffer = bufPtr;
+			bw.buffSize = iter->rectInOriginFrame.rect.width() * iter->rectInOriginFrame.rect.height() * 2; //RGB565
+			if (sizeof(frameRGB) - (bufPtr - frameRGB) < bw.buffSize)
+			{
+				frameTruncated = true;
+				OutRGBBufferWrapper bw;
+				lastOutputsRGBBufs.push_back(bw);
+				LOG_WARN << "rgb buffer truncated" << LOG_ENDL;
+				continue;
+			}
 
-            convertYUV420ToRGB565(*iter, bw.buffer);
+			convertYUV420ToRGB565(*iter, bw.buffer);
 
-            lastOutputsRGBBufs.push_back(bw);
-            bufPtr += bw.buffSize;
-            frameRGBSize += bw.buffSize;
-        }
-    }
+			lastOutputsRGBBufs.push_back(bw);
+			bufPtr += bw.buffSize;
+			frameRGBSize += bw.buffSize;
+		}
+	}
 
 private:
-    bool convertYUV420ToRGB565(const PLBG_Output& out, uint8_t* rgbBuff)
-    {
-        int src_height = out.rectInOriginFrame.rect.height();
-        int src_width = out.rectInOriginFrame.rect.width();
-        const uint8* src_y = (const uint8*)(out.croppedData);
-        const uint8* src_u = (const uint8*)(src_y + (src_height * src_width));
-        const uint8* src_v = (const uint8*)(src_u + (src_height * src_width / 4));
+	bool convertYUV420ToRGB565(const PLBG_Output& out, uint8_t* rgbBuff)
+	{
+		int src_height = out.rectInOriginFrame.rect.height();
+		int src_width = out.rectInOriginFrame.rect.width();
+		const uint8* src_y = (const uint8*)(out.croppedData);
+		const uint8* src_u = (const uint8*)(src_y + (src_height * src_width));
+		const uint8* src_v = (const uint8*)(src_u + (src_height * src_width / 4));
 
-        if (out.originframe->type == MB_Frame::MBFT_YUV420)
-        {
-            libyuv::I420ToRGB565(src_y, src_width,
-                                 src_v, MH_SUBSAMPLE1(src_width, 2),
-                                 src_u, MH_SUBSAMPLE1(src_width, 2),
-                                 rgbBuff, 2 * src_width,
-                                 src_width, src_height);
-        }
-        else if (out.originframe->type == MB_Frame::MBFT_NV12)
-        {
-            libyuv::NV12ToRGB565(src_y, src_width,
-                                 src_u, src_width,
-                                 rgbBuff, 2 * src_width,
-                                 src_width, src_height);
-        }
-        else
-            return false;
+		if (out.originframe->type == MB_Frame::MBFT_YUV420)
+		{
+			libyuv::I420ToRGB565(src_y, src_width,
+								 src_v, MH_SUBSAMPLE1(src_width, 2),
+								 src_u, MH_SUBSAMPLE1(src_width, 2),
+								 rgbBuff, 2 * src_width,
+								 src_width, src_height);
+		}
+		else if (out.originframe->type == MB_Frame::MBFT_NV12)
+		{
+			libyuv::NV12ToRGB565(src_y, src_width,
+								 src_u, src_width,
+								 rgbBuff, 2 * src_width,
+								 src_width, src_height);
+		}
+		else
+			return false;
 
-        //{
-        //    static size_t f = 0;
-        //    char fname[50];
-        //    sprintf(fname, "/sdcard/face-%u-w%u-h%u.rgb", ++f, src_width, src_height);
-        //    FILE *pFile = fopen(fname, "wb");
-        //    fwrite(rgbBuff, 1, src_height * src_width * 2, pFile);
-        //    fclose(pFile);
-        //    if (f > 20)exit(0);
-        //}
-        return true;
-    }
+		//{
+		//	static size_t f = 0;
+		//	char fname[50];
+		//	sprintf(fname, "/sdcard/face-%u-w%u-h%u.rgb", ++f, src_width, src_height);
+		//	FILE *pFile = fopen(fname, "wb");
+		//	fwrite(rgbBuff, 1, src_height * src_width * 2, pFile);
+		//	fclose(pFile);
+		//	if (f > 20)exit(0);
+		//}
+		return true;
+	}
 };
 
 FaceCacheForPLBG::FaceCacheForPLBG() : _ctx(new FcPmBreackerContextPLBG)
@@ -155,118 +155,118 @@
 
 FaceCacheForPLBG::~FaceCacheForPLBG()
 {
-    delete (FcPmBreackerContextPLBG*)_ctx;
+	delete (FcPmBreackerContextPLBG*)_ctx;
 }
 
 
 // returns count of face
 int FaceCacheForPLBG::cachePm(const PipeMaterial& pm)
 {
-    FcPmBreackerContextPLBG& ctx(*(FcPmBreackerContextPLBG*)_ctx);
-    ctx.reset();
+	FcPmBreackerContextPLBG& ctx(*(FcPmBreackerContextPLBG*)_ctx);
+	ctx.reset();
 
-    plbg_output_vec_t* plbgOut = (plbg_output_vec_t*)pm.buffer;
-    if (plbgOut->size() == 0)
-        return 0;
+	plbg_output_vec_t* plbgOut = (plbg_output_vec_t*)pm.buffer;
+	if (plbgOut->size() == 0)
+		return 0;
 
-    ctx.lastOutputs = *plbgOut;
-    ctx.copy_data();
-    ctx.convert_data();
+	ctx.lastOutputs = *plbgOut;
+	ctx.copy_data();
+	ctx.convert_data();
 
-    return  ctx.lastOutputs.size();
+	return  ctx.lastOutputs.size();
 }
 
 size_t FaceCacheForPLBG::getFaceCount(const PipeMaterial& pm) const
 {
-    plbg_output_vec_t* plbgOut = (plbg_output_vec_t*)pm.buffer;
-    return plbgOut->size();
+	plbg_output_vec_t* plbgOut = (plbg_output_vec_t*)pm.buffer;
+	return plbgOut->size();
 }
 
 
 bool FaceCacheForPLBG::getFaceListPb(uint8_t* buffer, size_t& buffMaxSize)
 {
-    FcPmBreackerContextPLBG& ctx(*(FcPmBreackerContextPLBG*)_ctx);
-    if (ctx.frameTruncated)
-    {
-        LOG_WARN << "ctx buffer truncated" << LOG_ENDL;
-        return false;
-    }
+	FcPmBreackerContextPLBG& ctx(*(FcPmBreackerContextPLBG*)_ctx);
+	if (ctx.frameTruncated)
+	{
+		LOG_WARN << "ctx buffer truncated" << LOG_ENDL;
+		return false;
+	}
 
-    PbFaceList pbFaceList;
-    pbFaceList.set_magic(pbFaceList.magic());
-    pbFaceList.set_image_count(ctx.lastOutputs.size());
-    pbFaceList.set_src_width(0);
-    pbFaceList.set_src_height(0);
+	PbFaceList pbFaceList;
+	pbFaceList.set_magic(pbFaceList.magic());
+	pbFaceList.set_image_count(ctx.lastOutputs.size());
+	pbFaceList.set_src_width(0);
+	pbFaceList.set_src_height(0);
 
-    for (int i = 0; i < ctx.lastOutputs.size(); i++)
-    {
-        PbFaceList_FaceListImage &pbFaceListImage(*(pbFaceList.add_images()));
-        pbFaceListImage.set_idx(i);
-        pbFaceListImage.set_st_track_id((int)(int64_t)(ctx.lastOutputs[i].rectInOriginFrame.userData));
-        pbFaceListImage.set_size(ctx.lastOutputs[i].croppedDataSize);
-        pbFaceListImage.set_type(PbFaceList_FaceListImage_ImageType_MBFT_NV12);
-        pbFaceListImage.set_width(ctx.lastOutputs[i].rectInOriginFrame.rect.width());
-        pbFaceListImage.set_height(ctx.lastOutputs[i].rectInOriginFrame.rect.height());
-        pbFaceListImage.set_top_left_x(ctx.lastOutputs[i].rectInOriginFrame.rect.leftTop.X);
-        pbFaceListImage.set_top_left_y(ctx.lastOutputs[i].rectInOriginFrame.rect.leftTop.Y);
+	for (int i = 0; i < ctx.lastOutputs.size(); i++)
+	{
+		PbFaceList_FaceListImage &pbFaceListImage(*(pbFaceList.add_images()));
+		pbFaceListImage.set_idx(i);
+		pbFaceListImage.set_st_track_id((int)(int64_t)(ctx.lastOutputs[i].rectInOriginFrame.userData));
+		pbFaceListImage.set_size(ctx.lastOutputs[i].croppedDataSize);
+		pbFaceListImage.set_type(PbFaceList_FaceListImage_ImageType_MBFT_NV12);
+		pbFaceListImage.set_width(ctx.lastOutputs[i].rectInOriginFrame.rect.width());
+		pbFaceListImage.set_height(ctx.lastOutputs[i].rectInOriginFrame.rect.height());
+		pbFaceListImage.set_top_left_x(ctx.lastOutputs[i].rectInOriginFrame.rect.leftTop.X);
+		pbFaceListImage.set_top_left_y(ctx.lastOutputs[i].rectInOriginFrame.rect.leftTop.Y);
 
-        pbFaceListImage.add_img(ctx.lastOutputs[i].croppedData, ctx.lastOutputs[i].croppedDataSize);
+		pbFaceListImage.add_img(ctx.lastOutputs[i].croppedData, ctx.lastOutputs[i].croppedDataSize);
 
-        //LOGP(ERROR, "bg output=%f", ctx.lastOutputs[i].score);
+		//LOGP(ERROR, "bg output=%f", ctx.lastOutputs[i].score);
 
-        //{
-        //    static size_t f = 0;
-        //    char fname[50];
-        //    sprintf(fname, "/sdcard/face-%u-w%u-h%u.yuv420", ++f, ctx.lastOutputs[i].rectInOriginFrame.width(), ctx.lastOutputs[i].rectInOriginFrame.height());
-        //    FILE *pFile = fopen(fname, "wb");
-        //    fwrite(ctx.lastOutputs[i].croppedData, 1, ctx.lastOutputs[i].croppedDataSize, pFile);
-        //    fclose(pFile);
-        //    if (f > 10)exit(0);
-        //}
-    }
+		//{
+		//	static size_t f = 0;
+		//	char fname[50];
+		//	sprintf(fname, "/sdcard/face-%u-w%u-h%u.yuv420", ++f, ctx.lastOutputs[i].rectInOriginFrame.width(), ctx.lastOutputs[i].rectInOriginFrame.height());
+		//	FILE *pFile = fopen(fname, "wb");
+		//	fwrite(ctx.lastOutputs[i].croppedData, 1, ctx.lastOutputs[i].croppedDataSize, pFile);
+		//	fclose(pFile);
+		//	if (f > 10)exit(0);
+		//}
+	}
 
-    size_t s = pbFaceList.ByteSize();
-    buffMaxSize = std::min(s, buffMaxSize);
-    pbFaceList.SerializeToArray(buffer, buffMaxSize);
+	size_t s = pbFaceList.ByteSize();
+	buffMaxSize = std::min(s, buffMaxSize);
+	pbFaceList.SerializeToArray(buffer, buffMaxSize);
 
-    return buffMaxSize > 0;
+	return buffMaxSize > 0;
 }
 
 
 bool FaceCacheForPLBG::getFaceListImage(std::vector<NativeImgIdx>& imgIdxes, uint8_t* buffImg, size_t& buffImgMaxSize)
 {
-    FcPmBreackerContextPLBG& ctx(*(FcPmBreackerContextPLBG*)_ctx);
-    if (ctx.frameTruncated)
-    {
-        LOG_WARN << "ctx buffer truncated" << LOG_ENDL;
-        return false;
-    }
-    if (buffImgMaxSize < ctx.frameRGBSize)
-    {
-        LOG_WARN << "buffImg truncated" << LOG_ENDL;
-        return false;
-    }
+	FcPmBreackerContextPLBG& ctx(*(FcPmBreackerContextPLBG*)_ctx);
+	if (ctx.frameTruncated)
+	{
+		LOG_WARN << "ctx buffer truncated" << LOG_ENDL;
+		return false;
+	}
+	if (buffImgMaxSize < ctx.frameRGBSize)
+	{
+		LOG_WARN << "buffImg truncated" << LOG_ENDL;
+		return false;
+	}
 
-    imgIdxes.clear();
-    size_t totalSize = 0;
+	imgIdxes.clear();
+	size_t totalSize = 0;
 
-    for (int i = 0; i < ctx.lastOutputs.size(); i++)
-    {
-        NativeImgIdx imgidx;
-        imgidx.st_track_id =  (int)(int64_t)(ctx.lastOutputs[i].rectInOriginFrame.userData);
-        imgidx.offset = ctx.lastOutputsRGBBufs[i].buffer - ctx.frameRGB;
-        imgidx.size = ctx.lastOutputsRGBBufs[i].buffSize;
-        imgidx.type = MB_Frame::MBFT_RGB565;
-        imgidx.width = ctx.lastOutputs[i].rectInOriginFrame.rect.width();
-        imgidx.height = ctx.lastOutputs[i].rectInOriginFrame.rect.height();
+	for (int i = 0; i < ctx.lastOutputs.size(); i++)
+	{
+		NativeImgIdx imgidx;
+		imgidx.st_track_id =  (int)(int64_t)(ctx.lastOutputs[i].rectInOriginFrame.userData);
+		imgidx.offset = ctx.lastOutputsRGBBufs[i].buffer - ctx.frameRGB;
+		imgidx.size = ctx.lastOutputsRGBBufs[i].buffSize;
+		imgidx.type = MB_Frame::MBFT_RGB565;
+		imgidx.width = ctx.lastOutputs[i].rectInOriginFrame.rect.width();
+		imgidx.height = ctx.lastOutputs[i].rectInOriginFrame.rect.height();
 
-        imgIdxes.push_back(imgidx);
-        totalSize += ctx.lastOutputsRGBBufs[i].buffSize;
-    }
+		imgIdxes.push_back(imgidx);
+		totalSize += ctx.lastOutputsRGBBufs[i].buffSize;
+	}
 
-    memcpy(buffImg, ctx.frameRGB, totalSize);
-    buffImgMaxSize = totalSize;
+	memcpy(buffImg, ctx.frameRGB, totalSize);
+	buffImgMaxSize = totalSize;
 
-    return  true;
+	return  true;
 }
 
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 164c964..cd4bd17 100644
--- a/VisitFace/RtspNativeCodec/app/src/main/cpp/cpu_sched_test.cpp
+++ b/VisitFace/RtspNativeCodec/app/src/main/cpp/cpu_sched_test.cpp
@@ -8,15 +8,22 @@
 #include<sys/sysinfo.h>
 #include<unistd.h>
 
-// setup the cpu set of this program to run on
-void set_cpu(int id)
+// setup the cpu set of this program (task) to run on
+void set_task_cpu(int id)
 {
+	int num = sysconf(_SC_NPROCESSORS_CONF);
+
     cpu_set_t mask;
     CPU_ZERO(&mask);
     if (sched_getaffinity(0, sizeof(mask), &mask) == -1)
     {
         fprintf(stderr, "warning: could not get CPU affinity/n");
     }
+
+	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)
@@ -27,5 +34,12 @@
 
 void cpu_sched()
 {
-//set_cpu(0x0003);
+	//set_task_cpu(0x0003);
+}
+
+void pthread_cpu_sched(const pthread_attr_t *attr)
+{
+	cpu_set_t mask;
+	CPU_ZERO(&mask);
+
 }
diff --git a/VisitFace/RtspNativeCodec/app/src/main/cpp/cpu_sched_test.h b/VisitFace/RtspNativeCodec/app/src/main/cpp/cpu_sched_test.h
index 76c81e3..5138419 100644
--- a/VisitFace/RtspNativeCodec/app/src/main/cpp/cpu_sched_test.h
+++ b/VisitFace/RtspNativeCodec/app/src/main/cpp/cpu_sched_test.h
@@ -1,6 +1,10 @@
 #ifndef _CPU_SCHED_TEST_H_
 #define _CPU_SCHED_TEST_H_
 
+#include <pthread.h>
+
 void cpu_sched();
 
+void pthread_cpu_sched(const pthread_attr_t *attr);
+
 #endif

--
Gitblit v1.8.0