#ifndef __FaceCache_H__
|
#define __FaceCache_H__
|
|
#include <PipeLine.h>
|
#include <vector>
|
|
struct NativeImgIdx
|
{
|
int offset;
|
int size;
|
int type;
|
int width;
|
int height;
|
|
NativeImgIdx() : 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<NativeImgIdx>& 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<NativeImgIdx>& imgIdxes, uint8_t* buffImg, size_t& buffImgMaxSize);
|
|
private:
|
void* _ctx;
|
};
|
|
#endif
|