summaryrefslogtreecommitdiffstats
path: root/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.h
diff options
context:
space:
mode:
authorLev Zelenskiy <lev.zelenskiy@nokia.com>2012-02-15 14:45:18 +1000
committerQt by Nokia <qt-info@nokia.com>2012-02-16 07:18:27 +0100
commit16aef591875becad3e6f388af0a2f029cb68b775 (patch)
tree45af5b903258966e89aa44449c33705fffbd3c3c /src/plugins/gstreamer/mediacapture/qgstreamercapturesession.h
parent0374f0de5ec881569e463505b232b3870c0fd9d2 (diff)
QMediaRecorder: GStreamer backend changes for media probing API.
QGstreamerCaptureSession: Using GStreamer buffer probe to access media data. Change-Id: I2ee38e864fbd69fcba9efe90d4dcf138528e00c0 Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Diffstat (limited to 'src/plugins/gstreamer/mediacapture/qgstreamercapturesession.h')
-rw-r--r--src/plugins/gstreamer/mediacapture/qgstreamercapturesession.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.h b/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.h
index 2c2fd025f..cb03b173f 100644
--- a/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.h
+++ b/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.h
@@ -45,6 +45,7 @@
#include <qmediarecordercontrol.h>
#include <qmediarecorder.h>
+#include <QtCore/qmutex.h>
#include <QtCore/qurl.h>
#include <gst/gst.h>
@@ -61,6 +62,7 @@ class QGstreamerImageEncode;
class QGstreamerRecorderControl;
class QGstreamerMediaContainerControl;
class QGstreamerVideoRendererInterface;
+class QGstreamerAudioProbeControl;
class QGstreamerElementFactory
{
@@ -127,6 +129,10 @@ public:
bool processBusMessage(const QGstreamerMessage &message);
+ void addProbe(QGstreamerAudioProbeControl* probe);
+ void removeProbe(QGstreamerAudioProbeControl* probe);
+ static gboolean padAudioBufferProbe(GstPad *pad, GstBuffer *buffer, gpointer user_data);
+
signals:
void stateChanged(QGstreamerCaptureSession::State state);
void durationChanged(qint64 duration);
@@ -160,6 +166,10 @@ private:
void waitForStopped();
bool rebuildGraph(QGstreamerCaptureSession::PipelineMode newMode);
+ GstPad *getAudioProbePad();
+ void removeAudioBufferProbe();
+ void addAudioBufferProbe();
+
QUrl m_sink;
QString m_captureDevice;
State m_state;
@@ -169,6 +179,10 @@ private:
QGstreamerCaptureSession::CaptureMode m_captureMode;
QMap<QByteArray, QVariant> m_metaData;
+ QList<QGstreamerAudioProbeControl*> m_audioProbes;
+ QMutex m_audioProbeMutex;
+ int m_audioBufferProbeId;
+
QGstreamerElementFactory *m_audioInputFactory;
QGstreamerElementFactory *m_audioPreviewFactory;
QGstreamerVideoInput *m_videoInputFactory;