Merge pull request #22700 from kallaballa:capture_backened_debug_msg

log a debug message if a capture backend is generally available but isn't capabable of a capture mode
pull/23290/head
Alexander Smorkalov 2 years ago committed by GitHub
commit dabf960b32
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 30
      modules/videoio/src/cap.cpp

@ -188,14 +188,25 @@ bool VideoCapture::open(const String& filename, int apiPreference, const std::ve
else else
{ {
CV_CAPTURE_LOG_DEBUG(NULL, CV_CAPTURE_LOG_DEBUG(NULL,
cv::format("VIDEOIO(%s): backend is not available " cv::format("VIDEOIO(%s): backend is not available "
"(plugin is missing, or can't be loaded due " "(plugin is missing, or can't be loaded due "
"dependencies or it is not compatible)", "dependencies or it is not compatible)",
info.name)); info.name));
} }
} }
} }
if(apiPreference != CAP_ANY)
{
bool found = cv::videoio_registry::isBackendBuiltIn(static_cast<VideoCaptureAPIs>(apiPreference));
if (found)
{
CV_LOG_WARNING(NULL, cv::format("VIDEOIO(%s): backend is generally available "
"but can't be used to capture by name",
cv::videoio_registry::getBackendName(static_cast<VideoCaptureAPIs>(apiPreference)).c_str()));
}
}
if (throwOnFail) if (throwOnFail)
{ {
CV_Error_(Error::StsError, ("could not open '%s'", filename.c_str())); CV_Error_(Error::StsError, ("could not open '%s'", filename.c_str()));
@ -302,14 +313,25 @@ bool VideoCapture::open(int cameraNum, int apiPreference, const std::vector<int>
else else
{ {
CV_CAPTURE_LOG_DEBUG(NULL, CV_CAPTURE_LOG_DEBUG(NULL,
cv::format("VIDEOIO(%s): backend is not available " cv::format("VIDEOIO(%s): backend is not available "
"(plugin is missing, or can't be loaded due " "(plugin is missing, or can't be loaded due "
"dependencies or it is not compatible)", "dependencies or it is not compatible)",
info.name)); info.name));
} }
} }
} }
if(apiPreference != CAP_ANY)
{
bool found = cv::videoio_registry::isBackendBuiltIn(static_cast<VideoCaptureAPIs>(apiPreference));
if (found)
{
CV_LOG_WARNING(NULL, cv::format("VIDEOIO(%s): backend is generally available "
"but can't be used to capture by index",
cv::videoio_registry::getBackendName(static_cast<VideoCaptureAPIs>(apiPreference)).c_str()));
}
}
if (throwOnFail) if (throwOnFail)
{ {
CV_Error_(Error::StsError, ("could not open camera %d", cameraNum)); CV_Error_(Error::StsError, ("could not open camera %d", cameraNum));

Loading…
Cancel
Save