pjproject
pjproject copied to clipboard
AudioDevInfos returned by enumDev2() / portaudio all have a zero id
Describe the bug
As the title says: I'd like to list the devices in an application, so that the user can configure the desired audio devices. pjsip
wants to be fed with the Device ID in certain places, but the id
member of AudioDevInfo is always zero here.
I'm working that around by using the list index, currently.
Steps to reproduce
Make sure pjsip is using portaudio. Create a mini C++ program that does something like this:
#include <pjsua2.hpp>
#include <iostream>
#include <utility>
using namespace pj;
int main()
{
Endpoint ep;
ep.libCreate();
EpConfig ep_cfg;
ep.libInit( ep_cfg );
ep.libStart();
auto devices = ep.audDevManager().enumDev2();
for (auto& info : std::as_const(devices)) {
std::cout << info.id << " - " << info.name << std::endl;
}
ep.libDestroy();
return 0;
}
Output is
0 - Default Sink
0 - Default Source
0 - Family 17h/19h HD Audio Controller Speaker + Headphones
0 - Yealink WH62 Digital Stereo (IEC958)
0 - Renoir Radeon High Definition Audio Controller HDMI / DisplayPort 4 Output
0 - Renoir Radeon High Definition Audio Controller HDMI / DisplayPort 3 Output
0 - Renoir Radeon High Definition Audio Controller HDMI / DisplayPort 2 Output
0 - Renoir Radeon High Definition Audio Controller HDMI / DisplayPort 1 Output
0 - Monitor of Family 17h/19h HD Audio Controller Speaker + Headphones
0 - Family 17h/19h HD Audio Controller Headphones Stereo Microphone
0 - Family 17h/19h HD Audio Controller Digital Microphone
0 - Monitor of Yealink WH62 Digital Stereo (IEC958)
0 - Yealink WH62 Digital Stereo (IEC958)
0 - Monitor of Renoir Radeon High Definition Audio Controller HDMI / DisplayPort 4 Output
0 - Monitor of Renoir Radeon High Definition Audio Controller HDMI / DisplayPort 3 Output
0 - Monitor of Renoir Radeon High Definition Audio Controller HDMI / DisplayPort 2 Output
0 - Monitor of Renoir Radeon High Definition Audio Controller HDMI / DisplayPort 1 Output
where id
is 0
for each device.
PJSIP version
master
Context
Fedora 40, Linux, portaudio (master) configured for pulse. Thinkpad T14.
Log, call stack, etc
12:10:55.031 os_core_unix.c !pjlib 2.14-dev for POSIX initialized
12:10:55.032 sip_endpoint.c .Creating endpoint instance...
12:10:55.032 pjlib .select() I/O Queue created (0x270d6b8)
12:10:55.032 sip_endpoint.c .Module "mod-msg-print" registered
12:10:55.032 sip_transport.c .Transport manager created.
12:10:55.032 pjsua_core.c .PJSUA state changed: NULL --> CREATED
12:10:55.032 sip_endpoint.c .Module "mod-pjsua-log" registered
12:10:55.032 sip_endpoint.c .Module "mod-tsx-layer" registered
12:10:55.032 sip_endpoint.c .Module "mod-stateful-util" registered
12:10:55.032 sip_endpoint.c .Module "mod-ua" registered
12:10:55.032 sip_endpoint.c .Module "mod-100rel" registered
12:10:55.032 sip_endpoint.c .Module "mod-pjsua" registered
12:10:55.032 sip_endpoint.c .Module "mod-invite" registered
12:10:55.036 pa_dev.c ..PortAudio sound library initialized, status=0
12:10:55.036 pa_dev.c ..PortAudio host api count=1
12:10:55.036 pa_dev.c ..Sound device count=17
12:10:55.036 pjlib ..select() I/O Queue created (0x2735cf8)
12:10:55.040 sip_endpoint.c .Module "mod-evsub" registered
12:10:55.040 sip_endpoint.c .Module "mod-presence" registered
12:10:55.040 sip_endpoint.c .Module "mod-dlg_even" registered
12:10:55.040 sip_endpoint.c .Module "mod-mwi" registered
12:10:55.040 sip_endpoint.c .Module "mod-refer" registered
12:10:55.040 sip_endpoint.c .Module "mod-pjsua-pres" registered
12:10:55.040 sip_endpoint.c .Module "mod-pjsua-im" registered
12:10:55.040 sip_endpoint.c .Module "mod-pjsua-options" registered
12:10:55.040 pjsua_core.c .1 SIP worker threads created
12:10:55.040 pjsua_core.c .pjsua version 2.14-dev for Linux-6.8.9.44/x86_64/glibc-2.39 initialized
12:10:55.040 pjsua_core.c .PJSUA state changed: CREATED --> INIT
12:10:55.040 pjsua_core.c PJSUA state changed: INIT --> STARTING
12:10:55.040 sip_endpoint.c .Module "mod-unsolicited-mwi" registered
12:10:55.040 pjsua_core.c .PJSUA state changed: STARTING --> RUNNING
0 - Default Sink
0 - Default Source
0 - Family 17h/19h HD Audio Controller Speaker + Headphones
0 - Yealink WH62 Digital Stereo (IEC958)
0 - Renoir Radeon High Definition Audio Controller HDMI / DisplayPort 4 Output
0 - Renoir Radeon High Definition Audio Controller HDMI / DisplayPort 3 Output
0 - Renoir Radeon High Definition Audio Controller HDMI / DisplayPort 2 Output
0 - Renoir Radeon High Definition Audio Controller HDMI / DisplayPort 1 Output
0 - Monitor of Family 17h/19h HD Audio Controller Speaker + Headphones
0 - Family 17h/19h HD Audio Controller Headphones Stereo Microphone
0 - Family 17h/19h HD Audio Controller Digital Microphone
0 - Monitor of Yealink WH62 Digital Stereo (IEC958)
0 - Yealink WH62 Digital Stereo (IEC958)
0 - Monitor of Renoir Radeon High Definition Audio Controller HDMI / DisplayPort 4 Output
0 - Monitor of Renoir Radeon High Definition Audio Controller HDMI / DisplayPort 3 Output
0 - Monitor of Renoir Radeon High Definition Audio Controller HDMI / DisplayPort 2 Output
0 - Monitor of Renoir Radeon High Definition Audio Controller HDMI / DisplayPort 1 Output
12:10:55.040 pjsua_core.c Shutting down, flags=0...
12:10:55.040 pjsua_core.c PJSUA state changed: RUNNING --> CLOSING
12:10:55.050 pjsua_call.c .Hangup all calls..
12:10:55.050 pjsua_pres.c .Shutting down presence..
12:10:56.051 pjsua_core.c .Destroying...
12:10:56.051 pjsua_media.c .Shutting down media..
12:10:56.055 pa_dev.c ..PortAudio sound library shutting down..
12:10:56.055 sip_transaction.c .Stopping transaction layer module
12:10:56.055 sip_transaction.c .Stopped transaction layer module
12:10:56.055 sip_endpoint.c .Module "mod-unsolicited-mwi" unregistered
12:10:56.055 sip_endpoint.c .Module "mod-pjsua-options" unregistered
12:10:56.055 sip_endpoint.c .Module "mod-pjsua-im" unregistered
12:10:56.055 sip_endpoint.c .Module "mod-pjsua-pres" unregistered
12:10:56.055 sip_endpoint.c .Module "mod-pjsua" unregistered
12:10:56.055 sip_endpoint.c .Module "mod-stateful-util" unregistered
12:10:56.055 sip_endpoint.c .Module "mod-refer" unregistered
12:10:56.055 sip_endpoint.c .Module "mod-mwi" unregistered
12:10:56.055 sip_endpoint.c .Module "mod-dlg_even" unregistered
12:10:56.055 sip_endpoint.c .Module "mod-presence" unregistered
12:10:56.055 sip_endpoint.c .Module "mod-evsub" unregistered
12:10:56.055 sip_endpoint.c .Module "mod-invite" unregistered
12:10:56.055 sip_endpoint.c .Module "mod-100rel" unregistered
12:10:56.055 sip_endpoint.c .Module "mod-ua" unregistered
12:10:56.055 sip_transaction.c .Transaction layer module destroyed
12:10:56.055 sip_endpoint.c .Module "mod-tsx-layer" unregistered
12:10:56.055 sip_endpoint.c .Module "mod-msg-print" unregistered
12:10:56.055 sip_endpoint.c .Module "mod-pjsua-log" unregistered
12:10:56.055 timer.c .Dumping timer heap:
12:10:56.055 timer.c . Cur size: 0 entries, max: 3070
12:10:56.055 sip_endpoint.c .Endpoint 0x2703738 destroyed
12:10:56.055 pjsua_core.c .PJSUA state changed: CLOSING --> NULL
12:10:56.055 pjsua_core.c .PJSUA destroyed...