huago-corrcet_tools/HuaGoCorrect/ImageMatQueue.h

54 lines
984 B
C++

#pragma once
#include <thread>
#include <mutex>
#include <opencv2\opencv.hpp>
#include "JpegBuffer.h"
#include <queue>
#include "PublicFunc.h"
#include "BlockingQueue.h"
class ImageMatQueue
{
public:
ImageMatQueue(void);
virtual ~ImageMatQueue(void);
void pushMat(JpegBuffer& data);
std::string popMat(int num);
bool empty();
bool valid();
void clear();
void run();
int getMatSum();
bool isScanning();
void SetScanFlag(bool scannning) { bScanning = bScanning; }
void SetFilePath(std::string csFilePath)
{
csPath = csFilePath;
}
std::string GetFilePath()
{
return csPath;
}
public:
int pixType;
void setmultioutputR(bool canoutput=false);
void SetDevModel(int dev=-1);
std::string csPath;
private:
void proc();
BlockingQueue<std::string> m_images; //!< ÒÑ´¦ÀíͼÏñ¶ÓÁÐ
BlockingQueue<JpegBuffer> m_pImages;
std::thread m_threadProc;
volatile bool bRun;
bool can_multi_outputR;
int DevModel;
volatile bool bScanning;
volatile int imageremain;
};