summaryrefslogtreecommitdiffstats
path: root/src/multimedia/gsttools_headers/qgstreamervideoprobecontrol_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia/gsttools_headers/qgstreamervideoprobecontrol_p.h')
-rw-r--r--src/multimedia/gsttools_headers/qgstreamervideoprobecontrol_p.h23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/multimedia/gsttools_headers/qgstreamervideoprobecontrol_p.h b/src/multimedia/gsttools_headers/qgstreamervideoprobecontrol_p.h
index 49064f977..f035f656b 100644
--- a/src/multimedia/gsttools_headers/qgstreamervideoprobecontrol_p.h
+++ b/src/multimedia/gsttools_headers/qgstreamervideoprobecontrol_p.h
@@ -35,20 +35,29 @@
#define QGSTREAMERVIDEOPROBECONTROL_H
#include <gst/gst.h>
+#include <gst/video/video.h>
#include <qmediavideoprobecontrol.h>
#include <QtCore/qmutex.h>
#include <qvideoframe.h>
+#include <qvideosurfaceformat.h>
+
+#include <private/qgstreamerbufferprobe_p.h>
QT_BEGIN_NAMESPACE
-class QGstreamerVideoProbeControl : public QMediaVideoProbeControl
+class QGstreamerVideoProbeControl
+ : public QMediaVideoProbeControl
+ , public QGstreamerBufferProbe
+ , public QSharedData
{
Q_OBJECT
public:
explicit QGstreamerVideoProbeControl(QObject *parent);
virtual ~QGstreamerVideoProbeControl();
- void bufferProbed(GstBuffer* buffer);
+ void probeCaps(GstCaps *caps);
+ bool probeBuffer(GstBuffer *buffer);
+
void startFlushing();
void stopFlushing();
@@ -56,10 +65,16 @@ private slots:
void frameProbed();
private:
- bool m_flushing;
- bool m_frameProbed; // true if at least one frame was probed
+ QVideoSurfaceFormat m_format;
QVideoFrame m_pendingFrame;
QMutex m_frameMutex;
+#if GST_CHECK_VERSION(1,0,0)
+ GstVideoInfo m_videoInfo;
+#else
+ int m_bytesPerLine;
+#endif
+ bool m_flushing;
+ bool m_frameProbed; // true if at least one frame was probed
};
QT_END_NAMESPACE