summaryrefslogtreecommitdiffstats
path: root/src/multimedia/platform/gstreamer/common/qgstreameraudioinput.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia/platform/gstreamer/common/qgstreameraudioinput.cpp')
-rw-r--r--src/multimedia/platform/gstreamer/common/qgstreameraudioinput.cpp23
1 files changed, 2 insertions, 21 deletions
diff --git a/src/multimedia/platform/gstreamer/common/qgstreameraudioinput.cpp b/src/multimedia/platform/gstreamer/common/qgstreameraudioinput.cpp
index 46e941a00..f406462e4 100644
--- a/src/multimedia/platform/gstreamer/common/qgstreameraudioinput.cpp
+++ b/src/multimedia/platform/gstreamer/common/qgstreameraudioinput.cpp
@@ -111,18 +111,8 @@ void QGstreamerAudioInput::setAudioDevice(const QAudioDevice &device)
qCDebug(qLcMediaAudioInput) << "setAudioInput" << device.description() << device.isNull();
m_audioDevice = device;
- if (gstPipeline.isNull() || gstPipeline.state() != GST_STATE_PLAYING) {
- changeAudioInput();
- return;
- }
-
- auto pad = audioVolume.staticPad("src");
- pad.addProbe<&QGstreamerAudioInput::prepareAudioInputChange>(this, GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM);
-}
+ gstPipeline.beginConfig();
-bool QGstreamerAudioInput::changeAudioInput()
-{
- qCDebug(qLcMediaAudioInput) << "Changing audio Input";
QGstElement newSrc;
auto *deviceInfo = static_cast<const QGStreamerAudioDeviceInfo *>(m_audioDevice.handle());
if (deviceInfo && deviceInfo->gstDevice)
@@ -138,16 +128,7 @@ bool QGstreamerAudioInput::changeAudioInput()
audioSrc.link(audioVolume);
audioSrc.setState(GST_STATE_PAUSED);
- return true;
-}
-
-void QGstreamerAudioInput::prepareAudioInputChange(const QGstPad &/*pad*/)
-{
- qCDebug(qLcMediaAudioInput) << "Reconfiguring audio Input";
-
- gstPipeline.setStateSync(GST_STATE_PAUSED);
- changeAudioInput();
- gstPipeline.setState(GST_STATE_PLAYING);
+ gstPipeline.endConfig();
}
QAudioDevice QGstreamerAudioInput::audioInput() const