message: videoio(dc1394): use lazy initialization on demand
diff: @@ -192,7 +192,11 @@ CvDC1394::~CvDC1394()
  dc = 0;
  }
  +static CvDC1394& getDC1394()
  +{
  static CvDC1394 dc1394;
  + return dc1394;
  +}
  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);
  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);
  if (cameraId == VIDERE)
  {
  @@ -477,15 +481,15 @@ bool CvCaptureCAM_DC1394_v2_CPP::open(int index)
  close();
  - if (!dc1394.dc)
  + if (!getDC1394().dc)
  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)
  goto _exit_;
  guid = cameraList->ids[index].guid;
  - dcCam = dc1394_camera_new(dc1394.dc, guid);
  + dcCam = dc1394_camera_new(getDC1394().dc, guid);
  if (!dcCam)
  goto _exit_;
  @@ -510,8 +514,8 @@ void CvCaptureCAM_DC1394_v2_CPP::close()
  // check for fileno valid before using
  int fileno=dc1394_capture_get_fileno(dcCam);
  - if (fileno>=0 && FD_ISSET(fileno, &dc1394.camFds))
  - FD_CLR(fileno, &dc1394.camFds);
  + if (fileno>=0 && FD_ISSET(fileno, &getDC1394().camFds))
  + FD_CLR(fileno, &getDC1394().camFds);
  dc1394_video_set_transmission(dcCam, DC1394_OFF);
  dc1394_capture_stop(dcCam);
  dc1394_camera_free(dcCam);
  