houxiao
2017-08-17 2b43077d967c28fe99e1ff2b99f19e1433c710d9
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