9#include <QtCore/qloggingcategory.h>
10#include <QtNetwork/qnetworkaccessmanager.h>
11#include <QtNetwork/qnetworkreply.h>
25 QGstElement audioconvert(
"audioconvert",
"audioConvert");
29 QGstElement audioresample(
"audioresample",
"audioResample");
37 QGstElement autoaudiosink(
"autoaudiosink",
"autoAudioSink");
49 gstAudioOutput(
"audioOutput"),
50 audioConvert(
std::move(audioconvert)),
51 audioResample(
std::move(audioresample)),
52 audioVolume(
std::move(volume)),
53 audioSink(
std::move(autoaudiosink))
56 gstAudioOutput.add(audioQueue, audioConvert, audioResample, audioVolume, audioSink);
57 audioQueue.link(audioConvert, audioResample, audioVolume, audioSink);
59 gstAudioOutput.addGhostPad(audioQueue,
"sink");
69 audioVolume.
set(
"volume", vol);
79 gstPipeline = pipeline;
84 if (
info == m_audioOutput)
86 qCDebug(qLcMediaAudioOutput) <<
"setAudioOutput" <<
info.description() <<
info.isNull();
90#if QT_CONFIG(pulseaudio)
91 auto id = m_audioOutput.
id();
94 newSink.
set(
"device",
id.constData());
96 qCWarning(qLcMediaAudioOutput) <<
"Invalid audio device";
99 if (deviceInfo && deviceInfo->gstDevice)
100 newSink = gst_device_create_element(deviceInfo->gstDevice ,
"audiosink");
102 qCWarning(qLcMediaAudioOutput) <<
"Invalid audio device";
106 qCWarning(qLcMediaAudioOutput) <<
"Failed to create a gst element for the audio device, using a default audio sink";
107 newSink =
QGstElement(
"autoaudiosink",
"audiosink");
111 audioVolume.
unlink(audioSink);
112 gstAudioOutput.
remove(audioSink);
113 gstAudioOutput.
add(newSink);
115 audioVolume.
link(newSink);
124#include "moc_qgstreameraudiooutput_p.cpp"
The QAudioDevice class provides an information about audio devices and their functionality.
QByteArray id
\qmlproperty string QtMultimedia::audioDevice::id
const QAudioDevicePrivate * handle() const
\qmltype AudioOutput \instantiates QAudioOutput
void remove(const QGstElement &element)
void add(const QGstElement &element)
bool setStateSync(GstState state)
bool syncStateWithParent()
void unlink(const QGstElement &next)
QGstPad staticPad(const char *name) const
bool link(const QGstElement &next)
void set(const char *property, const char *str)
void doInIdleProbe(std::function< void()> work)
void setPipeline(const QGstPipeline &pipeline)
void setAudioDevice(const QAudioDevice &) override
void setMuted(bool muted) override
void setVolume(float volume) override
Combined button and popup list for selecting options.
QString errorMessageCannotFindElement(std::string_view element)
#define Q_LOGGING_CATEGORY(name,...)
#define qCWarning(category,...)
#define qCDebug(category,...)
QFileInfo info(fileName)
[8]
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent