Changing input device improperly changes output device
Using gnome-control-center-45.0-2.fc39, if I open the Sound panel and change the input device, then the output device gets reset and I have to select it again. That's weird:
Screencast_from_2023-10-26_13-50-46
In contrast, when I change the output device, nothing untoward happens to the input device selection.
I took a backtrace showing output_device_update_cb
executing after the changing the input device:
#0 output_device_update_cb (self=0x17225b0, id=5) at ../../../../../../Projects/gnome-control-center/panels/sound/cc-sound-panel.c:176
#1 0x00007ffff7f70269 in g_cclosure_marshal_VOID__UINT (closure=0x19a6e70, return_value=0x0, n_param_values=2, param_values=0x7fffffffd1c0, invocation_hint=0x7fffffffd060, marshal_data=0x0) at ../../../../Projects/glib/gobject/gmarshal.c:648
#2 0x00007ffff7f6bd1f in g_closure_invoke (closure=0x19a6e70, return_value=0x0, n_param_values=2, param_values=0x7fffffffd1c0, invocation_hint=0x7fffffffd060) at ../../../../Projects/glib/gobject/gclosure.c:832
#3 0x00007ffff7f8c5fe in signal_emit_unlocked_R (node=0x7fffffffd310, detail=0, instance=0x199f460, emission_return=0x0, instance_and_params=0x7fffffffd1c0) at ../../../../Projects/glib/gobject/gsignal.c:3980
#4 0x00007ffff7f8b4ef in signal_emit_valist_unlocked (instance=0x199f460, signal_id=268, detail=0, var_args=0x7fffffffd518) at ../../../../Projects/glib/gobject/gsignal.c:3612
#5 0x00007ffff7f8a1f5 in g_signal_emit_valist (instance=0x199f460, signal_id=268, detail=0, var_args=0x7fffffffd518) at ../../../../Projects/glib/gobject/gsignal.c:3355
#6 0x00007ffff7f8ba80 in g_signal_emit (instance=0x199f460, signal_id=268, detail=0) at ../../../../Projects/glib/gobject/gsignal.c:3675
#7 0x0000000000543f55 in _set_default_sink (control=0x199f460, stream=0x1a017e0) at ../../../../../../Projects/gnome-control-center/subprojects/gvc/gvc-mixer-control.c:1079
#8 0x00000000005441ad in update_default_sink_from_name (control=0x199f460, name=0x1ae3769 "alsa_output.pci-0000_09_00.3.iec958-stereo") at ../../../../../../Projects/gnome-control-center/subprojects/gvc/gvc-mixer-control.c:1161
#9 0x000000000054422f in update_server (control=0x199f460, info=0x7fffffffd6e0) at ../../../../../../Projects/gnome-control-center/subprojects/gvc/gvc-mixer-control.c:1174
#10 0x0000000000547646 in _pa_context_get_server_info_cb (context=0x18fb400, i=0x7fffffffd6e0, userdata=0x199f460) at ../../../../../../Projects/gnome-control-center/subprojects/gvc/gvc-mixer-control.c:2824
#11 0x00007ffff5fc2e69 in context_get_server_info_callback (pd=pd@entry=0x19b0270, command=command@entry=2, tag=tag@entry=26, t=t@entry=0x17ea5c0, userdata=userdata@entry=0x1825bf0) at ../src/pulse/introspect.c:122
#12 0x00007ffff1397588 in run_action (pd=0x19b0270, r=0x1825ac0, command=2, ts=0x17ea5c0) at ../src/pulsecore/pdispatch.c:291
#13 0x00007ffff139bb1c in pa_pdispatch_run (pd=0x19b0270, packet=packet@entry=0x18271b0, ancil_data=ancil_data@entry=0x19b0dc8, userdata=userdata@entry=0x18fb400) at ../src/pulsecore/pdispatch.c:344
#14 0x00007ffff5fc31ab in pstream_packet_callback (p=<optimized out>, packet=0x18271b0, ancil_data=0x19b0dc8, userdata=0x18fb400) at ../src/pulse/context.c:364
#15 0x00007ffff139e94f in do_read (p=p@entry=0x19b0b30, re=re@entry=0x19b0cb0) at ../src/pulsecore/pstream.c:1023
#16 0x00007ffff13a03a7 in do_pstream_read_write (p=0x19b0b30) at ../src/pulsecore/pstream.c:261
#17 0x00007ffff622a8a1 in dispatch_func (source=0x18be700, callback=<optimized out>, userdata=<optimized out>) at ../src/pulse/glib-mainloop.c:581
#18 0x00007ffff7af2133 in g_main_dispatch (context=0x9b01b0) at ../../../../Projects/glib/glib/gmain.c:3340
#19 0x00007ffff7af31ad in g_main_context_dispatch_unlocked (context=0x9b01b0) at ../../../../Projects/glib/glib/gmain.c:4148
#20 0x00007ffff7af3361 in g_main_context_iterate_unlocked (context=0x9b01b0, block=1, dispatch=1, self=0x9b0340) at ../../../../Projects/glib/glib/gmain.c:4213
#21 0x00007ffff7af3419 in g_main_context_iteration (context=0x9b01b0, may_block=1) at ../../../../Projects/glib/glib/gmain.c:4278
#22 0x00007ffff7d23144 in g_application_run (application=0x9abed0, argc=1, argv=0x7fffffffdcd8) at ../../../../Projects/glib/gio/gapplication.c:2577
#23 0x0000000000460747 in main (argc=1, argv=0x7fffffffdcd8) at ../../../../../../Projects/gnome-control-center/shell/main.c:87
Looks like either a bug in pipewire or in libgvc? Not sure which.