summaryrefslogtreecommitdiffstats
path: root/src/plugins/mediaservices/gstreamer/qvideosurfacegstsink.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/mediaservices/gstreamer/qvideosurfacegstsink.h')
-rw-r--r--src/plugins/mediaservices/gstreamer/qvideosurfacegstsink.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/plugins/mediaservices/gstreamer/qvideosurfacegstsink.h b/src/plugins/mediaservices/gstreamer/qvideosurfacegstsink.h
index f02f9a5..f59a43c 100644
--- a/src/plugins/mediaservices/gstreamer/qvideosurfacegstsink.h
+++ b/src/plugins/mediaservices/gstreamer/qvideosurfacegstsink.h
@@ -50,6 +50,7 @@
#include <QtCore/qwaitcondition.h>
#include <QtMultimedia/qvideosurfaceformat.h>
#include <QtMultimedia/qvideoframe.h>
+#include <QtMultimedia/qabstractvideobuffer.h>
QT_BEGIN_HEADER
@@ -58,17 +59,27 @@ QT_BEGIN_NAMESPACE
class QAbstractVideoSurface;
+class QGstXvImageBuffer;
+class QGstXvImageBufferPool;
+
+
class QVideoSurfaceGstDelegate : public QObject
{
Q_OBJECT
public:
QVideoSurfaceGstDelegate(QAbstractVideoSurface *surface);
- QList<QVideoFrame::PixelFormat> supportedPixelFormats() const;
+ QList<QVideoFrame::PixelFormat> supportedPixelFormats(
+ QAbstractVideoBuffer::HandleType handleType = QAbstractVideoBuffer::NoHandle) const;
+
+ QVideoSurfaceFormat surfaceFormat() const;
+
bool start(const QVideoSurfaceFormat &format, int bytesPerLine);
void stop();
+ bool isActive();
+
GstFlowReturn render(GstBuffer *buffer);
private slots:
@@ -97,6 +108,7 @@ public:
GstVideoSink parent;
static QVideoSurfaceGstSink *createSink(QAbstractVideoSurface *surface);
+ static QVideoSurfaceFormat formatForCaps(GstCaps *caps, int *bytesPerLine = 0);
private:
static GType get_type();
@@ -125,6 +137,10 @@ private:
private:
QVideoSurfaceGstDelegate *delegate;
+ QGstXvImageBufferPool *pool;
+ GstCaps *lastRequestedCaps;
+ GstCaps *lastBufferCaps;
+ QVideoSurfaceFormat *lastSurfaceFormat;
};