VideoCapture didn't call release method and just ignored the new capture sources.
OpenCV documentation:
bool VideoCapture::open(const string& filename);
bool VideoCapture::open(int device);
The methods first call VideoCapture::release() to close the already opened file or camera.
bool VideoCapture::open(const String& filename)
{
- if (!isOpened())
+ if (isOpened()) release();
cap = cvCreateFileCapture(filename.c_str());
return isOpened();
}
bool VideoCapture::open(int device)
{
- if (!isOpened())
+ if (isOpened()) release();
cap = cvCreateCameraCapture(device);
return isOpened();
}