From 9e5babf9db52e64bdae60137be7696e56241fca6 Mon Sep 17 00:00:00 2001 From: xingzilong <xingzilong@454eff88-639b-444f-9e54-f578c98de674> Date: 星期五, 18 八月 2017 18:12:17 +0800 Subject: [PATCH] H264 NALU解析 并在RTSPServer判断 --- VisitFace/RtspNativeCodec/app/src/main/cpp/FaceCache.h | 38 ++++++++++++++++++++++++++++++++++++-- 1 files changed, 36 insertions(+), 2 deletions(-) diff --git a/VisitFace/RtspNativeCodec/app/src/main/cpp/FaceCache.h b/VisitFace/RtspNativeCodec/app/src/main/cpp/FaceCache.h index 710298c..917fc08 100644 --- a/VisitFace/RtspNativeCodec/app/src/main/cpp/FaceCache.h +++ b/VisitFace/RtspNativeCodec/app/src/main/cpp/FaceCache.h @@ -4,15 +4,18 @@ #include <PipeLine.h> #include <vector> +#define FACECACHEFORPLBG_RESULT_BUFFSIZE (1920 * 1080 * 2) + struct NativeImgIdx { + int st_track_id; int offset; int size; int type; int width; int height; - NativeImgIdx() : offset(0), size(0), type(0), width(0), height(0) + NativeImgIdx() : st_track_id(-1), offset(0), size(0), type(0), width(0), height(0) {} operator std::string() const; @@ -32,7 +35,8 @@ // returns count of face int cachePm(const PipeMaterial& pm); - + size_t getFaceCount(const PipeMaterial& pm) const; + bool getFaceListPb(uint8_t* buffer, size_t& buffMaxSize); bool getFaceListImage(std::vector<NativeImgIdx>& imgIdxes, uint8_t* buffImg, size_t& buffImgMaxSize); @@ -41,4 +45,34 @@ void* _ctx; }; + +class FaceCacheForPLBG +{ +public: + + FaceCacheForPLBG(); + ~FaceCacheForPLBG(); + + // returns count of face + int cachePm(const PipeMaterial& pm); + size_t getFaceCount(const PipeMaterial& pm) const; + + bool getFaceListPb(uint8_t* buffer, size_t& buffMaxSize); + uint8_t* getFaceListPb(size_t& buffSize) + { + buffSize = FACECACHEFORPLBG_RESULT_BUFFSIZE; + if (!getFaceListPb(resultBuffer, buffSize)) + return nullptr; + return resultBuffer;//#todo to cpp + } + + bool getFaceListImage(std::vector<NativeImgIdx>& imgIdxes, uint8_t* buffImg, size_t& buffImgMaxSize); + uint8_t* getFaceListImage(size_t& buffSize); + + +private: + void* _ctx; + uint8_t* resultBuffer; +}; + #endif -- Gitblit v1.8.0