Issue 1:
System information (version)

OpenCV => 3.4.2

Operating System / Platform => Any

Compiler => Any

Detailed description

Is there any developer discussion about not only including OpenVino's inference engine, but making it the default back-end when it is included? I went to enable this back end and ended up swimming in legal documents using scary terms about patent rights and such. So, I'm trying to figure out where the developer discussion about this took place to maybe help me understand the legal implications of leaning on apparently proprietary and patent-encumbered dependencies.

I wasn't sure whether to discuss this here or on the answer site, but just in case, I've opened the same discussion there as well.

Please feel free to close this out if the answers site is the better site.

Steps to reproduce

Try to enable Intel inference engine.

Start a gofundme to go back to school for the next decade to become a lawyer in order to determine how much of your soul the engine requires, how many of your descendants it includes, or if you'll be filing for bankruptcy soon.

Issue 2:
Hi, all

I'm trying to detect if the camera is unplugged, I tried to use the result of VideoCaputre::grab(), VideoCaputre::retrieve() and VideoCaputre::isOpened(), but not work. The return values are both true when I unplug the camera. Here is the program:

#include <iostream>
#include <signal.h>
#include <unistd.h>
#include <exception>

#include <opencv2/opencv.hpp>

bool running;
cv::VideoCapture camera;

void clear(int signo)
{
std::cout << std::endl;
std::cout << "faceDetect exit....." << std::endl;

running = false;
camera.release();

std::cout << "done!\n" << std::endl;
exit(0);
}

int main()
{
cv::Mat rawImage, bImage;

signal(SIGINT, clear);
signal(SIGTERM, clear);

camera.open(1);
if(!camera.isOpened())
{
std::cout << "Error, camera is not connected!" << std::endl;
}

running = true;
int result;
while(running)
{
result = camera.isOpened();
std::cout << "isOpened: " << result << " ";

result = camera.grab();
std::cout << "Grab: " << result << " ";

result = camera.retrieve(rawImage);
std::cout << "Retrieve: " << result << " ";

result = rawImage.empty();
std::cout << "isEmpty: " << result << std::endl;
cv::imshow("la", rawImage);

cv::waitKey(100);
}
return 0;
}

result:

isOpened: 1 Grab: 1 Retrieve: 1 isEmpty: 0
isOpened: 1 Grab: 1 Retrieve: 1 isEmpty: 0
isOpened: 1 Grab: 1 Retrieve: 1 isEmpty: 0
isOpened: 1 Grab: 1 Retrieve: 1 isEmpty: 0
isOpened: 1 Grab: 1 Retrieve: 1 isEmpty: 0
isOpened: 1 Grab: 1 Retrieve: 1 isEmpty: 0
isOpened: 1 Grab: 1 Retrieve: 1 isEmpty: 0
isOpened: 1 Grab: 1 Retrieve: 1 isEmpty: 0

when I unplug the camera:

isOpened: 1 Grab: 1 Retrieve: 1 isEmpty: 0
isOpened: 1 Grab: 1 Retrieve: 1 isEmpty: 0
VIDIOC_DQBUF: No such device
isOpened: 1 Grab: 1 Retrieve: 1 isEmpty: 0
VIDIOC_DQBUF: No such device
isOpened: 1 Grab: 1 Retrieve: 1 isEmpty: 0
VIDIOC_DQBUF: No such device
isOpened: 1 Grab: 1 Retrieve: 1 isEmpty: 0
VIDIOC_DQBUF: No such device
isOpened: 1 Grab: 1 Retrieve: 1 isEmpty: 0
VIDIOC_DQBUF: No such device
isOpened: 1 Grab: 1 Retrieve: 1 isEmpty: 0
VIDIOC_DQBUF: No such device
isOpened: 1 Grab: 1 Retrieve: 1 isEmpty: 0
VIDIOC_DQBUF: No such device
isOpened: 1 Grab: 1 Retrieve: 1 isEmpty: 0

Did I use wrong way to get status of camera??