Здравствуйте. В программе есть модуль который отвечает за вывод изображения с веб камеры на экран.
На всякий случай часть кода, которая отвечает за запуск камеры:
void camera::startcam(){
cam = new QCamera(selectedcam);
viewf = new QCameraViewfinder(this);
cam->setViewfinder(viewf);
cam->load();
cam->setCaptureMode(0);
QCameraViewfinderSettings camsettings;
QList<QSize> resolution = cam->supportedViewfinderResolutions();
if (!resolution.isEmpty()){
camsettings.setResolution(resolution.last());
}
camsettings.setMaximumFrameRate(30);
camsettings.setMinimumFrameRate(0);
QList<QVideoFrame::PixelFormat> pixformat = cam->supportedViewfinderPixelFormats();
if (!pixformat.isEmpty()){
camsettings.setPixelFormat(pixformat.last());
}
cam->setViewfinderSettings(camsettings);
viewf->setGeometry(0, 0, 640, 480);
viewf->show();
cam->start();
setWindowTitle(QString("%1 - RobotControl").arg(selectedcam_text));
startlayout->setEnabled(false);
selectstartcam_combo->hide();
select_cam_text->hide();
connectcam->hide();
camworking = true;
QObject::connect(cam, SIGNAL(error(QCamera::Error)), this, SLOT(camerror(QCamera::Error)));
Все хорошо работает, но есть пара камер, которые при вызове функций supportedViewfinderResolutions(), supportedViewfinderPixelFormats(), supportedViewfinderPixelFormats() ничего не возвращают и из-за этого при запуске камеры в консоль QtCreator`a пишется:
Invalid viewfinder settings.
Failed to configure preview format
Пробовал жестко прописать стартовые значения: 640x480 6FPS, но ничего не изменилось.
На всякий случай: Qt 5.5.1, QtCreator 3.6.0, компилятор MinGW 4.9.2 32 Bit.
Одна из проблемных камер: DNS WRL 300T
Есть варианты как все-таки запустить камеру?