调整寄存器读写 及出图流程
This commit is contained in:
parent
355b44018a
commit
fbf727e3e9
187
HCamDevice.cpp
187
HCamDevice.cpp
|
@ -17,6 +17,9 @@
|
|||
#include <iostream>
|
||||
#include <errno.h>
|
||||
|
||||
|
||||
#include <fstream>
|
||||
|
||||
#define ADC_82V48
|
||||
|
||||
#define HT_CAM_REG_CR_STARTSAMPLE_MASK 0x00000001
|
||||
|
@ -83,7 +86,7 @@ HCamDevice::HCamDevice()
|
|||
v4lBufferCount = 3;
|
||||
v4l2buftype = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
|
||||
nplanes = 1; // only use one plane
|
||||
drivertype = V4L2_CAP_VIDEO_CAPTURE_MPLANE;
|
||||
drivertype = V4L2_CAP_VIDEO_CAPTURE_MPLANE;//V4L2_BUF_TYPE_VIDEO_CAPTURE;//;
|
||||
v4l2memtype = V4L2_MEMORY_MMAP;
|
||||
|
||||
captureBufers = NULL;
|
||||
|
@ -110,8 +113,10 @@ int HCamDevice::open_video(int width,int height)
|
|||
}
|
||||
videofd = fd;
|
||||
camera_dbg("open video succeed\n");
|
||||
|
||||
|
||||
set_size(width,height);
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
int HCamDevice::close_video()
|
||||
|
@ -121,6 +126,7 @@ int HCamDevice::close_video()
|
|||
return -1;
|
||||
}
|
||||
close(videofd);
|
||||
HtCamStopSampling();
|
||||
camera_dbg("close video succeed\n");
|
||||
return 0;
|
||||
}
|
||||
|
@ -171,75 +177,75 @@ int HCamDevice::HtCamEventWorkThread(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
// void HCamDevice::HtCamStartVideoCapturing()
|
||||
// {
|
||||
// uint8_t n_buffers;
|
||||
// struct v4l2_buffer buf;
|
||||
// if (((CAM_INFO_REG *)&pPsReg[CAM_INFO])->cam_run_status)
|
||||
// {
|
||||
// printf("Run the scan multiple times %d\n", ((CAM_INFO_REG *)&pPsReg[CAM_INFO])->cam_run_status);
|
||||
// return ;
|
||||
// }
|
||||
// for (n_buffers = 0; n_buffers < v4lBufferCount; n_buffers++)
|
||||
// {
|
||||
// memset(&buf, 0, sizeof(buf));
|
||||
// if (drivertype == V4L2_CAP_VIDEO_CAPTURE_MPLANE)
|
||||
// buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
|
||||
// else
|
||||
// buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
// buf.memory = V4L2_MEMORY_MMAP;
|
||||
// buf.index = n_buffers;
|
||||
// if (drivertype == V4L2_CAP_VIDEO_CAPTURE_MPLANE)
|
||||
// {
|
||||
// buf.length = nplanes;
|
||||
// buf.m.planes = (struct v4l2_plane *)calloc(buf.length, sizeof(struct v4l2_plane));
|
||||
// }
|
||||
void HCamDevice::HtCamStartVideoCapturing()
|
||||
{
|
||||
uint8_t n_buffers;
|
||||
struct v4l2_buffer buf;
|
||||
// if (((CAM_INFO_REG *)&pPsReg[CAM_INFO])->cam_run_status)
|
||||
// {
|
||||
// printf("Run the scan multiple times %d\n", ((CAM_INFO_REG *)&pPsReg[CAM_INFO])->cam_run_status);
|
||||
// return ;
|
||||
// }
|
||||
for (n_buffers = 0; n_buffers < v4lBufferCount; n_buffers++)
|
||||
{
|
||||
memset(&buf, 0, sizeof(buf));
|
||||
if (drivertype == V4L2_CAP_VIDEO_CAPTURE_MPLANE)
|
||||
buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
|
||||
else
|
||||
buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
buf.memory = V4L2_MEMORY_MMAP;
|
||||
buf.index = n_buffers;
|
||||
if (drivertype == V4L2_CAP_VIDEO_CAPTURE_MPLANE)
|
||||
{
|
||||
buf.length = nplanes;
|
||||
buf.m.planes = (struct v4l2_plane *)calloc(buf.length, sizeof(struct v4l2_plane));
|
||||
}
|
||||
|
||||
// if (ioctl(videofd, VIDIOC_QBUF, &buf) == -1)
|
||||
// {
|
||||
// ((CAM_INFO_REG *)&pPsReg[CAM_INFO])->cam_run_status = 0;
|
||||
// camera_err(" VIDIOC_QBUF error\n");
|
||||
if (ioctl(videofd, VIDIOC_QBUF, &buf) == -1)
|
||||
{
|
||||
//((CAM_INFO_REG *)&pPsReg[CAM_INFO])->cam_run_status = 0;
|
||||
camera_err(" VIDIOC_QBUF error\n");
|
||||
|
||||
// if (drivertype == V4L2_CAP_VIDEO_CAPTURE_MPLANE)
|
||||
// free(buf.m.planes);
|
||||
// free(captureBufers);
|
||||
// close(videofd);
|
||||
// return;
|
||||
// }
|
||||
// if (drivertype == V4L2_CAP_VIDEO_CAPTURE_MPLANE)
|
||||
// free(buf.m.planes);
|
||||
// }
|
||||
if (drivertype == V4L2_CAP_VIDEO_CAPTURE_MPLANE)
|
||||
free(buf.m.planes);
|
||||
free(captureBufers);
|
||||
close(videofd);
|
||||
return;
|
||||
}
|
||||
if (drivertype == V4L2_CAP_VIDEO_CAPTURE_MPLANE)
|
||||
free(buf.m.planes);
|
||||
}
|
||||
|
||||
// enum v4l2_buf_type type;
|
||||
// if (drivertype == V4L2_CAP_VIDEO_CAPTURE_MPLANE)
|
||||
// type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
|
||||
// else
|
||||
// type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
// if (ioctl(videofd, VIDIOC_STREAMON, &type) == -1)
|
||||
// {
|
||||
// ((CAM_INFO_REG *)&pPsReg[CAM_INFO])->cam_run_status = 0;
|
||||
// camera_err(" VIDIOC_STREAMON error! %s\n", strerror(errno));
|
||||
// return;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// ((CAM_INFO_REG *)&pPsReg[CAM_INFO])->cam_run_status = 1;
|
||||
// camera_print(" stream on succeed\n");
|
||||
// }
|
||||
// return;
|
||||
// }
|
||||
enum v4l2_buf_type type;
|
||||
if (drivertype == V4L2_CAP_VIDEO_CAPTURE_MPLANE)
|
||||
type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
|
||||
else
|
||||
type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
if (ioctl(videofd, VIDIOC_STREAMON, &type) == -1)
|
||||
{
|
||||
//((CAM_INFO_REG *)&pPsReg[CAM_INFO])->cam_run_status = 0;
|
||||
camera_err(" VIDIOC_STREAMON error! %s\n", strerror(errno));
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
//((CAM_INFO_REG *)&pPsReg[CAM_INFO])->cam_run_status = 1;
|
||||
camera_print(" stream on succeed\n");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// void HCamDevice::HtCamStopVideoCapturing()
|
||||
// {
|
||||
// enum v4l2_buf_type type;
|
||||
// ((CAM_INFO_REG *)&pPsReg[CAM_INFO])->cam_run_status = 0;
|
||||
// if (drivertype == V4L2_CAP_VIDEO_CAPTURE_MPLANE)
|
||||
// type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
|
||||
// else
|
||||
// type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
// if (ioctl(videofd, VIDIOC_STREAMOFF, &type) == -1)
|
||||
// camera_err(" VIDIOC_STREAMOFF error! %s\n", strerror(errno));
|
||||
// }
|
||||
void HCamDevice::HtCamStopVideoCapturing()
|
||||
{
|
||||
enum v4l2_buf_type type;
|
||||
//((CAM_INFO_REG *)&pPsReg[CAM_INFO])->cam_run_status = 0;
|
||||
if (drivertype == V4L2_CAP_VIDEO_CAPTURE_MPLANE)
|
||||
type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
|
||||
else
|
||||
type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
if (ioctl(videofd, VIDIOC_STREAMOFF, &type) == -1)
|
||||
camera_err(" VIDIOC_STREAMOFF error! %s\n", strerror(errno));
|
||||
}
|
||||
|
||||
void HCamDevice::HtCamExitVideoCapturing()
|
||||
{
|
||||
|
@ -265,7 +271,7 @@ void HCamDevice::HtCamExitVideoCapturing()
|
|||
}
|
||||
}
|
||||
|
||||
int HCamDevice::HtCamWaitVideoCapture(int msTimeout)
|
||||
int HCamDevice::wait(int msTimeout)
|
||||
{
|
||||
struct pollfd pfd;
|
||||
pfd.fd = videofd;
|
||||
|
@ -277,9 +283,9 @@ int HCamDevice::HtCamWaitVideoCapture(int msTimeout)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int HCamDevice::HtCamReadCaptureFrame(void **pbuf, int timeout)
|
||||
int HCamDevice::read_frame(void **pbuf, int timeout)
|
||||
{
|
||||
if (!HtCamWaitVideoCapture(timeout))
|
||||
if (!wait(timeout))
|
||||
{
|
||||
camera_err("read frame time out\n");
|
||||
if ((lastSucceedBufferIndex + 1) >= v4lBufferCount)
|
||||
|
@ -302,20 +308,20 @@ int HCamDevice::HtCamReadCaptureFrame(void **pbuf, int timeout)
|
|||
buf.length = nplanes;
|
||||
buf.m.planes = (struct v4l2_plane *)calloc(nplanes, sizeof(struct v4l2_plane));
|
||||
}
|
||||
|
||||
if (ioctl(videofd, VIDIOC_DQBUF, &buf) == 0)
|
||||
int ret = ioctl(videofd, VIDIOC_DQBUF, &buf);
|
||||
if ( ret == 0)
|
||||
camera_dbg("*****DQBUF[%d] FINISH*****\n", buf.index);
|
||||
else
|
||||
{
|
||||
camera_err("****DQBUF FAIL*****\n");
|
||||
return -2;
|
||||
camera_err("****DQBUF FAIL %d*****\n",ret);
|
||||
//return -2;
|
||||
}
|
||||
|
||||
if (ioctl(videofd, VIDIOC_QBUF, &buf) == 0)
|
||||
camera_dbg("************QBUF[%d] FINISH**************\n", buf.index);
|
||||
camera_dbg("************QBUF[%d] FINISH buffer size:%d**************\n", buf.index,buf.length);
|
||||
else
|
||||
{
|
||||
return -2;
|
||||
//return -2;
|
||||
}
|
||||
lastSucceedBufferIndex = buf.index;
|
||||
*pbuf = captureBufers[buf.index].start;
|
||||
|
@ -324,7 +330,7 @@ int HCamDevice::HtCamReadCaptureFrame(void **pbuf, int timeout)
|
|||
{
|
||||
free(buf.m.planes);
|
||||
}
|
||||
return buf.index;
|
||||
return buf.length;
|
||||
}
|
||||
|
||||
void HCamDevice::HtCamChangeAdjustSpTime(uint32_t sp_time_gap, uint32_t sp_time_rw)
|
||||
|
@ -358,6 +364,7 @@ void HCamDevice::HtCamChangeAdjustPhase(uint16_t times, uint8_t dir)
|
|||
// This function is prohibited
|
||||
int HCamDevice::HtCamStartSampling()
|
||||
{
|
||||
printf("设置开始采图寄存器\r\n");
|
||||
uint32_t *CamReg;
|
||||
if (virBaseAddr == NULL)
|
||||
return -1;
|
||||
|
@ -375,6 +382,7 @@ int HCamDevice::HtCamStopSampling()
|
|||
uint32_t *CamReg;
|
||||
if (virBaseAddr == NULL)
|
||||
return -1;
|
||||
printf("设置停止采图寄存器\r\n");
|
||||
CamReg = (uint32_t *)virBaseAddr;
|
||||
|
||||
CamReg[10] |= (HT_CAM_REG_CR_STOPSAMPLE_MASK);
|
||||
|
@ -385,8 +393,14 @@ int HCamDevice::HtCamStopSampling()
|
|||
|
||||
int HCamDevice::set_size(int width, int height)
|
||||
{
|
||||
v4lWidth = width;
|
||||
v4lHeight = height;
|
||||
// v4lWidth = width;
|
||||
// v4lHeight = height;
|
||||
v4lWidth = 15552;
|
||||
v4lHeight = 128;
|
||||
init_device();
|
||||
HtCamStartVideoCapturing();
|
||||
HtCamChangeDpi(1);
|
||||
virBaseAddr[0X0D] = 0x00CE0080;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -446,11 +460,13 @@ int HCamDevice::init_sample()
|
|||
return ret;
|
||||
}
|
||||
|
||||
int HCamDevice::init_capture()
|
||||
int HCamDevice::init_device()
|
||||
{
|
||||
printf("打开寄存器基地址成功,开始初始化设备CIS\r\n");
|
||||
struct v4l2_format fmt;
|
||||
struct v4l2_control ctrl;
|
||||
CLEAR(fmt);
|
||||
init_sample();
|
||||
if (drivertype == V4L2_CAP_VIDEO_CAPTURE_MPLANE)
|
||||
{
|
||||
fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
|
||||
|
@ -520,6 +536,7 @@ int HCamDevice::init_capture()
|
|||
{
|
||||
camera_err("Fail to set control:%s.\n", strerror(errno));
|
||||
}
|
||||
init_video_buffer();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -608,10 +625,7 @@ int HCamDevice::init_video_buffer()
|
|||
int HCamDevice::init_dev()
|
||||
{
|
||||
init_fd();
|
||||
init_sample();
|
||||
init_capture();
|
||||
|
||||
init_video_buffer();
|
||||
|
||||
// TestPattern 1
|
||||
HtCamSwitchSampleModes(0);
|
||||
// HtCamChangeExposureValue(500);
|
||||
|
@ -885,8 +899,7 @@ uint32_t HCamDevice::HtCamReadPsRegs(uint8_t reg_addr)
|
|||
return pPsReg[reg_addr];
|
||||
}
|
||||
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
|
||||
void HCamDevice::HtCamWritePsRegs(uint8_t reg_addr, uint32_t reg_value)
|
||||
{
|
||||
printf("reg addr %d\r\n" ,reg_addr );
|
||||
|
@ -1049,7 +1062,7 @@ void HCamDevice::HtCamResizeBuffer(int width, int height, int number)
|
|||
HtCamExitVideoCapturing();
|
||||
init_fd();
|
||||
init_sample();
|
||||
init_capture();
|
||||
init_device();
|
||||
init_video_buffer();
|
||||
|
||||
camera_dbg("v4lWidth = %d, v4lHeight = %d, v4lBufferCount = %d\n", v4lWidth, v4lHeight, v4lBufferCount);
|
||||
|
|
18
HCamDevice.h
18
HCamDevice.h
|
@ -73,10 +73,10 @@ public:
|
|||
int open_video(int width, int height);
|
||||
int close_video();
|
||||
|
||||
// void HtCamStartVideoCapturing();
|
||||
//void HtCamStopVideoCapturing();
|
||||
int HtCamWaitVideoCapture(int msTimeout);
|
||||
int HtCamReadCaptureFrame(void **pbuf, int timeout);
|
||||
void HtCamStartVideoCapturing();
|
||||
void HtCamStopVideoCapturing();
|
||||
int wait(int msTimeout);
|
||||
int read_frame(void **pbuf, int timeout);
|
||||
int width() { return v4lWidth; }
|
||||
int height() { return v4lHeight; }
|
||||
|
||||
|
@ -110,11 +110,14 @@ public:
|
|||
|
||||
// void setConfig(Camconfig* _config){config = _config;}
|
||||
void HtCamChangeMonoStartSample(int start_sample);
|
||||
|
||||
int HtCamStartSampling();
|
||||
int HtCamStopSampling();
|
||||
private:
|
||||
int set_size(int width, int height);
|
||||
int init_fd();
|
||||
int init_sample();
|
||||
int init_capture();
|
||||
int init_device();
|
||||
int init_video_buffer();
|
||||
int init_dev();
|
||||
void init_ps_regs();
|
||||
|
@ -124,8 +127,7 @@ private:
|
|||
void HtCamResizeBuffer(int width, int height, int number);
|
||||
void HtCamChangeAdjustSpTime(uint32_t sp_time_gap, uint32_t sp_time_rw);
|
||||
void HtCamChangeAdjustPhase(uint16_t times, uint8_t dir);
|
||||
int HtCamStartSampling();
|
||||
int HtCamStopSampling();
|
||||
|
||||
void HtCamChangeDpi(int dpi);
|
||||
//bool HtCamPsDpiChange(int dpi);
|
||||
|
||||
|
@ -142,7 +144,7 @@ private:
|
|||
|
||||
const unsigned int phyBaseAddr = 0x40010000;
|
||||
const unsigned int AddrMapSize = 0x100;
|
||||
unsigned int *virBaseAddr;
|
||||
unsigned int *virBaseAddr; //寄存器基地址
|
||||
|
||||
int memfd;
|
||||
std::string subDeviceName;
|
||||
|
|
|
@ -89,7 +89,7 @@ void MultiFrameCapture::SetParent(void *scanner)
|
|||
{
|
||||
}
|
||||
|
||||
void MultiFrameCapture::open_video()
|
||||
void MultiFrameCapture::open()
|
||||
{
|
||||
// reset_fpga();
|
||||
m_capFpageregs->resetADC();
|
||||
|
@ -179,7 +179,7 @@ void MultiFrameCapture::open_video()
|
|||
printf(" getFrame_counter_val %d \n", m_capFpageregs->getFrame_counter_val());
|
||||
// video->read_frame(,400);
|
||||
unsigned char *buf = NULL;
|
||||
video->HtCamReadCaptureFrame((void **)&buf, 400);
|
||||
video->read_frame((void **)&buf, 400);
|
||||
// std::this_thread::sleep_for(std::chrono::milliseconds(50));
|
||||
printf("abort first frame \n");
|
||||
|
||||
|
@ -203,6 +203,7 @@ void MultiFrameCapture::snap()
|
|||
std::lock_guard<std::mutex> m_lock(m_mtx_snap);
|
||||
b_stop_snap = b_end_snap = false;
|
||||
m_capFpageregs->capture();
|
||||
video->HtCamStartSampling();
|
||||
snaped_index++;
|
||||
m_cv_snap.notify_all();
|
||||
#endif
|
||||
|
@ -214,6 +215,7 @@ void MultiFrameCapture::stopsnap(bool autosize)
|
|||
{
|
||||
b_stop_snap = true;
|
||||
}
|
||||
video->HtCamStopSampling();
|
||||
}
|
||||
|
||||
void MultiFrameCapture::close()
|
||||
|
@ -258,7 +260,7 @@ void MultiFrameCapture::UpdateScanParam(HG_ScanConfiguration config)
|
|||
fseek(f_img, 0, SEEK_END);
|
||||
m_test_pimg_len = ftell(f_img);
|
||||
m_test_pimg = malloc(m_test_pimg_len);
|
||||
printf("!!!!!!!!!! info: reading image len = %d m_test_pimg = %p \r\n", f_len, m_test_pimg);
|
||||
//printf("!!!!!!!!!! info: reading image len = %d m_test_pimg = %p \r\n", f_len, m_test_pimg);
|
||||
fclose(f_img);
|
||||
#endif
|
||||
}
|
||||
|
@ -337,9 +339,9 @@ void MultiFrameCapture::waitsnapdone(int state)
|
|||
#ifdef TEST_SIMCAP
|
||||
HG_JpegCompressInfo info;
|
||||
info.DataLength = m_test_pimg_len;
|
||||
info.pJpegData = m_test_pimg;
|
||||
info.pJpegData = (unsigned char *)m_test_pimg;
|
||||
|
||||
m_glue.m_imageready(&info);
|
||||
m_glue.m_imageready(info);
|
||||
#else
|
||||
printf("!!!!!!!!!!!!!!!! m_cv_snapdone wait \n");
|
||||
V4L2_DATAINFO_Ex info;
|
||||
|
@ -361,7 +363,7 @@ void MultiFrameCapture::waitsnapdone(int state)
|
|||
|
||||
bool MultiFrameCapture::IsImageQueueEmpty()
|
||||
{
|
||||
printf(" m_frameinfos.Size = %d iImageremain = %d bScanning = %d\n", m_frameinfos.Size(), iImageremain.operator int(), bScanning);
|
||||
//printf(" m_frameinfos.Size = %d iImageremain = %d bScanning = %d\n", m_frameinfos.Size(), iImageremain.operator int(), bScanning);
|
||||
return (m_frameinfos.Size() == 0 && iImageremain == 0) && !bScanning;
|
||||
}
|
||||
|
||||
|
@ -534,7 +536,7 @@ void MultiFrameCapture::snaprun()
|
|||
{
|
||||
// void *data = video->read_frame(500);
|
||||
char *data = NULL;
|
||||
video->HtCamReadCaptureFrame((void **)&data, 400);
|
||||
video->read_frame((void **)&data, 400);
|
||||
frame_info.lost_frame = data ? false : true;
|
||||
frame_info.last_frame = last_frame;
|
||||
frame_info.frame_index = frame_index;
|
||||
|
@ -544,6 +546,7 @@ void MultiFrameCapture::snaprun()
|
|||
// cv::Mat mat(frame_info.height, frame_info.width, CV_8UC1, data);
|
||||
frame_info.data = (char *)data;
|
||||
m_frameinfos.Put(frame_info);
|
||||
printf("获取数据\r\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1126,14 +1129,14 @@ void MultiFrameCapture::openDevice(int dpi, int mode)
|
|||
|
||||
// m_capFpageregs->setFrame_interval_max(static_cast<int>(sp_dst * 4 / (mode ? 1 : 3))); //dpi > 2 ? 7200 : 3600
|
||||
// m_capFpageregs->setFrame_interval_min(static_cast<int>(sp_dst * 0.1 / (mode ? 1 : 3) )); //1540
|
||||
.
|
||||
|
||||
// 2023 7-15 屏蔽
|
||||
// m_capFpageregs->setFrame_interval_max(0x1010); //dpi > 2 ? 7200 : 3600
|
||||
// m_capFpageregs->setFrame_interval_min(0xa98); //dpi > 2 ? 900 : 1540
|
||||
configFPGAParam(mode, dpi);
|
||||
StopWatch swwv4l2open;
|
||||
// int ret = video->open_video(width, 60 * 2); // 300dpi 7344/2 600dpi 7344 //FRAME_HEIGHT * 2
|
||||
int ret = video->open_video(); // 300dpi 7344/2 600dpi 7344 //FRAME_HEIGHT * 2
|
||||
int ret = video->open_video(width, 60 * 2); // 300dpi 7344/2 600dpi 7344 //FRAME_HEIGHT * 2
|
||||
// int ret = video->open_video(); // 300dpi 7344/2 600dpi 7344 //FRAME_HEIGHT * 2
|
||||
if (ret < 0)
|
||||
{
|
||||
return;
|
||||
|
@ -1149,7 +1152,7 @@ void MultiFrameCapture::openDevice(int dpi, int mode)
|
|||
|
||||
// video->read_frame(200);
|
||||
char *buf = NULL;
|
||||
video->HtCamReadCaptureFrame((void **)&buf, 200);
|
||||
video->read_frame((void **)&buf, 200);
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(100));
|
||||
printf("abort first frame \n");
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#include "CorrectParam.h"
|
||||
#include "IPreproc.h"
|
||||
|
||||
#define TEST_SIMCAP
|
||||
//#define TEST_SIMCAP
|
||||
|
||||
class FpgaComm;
|
||||
class gVideo;
|
||||
|
|
Loading…
Reference in New Issue