diff --git a/modules/highgui/include/opencv2/highgui/highgui_c.h b/modules/highgui/include/opencv2/highgui/highgui_c.h index 1f86abb9d15327f06e9b952b8680d04ff055f36a..71b28d1df943eeb966156aa2f49bc4dcdce10cf8 100644 --- a/modules/highgui/include/opencv2/highgui/highgui_c.h +++ b/modules/highgui/include/opencv2/highgui/highgui_c.h @@ -385,6 +385,7 @@ enum CV_CAP_PROP_ROLL =35, CV_CAP_PROP_IRIS =36, CV_CAP_PROP_SETTINGS =37, + CV_CAP_PROP_BUFFERSIZE =38, CV_CAP_PROP_AUTOGRAB =1024, // property for highgui class CvCapture_Android only CV_CAP_PROP_SUPPORTED_PREVIEW_SIZES_STRING=1025, // readonly, tricky property, returns cpnst char* indeed diff --git a/modules/highgui/src/cap_dc1394_v2.cpp b/modules/highgui/src/cap_dc1394_v2.cpp index 0d5f898186223eaf3624ffcb155f75697faf0b8e..86a77c1ab7ca5b6119470c109ab661a67a54fc36 100644 --- a/modules/highgui/src/cap_dc1394_v2.cpp +++ b/modules/highgui/src/cap_dc1394_v2.cpp @@ -278,6 +278,7 @@ CvCaptureCAM_DC1394_v2_CPP::CvCaptureCAM_DC1394_v2_CPP() dcCam = 0; isoSpeed = 400; fps = 15; + // Resetted the value here to 1 in order to ensure only a single frame is stored in the buffer! nDMABufs = 8; started = false; cameraId = 0; @@ -732,6 +733,11 @@ bool CvCaptureCAM_DC1394_v2_CPP::setProperty(int propId, double value) return false; isoSpeed = cvRound(value); break; + case CV_CAP_PROP_BUFFERSIZE: + if(started) + return false; + nDMABufs = value; + break; //The code below is based on coriander, callbacks.c:795, refer to case RANGE_MENU_MAN : default: if (propId