diff options
author | Yoann Lopes <yoann.lopes@theqtcompany.com> | 2014-10-17 16:51:23 +0200 |
---|---|---|
committer | Yoann Lopes <yoann.lopes@theqtcompany.com> | 2014-10-30 12:57:15 +0100 |
commit | deb13f102a0773ef87310346f1755b16215e62f4 (patch) | |
tree | c71afe3b00f5e353f50d56f5bd896f9dcba72795 /src/gsttools/qgstutils.cpp | |
parent | f51ca0b97c90d479bac16bc549e8555bbbf5bb73 (diff) |
Add QT_GSTREAMER_CAMERABIN_VIDEOSRC environment variable.
It can be used to set which video source element should be used by
the camerabin.
Change-Id: I8d1cd8c4ba6fe5a89817699f645b0997e713aaca
Reviewed-by: Samuli Piippo <samuli.piippo@digia.com>
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Diffstat (limited to 'src/gsttools/qgstutils.cpp')
-rw-r--r-- | src/gsttools/qgstutils.cpp | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/src/gsttools/qgstutils.cpp b/src/gsttools/qgstutils.cpp index 8d484aa6d..556fc03cc 100644 --- a/src/gsttools/qgstutils.cpp +++ b/src/gsttools/qgstutils.cpp @@ -430,13 +430,15 @@ QVector<QGstUtils::CameraInfo> QGstUtils::enumerateCameras(GstElementFactory *fa QStringLiteral("primary"), QGstreamerVideoInputDeviceControl::primaryCamera(), 0, - QCamera::BackFace + QCamera::BackFace, + QByteArray() }; const CameraInfo secondary = { QStringLiteral("secondary"), QGstreamerVideoInputDeviceControl::secondaryCamera(), 0, - QCamera::FrontFace + QCamera::FrontFace, + QByteArray() }; devices.append(primary); @@ -498,14 +500,17 @@ QVector<QGstUtils::CameraInfo> QGstUtils::enumerateCameras(GstElementFactory *fa if (isCamera) { // find out its driver "name" + QByteArray driver; QString name; struct v4l2_capability vcap; memset(&vcap, 0, sizeof(struct v4l2_capability)); - if (ioctl(fd, VIDIOC_QUERYCAP, &vcap) != 0) + if (ioctl(fd, VIDIOC_QUERYCAP, &vcap) != 0) { name = entryInfo.fileName(); - else + } else { + driver = QByteArray((const char*)vcap.driver); name = QString::fromUtf8((const char*)vcap.card); + } //qDebug() << "found camera: " << name; @@ -513,7 +518,8 @@ QVector<QGstUtils::CameraInfo> QGstUtils::enumerateCameras(GstElementFactory *fa entryInfo.absoluteFilePath(), name, 0, - QCamera::UnspecifiedPosition + QCamera::UnspecifiedPosition, + driver }; devices.append(device); } @@ -561,6 +567,15 @@ int QGstUtils::cameraOrientation(const QString &device, GstElementFactory * fact return 0; } +QByteArray QGstUtils::cameraDriver(const QString &device, GstElementFactory *factory) +{ + foreach (const CameraInfo &camera, enumerateCameras(factory)) { + if (camera.name == device) + return camera.driver; + } + return QByteArray(); +} + void qt_gst_object_ref_sink(gpointer object) { |