houxiao
2017-08-16 a188ad2e23ef190c8a044b17bc467fa3e2ae0ca5
VisitFace/RtspNativeCodec/app/src/main/cpp/FaceCache.h
@@ -4,13 +4,21 @@
#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() : st_track_id(-1), offset(0), size(0), type(0), width(0), height(0)
   {}
   operator std::string() const;
};
class FaceCache
@@ -27,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);
@@ -36,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