QT5.5(Qcamera)上的摄像头启动错误:libv4l2:error set_fmt给了我们不同的结果,然后是try_fmt

时间:2019-08-05 05:36:53

标签: qt camera arm64 nvidia-jetson qcamera

我正在尝试在ubuntu 16.04上使用QT 5.5打开相机。 我的主板是Jetson TX2 nvidia(arm64)。我正在使用qt的多媒体默认示例。 (我附上)。尝试启动相机时, 它总是打印出如下错误:

libv4l2: error set_fmt gave us a different result then try_fmt!
CameraBin error: "Device '/dev/video0' cannot capture in the specified format"
CameraBin error: "Internal data flow error."**

我的环境

  • 操作系统:ubuntu 16.04
  • 主板:Jetson TX2 nvidia(arm64-aarch64)
  • 处理器:ARMv8处理器
  • QT版本:5.5
  • 相机:DFM 37UX178-ML(制造商:ImagingSource)

我已经将我的libv4l2rds0版本从1.10.0-1更新到1.12.5-1。 但是效果不好。

在小部件讲师中

<pre>
Camera::Camera(QWidget *parent) :
    QMainWindow(parent),   ui(new Ui::Camera),   camera(0),    imageCapture(0),     mediaRecorder(0)..
{
    ui->setupUi(this);
    //Camera devices:
    QCameraInfo::availableCameras().size();
    foreach (const QCameraInfo &cameraInfo, QCameraInfo::availableCameras()) {

        if (cameraInfo == QCameraInfo::defaultCamera())
        {
            videoDeviceAction->setChecked(true);
        }
        ui->menuDevices->addAction(videoDeviceAction);
    }
    /*
    skip...........
    */
    setCamera(QCameraInfo::defaultCamera());
}

void Camera::setCamera(const QCameraInfo &cameraInfo)
{
    delete imageCapture;
    delete mediaRecorder;
    delete camera;

    camera = new QCamera(cameraInfo);
    connect(camera, SIGNAL(stateChanged(QCamera::State)), this, SLOT(updateCameraState(QCamera::State)));
    connect(camera, SIGNAL(error(QCamera::Error)), this, SLOT(displayCameraError()));

    /*
    skip...........
    */

    camera->setViewfinder(ui->viewfinder);
    connect(camera, SIGNAL(lockStatusChanged(QCamera::LockStatus,QCamera::LockChangeReason)),
            this, SLOT(updateLockStatus(QCamera::LockStatus,QCamera::LockChangeReason)));

    QCameraViewfinderSettings viewfinderSettings;
    viewfinderSettings.setResolution(640, 480);
    viewfinderSettings.setMinimumFrameRate(15.0);
    viewfinderSettings.setMaximumFrameRate(280.0);
    viewfinderSettings.setPixelFormat(QVideoFrame::Format_RGB32);

    /*
    skip...........
    */
    camera->start();
}
<code>

0 个答案:

没有答案