1
0
mirror of https://github.com/opencv/opencv.git synced 2026-07-30 15:53:03 +04:00

Merge pull request #13043 from alalek:compatibility_12623

This commit is contained in:
Alexander Alekhin
2018-11-07 20:54:40 +00:00
2 changed files with 30 additions and 8 deletions
+18 -8
View File
@@ -75,6 +75,12 @@ VideoCapture::VideoCapture(int index)
open(index);
}
VideoCapture::VideoCapture(int index, int apiPreference)
{
CV_TRACE_FUNCTION();
open(index, apiPreference);
}
VideoCapture::~VideoCapture()
{
CV_TRACE_FUNCTION();
@@ -127,6 +133,17 @@ bool VideoCapture::open(int cameraNum, int apiPreference)
if (isOpened()) release();
if (apiPreference == CAP_ANY)
{
// interpret preferred interface (0 = autodetect)
int backendID = (cameraNum / 100) * 100;
if (backendID)
{
cameraNum %= 100;
apiPreference = backendID;
}
}
const std::vector<VideoBackendInfo> backends = cv::videoio_registry::getAvailableBackends_CaptureByIndex();
for (size_t i = 0; i < backends.size(); i++)
{
@@ -156,14 +173,7 @@ bool VideoCapture::open(int index)
{
CV_TRACE_FUNCTION();
// interpret preferred interface (0 = autodetect)
int backendID = (index / 100) * 100;
if (backendID)
{
index %= 100;
}
return open(index, backendID);
return open(index, CAP_ANY);
}
bool VideoCapture::isOpened() const