Skip to content
  • 144k Topics
    721k Posts
    R
    Thanks for the response. I'm not quite sure how to answer the question - I've always been a bit confused wrt Linux audio. So this might be more information than is needed... The stack: I believe the answer is "pipewire" though pulse-audio is in there somewhere. But the qt6 version dumps some disturbing chatter to stdout: qt.multimedia.ffmpeg: Using Qt multimedia with FFmpeg version 7.1.2 GPL version 3 or later Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory libva info: VA-API version 1.22.0 libva info: Trying to open /usr/lib64/dri-nonfree/iHD_drv_video.so libva info: Trying to open /usr/lib64/dri-freeworld/iHD_drv_video.so libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so libva info: Found init function __vaDriverInit_1_22 libva info: va_openDriver() returns 0 libva info: VA-API version 1.22.0 libva info: Trying to open /usr/lib64/dri-nonfree/iHD_drv_video.so libva info: Trying to open /usr/lib64/dri-freeworld/iHD_drv_video.so libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so libva info: Found init function __vaDriverInit_1_22 libva info: va_openDriver() returns 0 I know that pulse is involved as I set up a couple of virtual devices like this: pactl load-module module-null-sink sink_name=RSink sink_properties=device.description="RadioSink" pactl load-module module-null-sink sink_name=MSink sink_properties=device.description="ModemSink" (These are to provide paths between a modem inside one app (wsjtx) and an SDR running in a separate process.) I modified both example programs to write directly to the qInfo stream: qt6 version: const auto devices = m_mode == QAudioDevice::Input ? m_devices->audioInputs() : m_devices->audioOutputs(); for (auto &deviceInfo : devices) { QString description = deviceInfo.description(); description.replace(u"\n"_s, u" - "_s); deviceBox->addItem(description, QVariant::fromValue(deviceInfo)); qInfo() << QString("audio device [%1] from audio%2()") .arg(description) .arg((m_mode == QAudioDevice::Input) ? "Inputs" : "Outputs") ; } which produces this output: "" "audio device [Built-in Audio Analog Stereo] from audioOutputs()" "audio device [RadioSink] from audioOutputs()" "audio device [ModemSink] from audioOutputs()" "audio device [NoMachine Output] from audioOutputs()" "" "audio device [Remapped nx_voice_out] from audioInputs()" "" The qt5 version looks like this: const QAudio::Mode mode = idx == 0 ? QAudio::AudioInput : QAudio::AudioOutput; for (auto &deviceInfo: QAudioDeviceInfo::availableDevices(mode)) { deviceBox->addItem(deviceInfo.deviceName(), QVariant::fromValue(deviceInfo)); qInfo() << QString("audio device [%1] from QAudioDeviceInfo::availableDevices(QAudio::Audio%2)") .arg(deviceInfo.deviceName()) .arg((mode == 0) ? "Input" : "Output") ; } and I get this for the output: QSocketNotifier: Can only be used with threads started with QThread "audio device [pipewire] from QAudioDeviceInfo::availableDevices(QAudio::AudioInput)" "audio device [default] from QAudioDeviceInfo::availableDevices(QAudio::AudioInput)" "audio device [sysdefault:CARD=PCH] from QAudioDeviceInfo::availableDevices(QAudio::AudioInput)" "audio device [front:CARD=PCH,DEV=0] from QAudioDeviceInfo::availableDevices(QAudio::AudioInput)" "audio device [nx_remapped_out] from QAudioDeviceInfo::availableDevices(QAudio::AudioInput)" "audio device [alsa_output.pci-0000_00_1f.3.analog-stereo.monitor] from QAudioDeviceInfo::availableDevices(QAudio::AudioInput)" "audio device [RSink.monitor] from QAudioDeviceInfo::availableDevices(QAudio::AudioInput)" "audio device [MSink.monitor] from QAudioDeviceInfo::availableDevices(QAudio::AudioInput)" "audio device [nx_voice_out.monitor] from QAudioDeviceInfo::availableDevices(QAudio::AudioInput)" qt.qpa.wayland: Wayland does not support QWindow::requestActivate() "audio device [pipewire] from QAudioDeviceInfo::availableDevices(QAudio::AudioOutput)" "audio device [default] from QAudioDeviceInfo::availableDevices(QAudio::AudioOutput)" "audio device [sysdefault:CARD=PCH] from QAudioDeviceInfo::availableDevices(QAudio::AudioOutput)" "audio device [front:CARD=PCH,DEV=0] from QAudioDeviceInfo::availableDevices(QAudio::AudioOutput)" "audio device [surround21:CARD=PCH,DEV=0] from QAudioDeviceInfo::availableDevices(QAudio::AudioOutput)" "audio device [surround40:CARD=PCH,DEV=0] from QAudioDeviceInfo::availableDevices(QAudio::AudioOutput)" "audio device [surround41:CARD=PCH,DEV=0] from QAudioDeviceInfo::availableDevices(QAudio::AudioOutput)" "audio device [surround50:CARD=PCH,DEV=0] from QAudioDeviceInfo::availableDevices(QAudio::AudioOutput)" "audio device [surround51:CARD=PCH,DEV=0] from QAudioDeviceInfo::availableDevices(QAudio::AudioOutput)" "audio device [surround71:CARD=PCH,DEV=0] from QAudioDeviceInfo::availableDevices(QAudio::AudioOutput)" "audio device [hdmi:CARD=PCH,DEV=0] from QAudioDeviceInfo::availableDevices(QAudio::AudioOutput)" "audio device [hdmi:CARD=PCH,DEV=1] from QAudioDeviceInfo::availableDevices(QAudio::AudioOutput)" "audio device [hdmi:CARD=PCH,DEV=2] from QAudioDeviceInfo::availableDevices(QAudio::AudioOutput)" "audio device [hdmi:CARD=PCH,DEV=3] from QAudioDeviceInfo::availableDevices(QAudio::AudioOutput)" "audio device [alsa_output.pci-0000_00_1f.3.analog-stereo] from QAudioDeviceInfo::availableDevices(QAudio::AudioOutput)" "audio device [RSink] from QAudioDeviceInfo::availableDevices(QAudio::AudioOutput)" "audio device [MSink] from QAudioDeviceInfo::availableDevices(QAudio::AudioOutput)" "audio device [nx_voice_out] from QAudioDeviceInfo::availableDevices(QAudio::AudioOutput)" (Sorry for the monster blobs...) So. The qt5 operations do what I expect. I don't believe the problem comes from the virtual MSink and RSink devices. The complaint about the VDPAU backend may be a hint. I've been unable to figure out where it comes from. I don't have any nVidia hardware on this box. I'm building the dev branch from the git sources now. I'll see if a new built-from-source version has the same lib...nvidia problem. That'll take a while, it may take until the weekend. Thank you for your help. Is there more information I can provide.? I apologize for the lack of linux audio sophistication.
  • Jobs, project showcases, announcements - anything that isn't directly development
    4k 23k
    4k Topics
    23k Posts
    sierdzioS
    I have 2 guesses: AI, like @SimonSchroeder mentioned, but also Qt licensing & hiding of Open Source downloads section which keeps making Qt less and less popular, especially among young students - which previously were the source of big chunk of the questions here on the forums. Qt has focused on automotive and embedded, and falls in popularity everywhere else. At least I feel so; perhaps I am wrong.
  • Everything related to designing and design tools

    129 392
    129 Topics
    392 Posts
    J
    Using QT Designer might be the simpler route if the main goal is to keep the workflow smooth with Python. QT Design Studio projects often need manual adjustments before they run properly under PySide6.
  • Everything related to the QA Tools

    88 233
    88 Topics
    233 Posts
    M
    When I create a new test suite, Squish adds the prefix "suite_" to the corresponding directory name. When I create a new test case, Squish adds the prefix "tst_" to the corresponding directory name. Is there any way to change / avoid the prefix?
  • Everything related to learning Qt.

    391 2k
    391 Topics
    2k Posts
    S
    @Jackol Did you or did an AI write that answer?
  • 2k Topics
    13k Posts
    JoeCFDJ
    @xmunix The following code works on Android, Ubuntu and Yocto. try it out. `` ApplicationWindow { id: mainWindow visibility: Window.FullScreen
  • 4k Topics
    18k Posts
    C
    [image: dc2880e7-0937-4483-91de-5cc6b1e0664b.png] 项目升级QT6后启动 ASSERT failure in class QFactoryLoader *__cdecl QtGlobalStatic::ApplicationHolder<struct `anonymous namespace'::Q_QAS_qtlsbLoader>::pointer(void) noexcept(false): "The application static was used without a QCoreApplication instance", file C:/Users/qt/work/qt/qtbase/src/corelib/kernel/qapplicationstatic.h, line 59 这是什么原因造成
  • This is where all the posts related to the Qt web services go. Including severe sillyness.
    1k 10k
    1k Topics
    10k Posts
    A
    @JonB Thank you for your reply. I tried creating a thread by sending the original message, and it worked. It looks like the "upvote" worked. Thank you for your help!