summaryrefslogtreecommitdiffstats
path: root/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp
diff options
context:
space:
mode:
authorDmytro Poplavskiy <dmytro.poplavskiy@nokia.com>2012-05-21 12:09:50 +1000
committerQt by Nokia <qt-info@nokia.com>2012-07-19 09:08:53 +0200
commit36ff2fe85e418e7cf82f6c6a67d49a2f16998853 (patch)
tree5d64120ddcffa9415149e1ebc3ebc7bbf86ac9bb /src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp
parent0d0e89b1e89589812a91ee8d202de2576d6ae89f (diff)
Added volume property to QMediaRecorder
Change-Id: I19f727107651c9f640ca1c010a3764f05aef8820 Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Diffstat (limited to 'src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp')
-rw-r--r--src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp b/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp
index 30b1012b7..435a413ae 100644
--- a/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp
+++ b/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp
@@ -86,6 +86,7 @@ QGstreamerCaptureSession::QGstreamerCaptureSession(QGstreamerCaptureSession::Cap
m_audioPreview(0),
m_audioVolume(0),
m_muted(false),
+ m_volume(1.0),
m_videoSrc(0),
m_videoTee(0),
m_videoPreviewQueue(0),
@@ -163,7 +164,8 @@ GstElement *QGstreamerCaptureSession::buildEncodeBin()
return 0;
}
- g_object_set(G_OBJECT(m_audioVolume), "volume", (m_muted ? 0.0 : 1.0), NULL);
+ g_object_set(G_OBJECT(m_audioVolume), "mute", m_muted, NULL);
+ g_object_set(G_OBJECT(m_audioVolume), "volume", m_volume, NULL);
// add ghostpads
GstPad *pad = gst_element_get_static_pad(audioConvert, "sink");
@@ -1012,14 +1014,26 @@ bool QGstreamerCaptureSession::processBusMessage(const QGstreamerMessage &messag
void QGstreamerCaptureSession::setMuted(bool muted)
{
- if (m_muted != muted) {
+ if (bool(m_muted) != muted) {
m_muted = muted;
if (m_audioVolume)
- g_object_set(G_OBJECT(m_audioVolume), "volume", (m_muted ? 0.0 : 1.0), NULL);
+ g_object_set(G_OBJECT(m_audioVolume), "mute", m_muted, NULL);
+
emit mutedChanged(muted);
}
}
+void QGstreamerCaptureSession::setVolume(qreal volume)
+{
+ if (!qFuzzyCompare(volume, m_volume)) {
+ m_volume = volume;
+ if (m_audioVolume)
+ g_object_set(G_OBJECT(m_audioVolume), "volume", m_volume, NULL);
+
+ emit volumeChanged(volume);
+ }
+}
+
void QGstreamerCaptureSession::addProbe(QGstreamerAudioProbeControl* probe)
{
QMutexLocker locker(&m_audioProbeMutex);