diff options
author | Lev Zelenskiy <lev.zelenskiy@nokia.com> | 2012-02-15 14:45:18 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-16 07:18:27 +0100 |
commit | 16aef591875becad3e6f388af0a2f029cb68b775 (patch) | |
tree | 45af5b903258966e89aa44449c33705fffbd3c3c /src/plugins/gstreamer/mediacapture/qgstreamercapturesession.h | |
parent | 0374f0de5ec881569e463505b232b3870c0fd9d2 (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.h | 14 |
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; |