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>
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user