summaryrefslogtreecommitdiff
path: root/src/multimedia
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia')
-rw-r--r--src/multimedia/gsttools_headers/qgstreamervideoinputdevicecontrol_p.h12
-rw-r--r--src/multimedia/gsttools_headers/qgstutils_p.h16
2 files changed, 22 insertions, 6 deletions
diff --git a/src/multimedia/gsttools_headers/qgstreamervideoinputdevicecontrol_p.h b/src/multimedia/gsttools_headers/qgstreamervideoinputdevicecontrol_p.h
index eeb576ef5..c4fe83fbc 100644
--- a/src/multimedia/gsttools_headers/qgstreamervideoinputdevicecontrol_p.h
+++ b/src/multimedia/gsttools_headers/qgstreamervideoinputdevicecontrol_p.h
@@ -46,6 +46,7 @@
#include <QtCore/qstringlist.h>
#include <gst/gst.h>
+#include <qcamera.h>
QT_BEGIN_NAMESPACE
@@ -54,7 +55,7 @@ class QGstreamerVideoInputDeviceControl : public QVideoDeviceSelectorControl
Q_OBJECT
public:
QGstreamerVideoInputDeviceControl(QObject *parent);
- QGstreamerVideoInputDeviceControl(GstElement *source, QObject *parent);
+ QGstreamerVideoInputDeviceControl(GstElementFactory *factory, QObject *parent);
~QGstreamerVideoInputDeviceControl();
int deviceCount() const;
@@ -65,17 +66,16 @@ public:
int defaultDevice() const;
int selectedDevice() const;
+ static QString primaryCamera() { return tr("Main camera"); }
+ static QString secondaryCamera() { return tr("Front camera"); }
+
public Q_SLOTS:
void setSelectedDevice(int index);
private:
- void update();
-
- GstElement *m_source;
+ GstElementFactory *m_factory;
int m_selectedDevice;
- QStringList m_names;
- QStringList m_descriptions;
};
QT_END_NAMESPACE
diff --git a/src/multimedia/gsttools_headers/qgstutils_p.h b/src/multimedia/gsttools_headers/qgstutils_p.h
index eea1e15d9..701de59da 100644
--- a/src/multimedia/gsttools_headers/qgstutils_p.h
+++ b/src/multimedia/gsttools_headers/qgstutils_p.h
@@ -55,8 +55,10 @@
#include <QtCore/qmap.h>
#include <QtCore/qset.h>
+#include <QtCore/qvector.h>
#include <gst/gst.h>
#include <qaudioformat.h>
+#include <qcamera.h>
QT_BEGIN_NAMESPACE
@@ -65,6 +67,14 @@ class QVariant;
class QByteArray;
namespace QGstUtils {
+ struct CameraInfo
+ {
+ QString name;
+ QString description;
+ int orientation;
+ QCamera::Position position;
+ };
+
QMap<QByteArray, QVariant> gstTagListToMap(const GstTagList *list);
QSize capsResolution(const GstCaps *caps);
@@ -76,6 +86,12 @@ namespace QGstUtils {
QMultimedia::SupportEstimate hasSupport(const QString &mimeType,
const QStringList &codecs,
const QSet<QString> &supportedMimeTypeSet);
+
+ QVector<CameraInfo> enumerateCameras(GstElementFactory *factory = 0);
+ QList<QByteArray> cameraDevices(GstElementFactory * factory = 0);
+ QString cameraDescription(const QString &device, GstElementFactory * factory = 0);
+ QCamera::Position cameraPosition(const QString &device, GstElementFactory * factory = 0);
+ int cameraOrientation(const QString &device, GstElementFactory * factory = 0);
}
void qt_gst_object_ref_sink(gpointer object);