Russian Qt Forum

Qt => Мультимедиа => Тема начата: Mixxxxa от Март 15, 2016, 20:21



Название: Не удается вывести изображение с веб камеры на QViewfinder
Отправлено: Mixxxxa от Март 15, 2016, 20:21
Здравствуйте. В программе есть модуль который отвечает за вывод изображения с веб камеры на экран.
На всякий случай часть кода, которая отвечает за запуск камеры:

Код:
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

Есть варианты как все-таки запустить камеру?