mirror of
https://github.com/opencv/opencv.git
synced 2025-07-25 22:57:53 +08:00
Merge pull request #13447 from alalek:issue_13445
This commit is contained in:
commit
4f9c1da806
@ -192,7 +192,11 @@ CvDC1394::~CvDC1394()
|
|||||||
dc = 0;
|
dc = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static CvDC1394 dc1394;
|
static CvDC1394& getDC1394()
|
||||||
|
{
|
||||||
|
static CvDC1394 dc1394;
|
||||||
|
return dc1394;
|
||||||
|
}
|
||||||
|
|
||||||
class CvCaptureCAM_DC1394_v2_CPP : public CvCapture
|
class CvCaptureCAM_DC1394_v2_CPP : public CvCapture
|
||||||
{
|
{
|
||||||
@ -451,7 +455,7 @@ bool CvCaptureCAM_DC1394_v2_CPP::startCapture()
|
|||||||
code = dc1394_capture_setup(dcCam, nDMABufs, DC1394_CAPTURE_FLAGS_DEFAULT);
|
code = dc1394_capture_setup(dcCam, nDMABufs, DC1394_CAPTURE_FLAGS_DEFAULT);
|
||||||
if (code >= 0)
|
if (code >= 0)
|
||||||
{
|
{
|
||||||
FD_SET(dc1394_capture_get_fileno(dcCam), &dc1394.camFds);
|
FD_SET(dc1394_capture_get_fileno(dcCam), &getDC1394().camFds);
|
||||||
dc1394_video_set_transmission(dcCam, DC1394_ON);
|
dc1394_video_set_transmission(dcCam, DC1394_ON);
|
||||||
if (cameraId == VIDERE)
|
if (cameraId == VIDERE)
|
||||||
{
|
{
|
||||||
@ -477,15 +481,15 @@ bool CvCaptureCAM_DC1394_v2_CPP::open(int index)
|
|||||||
|
|
||||||
close();
|
close();
|
||||||
|
|
||||||
if (!dc1394.dc)
|
if (!getDC1394().dc)
|
||||||
goto _exit_;
|
goto _exit_;
|
||||||
|
|
||||||
err = dc1394_camera_enumerate(dc1394.dc, &cameraList);
|
err = dc1394_camera_enumerate(getDC1394().dc, &cameraList);
|
||||||
if (err < 0 || !cameraList || (unsigned)index >= (unsigned)cameraList->num)
|
if (err < 0 || !cameraList || (unsigned)index >= (unsigned)cameraList->num)
|
||||||
goto _exit_;
|
goto _exit_;
|
||||||
|
|
||||||
guid = cameraList->ids[index].guid;
|
guid = cameraList->ids[index].guid;
|
||||||
dcCam = dc1394_camera_new(dc1394.dc, guid);
|
dcCam = dc1394_camera_new(getDC1394().dc, guid);
|
||||||
if (!dcCam)
|
if (!dcCam)
|
||||||
goto _exit_;
|
goto _exit_;
|
||||||
|
|
||||||
@ -510,8 +514,8 @@ void CvCaptureCAM_DC1394_v2_CPP::close()
|
|||||||
// check for fileno valid before using
|
// check for fileno valid before using
|
||||||
int fileno=dc1394_capture_get_fileno(dcCam);
|
int fileno=dc1394_capture_get_fileno(dcCam);
|
||||||
|
|
||||||
if (fileno>=0 && FD_ISSET(fileno, &dc1394.camFds))
|
if (fileno>=0 && FD_ISSET(fileno, &getDC1394().camFds))
|
||||||
FD_CLR(fileno, &dc1394.camFds);
|
FD_CLR(fileno, &getDC1394().camFds);
|
||||||
dc1394_video_set_transmission(dcCam, DC1394_OFF);
|
dc1394_video_set_transmission(dcCam, DC1394_OFF);
|
||||||
dc1394_capture_stop(dcCam);
|
dc1394_capture_stop(dcCam);
|
||||||
dc1394_camera_free(dcCam);
|
dc1394_camera_free(dcCam);
|
||||||
|
Loading…
Reference in New Issue
Block a user