summaryrefslogtreecommitdiffstats
path: root/src/plugins/directshow/camera/dscamerasession.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/directshow/camera/dscamerasession.h')
-rw-r--r--src/plugins/directshow/camera/dscamerasession.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/plugins/directshow/camera/dscamerasession.h b/src/plugins/directshow/camera/dscamerasession.h
index 90407f49e..e28015534 100644
--- a/src/plugins/directshow/camera/dscamerasession.h
+++ b/src/plugins/directshow/camera/dscamerasession.h
@@ -50,6 +50,7 @@
#include <QtMultimedia/qabstractvideosurface.h>
#include <QtMultimedia/qvideosurfaceformat.h>
#include <QtMultimedia/qcameraimageprocessingcontrol.h>
+#include <QtMultimedia/qcameraimagecapture.h>
#include <private/qmediastoragelocation_p.h>
#include <tchar.h>
@@ -76,6 +77,7 @@ struct ICaptureGraphBuilder2;
QT_BEGIN_NAMESPACE
class DirectShowSampleGrabber;
+class DirectShowVideoProbeControl;
class DSCameraSession : public QObject
{
@@ -120,13 +122,22 @@ public:
bool getCameraControlInterface(IAMCameraControl **cameraControl) const;
+ bool isCaptureDestinationSupported(QCameraImageCapture::CaptureDestinations destination) const;
+ QCameraImageCapture::CaptureDestinations captureDestination() const;
+ void setCaptureDestination(QCameraImageCapture::CaptureDestinations destinations);
+
+ void addVideoProbe(DirectShowVideoProbeControl *probe);
+ void removeVideoProbe(DirectShowVideoProbeControl *probe);
+
Q_SIGNALS:
void statusChanged(QCamera::Status);
void imageExposed(int id);
void imageCaptured(int id, const QImage &preview);
void imageSaved(int id, const QString &fileName);
+ void imageAvailable(int id, const QVideoFrame &buffer);
void readyForCaptureChanged(bool);
void captureError(int id, int error, const QString &errorString);
+ void captureDestinationChanged(QCameraImageCapture::CaptureDestinations);
private Q_SLOTS:
void presentFrame();
@@ -157,7 +168,7 @@ private:
void setStatus(QCamera::Status status);
void onFrameAvailable(double time, const QByteArray &data);
- void saveCapturedImage(int id, const QImage &image, const QString &path);
+ void processCapturedImage(int id, QCameraImageCapture::CaptureDestinations captureDestinations, const QImage &image, const QString &path);
bool createFilterGraph();
bool connectGraph();
@@ -208,6 +219,11 @@ private:
int m_imageIdCounter;
int m_currentImageId;
QVideoFrame m_capturedFrame;
+ QCameraImageCapture::CaptureDestinations m_captureDestinations;
+
+ // Video probe
+ QMutex m_probeMutex;
+ DirectShowVideoProbeControl *m_videoProbeControl;
// Internal state
QCamera::Status m_status;