Skip to content

Commit

Permalink
Convert GB 18030 to UTF-8
Browse files Browse the repository at this point in the history
iconv -f GB18030 -t UTF-8
  • Loading branch information
marktsuchida committed Jun 19, 2024
1 parent c397e1b commit eb9d96d
Show file tree
Hide file tree
Showing 10 changed files with 337 additions and 337 deletions.
216 changes: 108 additions & 108 deletions DeviceAdapters/DahengGalaxy/ClassGalaxy.cpp

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions DeviceAdapters/DahengGalaxy/ClassGalaxy.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
//#include "DxImageProc.h"
//---------------------------------------------------------------------------------
/**
\brief 用户继承采集事件处理类,回调函数,重点关注 类中有回调类,供采集图像
\brief 用户继承采集事件处理类,回调函数,重点关注 类中有回调类,供采集图像
*/
//----------------------------------------------------------------------------------
#include <sstream>
Expand All @@ -37,7 +37,7 @@ class MODULE_API ClassGalaxy : public CCameraBase<ClassGalaxy>
public:

ClassGalaxy();
//函数的意义-析构函数 delete时,启用;
//函数的意义-析构函数 delete时,启用;
~ClassGalaxy(void);

// MMDevice API
Expand Down Expand Up @@ -93,7 +93,7 @@ class MODULE_API ClassGalaxy : public CCameraBase<ClassGalaxy>
//void UpdateTemperature();

/**
* Starts continuous acquisition. live模式,但是以下函数没有写也会开启live模式,开启该函数之后,软件会卡死,内部有函数
* Starts continuous acquisition. live模式,但是以下函数没有写也会开启live模式,开启该函数之后,软件会卡死,内部有函数
*/
int StartSequenceAcquisition(long numImages, double interval_ms, bool stopOnOverflow) final ;
int StartSequenceAcquisition(double interval_ms) final;
Expand Down Expand Up @@ -143,10 +143,10 @@ class MODULE_API ClassGalaxy : public CCameraBase<ClassGalaxy>
int OnTriggerDelay(MM::PropertyBase* pProp, MM::ActionType eAct);

int OnTriggerFilterRaisingEdge(MM::PropertyBase* pProp, MM::ActionType eAct);
//为了实现在采集类中使用
//为了实现在采集类中使用
bool colorCamera_;
CGXFeatureControlPointer m_objFeatureControlPtr; ///< 属性控制器
//格式转换函数
CGXFeatureControlPointer m_objFeatureControlPtr; ///< 属性控制器
//格式转换函数
void RG8ToRGB24Packed(void* destbuffer, CImageDataPointer& objImageDataPointer);
void CoverRGB16ToRGBA16(unsigned short int* Desbuffer, unsigned short int* Srcbuffer);
void RG10ToRGB24Packed(void* destbuffer, CImageDataPointer& objImageDataPointer);
Expand Down Expand Up @@ -190,8 +190,8 @@ class MODULE_API ClassGalaxy : public CCameraBase<ClassGalaxy>
std::string TriggerDelay_;
std::string TriggerFilterRaisingEdge_;

BITMAPINFO* m_pBmpInfo; ///<BITMAPINFO 结构指针,显示图像时使用
char m_chBmpBuf[2048]; ///<BIMTAPINFO 存储缓冲区,m_pBmpInfo即指向此缓冲区
BITMAPINFO* m_pBmpInfo; ///<BITMAPINFO 结构指针,显示图像时使用
char m_chBmpBuf[2048]; ///<BIMTAPINFO 存储缓冲区,m_pBmpInfo即指向此缓冲区
void __ColorPrepareForShowImg();
void __UpdateBitmap(CImageDataPointer& objCImageDataPointer);
bool __IsCompatible(BITMAPINFO* pBmpInfo, uint64_t nWidth, uint64_t nHeight);
Expand All @@ -200,7 +200,7 @@ class MODULE_API ClassGalaxy : public CCameraBase<ClassGalaxy>
ImgBuffer img_;
bool initialized_;

//图像转换
//图像转换
CGXImageFormatConvertPointer TestFormatConvertPtr;

int64_t __GetStride(int64_t nWidth, bool bIsColor);
Expand All @@ -210,9 +210,9 @@ class MODULE_API ClassGalaxy : public CCameraBase<ClassGalaxy>
unsigned char* imgBuffer_2;
unsigned char* m_pImageBuffer;

CGXDevicePointer m_objDevicePtr; ///< 设备句柄
CGXStreamPointer m_objStreamPtr; ///< 设备流
CGXFeatureControlPointer m_objStreamFeatureControlPtr; ///< 流层控制器对象
CGXDevicePointer m_objDevicePtr; ///< 设备句柄
CGXStreamPointer m_objStreamPtr; ///< 设备流
CGXFeatureControlPointer m_objStreamFeatureControlPtr; ///< 流层控制器对象

bool m_bIsOpen = false;

Expand Down
104 changes: 52 additions & 52 deletions DeviceAdapters/Hikrobot/HikrobotCamera.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,21 +25,21 @@ static const char* g_PixelType_8bitBGR = "8bitBGR";



#define MONO_COMPONENTS 1 //mono8 占用1个组件,每个通道是1个组件
#define MONO_CONVERTED_DEPTH 8 // mono8占用8字节
#define MONO_IMAGE_BYTES_PERPIXEL 1 // 使用mono8的字节数
#define MONO_COMPONENTS 1 //mono8 占用1个组件,每个通道是1个组件
#define MONO_CONVERTED_DEPTH 8 // mono8占用8字节
#define MONO_IMAGE_BYTES_PERPIXEL 1 // 使用mono8的字节数
#define MONO_CONVERTED_FORMAT PixelType_Gvsp_Mono8


#define COLOR_COMPONENTS 4 //RGBA 占用4个组件,每个通道是1个组件
#define COLOR_CONVERTED_DEPTH 32 //RGBA 的字节数量
#define COLOR_IMAGE_BYTES_PERPIXEL 4 // 使用RGBA8的字节数
#define COLOR_CONVERTED_FORMAT PixelType_Gvsp_RGBA8_Packed //32位, 可能底层 CircularBuffer::InsertMultiChannel 限制 或者其他原因,导致 转换成RGB32异常,待分析
#define COLOR_COMPONENTS 4 //RGBA 占用4个组件,每个通道是1个组件
#define COLOR_CONVERTED_DEPTH 32 //RGBA 的字节数量
#define COLOR_IMAGE_BYTES_PERPIXEL 4 // 使用RGBA8的字节数
#define COLOR_CONVERTED_FORMAT PixelType_Gvsp_RGBA8_Packed //32位, 可能底层 CircularBuffer::InsertMultiChannel 限制 或者其他原因,导致 转换成RGB32异常,待分析


#if 0
/* 下面配置 pok */
#define COLOR_COMPONENTS 3 //RGB 每个通道是1个组件
/* 下面配置 pok */
#define COLOR_COMPONENTS 3 //RGB 每个通道是1个组件
#define COLOR_CONVERTED_DEPTH 24
#define COLOR_IMAGE_BYTES_PERPIXEL 3
#define COLOR_CONVERTED_FORMAT PixelType_Gvsp_RGB8_Packed
Expand Down Expand Up @@ -201,7 +201,7 @@ int HikrobotCamera::EnumDevice()
*/
void HikrobotCamera::GetName(char* name) const
{
CDeviceUtils::CopyLimitedString(name, g_HikrobotCameraDeviceName); //增加说明: 此处是插件的名字,具体相机序列号是需要 (GetProperty("SerialNumber", serialNumber);) 中选择的。 (basler也是同样的逻辑)
CDeviceUtils::CopyLimitedString(name, g_HikrobotCameraDeviceName); //增加说明: 此处是插件的名字,具体相机序列号是需要 (GetProperty("SerialNumber", serialNumber);) 中选择的。 (basler也是同样的逻辑)
}

/**
Expand Down Expand Up @@ -307,7 +307,7 @@ int HikrobotCamera::Initialize()
string strBasiceLog = " [ "+ strModeName + " " + strSerialNumber + " ] ";
SetLogBasicInfo(strBasiceLog);

sprintf_s(m_chDevID, sizeof(m_chDevID), " %s(%s) ", strModeName.c_str(), strSerialNumber.c_str()); //保存相机的序列号,型号信息
sprintf_s(m_chDevID, sizeof(m_chDevID), " %s(%s) ", strModeName.c_str(), strSerialNumber.c_str()); //保存相机的序列号,型号信息


//Sensor size
Expand Down Expand Up @@ -390,7 +390,7 @@ int HikrobotCamera::Initialize()
pAct = new CPropertyAction(this, &HikrobotCamera::OnTestPattern);
ret = CreateProperty("TestPattern", "NA", MM::String, false, pAct);
vector<string> TestPatternVals;
TestPatternVals.push_back("Off"); //参考basler,先把off放入vector; 在循环中放入off,应该也OK;
TestPatternVals.push_back("Off"); //参考basler,先把off放入vector; 在循环中放入off,应该也OK;
MVCC_ENUMENTRY Entry = { 0 };

for (unsigned int i = 0; i < stTestPattern.nSupportedNum; i++)
Expand Down Expand Up @@ -524,7 +524,7 @@ int HikrobotCamera::Initialize()
pAct = new CPropertyAction(this, &HikrobotCamera::OnSensorReadoutMode);
ret = CreateProperty("SensorReadoutMode", "NA", MM::String, false, pAct);
vector<string> vals;
// vals.push_back("Off"); // 海康相机无这个节点,不会走到这个分支中; 参考basler分支,basler无添加off节点
// vals.push_back("Off"); // 海康相机无这个节点,不会走到这个分支中; 参考basler分支,basler无添加off节点
MVCC_ENUMVALUE SensorReadoutMode = { 0 };
m_pCamera->GetEnumValue("SensorReadoutMode", &SensorReadoutMode);

Expand Down Expand Up @@ -874,10 +874,10 @@ int HikrobotCamera::SnapImage()
{

/*
basler在snapimage中调用的是 virtual void StartGrabbing( size_t maxImages, EGrabStrategy strategy = GrabStrategy_OneByOne, EGrabLoop grabLoopType = GrabLoop_ProvidedByUser );
这个接口的描述是:”Extends the StartGrabbing(EStrategy, EGrabLoop) by a number of images to grab. If the passed count of images has been reached, StopGrabbing is called
automatically. The images are counted according to the grab strategy. Skipped images are not taken into account.“; 就是说获取图像个数满足后,后台会自动停止取流;
海康SDK无此类接口,所以需要 start ,获取图像, stop
basler在snapimage中调用的是 virtual void StartGrabbing( size_t maxImages, EGrabStrategy strategy = GrabStrategy_OneByOne, EGrabLoop grabLoopType = GrabLoop_ProvidedByUser );
这个接口的描述是:”Extends the StartGrabbing(EStrategy, EGrabLoop) by a number of images to grab. If the passed count of images has been reached, StopGrabbing is called
automatically. The images are counted according to the grab strategy. Skipped images are not taken into account.“; 就是说获取图像个数满足后,后台会自动停止取流;
海康SDK无此类接口,所以需要 start ,获取图像, stop
*/

MvWriteLog(__FILE__, __LINE__, m_chDevID, "SnapImage Begin");
Expand All @@ -891,8 +891,8 @@ int HikrobotCamera::SnapImage()

do
{
//此处暂时设定1s, 若相机帧率过低,则可能异常,需要调整;
// 超时时间不能太长,容易导致接口卡死异常;
//此处暂时设定1s, 若相机帧率过低,则可能异常,需要调整;
// 超时时间不能太长,容易导致接口卡死异常;
nRet = m_pCamera->GetImageBuffer(&stOutFrame, 1000);
if (nRet == MV_OK)
{
Expand All @@ -905,7 +905,7 @@ int HikrobotCamera::SnapImage()
break;
}

ResizeSnapBuffer(); //分配内存空间
ResizeSnapBuffer(); //分配内存空间
CopyToImageBuffer(&stOutFrame);

nRet = m_pCamera->FreeImageBuffer(&stOutFrame);
Expand All @@ -915,7 +915,7 @@ int HikrobotCamera::SnapImage()
}


break; // 获取一张图像结束.
break; // 获取一张图像结束.
} while (0);

m_pCamera->StopGrabbing();
Expand Down Expand Up @@ -979,17 +979,17 @@ void HikrobotCamera::CopyToImageBuffer(MV_FRAME_OUT* pstFrameOut)
m_nConvertDataLen = nNeedSize;
}

// ch:像素格式转换 | en:Convert pixel format
// ch:像素格式转换 | en:Convert pixel format
MV_CC_PIXEL_CONVERT_PARAM stConvertParam = { 0 };

stConvertParam.nWidth = pstFrameOut->stFrameInfo.nWidth; //ch:图像宽 | en:image width
stConvertParam.nHeight = pstFrameOut->stFrameInfo.nHeight; //ch:图像高 | en:image height
stConvertParam.pSrcData = pstFrameOut->pBufAddr; //ch:输入数据缓存 | en:input data buffer
stConvertParam.nSrcDataLen = pstFrameOut->stFrameInfo.nFrameLen; //ch:输入数据大小 | en:input data size
stConvertParam.enSrcPixelType = pstFrameOut->stFrameInfo.enPixelType; //ch:输入像素格式 | en:input pixel format
stConvertParam.enDstPixelType = enDstPixelType; //ch:输出像素格式 | en:output pixel format
stConvertParam.pDstBuffer = m_pConvertData; //ch:输出数据缓存 | en:output data buffer
stConvertParam.nDstBufferSize = nNeedSize; //ch:输出缓存大小 | en:output buffer size
stConvertParam.nWidth = pstFrameOut->stFrameInfo.nWidth; //ch:图像宽 | en:image width
stConvertParam.nHeight = pstFrameOut->stFrameInfo.nHeight; //ch:图像高 | en:image height
stConvertParam.pSrcData = pstFrameOut->pBufAddr; //ch:输入数据缓存 | en:input data buffer
stConvertParam.nSrcDataLen = pstFrameOut->stFrameInfo.nFrameLen; //ch:输入数据大小 | en:input data size
stConvertParam.enSrcPixelType = pstFrameOut->stFrameInfo.enPixelType; //ch:输入像素格式 | en:input pixel format
stConvertParam.enDstPixelType = enDstPixelType; //ch:输出像素格式 | en:output pixel format
stConvertParam.pDstBuffer = m_pConvertData; //ch:输出数据缓存 | en:output data buffer
stConvertParam.nDstBufferSize = nNeedSize; //ch:输出缓存大小 | en:output buffer size
nRet = GetCamera()->ConvertPixelType(&stConvertParam);
if (MV_OK != nRet)
{
Expand All @@ -1006,7 +1006,7 @@ unsigned HikrobotCamera::PixTypeProc(MvGvspPixelType enPixelType, unsigned int &
{
int nRet = MV_OK;

//如果是彩色则转成RGB8
//如果是彩色则转成RGB8
if (IsColor(enPixelType))
{
nChannelNum = COLOR_CONVERTED_DEPTH / 8;
Expand All @@ -1017,7 +1017,7 @@ unsigned HikrobotCamera::PixTypeProc(MvGvspPixelType enPixelType, unsigned int &
m_nbitDepth = COLOR_CONVERTED_DEPTH;

}
//如果是黑白则转换成Mono8
//如果是黑白则转换成Mono8
else if (IsMono(enPixelType))
{
nChannelNum = 1;
Expand Down Expand Up @@ -1072,7 +1072,7 @@ unsigned HikrobotCamera::GetImageBytesPerPixel() const
std::size_t found = pixelType_.find(subject);
unsigned int ret = 0;

//mono统一转换成mon8,其他类型转换为RGBA32
//mono统一转换成mon8,其他类型转换为RGBA32
if (pixelType_ == "Mono8" || pixelType_ == "Mono10" || pixelType_ == "Mono12" || pixelType_ == "Mono10Packed" || pixelType_ == "Mono12Packed" || pixelType_ == "Mono16")
{
ret = MONO_IMAGE_BYTES_PERPIXEL;
Expand Down Expand Up @@ -1102,7 +1102,7 @@ unsigned int HikrobotCamera::GetBitDepth() const
const char* subject("Bayer");
std::size_t found = pixelType_.find(subject);
unsigned int ret = 0;
//mono统一转换成mon8,其他类型转换为RGBA32
//mono统一转换成mon8,其他类型转换为RGBA32
if (pixelType_ == "Mono8" || pixelType_ == "Mono10" || pixelType_ == "Mono12" || pixelType_ == "Mono10Packed" || pixelType_ == "Mono12Packed" || pixelType_ == "Mono16")
{
ret = MONO_CONVERTED_DEPTH;
Expand Down Expand Up @@ -1421,7 +1421,7 @@ int HikrobotCamera::StartSequenceAcquisition(double /* interval_ms */) {
if (m_bGrabbing)
{
MvWriteLog(__FILE__, __LINE__, m_chDevID, "StartSequenceAcquisition Begin, but Already Start.");
return DEVICE_NOT_SUPPORTED; //设备已经start,不能再次start; ImageJ 中截图和取流不能同时使用 [截图后,快速start可能会报错]
return DEVICE_NOT_SUPPORTED; //设备已经start,不能再次start; ImageJ 中截图和取流不能同时使用 [截图后,快速start可能会报错]
}

MvWriteLog(__FILE__, __LINE__, m_chDevID, "StartSequenceAcquisition Begin");
Expand All @@ -1431,7 +1431,7 @@ int HikrobotCamera::StartSequenceAcquisition(double /* interval_ms */) {
m_pCamera->StartGrabbing();


m_bRecvRuning = true; //取流线程工作
m_bRecvRuning = true; //取流线程工作
unsigned int nThreadID = 0;
if (NULL == m_hImageRecvThreadHandle)
{
Expand All @@ -1443,13 +1443,13 @@ int HikrobotCamera::StartSequenceAcquisition(double /* interval_ms */) {
}
}

m_bGrabbing = true; //取流状态
m_bGrabbing = true; //取流状态
MvWriteLog(__FILE__, __LINE__, m_chDevID, "StartSequenceAcquisition End");

return DEVICE_OK;
}

// 取流处理线程
// 取流处理线程
unsigned int __stdcall HikrobotCamera::ImageRecvThread(void* pUser)
{
if (NULL == pUser)
Expand Down Expand Up @@ -1522,16 +1522,16 @@ void HikrobotCamera::ImageRecvThreadProc()
}


// ch:像素格式转换 | en:Convert pixel format
// ch:像素格式转换 | en:Convert pixel format
MV_CC_PIXEL_CONVERT_PARAM stConvertParam = { 0 };
stConvertParam.nWidth = stOutFrame.stFrameInfo.nWidth; //ch:图像宽 | en:image width
stConvertParam.nHeight = stOutFrame.stFrameInfo.nHeight; //ch:图像高 | en:image height
stConvertParam.pSrcData = stOutFrame.pBufAddr; //ch:输入数据缓存 | en:input data buffer
stConvertParam.nSrcDataLen = stOutFrame.stFrameInfo.nFrameLen; //ch:输入数据大小 | en:input data size
stConvertParam.enSrcPixelType = stOutFrame.stFrameInfo.enPixelType; //ch:输入像素格式 | en:input pixel format
stConvertParam.enDstPixelType = enDstPixelType; //ch:输出像素格式 | en:output pixel format
stConvertParam.pDstBuffer = m_pConvertData; //ch:输出数据缓存 | en:output data buffer
stConvertParam.nDstBufferSize = m_nConvertDataLen; //ch:输出缓存大小 | en:output buffer size
stConvertParam.nWidth = stOutFrame.stFrameInfo.nWidth; //ch:图像宽 | en:image width
stConvertParam.nHeight = stOutFrame.stFrameInfo.nHeight; //ch:图像高 | en:image height
stConvertParam.pSrcData = stOutFrame.pBufAddr; //ch:输入数据缓存 | en:input data buffer
stConvertParam.nSrcDataLen = stOutFrame.stFrameInfo.nFrameLen; //ch:输入数据大小 | en:input data size
stConvertParam.enSrcPixelType = stOutFrame.stFrameInfo.enPixelType; //ch:输入像素格式 | en:input pixel format
stConvertParam.enDstPixelType = enDstPixelType; //ch:输出像素格式 | en:output pixel format
stConvertParam.pDstBuffer = m_pConvertData; //ch:输出数据缓存 | en:output data buffer
stConvertParam.nDstBufferSize = m_nConvertDataLen; //ch:输出缓存大小 | en:output buffer size
nRet = GetCamera()->ConvertPixelType(&stConvertParam);
if (MV_OK != nRet)
{
Expand Down Expand Up @@ -2010,7 +2010,7 @@ int HikrobotCamera::OnReverseX(MM::PropertyBase* pProp, MM::ActionType eAct)
bool reverseX = false;
m_pCamera->GetBoolValue("ReverseX", &reverseX);
//reverseX->FromString(reverseX_.c_str());
istringstream(reverseX_) >> boolalpha >> reverseX;//boolalpha>>必须要加
istringstream(reverseX_) >> boolalpha >> reverseX;//boolalpha>>必须要加
m_pCamera->SetBoolValue("ReverseX", &reverseX);
}
else if (eAct == MM::BeforeGet) {
Expand All @@ -2033,7 +2033,7 @@ int HikrobotCamera::OnReverseY(MM::PropertyBase* pProp, MM::ActionType eAct)
//reverseY->FromString(reverseY_.c_str());
bool ReverseY = false;
m_pCamera->GetBoolValue("ReverseY", &ReverseY);
istringstream(reverseX_) >> boolalpha >> ReverseY;//boolalpha>>必须要加
istringstream(reverseX_) >> boolalpha >> ReverseY;//boolalpha>>必须要加
m_pCamera->SetBoolValue("ReverseX", &ReverseY);
}
else if (eAct == MM::BeforeGet) {
Expand All @@ -2057,7 +2057,7 @@ int HikrobotCamera::OnAcqFramerateEnable(MM::PropertyBase* pProp, MM::ActionType

bool setAcqFrm = false;
m_pCamera->GetBoolValue("AcquisitionFrameRateEnable", &setAcqFrm);
istringstream(setAcqFrm_) >> boolalpha >> setAcqFrm;//boolalpha>>必须要加
istringstream(setAcqFrm_) >> boolalpha >> setAcqFrm;//boolalpha>>必须要加
m_pCamera->SetBoolValue("AcquisitionFrameRateEnable", &setAcqFrm);

}
Expand Down Expand Up @@ -2438,15 +2438,15 @@ void HikrobotCamera::ReduceImageSize(int64_t Width, int64_t Height)

void HikrobotCamera::SetLogBasicInfo(std::string msg)
{
// 记录型号,序列号;
// 记录型号,序列号;
m_strBasiceLog = msg;
}



void HikrobotCamera::AddToLog(std::string msg) const
{
// 增加下型号,序列号;
// 增加下型号,序列号;
LogMessage(m_strBasiceLog + msg, false);
}

Expand Down
18 changes: 9 additions & 9 deletions DeviceAdapters/Hikrobot/HikrobotCamera.h
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,8 @@ class HikrobotCamera : public CCameraBase<HikrobotCamera> {
int SetProperty(const char* name, const char* value);
int CheckForBinningMode(CPropertyAction *pAct);

void AddToLog(std::string msg) const; //不推荐使用
void MvWriteLog(char* file, int line, char* pDevID, const char* fmt, ...) const ; //推荐使用
void AddToLog(std::string msg) const; //不推荐使用
void MvWriteLog(char* file, int line, char* pDevID, const char* fmt, ...) const ; //推荐使用


void CopyToImageBuffer(MV_FRAME_OUT* pstFrameOut);
Expand Down Expand Up @@ -187,16 +187,16 @@ class HikrobotCamera : public CCameraBase<HikrobotCamera> {
unsigned PixTypeProc(MvGvspPixelType enPixelType, unsigned int& nChannelNum, MvGvspPixelType& enDstPixelType);
private:

// 基础日志记录信息
// 基础日志记录信息
std::string m_strBasiceLog;
char m_chDevID[128];// 设备ID
char m_chDevID[128];// 设备ID

MV_CC_DEVICE_INFO_LIST m_stDevList;
CMvCamera * m_pCamera;


int m_nComponents; //组件个数(通道个数)
unsigned m_nbitDepth; //图像 占的字节个数
int m_nComponents; //组件个数(通道个数)
unsigned m_nbitDepth; //图像 占的字节个数

unsigned maxWidth_, maxHeight_;
int64_t DeviceLinkThroughputLimit_;
Expand Down Expand Up @@ -230,10 +230,10 @@ class HikrobotCamera : public CCameraBase<HikrobotCamera> {
bool m_bInitialized;

void ResizeSnapBuffer();
bool m_bGrabbing; //取流工作状态
bool m_bGrabbing; //取流工作状态

bool m_bRecvRuning; //取流线程状态
HANDLE m_hImageRecvThreadHandle; //取流线程句柄
bool m_bRecvRuning; //取流线程状态
HANDLE m_hImageRecvThreadHandle; //取流线程句柄

};

Expand Down
Loading

0 comments on commit eb9d96d

Please sign in to comment.