GStreamer: port to 1.0.
0.10 is still used by default. To enable GStreamer 1.0, pass GST_VERSION=1.0 to qmake for qtmultimedia.pro. Contributions from: Andrew den Exter <andrew.den.exter@qinetic.com.au> Ilya Smelykh <ilya@videoexpertsgroup.com> Jim Hodapp <jim.hodapp@canonical.com> Sergio Schvezov <sergio.schvezov@canonical.com> Change-Id: I72a46d1170a8794a149bdb5e20767afcc5b7587c Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
This commit is contained in:
committed by
Andrew den Exter
parent
7e3d69668e
commit
108dda7a90
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user