#ifndef __FaceCache_H__ #define __FaceCache_H__ #include #include 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 { public: #ifdef USE_ST_SDK FaceCache(); ~FaceCache(); #else FaceCache() : _ctx(nullptr) {} ~FaceCache() {} #endif // 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& imgIdxes, uint8_t* buffImg, size_t& buffImgMaxSize); private: 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); bool getFaceListImage(std::vector& imgIdxes, uint8_t* buffImg, size_t& buffImgMaxSize); private: void* _ctx; }; #endif