Commit 37460acb authored by Andrey Kamaev's avatar Andrey Kamaev Committed by OpenCV Buildbot

Merge pull request #410 from taka-no-me:fix_cap_dshow_setfps

parents e2536f1c 0cd8684a
......@@ -3120,6 +3120,7 @@ protected:
void init();
int index, width, height,fourcc;
int widthSet, heightSet;
IplImage* frame;
static videoInput VI;
};
......@@ -3138,6 +3139,7 @@ CvCaptureCAM_DShow::CvCaptureCAM_DShow()
index = -1;
frame = 0;
width = height = fourcc = -1;
widthSet = heightSet = -1;
CoInitialize(0);
}
......@@ -3155,7 +3157,7 @@ void CvCaptureCAM_DShow::close()
index = -1;
cvReleaseImage(&frame);
}
width = height = -1;
widthSet = heightSet = width = height = -1;
}
// Initialize camera input
......@@ -3282,9 +3284,12 @@ bool CvCaptureCAM_DShow::setProperty( int property_id, double value )
{
VI.stopDevice(index);
VI.setIdealFramerate(index,fps);
VI.setupDevice(index);
if (widthSet > 0 && heightSet > 0)
VI.setupDevice(index, widthSet, heightSet);
else
VI.setupDevice(index);
}
break;
return VI.isDeviceSetup(index);
}
......@@ -3299,8 +3304,15 @@ bool CvCaptureCAM_DShow::setProperty( int property_id, double value )
VI.setIdealFramerate(index, fps);
VI.setupDeviceFourcc(index, width, height, fourcc);
}
width = height = fourcc = -1;
return VI.isDeviceSetup(index);
bool success = VI.isDeviceSetup(index);
if (success)
{
widthSet = width;
heightSet = height;
width = height = fourcc = -1;
}
return success;
}
return true;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment