libgnome-volume-control issueshttps://gitlab.gnome.org/GNOME/libgnome-volume-control/-/issues2024-03-24T17:26:04Zhttps://gitlab.gnome.org/GNOME/libgnome-volume-control/-/issues/25Updated to wireplumber 0.4.90 No output devices2024-03-24T17:26:04ZTed ChangUpdated to wireplumber 0.4.90 No output devices<!--
Please read https://gitlab.gnome.org/GNOME/gnome-shell/-/tree/main#reporting-bugs
first to ensure that you create a clear and specific issue.
-->
### Affected version
Provide at least the following information:
* openSUSE Tumblew...<!--
Please read https://gitlab.gnome.org/GNOME/gnome-shell/-/tree/main#reporting-bugs
first to ensure that you create a clear and specific issue.
-->
### Affected version
Provide at least the following information:
* openSUSE Tumbleweed - 20240309
* GNOME Shell 45.3
pipewire --version
pipewire
Compiled with libpipewire 1.0.3
Linked with libpipewire 1.0.3
(3/5) Installing: wireplumber-audio-0.4.90-1.1.noarch ....................[done]
(4/5) Installing: wireplumber-0.4.90-1.1.x86_64 ..........................[done]
(5/5) Installing: wireplumber-lang-0.4.90-1.1.noarch .....................[done]
### Bug summary
I feel like gnome see the default unplugged HDMI audio device and gives up enumerating the rest of the audio sinks. This bug does not affect kde-plasma6.
<!--
Provide a short summary of the bug you encountered.
-->
### Steps to reproduce
1. Install gnome with wayland
2. Update to the latest wireplumber
3. Open the settings menu
<!--
1. Step one
2. Step two
3. ...
-->
### What happened
I updated to the latest wireplumber and gnome-settings show "no audio devices". wpctl status shows a new unplugged HDMI audio sink has been added to pipewire. Somehow, this unplugged hdmi device is causing issues.
<!--
What did GNOME Shell do that was unexpected?
-->
### What did you expect to happen
Gnome-shell should see the hdmi device will not output sound and change to another audio sink.
<!--
What did you expect GNOME Shell to do?
-->
### Workarounds
I can plug in an hdmi audio device and the rest of the selection will become revealed.
Use `wpctl set-default <ID>` ( is the number in front of the speakers listing in the output, under `Audio -> Sinks`, in this case `59`) and it should work again
### Relevant logs, screenshots, screencasts etc.
```
pctl status #wireplumber .4.9.X I do not see anything different in the not working one.
PipeWire 'pipewire-0' [1.0.3, doof@steamdeck.lan, cookie:2152113247]
└─ Clients:
32. gnome-shell [1.0.3, doof@steamdeck.lan, pid:1758]
33. WirePlumber [1.0.3, doof@steamdeck.lan, pid:3492]
34. pipewire [1.0.3, doof@steamdeck.lan, pid:3494]
46. GNOME Shell Volume Control [1.0.3, doof@steamdeck.lan, pid:1758]
47. GNOME Volume Control Media Keys [1.0.3, doof@steamdeck.lan, pid:2620]
49. WirePlumber [export] [1.0.3, doof@steamdeck.lan, pid:3492]
57. xdg-desktop-portal [1.0.3, doof@steamdeck.lan, pid:3097]
80. GNOME Settings [1.0.3, doof@steamdeck.lan, pid:3962]
88. QPulse [1.0.3, doof@steamdeck.lan, pid:2613]
89. Steam Voice Settings [1.0.3, doof@steamdeck.lan, pid:3661]
90. Steam [1.0.3, doof@steamdeck.lan, pid:3661]
91. wpctl [1.0.3, doof@steamdeck.lan, pid:5932]
Audio
├─ Devices:
│ 50. Rembrandt Radeon High Definition Audio Controller [alsa]
│ 51. ACP/ACP3X/ACP6x Audio Coprocessor [alsa]
│
├─ Sinks:
│ * 58. Rembrandt Radeon High Definition Audio Controller Digital Surround 5.1 (HDMI 3) [vol: 1.00]
│ 59. ACP/ACP3X/ACP6x Audio Coprocessor Speaker [vol: 0.40]
│ 60. ACP/ACP3X/ACP6x Audio Coprocessor Headphones [vol: 1.00]
│
├─ Sources:
│ * 61. ACP/ACP3X/ACP6x Audio Coprocessor Headset Microphone + Internal Microphone [vol: 1.00]
│
├─ Filters:
│
└─ Streams:
81. GNOME Settings
82. input_FL < Headset Microphone + Internal Microphone:capture_FL [active]
83. monitor_FL
84. input_FR < Headset Microphone + Internal Microphone:capture_FR [active]
85. monitor_FR
Video
├─ Devices:
│
├─ Sinks:
│
├─ Sources:
│
├─ Filters:
│
└─ Streams:
Settings
└─ Default Configured Devices:
0. Audio/Sink auto_null
1. Audio/Source alsa_input.pci-0000_04_00.5-platform-acp5x_mach.0.HiFi__hw_acp5x_0__source
```
```
wpctl status ## working wireplumber 4.17.x
PipeWire 'pipewire-0' [1.0.3, doof@steamdeck.lan, cookie:450453743]
└─ Clients:
32. Steam [1.0.3, doof@steamdeck.lan, pid:4022]
33. xdg-desktop-portal [1.0.3, doof@steamdeck.lan, pid:3471]
34. WirePlumber [1.0.3, doof@steamdeck.lan, pid:10874]
35. WirePlumber [export] [1.0.3, doof@steamdeck.lan, pid:10874]
57. QPulse [1.0.3, doof@steamdeck.lan, pid:3230]
58. Firefox [1.0.3, doof@steamdeck.lan, pid:11248]
59. wpctl [1.0.3, doof@steamdeck.lan, pid:13525]
73. GNOME Volume Control Media Keys [1.0.3, doof@steamdeck.lan, pid:3217]
74. GNOME Shell Volume Control [1.0.3, doof@steamdeck.lan, pid:2790]
75. gnome-shell [1.0.3, doof@localhost.localdomain, pid:2790]
Audio
├─ Devices:
│ 42. Rembrandt Radeon High Definition Audio Controller [alsa]
│ 43. ACP/ACP3X/ACP6x Audio Coprocessor [alsa]
│
├─ Sinks:
│ * 44. ACP/ACP3X/ACP6x Audio Coprocessor Speaker [vol: 1.00]
│ 45. ACP/ACP3X/ACP6x Audio Coprocessor Headphones [vol: 1.00]
│
├─ Sink endpoints:
│
├─ Sources:
│ * 46. ACP/ACP3X/ACP6x Audio Coprocessor Headset Microphone + Internal Microphone [vol: 0.19 MUTED]
│
├─ Source endpoints:
│
└─ Streams:
Video
├─ Devices:
│
├─ Sinks:
│
├─ Sink endpoints:
│
├─ Sources:
│
├─ Source endpoints:
│
└─ Streams:
Settings
└─ Default Configured Node Names:
0. Audio/Sink auto_null
1. Audio/Source alsa_input.pci-0000_04_00.5-platform-acp5x_mach.0.HiFi__hw_acp5x_0__source
```
<!--
If you have further information, such as technical documentation, logs,
screenshots or screencasts related, please provide them here.
If the bug is a crash, please obtain a stack trace with installed debug
symbols (at least for GNOME Shell and Mutter) and attach it to
this issue following the instructions on
https://handbook.gnome.org/issues/stack-traces.html.
-->
![Screenshot_from_2024-03-10_19-34-38](/uploads/b63b0228b2a06fea279152a5f049bdb9/Screenshot_from_2024-03-10_19-34-38.png)
[2024-03-11_02-43-40.mkv](/uploads/1988e95fe7dc12eaeaf2174b896e834a/2024-03-11_02-43-40.mkv)
https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/590
https://bugzilla.opensuse.org/show_bug.cgi?id=1221203
<!-- Do not remove the following line. -->https://gitlab.gnome.org/GNOME/libgnome-volume-control/-/issues/24chromium based browser all identify as Chromium instead of the app name2024-03-06T15:26:23ZBatwamchromium based browser all identify as Chromium instead of the app nameAll chromium based browsers or electron apps appears to be identified as "Chromium" in the volume Mixer (or when using `gvc_mixer_stream_get_name` rather than by the app's name:
![image](/uploads/b7e8d3e33a0a0ee5bb715fd2823b9d63/image.p...All chromium based browsers or electron apps appears to be identified as "Chromium" in the volume Mixer (or when using `gvc_mixer_stream_get_name` rather than by the app's name:
![image](/uploads/b7e8d3e33a0a0ee5bb715fd2823b9d63/image.png)
This means that is a an app like TIDAL Hi-Fi and Brave are open, both show as "Chromium" and it's not possible to know which one is which. I did ask one of the app developers to see if this is something which can be changed at the app level but this didn't appear to be the case: https://github.com/Mastermindzh/tidal-hifi/issues/338
As far as I can tell, there doesn't appear to be any other info within the Mixer data which would allow to know which Stream corresponds to which app.
I was wondering if this is something which can be fixed at `libgnome-volume-control` level or elsewhere within the Gnome stack?https://gitlab.gnome.org/GNOME/libgnome-volume-control/-/issues/23GNOME Shell crashes in gvc_mixer_card_get_profile()2024-03-13T01:42:43ZPrinceton FerroGNOME Shell crashes in gvc_mixer_card_get_profile()**Known affected versions**: GNOME Shell 45.2
**Description of problem**: GNOME Shell will crash when trying to update the sound profile on Bluetooth headsets.
**Version release number on selected component**: 1:45.2-1 (Arch Linux)
**...**Known affected versions**: GNOME Shell 45.2
**Description of problem**: GNOME Shell will crash when trying to update the sound profile on Bluetooth headsets.
**Version release number on selected component**: 1:45.2-1 (Arch Linux)
**How reproducible**: Seems to happen either randomly or if, after connecting a Bluetooth headset, I try to switch the output/input.
**Steps to reproduce**:
1. Connect Bluetooth headset
2. Switch output and input
**Actual results**: GNOME Shell crashed with SIGABRT. `g_assert_not_reached()` is hit in `gvc_mixer_card_get_profile()`.
**Additional Info**:
In the last function, `card->priv->profile == "a2dp-sink"` and `card->priv->profiles` has 4 profiles, none of which have the name `"a2dp-sink"`:
1. `GvcMixerCardProfile {profile = 0x55ed15889c60 "off", human_profile = 0x55ed157c00a0 "Off", status = 0x55ed12b5f610 "Disabled", priority = 0, n_sinks = 0, n_sources = 0}`
2. `GvcMixerCardProfile {profile = 0x55ed105ab6b0 "headset-head-unit", human_profile = 0x55ed153bb940 "Headset Head Unit (HSP/HFP)", status = 0x55ed14844510 "1 Output / 1 Input", priority = 1, n_sinks = 1, n_sources = 1}`
3. `GvcMixerCardProfile {profile = 0x55ed14ce2ba0 "headset-head-unit-cvsd", human_profile = 0x55ed128aa660 "Headset Head Unit (HSP/HFP, codec CVSD)", status = 0x55ed152bd790 "1 Output / 1 Input", priority = 2, n_sinks = 1, n_sources = 1}`
4. `GvcMixerCardProfile {profile = 0x55ed10c34150 "headset-head-unit-msbc", human_profile = 0x55ed150aefb0 "Headset Head Unit (HSP/HFP, codec mSBC)", status = 0x55ed10d32990 "1 Output / 1 Input", priority = 3, n_sinks = 1, n_sources = 1}`
`*card->priv` is:
```
GvcMixerCardPrivate {pa_context = 0x55ed12e783b0, id = 6, index = 818, name = 0x55ed133b8a00 "Zone Wireless", icon_name = 0x55ed14b062c0 "audio-headset-bluetooth",
profile = 0x55ed141f3700 "a2dp-sink", target_profile = 0x0, human_profile = 0x0, profiles = 0x55ed13e249b0 = {0x55ed1273cae0, 0x55ed12380160, 0x55ed148f1020, 0x55ed15024240},
profile_op = 0x0, ports = 0x55ed159264b0 = {0x55ed149d2c00, 0x55ed14d84df0}
```
`*device->priv` in `gvc_mixer_control_change_profile_on_selected_device()` is:
```
GvcMixerUIDevicePrivate {first_line_desc = 0x55ed13d11140 "Handsfree", second_line_desc = 0x55ed15cc2b60 "Zone Wireless", card = 0x55ed106d9780, port_name = 0x55ed1037c600 "headset-hf-output",
icon_name = 0x0, stream_id = 0, id = 23, port_available = 1, supported_profiles = 0x55ed10477f80 = {0x55ed12380160, 0x55ed148f1020, 0x55ed15024240},
profiles = 0x55ed1285a400 = {0x55ed12380160, 0x55ed148f1020, 0x55ed15024240}, type = UIDeviceOutput, disable_profile_swapping = 0, user_preferred_profile = 0x0}
```
<details>
<summary>Stack trace:</summary>
```plaintext
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1 0x00007f6ff60ac8a3 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2 0x00007f6ff605c668 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3 0x000055ed0ee72109 in dump_gjs_stack_on_signal_handler (signo=6) at ../gnome-shell/src/main.c:467
#4 0x00007f6ff605c710 in <signal handler called> () at /usr/lib/libc.so.6
#5 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#6 0x00007f6ff60ac8a3 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#7 0x00007f6ff605c668 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#8 0x00007f6ff60444b8 in __GI_abort () at abort.c:79
#9 0x00007f6ff68f90ee in g_assertion_message
(domain=domain@entry=0x7f6f8043202e "Gvc", file=file@entry=0x7f6f80432f78 "../gnome-shell/subprojects/gvc/gvc-mixer-card.c", line=line@entry=168, func=func@entry=0x7f6f804354f0 <__func__.8.lto_priv.1> "gvc_mixer_card_get_profile", message=message@entry=0x55ed10bf55f0 "code should not be reached") at ../glib/glib/gtestutils.c:3497
#10 0x00007f6ff695a1e0 in g_assertion_message_expr
(domain=domain@entry=0x7f6f8043202e "Gvc", file=file@entry=0x7f6f80432f78 "../gnome-shell/subprojects/gvc/gvc-mixer-card.c", line=line@entry=168, func=func@entry=0x7f6f804354f0 <__func__.8.lto_priv.1> "gvc_mixer_card_get_profile", expr=expr@entry=0x0) at ../glib/glib/gtestutils.c:3523
#11 0x00007f6f80421984 in gvc_mixer_card_get_profile (card=<optimized out>) at ../gnome-shell/subprojects/gvc/gvc-mixer-card.c:168
#12 0x00007f6f80425ccb in gvc_mixer_control_change_profile_on_selected_device (control=0x55ed12de16f0, device=0x55ed15717a20, profile=0x0)
at ../gnome-shell/subprojects/gvc/gvc-mixer-control.c:552
#13 0x00007f6ff64984f6 in ffi_call_unix64 () at ../src/x86/unix64.S:104
#14 0x00007f6ff6494f5e in ffi_call_int (cif=cif@entry=0x55ed15b21590, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=closure@entry=0x0)
at ../src/x86/ffi64.c:673
#15 0x00007f6ff6497b73 in ffi_call (cif=0x55ed15b21590, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>) at ../src/x86/ffi64.c:710
#16 0x00007f6ff67befb7 in Gjs::Function::invoke(JSContext*, JS::CallArgs const&, JS::Handle<JSObject*>, _GIArgument*)
(this=0x55ed15b21570, context=context@entry=0x55ed0fd188d0, args=..., this_obj=..., r_value=r_value@entry=0x0) at ../gjs/gi/function.cpp:1058
#17 0x00007f6ff67c9bb8 in Gjs::Function::call(JSContext*, unsigned int, JS::Value*) (context=0x55ed0fd188d0, js_argc=<optimized out>, vp=<optimized out>)
at ../gjs/gi/function.cpp:1236
#18 0x00007f6ff4d9a948 in CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), js::CallReason, JS::CallArgs const&)
(cx=0x55ed0fd188d0, native=0x7f6ff67c9ad0 <Gjs::Function::call(JSContext*, unsigned int, JS::Value*)>, reason=js::CallReason::Call, args=...)
at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/Interpreter.cpp:486
#19 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason)
(cx=0x55ed0fd188d0, args=..., construct=<optimized out>, reason=js::CallReason::Call) at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/Interpreter.cpp:566
#20 0x00007f6ff4a212b6 in InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) (cx=0x55ed0fd188d0, args=..., reason=<optimized out>)
at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/Interpreter.cpp:647
#21 js::CallFromStack(JSContext*, JS::CallArgs const&, js::CallReason) (cx=0x55ed0fd188d0, args=..., reason=<optimized out>)
at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/Interpreter.cpp:652
#22 js::Interpret(JSContext*, js::RunState&) (cx=0x55ed0fd188d0, state=...) at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/Interpreter.cpp:3395
#23 0x00007f6ff4a13fdd in MaybeEnterInterpreterTrampoline(JSContext*, js::RunState&) (cx=0x55ed0fd188d0, state=...)
at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/Interpreter.cpp:400
#24 js::RunScript(JSContext*, js::RunState&) (cx=0x55ed0fd188d0, state=...) at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/Interpreter.cpp:458
#25 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason)
(cx=0x55ed0fd188d0, args=..., construct=js::NO_CONSTRUCT, reason=<optimized out>) at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/Interpreter.cpp:612
--Type <RET> for more, q to quit, c to continue without paging--c
#26 InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) (cx=0x55ed0fd188d0, args=..., reason=<optimized out>)
at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/Interpreter.cpp:647
#27 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason)
(cx=0x55ed0fd188d0, fval=..., thisv=..., args=..., rval=..., reason=<optimized out>) at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/Interpreter.cpp:679
#28 0x00007f6ff50b49f7 in JS_CallFunctionValue(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>)
(cx=0x55ed0fd188d0, obj=..., fval=..., args=..., rval=...) at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/CallAndConstruct.cpp:53
#29 0x00007f6ff67bc177 in JS::Call (rval=..., args=..., fun=..., thisObj=..., cx=<optimized out>) at /usr/include/mozjs-115/js/CallAndConstruct.h:92
#30 Gjs::Closure::invoke(JS::Handle<JSObject*>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) (this=0x55ed11bdea10, this_obj=..., args=..., retval=...)
at ../gjs/gi/closure.cpp:184
#31 0x00007f6ff67fbbda in Gjs::Closure::marshal(_GValue*, unsigned int, _GValue const*, void*, void*)
(this=0x55ed11bdea10, return_value=0x0, n_param_values=2, param_values=0x55ed142d2240, invocation_hint=<optimized out>, marshal_data=<optimized out>)
at /usr/include/mozjs-115/js/RootingAPI.h:614
#32 0x00007f6ff6f166c0 in g_closure_invoke (closure=0x55ed11bdea10, return_value=0x0, n_param_values=2, param_values=0x55ed142d2240, invocation_hint=0x7ffe633ec430)
at ../glib/gobject/gclosure.c:832
#33 0x00007f6ff6f44a36 in signal_emit_unlocked_R.isra.0
(node=<optimized out>, detail=detail@entry=0, instance=instance@entry=0x55ed15b729e0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x55ed142d2240) at ../glib/gobject/gsignal.c:3980
#34 0x00007f6ff6f32a45 in signal_emitv_unlocked (return_value=<optimized out>, detail=<optimized out>, signal_id=<optimized out>, instance_and_params=<optimized out>)
at ../glib/gobject/gsignal.c:3304
#35 g_signal_emitv (instance_and_params=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, return_value=<optimized out>) at ../glib/gobject/gsignal.c:3204
#36 0x00007f6ff67dfe16 in ObjectInstance::emit_impl(JSContext*, JS::CallArgs const&) (argv=..., context=0x55ed0fd188d0, this=<optimized out>) at ../gjs/gi/object.cpp:2274
#37 ObjectBase::emit(JSContext*, unsigned int, JS::Value*) (cx=0x55ed0fd188d0, argc=<optimized out>, vp=<optimized out>) at ../gjs/gi/object.cpp:2211
#38 0x00007f6ff4d9a7c6 in CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), js::CallReason, JS::CallArgs const&)
(cx=0x55ed0fd188d0, native=0x7f6ff67df330 <ObjectBase::emit(JSContext*, unsigned int, JS::Value*)>, reason=js::CallReason::Call, args=...)
at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/Interpreter.cpp:486
#39 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason)
(cx=0x55ed0fd188d0, args=..., construct=<optimized out>, reason=js::CallReason::Call) at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/Interpreter.cpp:580
#40 0x00007f6ff4a212b6 in InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) (cx=0x55ed0fd188d0, args=..., reason=<optimized out>)
at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/Interpreter.cpp:647
#41 js::CallFromStack(JSContext*, JS::CallArgs const&, js::CallReason) (cx=0x55ed0fd188d0, args=..., reason=<optimized out>)
at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/Interpreter.cpp:652
#42 js::Interpret(JSContext*, js::RunState&) (cx=0x55ed0fd188d0, state=...) at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/Interpreter.cpp:3395
#43 0x00007f6ff4a13fdd in MaybeEnterInterpreterTrampoline(JSContext*, js::RunState&) (cx=0x55ed0fd188d0, state=...)
at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/Interpreter.cpp:400
#44 js::RunScript(JSContext*, js::RunState&) (cx=0x55ed0fd188d0, state=...) at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/Interpreter.cpp:458
#45 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason)
(cx=0x55ed0fd188d0, args=..., construct=js::NO_CONSTRUCT, reason=<optimized out>) at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/Interpreter.cpp:612
#46 InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) (cx=0x55ed0fd188d0, args=..., reason=<optimized out>)
at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/Interpreter.cpp:647
#47 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason)
(cx=0x55ed0fd188d0, fval=..., thisv=..., args=..., rval=..., reason=<optimized out>) at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/Interpreter.cpp:679
#48 0x00007f6ff50b49f7 in JS_CallFunctionValue(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>)
(cx=0x55ed0fd188d0, obj=..., fval=..., args=..., rval=...) at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/CallAndConstruct.cpp:53
#49 0x00007f6ff67bc177 in JS::Call (rval=..., args=..., fun=..., thisObj=..., cx=<optimized out>) at /usr/include/mozjs-115/js/CallAndConstruct.h:92
#50 Gjs::Closure::invoke(JS::Handle<JSObject*>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) (this=0x55ed152dd480, this_obj=..., args=..., retval=...)
at ../gjs/gi/closure.cpp:184
#51 0x00007f6ff67fbbda in Gjs::Closure::marshal(_GValue*, unsigned int, _GValue const*, void*, void*)
(this=0x55ed152dd480, return_value=0x0, n_param_values=2, param_values=0x7ffe633ed4c0, invocation_hint=<optimized out>, marshal_data=<optimized out>)
at /usr/include/mozjs-115/js/RootingAPI.h:614
#52 0x00007f6ff6f166c0 in g_closure_invoke (closure=0x55ed152dd480, return_value=0x0, n_param_values=2, param_values=0x7ffe633ed4c0, invocation_hint=0x7ffe633ed410)
at ../glib/gobject/gclosure.c:832
#53 0x00007f6ff6f44a36 in signal_emit_unlocked_R.isra.0
(node=node@entry=0x7ffe633ed5b0, detail=detail@entry=0, instance=instance@entry=0x55ed1410cd40, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffe633ed4c0) at ../glib/gobject/gsignal.c:3980
#54 0x00007f6ff6f35a42 in signal_emit_valist_unlocked
(instance=instance@entry=0x55ed1410cd40, signal_id=signal_id@entry=515, detail=detail@entry=0, var_args=var_args@entry=0x7ffe633ed710) at ../glib/gobject/gsignal.c:3612
#55 0x00007f6ff6f35c77 in g_signal_emit_valist (instance=0x55ed1410cd40, signal_id=515, detail=0, var_args=var_args@entry=0x7ffe633ed710) at ../glib/gobject/gsignal.c:3355
#56 0x00007f6ff6f35d34 in g_signal_emit (instance=instance@entry=0x55ed1410cd40, signal_id=<optimized out>, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3675
#57 0x00007f6ff669795f in clutter_click_action_handle_event (action=0x55ed1410cd40, event=0x55ed14ef14a0) at ../mutter/clutter/clutter/clutter-click-action.c:401
#58 0x00007f6ff66e8da5 in clutter_action_handle_event (event=0x55ed14ef14a0, action=<optimized out>) at ../mutter/clutter/clutter/clutter-action.c:102
#59 emit_event (event=0x55ed14ef14a0, event_emission_chain=0x55ed1038ce40) at ../mutter/clutter/clutter/clutter-stage.c:3347
#60 0x00007f6ff66c572c in clutter_stage_emit_event (event=0x55ed14ef14a0, self=0x55ed103d85a0) at ../mutter/clutter/clutter/clutter-stage.c:4459
#61 emit_event (event=<optimized out>, stage=<optimized out>) at ../mutter/clutter/clutter/clutter-main.c:696
#62 _clutter_process_event_details (context=0x55ed102a8e10, event=0x55ed14ef14a0, stage=0x55ed103d85a0) at ../mutter/clutter/clutter/clutter-main.c:889
#63 clutter_stage_process_event (stage=stage@entry=0x55ed103d85a0, event=event@entry=0x55ed14ef14a0) at ../mutter/clutter/clutter/clutter-main.c:923
#64 0x00007f6ff66efa79 in _clutter_stage_process_queued_events (stage=0x55ed103d85a0) at ../mutter/clutter/clutter/clutter-stage.c:804
#65 0x00007f6ff66a78e1 in clutter_frame_clock_dispatch (time_us=53644936370, frame_clock=0x55ed153ce670) at ../mutter/clutter/clutter/clutter-frame-clock.c:771
#66 frame_clock_source_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at ../mutter/clutter/clutter/clutter-frame-clock.c:829
#67 0x00007f6ff6934f69 in g_main_dispatch (context=0x55ed0fcebf30) at ../glib/glib/gmain.c:3476
#68 0x00007f6ff6993367 in g_main_context_dispatch_unlocked (context=0x55ed0fcebf30) at ../glib/glib/gmain.c:4284
#69 g_main_context_iterate_unlocked.isra.0 (context=0x55ed0fcebf30, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4349
#70 0x00007f6ff6935b97 in g_main_loop_run (loop=0x55ed103f08b0) at ../glib/glib/gmain.c:4551
#71 0x00007f6ff62d829b in meta_context_run_main_loop (context=<optimized out>, error=0x7ffe633edfd0) at ../mutter/src/core/meta-context.c:514
#72 0x00007f6ff64984f6 in ffi_call_unix64 () at ../src/x86/unix64.S:104
#73 0x00007f6ff6494f5e in ffi_call_int (cif=cif@entry=0x55ed10754700, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=closure@entry=0x0)
at ../src/x86/ffi64.c:673
#74 0x00007f6ff6497b73 in ffi_call (cif=0x55ed10754700, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>) at ../src/x86/ffi64.c:710
#75 0x00007f6ff67befb7 in Gjs::Function::invoke(JSContext*, JS::CallArgs const&, JS::Handle<JSObject*>, _GIArgument*)
(this=0x55ed107546e0, context=context@entry=0x55ed0fd188d0, args=..., this_obj=..., r_value=r_value@entry=0x0) at ../gjs/gi/function.cpp:1058
#76 0x00007f6ff67c9bb8 in Gjs::Function::call(JSContext*, unsigned int, JS::Value*) (context=0x55ed0fd188d0, js_argc=<optimized out>, vp=<optimized out>)
at ../gjs/gi/function.cpp:1236
#77 0x00007f6ff4d9a948 in CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), js::CallReason, JS::CallArgs const&)
(cx=0x55ed0fd188d0, native=0x7f6ff67c9ad0 <Gjs::Function::call(JSContext*, unsigned int, JS::Value*)>, reason=js::CallReason::Call, args=...)
at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/Interpreter.cpp:486
#78 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason)
(cx=0x55ed0fd188d0, args=..., construct=<optimized out>, reason=js::CallReason::Call) at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/Interpreter.cpp:566
#79 0x00007f6ff4a212b6 in InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) (cx=0x55ed0fd188d0, args=..., reason=<optimized out>)
at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/Interpreter.cpp:647
#80 js::CallFromStack(JSContext*, JS::CallArgs const&, js::CallReason) (cx=0x55ed0fd188d0, args=..., reason=<optimized out>)
at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/Interpreter.cpp:652
#81 js::Interpret(JSContext*, js::RunState&) (cx=0x55ed0fd188d0, state=...) at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/Interpreter.cpp:3395
#82 0x00007f6ff4a13fdd in MaybeEnterInterpreterTrampoline(JSContext*, js::RunState&) (cx=0x55ed0fd188d0, state=...)
at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/Interpreter.cpp:400
#83 js::RunScript(JSContext*, js::RunState&) (cx=0x55ed0fd188d0, state=...) at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/Interpreter.cpp:458
#84 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason)
(cx=0x55ed0fd188d0, args=..., construct=js::NO_CONSTRUCT, reason=<optimized out>) at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/Interpreter.cpp:612
#85 InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) (cx=0x55ed0fd188d0, args=..., reason=<optimized out>)
at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/Interpreter.cpp:647
#86 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason)
(cx=0x55ed0fd188d0, fval=..., thisv=..., args=..., rval=..., reason=<optimized out>) at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/Interpreter.cpp:679
#87 0x00007f6ff4ef7433 in JS::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>)
(cx=0x55ed0fd188d0, thisv=..., fval=..., args=..., rval=...) at /usr/src/debug/js115/firefox-115.4.0/js/src/vm/CallAndConstruct.cpp:117
#88 0x00007f6ff67ff082 in JS::Call (rval=..., args=..., funObj=..., thisv=..., cx=<optimized out>) at /usr/include/mozjs-115/js/RootingAPI.h:1219
#89 GjsContextPrivate::run_main_loop_hook() (this=0x55ed0fd0f310) at ../gjs/gjs/context.cpp:1428
#90 0x00007f6ff6805e8f in GjsContextPrivate::eval_module(char const*, unsigned char*, _GError**)
(error=0x7ffe633eea70, exit_status_p=0x7ffe633eea6b "", identifier=0x55ed100eefc0 "resource:///org/gnome/shell/ui/init.js", this=0x55ed0fd0f310)
at ../gjs/gjs/context.cpp:1545
#91 gjs_context_eval_module(GjsContext*, char const*, uint8_t*, GError**)
(js_context=<optimized out>, identifier=0x55ed100eefc0 "resource:///org/gnome/shell/ui/init.js", exit_code=0x7ffe633eea6b "", error=0x7ffe633eea70)
at ../gjs/gjs/context.cpp:1324
#92 0x00007f6ff6806191 in gjs_context_eval_module_file(GjsContext*, char const*, uint8_t*, GError**)
(js_context=js_context@entry=0x55ed0fd0f490, filename=filename@entry=0x55ed0ee73640 "resource:///org/gnome/shell/ui/init.js", exit_status_p=exit_status_p@entry=0x7ffe633eea6b "", error=error@entry=0x7ffe633eea70) at ../gjs/gjs/context.cpp:1629
#93 0x000055ed0ee7157f in main (argc=<optimized out>, argv=<optimized out>) at ../gnome-shell/src/main.c:708
```
</details>https://gitlab.gnome.org/GNOME/libgnome-volume-control/-/issues/22Library libgvc conflicts with Graphviz2023-12-31T18:20:20ZXooresLibrary libgvc conflicts with GraphvizHi,
I'm trying to compile some other (npm) project that uses this repo as a submodule and I ran into some conflicts on my Gentoo - namely that `libgvc.so` already exists on my system. It was created by [Graphviz](https://graphviz.org/pd...Hi,
I'm trying to compile some other (npm) project that uses this repo as a submodule and I ran into some conflicts on my Gentoo - namely that `libgvc.so` already exists on my system. It was created by [Graphviz](https://graphviz.org/pdf/gvc.3.pdf).
How does one solve this issue?https://gitlab.gnome.org/GNOME/libgnome-volume-control/-/issues/21The CLI volume settings are not respected by the Gnome panel.2023-12-31T18:20:20ZLukas RuzickaThe CLI volume settings are not respected by the Gnome panel.<!--
Please read https://wiki.gnome.org/Community/GettingInTouch/BugReportingGuidelines
first to ensure that you create a clear and specific issue.
-->
### Affected version
* Fedora Rawhide 39
* Affected GNOME Shell version: gnome-she...<!--
Please read https://wiki.gnome.org/Community/GettingInTouch/BugReportingGuidelines
first to ensure that you create a clear and specific issue.
-->
### Affected version
* Fedora Rawhide 39
* Affected GNOME Shell version: gnome-shell-44.2-2.fc39.x86_64
* Wayland and Xorg
* No extensions used.
### Bug summary
In our openQA tests, we tested that Gnome Panel was correctly responding to the volume settings made on CLI using the `pactl` command provided by the `pulseaudio-tools` package. Everything worked correctly until the **pulseaudio** dependency was removed by pipewire and the `pactl` command is no longer available. The tested system complains about that, see
![nopactl](/uploads/5af4750ce13793cb341e2de25c024f42/nopactl.png)
I was trying to figure out, how to replace the command and found out that the volume can be set using the `pw-cli` command which is provided by the pipewire directly. However, if I use the command to set up the volume, e.g.
~~~
pw-cli s 54 Props '{mute: false, channelVolumes: [ 0.1, 0.1 ] }'
~~~
the level of the volume is correctly affected, i.e. the volume drops down and the sound becomes quiet, but the Gnome Panel stays the same and the new level of sound is not shown.
When using the Gnome Panel to set up the audio level, it works normally and audio level is changed accordingly. When the repeating the action with the CLI command, the audio level changes without this being shown by the Gnome panel.
### Steps to reproduce
1. Change the audio level to 0.1 using the CLI command.
2. See if it has effect on the Gnome Panel audio level reading.
### What happened
The Gnome Panel audio level reading does not respect the CLI settings.
### What did you expect to happen
I expected the Gnome Panel UI to respond and show the correct level of audio as it was common with `pactl`.
<!-- Do not remove the following line. -->https://gitlab.gnome.org/GNOME/libgnome-volume-control/-/issues/20Add documentation2023-12-31T18:20:20ZMarcin JahnAdd documentationThe functions do not have any documentation making it very easy for clients of this lib to make wrong assumptions.
Example: MixerCard contains an `id` field - is this ID constant per device or can it change for a device after a restart?The functions do not have any documentation making it very easy for clients of this lib to make wrong assumptions.
Example: MixerCard contains an `id` field - is this ID constant per device or can it change for a device after a restart?https://gitlab.gnome.org/GNOME/libgnome-volume-control/-/issues/19Incorrect devices displayed for the current audio profile?2023-12-31T18:20:20ZGuilhermeIncorrect devices displayed for the current audio profile?- OS: Arch Linux
- Kernel 5.17.4-arch1-1
- GNOME 42.0
- PipeWire 0.3.50 / Wireplumber 0.4.9
Whenever I select the `Pro Audio` profile from PipeWire using `pavucontrol`, GNOME Settings seems to make incorrect assumptions about the curren...- OS: Arch Linux
- Kernel 5.17.4-arch1-1
- GNOME 42.0
- PipeWire 0.3.50 / Wireplumber 0.4.9
Whenever I select the `Pro Audio` profile from PipeWire using `pavucontrol`, GNOME Settings seems to make incorrect assumptions about the current profile selected, because the devices it lists are wrong.
Pavucontrol (correct):
![image](/uploads/0255b1af45dfb4426737ffa4d61a367d/image.png)
![image](/uploads/1a9404eec357444b33a5536473b6b33a/image.png)
GNOME Settings (incorrect):
![image](/uploads/3130cb3a8b84e15ffbdc612853e9e079/image.png)
![image](/uploads/22e76b1f3771d12cc0cd7e9052cc7412/image.png)
Additionally, every time I set `Speakers` as the default device using pavucontrol, the following warning shows up in the system journal:
```
Apr 21 19:28:28 arch gsd-media-keys[874]: gvc_mixer_ui_device_get_id: assertion 'GVC_IS_MIXER_UI_DEVICE (device)' failed
Apr 21 19:28:28 arch gnome-shell[710]: gvc_mixer_ui_device_get_id: assertion 'GVC_IS_MIXER_UI_DEVICE (device)' failed
```
Thank you.https://gitlab.gnome.org/GNOME/libgnome-volume-control/-/issues/18System sounds can't be muted2023-12-31T18:20:20ZJulien EncheSystem sounds can't be mutedIn Settings (version 41.0), muting System Sounds has no effect and this setting is not saved.
![Capture_d_écran_vidéo_de_03-10-2021_10_15_58](/uploads/8451f9a41924b359b2092791fd685af5/Capture_d_écran_vidéo_de_03-10-2021_10_15_58.webm)In Settings (version 41.0), muting System Sounds has no effect and this setting is not saved.
![Capture_d_écran_vidéo_de_03-10-2021_10_15_58](/uploads/8451f9a41924b359b2092791fd685af5/Capture_d_écran_vidéo_de_03-10-2021_10_15_58.webm)https://gitlab.gnome.org/GNOME/libgnome-volume-control/-/issues/17Device labels are not translated2023-12-31T18:20:20ZPiotr DrągDevice labels are not translatedAfter the update to Fedora 33, the device labels in the Sound panel are now in English:
![Zrzut_ekranu_z_2020-11-08_11-37-55](/uploads/099393d5d1dd5520c226b661a0b36c49/Zrzut_ekranu_z_2020-11-08_11-37-55.png)
```
gnome-control-center-3....After the update to Fedora 33, the device labels in the Sound panel are now in English:
![Zrzut_ekranu_z_2020-11-08_11-37-55](/uploads/099393d5d1dd5520c226b661a0b36c49/Zrzut_ekranu_z_2020-11-08_11-37-55.png)
```
gnome-control-center-3.38.1-2.fc33.x86_64
pulseaudio-13.99.2-1.fc33.x86_64
```https://gitlab.gnome.org/GNOME/libgnome-volume-control/-/issues/16Gnome Shell crashes when I try to switch to remote sound output2023-12-31T18:20:19ZStrangiatoGnome Shell crashes when I try to switch to remote sound outputHi
I use Arch Linux on my laptop, running Gnome 3.38.1 with the following extension used to change the audio output via aggregate menu
https://extensions.gnome.org/extension/906/sound-output-device-chooser/
Sometimes Gnome Wayland ses...Hi
I use Arch Linux on my laptop, running Gnome 3.38.1 with the following extension used to change the audio output via aggregate menu
https://extensions.gnome.org/extension/906/sound-output-device-chooser/
Sometimes Gnome Wayland session crashes and my system goes to login screen when I switch to a remote PulseAudio output that I use to stream audio, via local network, from my laptop to the speakers connected to my desktop computer.
```
#0 0x00007f9d58ed2615 in raise () at /usr/lib/libc.so.6
#1 0x0000560e830dbad9 in dump_gjs_stack_on_signal_handler (signo=6) at ../gnome-shell/src/main.c:392
sa =
{__sigaction_handler = {sa_handler = 0x560e830db940 <dump_gjs_stack_alarm_sigaction>, sa_sigaction = 0x560e830db940 <dump_gjs_stack_alarm_sigaction>}, sa_mask = {__val = {0 <repeats 16 times>}}, sa_flags = 0, sa_restorer = 0x0}
i = 65
#2 0x00007f9d58ed26a0 in <signal handler called> () at /usr/lib/libc.so.6
#3 0x00007f9d58ed2615 in raise () at /usr/lib/libc.so.6
#4 0x00007f9d58ebb862 in abort () at /usr/lib/libc.so.6
#5 0x00007f9d59cec084 in () at /usr/lib/libglib-2.0.so.0
#6 0x00007f9d59d468cd in g_assertion_message_expr () at /usr/lib/libglib-2.0.so.0
#7 0x00007f9d1cdce27f in gvc_mixer_control_change_profile_on_selected_device
(control=0x560e83a30390, device=0x560e8642fe60, profile=0x0)
at ../gnome-shell/subprojects/gvc/gvc-mixer-control.c:557
best_profile = 0x0
current_profile = <optimized out>
card = 0x0
__func__ = "gvc_mixer_control_change_profile_on_selected_device"
#8 0x00007f9d585c0a8d in () at /usr/lib/libffi.so.7
#9 0x00007f9d585c001b in () at /usr/lib/libffi.so.7
#10 0x00007f9d59425ad3 in gjs_invoke_c_function(JSContext*, Function*, JS::CallArgs const&, JS::HandleObject, GIArgument*)
(context=0x560e83d09290, function=<optimized out>, args=..., this_obj=..., r_value=<optimized out>)
at ../gjs/gi/function.cpp:902
return_value_p = <optimized out>
return_value = {v_boolean = -2023159716, v_int8 = 92 '\\', v_uint8 = 92 '\\', v_int16 = 2140, v_uint16 = 2140, v_int32 = -2023159716, v_uint32 = 2271807580, v_int64 = 94620401338460, v_uint64 = 94620401338460, v_float = -1.75314284e-34, v_double = 4.6748689697044189e-310, v_short = 2140, v_ushort = 2140, v_int = -2023159716, v_uint = 2271807580, v_long = 94620401338460, v_ulong = 94620401338460, v_ssize = 94620401338460, v_size = 94620401338460, v_string = 0x560e8769085c "\024OB\\*\344", <incomplete sequence \366>, v_pointer = 0x560e8769085c}
gi_argc = <optimized out>
gi_arg_pos = <optimized out>
can_throw_gerror = <optimized out>
did_throw_gerror = false
local_error = 0x0
failed = false
postinvoke_release_failed = <optimized out>
is_method = <optimized out>
return_values = {<JS::Rooted<JS::StackGCVector<JS::Value, js::TempAllocPolicy> >> = {<js::RootedBase<JS::StackGCVector<JS::Value, js::TempAllocPolicy>, JS::Rooted<JS::StackGCVector<JS::Value, js::TempAllocPolicy> > >> = {<js::MutableWrappedPtrOperations<JS::StackGCVector<JS::Value, js::TempAllocPolicy>, JS::Rooted<JS::StackGCVector<JS::Value, js::TempAllocPolicy> > >> = {<js::MutableWrappedPtrOperations<JS::GCVector<JS::Value, 8, js::TempAllocPolicy>, JS::Rooted<JS::StackGCVector<JS::Value, js::TempAllocPolicy> > >> = {<js::WrappedPtrOperations<JS::GCVector<JS::Value, 8, js::TempAllocPolicy>, JS::Rooted<JS::StackGCVector<JS::Value, js::TempAllocPolicy> > >> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, stack = 0x560e83d092f8, prev = 0x7ffc14c27320, ptr = {<js::VirtualTraceable> = {_vptr.VirtualTraceable = 0x7f9d594d7a08 <vtable for js::RootedTraceable<JS::StackGCVector<JS::Value, js::TempAllocPolicy> >+16>}, ptr = {<JS::GCVector<JS::Value, 8, js::TempAllocPolicy>> = {vector = {<js::TempAllocPolicy> = {<js::AllocPolicyBase> = {<No data fields>}, cx_ = 0x560e83d09290}, static kElemIsPod = false, static kMaxInlineBytes = 992, static kInlineCapacity = 8, mBegin = 0x7ffc14c26ea8, mLength = 0, mTail = {<mozilla::Vector<JS::Value, 8, js::TempAllocPolicy>::CapacityAndReserved> = {mCapacity = 8}, mBytes = "\220\222Ѓ\016V\000\000\230\036\063\027\341\070\000\000\325\032\362X\235\177\000\000\230\036\063\027\341\070\000\000@\357\023\204\016V\000\000\370\347\363W\235\177", '\000' <repeats 17 times>}, static sMaxInlineStorage = <optimized out>}}, <No data fields>}}}, <No data fields>}
ffi_argc = <optimized out>
state = {in_cvalues = 0x7ffc14c26d00, out_cvalues = 0x7ffc14c26ce0, inout_original_cvalues = 0x7ffc14c26cc0, instance_object = {<js::RootedBase<JSObject*, JS::Rooted<JSObject*> >> = {<js::MutableWrappedPtrOperations<JSObject*, JS::Rooted<JSObject*> >> = {<js::WrappedPtrOperations<JSObject*, JS::Rooted<JSObject*> >> = {<No data fields>}, <No data fields>}, <No data fields>}, stack = 0x560e83d092a8, prev = 0x7ffc14c26f40, ptr = 0x22ad87595500}, call_completed = false}
ffi_arg_pointers = <optimized out>
ffi_arg_pos = <optimized out>
js_arg_pos = <optimized out>
obj = {<js::RootedBase<JSObject*, JS::Rooted<JSObject*> >> = {<js::MutableWrappedPtrOperations<JSObject*, JS::Rooted<JSObject*> >> = {<js::WrappedPtrOperations<JSObject*, JS::Rooted<JSObject*> >> = {<No data fields>}, <No data fields>}, <No data fields>}, stack = 0x560e83d092a8, prev = 0x7ffc14c26de8, ptr = 0x22ad87595500}
processed_c_args = 2
errorp = 0x7ffc14c26d80
ffi_arg_max = <optimized out>
#11 0x00007f9d59426057 in function_call(JSContext*, unsigned int, JS::Value*) (context=0x560e83d09290, js_argc=<optimized out>, vp=<optimized out>) at /usr/include/mozjs-78/js/RootingAPI.h:596
js_argv = {<JS::detail::CallArgsBase<JS::detail::IncludeUsedRval>> = {argv_ = 0x560e84099510, argc_ = 1, constructing_ = false, ignoresReturnValue_ = false}, <No data fields>}
callee = {<js::RootedBase<JSObject*, JS::Rooted<JSObject*> >> = {<js::MutableWrappedPtrOperations<JSObject*, JS::Rooted<JSObject*> >> = {<js::WrappedPtrOperations<JSObject*, JS::Rooted<JSObject*> >> = {<No data fields>}, <No data fields>}, <No data fields>}, stack = 0x560e83d092a8, prev = 0x7ffc14c27208, ptr = 0x33b1f7df3490}
priv = <optimized out>
#12 0x00007f9d5668e64a in () at /usr/lib/libmozjs-78.so
#13 0x00007f9d56675fcf in () at /usr/lib/libmozjs-78.so
#14 0x00007f9d5668dd92 in () at /usr/lib/libmozjs-78.so
#15 0x00007f9d56bf8d8d in () at /usr/lib/libmozjs-78.so
#16 0x00001d8754718cb8 in ()
#17 0x2d3341de0385be00 in ()
#18 0x00007ffc14c278f0 in ()
#19 0xfff9800000000000 in ()
#20 0x00007f9d56464468 in () at /usr/lib/libmozjs-78.so
#21 0x00001d875471e612 in ()
#22 0x0000000000004822 in ()
#23 0x00007ffc14c27998 in ()
#24 0x0000560e87af0548 in ()
#25 0x0000000000000001 in ()
#26 0x00007ffc14c27930 in ()
#27 0xfffe35d94d1a4d00 in ()
#28 0xfffe35d94d15c060 in ()
#29 0xfffe22ad87504f10 in ()
#30 0x00007ffc14c279d8 in ()
#31 0x0000560e87af0548 in ()
#32 0x00001d87547c7482 in ()
#33 0x0000000000007821 in ()
#34 0xfffe22ad87504f10 in ()
#35 0xfffe35d94d15c060 in ()
#36 0xfffe35d94d1a4d00 in ()
#37 0xfffa800000000005 in ()
#38 0xfff9800000000000 in ()
#39 0xfff9800000000000 in ()
#40 0x00007f9d59d1f3a9 in () at /usr/lib/libglib-2.0.so.0
#41 0x00007ffc14c27a40 in ()
#42 0x00001d875471669f in ()
#43 0x0000000000002043 in ()
#44 0x000030cfaea748d0 in ()
#45 0x0000000000000001 in ()
#46 0xfff9800000000000 in ()
#47 0xfffe22ad87504f10 in ()
#48 0x00007ffc14c27aa8 in ()
#49 0x00001d87547c6c80 in ()
#50 0x00007ffc14c27ab0 in ()
#51 0x000030cfaea748d0 in ()
#52 0x0000000000000000 in ()
```https://gitlab.gnome.org/GNOME/libgnome-volume-control/-/issues/15"Select Audio Device" prompt displayed every time a headset is plugged in2023-12-31T18:20:19ZRobert"Select Audio Device" prompt displayed every time a headset is plugged inUpgrading gnome-settings-daemon from 3.38.0 to 3.38.1 causes a "Select Audio Device" prompt to appear each time a headset is plugged in. Reverting to 3.38.0 and logging back in, the issue is gone.
I have validated this on two systems, a...Upgrading gnome-settings-daemon from 3.38.0 to 3.38.1 causes a "Select Audio Device" prompt to appear each time a headset is plugged in. Reverting to 3.38.0 and logging back in, the issue is gone.
I have validated this on two systems, a Lenovo X1 Yoga (Gen1), and a Lenovo E93z (AIO) with two different headsets, a Pioneer and a Razor.
I had mentioned the issue here: https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/issues/561 and was asked to open a new issue against libgnome-volume-control. Another user, @curioso reported the same issue on Arch.
OS: Fedora 33 Beta
gnome-settings-daemon-3.38.1-1
```
$ rpm -qa|grep pulseaudio
alsa-plugins-pulseaudio-1.2.2-3.fc33.x86_64
pulseaudio-libs-13.99.2-1.fc33.x86_64
pulseaudio-13.99.2-1.fc33.x86_64
pulseaudio-module-bluetooth-13.99.2-1.fc33.x86_64
pulseaudio-libs-glib2-13.99.2-1.fc33.x86_64
pulseaudio-utils-13.99.2-1.fc33.x86_64
pulseaudio-module-x11-13.99.2-1.fc33.x86_64
pulseaudio-libs-devel-13.99.2-1.fc33.x86_64
pulseaudio-libs-13.99.2-1.fc33.i686
wine-pulseaudio-5.19-1.fc33.x86_64
wine-pulseaudio-5.19-1.fc33.i686
$ rpm -qa|grep alsa
alsa-sof-firmware-1.5-2.fc33.noarch
alsa-lib-1.2.3.2-5.fc33.i686
alsa-utils-1.2.3-6.fc33.x86_64
alsa-lib-1.2.3.2-5.fc33.x86_64
alsa-plugins-pulseaudio-1.2.2-3.fc33.x86_64
qemu-audio-alsa-5.1.0-5.fc33.x86_64
alsa-ucm-1.2.3.2-5.fc33.noarch
alsa-lib-devel-1.2.3.2-5.fc33.x86_64
wine-alsa-5.19-1.fc33.x86_64
wine-alsa-5.19-1.fc33.i686
pipewire-alsa-0.3.13-4.fc33.x86_64
pipewire-alsa-0.3.13-4.fc33.i686
```
Yes I have pipewire installed for testing, but it is not currently active. I removed the symlinks.
```
$ ls -l /usr/lib64|grep pulse
lrwxrwxrwx. 1 root root 31 Sep 30 00:28 libpulse-mainloop-glib.so -> libpulse-mainloop-glib.so.0.0.6
lrwxrwxrwx. 1 root root 31 Sep 30 00:28 libpulse-mainloop-glib.so.0 -> libpulse-mainloop-glib.so.0.0.6
-rwxr-xr-x. 1 root root 20336 Sep 30 00:29 libpulse-mainloop-glib.so.0.0.6
lrwxrwxrwx. 1 root root 24 Sep 30 00:28 libpulse-simple.so -> libpulse-simple.so.0.1.1
lrwxrwxrwx. 1 root root 24 Sep 30 00:28 libpulse-simple.so.0 -> libpulse-simple.so.0.1.1
-rwxr-xr-x. 1 root root 24224 Sep 30 00:29 libpulse-simple.so.0.1.1
lrwxrwxrwx. 1 root root 18 Sep 30 00:28 libpulse.so -> libpulse.so.0.22.0
lrwxrwxrwx. 1 root root 18 Sep 30 00:28 libpulse.so.0 -> libpulse.so.0.22.0
-rwxr-xr-x. 1 root root 344056 Sep 30 00:29 libpulse.so.0.22.0
drwxr-xr-x. 3 root root 4096 Sep 30 00:28 pulse-13.99
drwxr-xr-x. 2 root root 4096 Oct 3 09:32 pulseaudio
$ ls -l /usr/lib64|grep pipe
drwxr-xr-x. 2 root root 4096 Oct 2 08:00 gallium-pipe
lrwxrwxrwx. 1 root root 20 Aug 4 15:20 libpipeline.so.1 -> libpipeline.so.1.5.2
-rwxr-xr-x. 1 root root 49360 Aug 4 15:20 libpipeline.so.1.5.2
lrwxrwxrwx. 1 root root 26 Aug 1 09:09 libpipewire-0.2.so.1 -> libpipewire-0.2.so.1.207.0
-rwxr-xr-x. 1 root root 240936 Aug 1 09:09 libpipewire-0.2.so.1.207.0
lrwxrwxrwx. 1 root root 26 Oct 13 12:55 libpipewire-0.3.so.0 -> libpipewire-0.3.so.0.313.0
-rwxr-xr-x. 1 root root 618584 Oct 13 12:55 libpipewire-0.3.so.0.313.0
drwxr-xr-x. 2 root root 4096 Sep 27 10:54 pipewire-0.2
drwxr-xr-x. 4 root root 4096 Oct 15 08:05 pipewire-0.3
```
alsa-info report on the Lenovo AIO: http://alsa-project.org/db/?f=feb101fd9c65eb4773cb6fad34b03468ed2dbb2chttps://gitlab.gnome.org/GNOME/libgnome-volume-control/-/issues/13The audio output does not show exactly the current output stream after hot re...2023-12-31T18:20:19ZJian-Hong PanThe audio output does not show exactly the current output stream after hot re-plug HDMI cableWe have a desktop equipped with AMD Oland R7-430 graphic card. We found after hot re-plug the HDMI cable, the audio output device shows it is HDMI output, but the real output is built-in speaker.
![Screenshot_from_2020-04-23_13-53-50](/...We have a desktop equipped with AMD Oland R7-430 graphic card. We found after hot re-plug the HDMI cable, the audio output device shows it is HDMI output, but the real output is built-in speaker.
![Screenshot_from_2020-04-23_13-53-50](/uploads/9e6974209b4379d2151f2fa94c7f2efd/Screenshot_from_2020-04-23_13-53-50.png)
However, if I choose the built-in speaker as the output device once, the audio output from the built-in speaker. Then, I change the output device from the speaker to HDMI output, the audio output from HDMI again.https://gitlab.gnome.org/GNOME/libgnome-volume-control/-/issues/12Monitor sources are not considered valid2023-12-31T18:20:19Zbdm310Monitor sources are not considered validFunction update_source in gvc-mixer-control.c considers any source with a non-invalid monitor_of_sink property to not be a valid source. Unfortunately, with more complex Pulse setups, monitor sources can be the only way to get the audio ...Function update_source in gvc-mixer-control.c considers any source with a non-invalid monitor_of_sink property to not be a valid source. Unfortunately, with more complex Pulse setups, monitor sources can be the only way to get the audio input data you want e.g. null sinks. In addition to this, any sources that are the result of intermediate Pulse module *are* considered valid input, even if in your configuration they aren't. In addition, there's no supported way to change monitor_of_sink via config files or pacmd.
Perhaps a more flexible approach would be to check the contents of pa_proplist for the device.class property, which is set to "monitor" for monitor sources but which can also be changed after a source is created. This would also provide a path for marking intermediate sources as invalid inputs.https://gitlab.gnome.org/GNOME/libgnome-volume-control/-/issues/11Turn Off sound removes sound only for current device2023-12-31T18:20:19ZimunhatepTurn Off sound removes sound only for current device<!--
Please read https://wiki.gnome.org/Community/GettingInTouch/BugReportingGuidelines
first to ensure that you create a clear and specific issue.
-->
### Affected version
>uname -a
Linux notebook 5.5.8-100.fc30.x86_64 gnome-shell#1 S...<!--
Please read https://wiki.gnome.org/Community/GettingInTouch/BugReportingGuidelines
first to ensure that you create a clear and specific issue.
-->
### Affected version
>uname -a
Linux notebook 5.5.8-100.fc30.x86_64 gnome-shell#1 SMP Thu Mar 5 21:55:51 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
>gnome-shell --version
GNOME Shell 3.32.2
### Bug summary
Disabling sound - turns off sound only for current Output Device, switching (like physical plug-out headphones) switches system Output device and now sound is back and everyone start to guess video name from pronhub sounds.. nice!
### Steps to reproduce
1. turn off volume
2. plug in or out e.g. headphones
3. sound level is restored for "new" output device
### What happened
Disabling sound - turns off sound only for current Output Device, switching (like physical plug-out headphones) switches system Output device and now sound is back and everyone start to guess video name from pronhub sounds.. nice!
### What did you expect to happen
Turning sound off should turn off regardless of currently selected output device i.e. systemwide setting.
While preserving sound volume level per device actually is a nice feature.
<!-- Do not remove the following line. -->https://gitlab.gnome.org/GNOME/libgnome-volume-control/-/issues/10Activate audio device (pulseaudio profile) when it becomes available again2023-12-31T18:20:19ZAljosha PapschActivate audio device (pulseaudio profile) when it becomes available againIn certain circumstance, audio is played from internal speakers, while I expect it to be played via another Pulseaudio profile (in this case via Display Port).
My setup consists of:
* F31 Silverblue
* Thinkpad X230 docked to docking st...In certain circumstance, audio is played from internal speakers, while I expect it to be played via another Pulseaudio profile (in this case via Display Port).
My setup consists of:
* F31 Silverblue
* Thinkpad X230 docked to docking station
* Monitor attached via Display Port to docking station
* Speakers plugged into monitor
Pulseaudio detects one audio device with several profiles, see [pactl-list.txt](/uploads/4cd0459ee2ced9f256521f31c90a47db/pactl-list.txt) for details. The two of interest for me are:
* `output:hdmi-stereo-extra1+input:analog-stereo` (DP audio)
* `output:analog-stereo` (the crappy internal speakers)
# Steps to reproduce
1. Boot the machine with monitor turned on beforehand – Settings will show DP audio as the only device. PA has the corresponding profile activated.
2. Undock the machine – Settings will show internal speakers as the only device. PA switches to the corresponding profile.
3. Dock the machine again – Settings will show two devices, DP audio and internal speakers. PA does not switch a profile.
# Expected result
Music should play enchantingly from DP audio.
# Actual result
Music plays menacingly from crappy speakers :-)
# Proposal
There could be an automatic switch. Similar to a headphone that is plugged in, DP audio profile would be activated when it becomes available. This is based on the presumption that internal speakers are always bad. Alternatively I can imagine config options in Settings app, where user picks a device as preferred. I'm unsure how that would fit in the current design, where DP audio vanishes from the dropdown.https://gitlab.gnome.org/GNOME/libgnome-volume-control/-/issues/8Request to add a separate meson option for install_dir_typelib to pass to gen...2023-12-31T18:20:19ZGhost UserRequest to add a separate meson option for install_dir_typelib to pass to generate_gir()Hello,
I am currently trying to use this library as a submodule in a GJS-based application and am running into the problem that the .so file and the .typelib are installed in the same directory via the `pkglibdir` variable. I cannot ov...Hello,
I am currently trying to use this library as a submodule in a GJS-based application and am running into the problem that the .so file and the .typelib are installed in the same directory via the `pkglibdir` variable. I cannot override this from my parent project so have resorted to copying the `.typelib` file to the 'girepository-1.0' subdirectory in a post install script as this is the path is searched for `.typelib` by GJS apps according to this: https://gitlab.gnome.org/GNOME/gjs/wikis/Package/Specification
It would be helpful if you could provide the option of specifying `install_dir_typelib` as an additional meson option (it could default to `pkglibdir`) so that I could pass the option as one of the default options for the subjection in my meson config.https://gitlab.gnome.org/GNOME/libgnome-volume-control/-/issues/7Gnome doesn't update sound output device properly2023-12-31T18:20:19ZBjörn DaaseGnome doesn't update sound output device properlyI run Ubuntu 18.10 with Gnome 3.30.1 on an Dell XPS 9370.
If I have music playing (via the built-in speakers) and connect my docking station (a Dell WD15) the music automatically transitions to the speakers connected to the dock (it ha...I run Ubuntu 18.10 with Gnome 3.30.1 on an Dell XPS 9370.
If I have music playing (via the built-in speakers) and connect my docking station (a Dell WD15) the music automatically transitions to the speakers connected to the dock (it has a line-out output). The problem is, that Gnome does not recognize that: Even if Gnome shows the line-out output in the sound devices overview, it still has the built-in speakers selected (see attached image) and the multimedia keys still adjust the built-in speaker.
[![Status after connecting][1]][1]
[1]: https://i.stack.imgur.com/WdLJL.pnghttps://gitlab.gnome.org/GNOME/libgnome-volume-control/-/issues/3Automatically select audio output when external (HDMI) is attached2023-12-31T18:20:19ZrugkAutomatically select audio output when external (HDMI) is attachedWhen I attach a HDMI cable and the device can output audio, it should automatically switch the profile to it and output audio over it.
Reasoning: The display actually does the same. I do not need to switch/configure it manually, but it ...When I attach a HDMI cable and the device can output audio, it should automatically switch the profile to it and output audio over it.
Reasoning: The display actually does the same. I do not need to switch/configure it manually, but it just switches to two screens when I connect one via HDMI.
(see https://gitlab.gnome.org/GNOME/libgnome-volume-control/issues/2 for original description)https://gitlab.gnome.org/GNOME/libgnome-volume-control/-/issues/2Audio control does not recognize it is disconnected from HDMI2023-12-31T18:20:19ZrugkAudio control does not recognize it is disconnected from HDMII hope this issue is right here, if not maybe in gnome-control-center it would be better placed.
## STR
1. Your internal laptop audio is turned off. Mute.
2. You have HDMI and connect that to some device that can output audio.
3. You sw...I hope this issue is right here, if not maybe in gnome-control-center it would be better placed.
## STR
1. Your internal laptop audio is turned off. Mute.
2. You have HDMI and connect that to some device that can output audio.
3. You switch to that new audio in the audio settings (awkwardly that's also needed as it does not auto-select that, maybe let's track that on a new issue??). Screen automatically switches/adjusts (to dual screens)
4. You plug-off the HDMI cable. Screen adjusts back.
## What happens
The audio, however, **stays as it is**!
This results in the awkward situation that you have this in the settings GUI:
![audioHdmiIssue](/uploads/65b992b67cab8431e1519019c0b53149/audioHdmiIssue.png)
* If you adjust the volume (with keyboard), it shows you it is clearly (trying to) adjust the HDMI volume.
* In the settings itself however, it is not even shown anymore. And the internal audio is not selected.
Selecting the internal audio in the control center obviously "fixes" the issue as it changes the audio output, but this should not be necessary.
## What should happen
Automatically select useful audio output if it is disconnected.
## System
Fedora 29
GNOME 3.30
## Other
This is reproducible. This even survives a reboot.https://gitlab.gnome.org/GNOME/libgnome-volume-control/-/issues/14Don't ask to "Select Audio Device" every time an audio device is plugged in2023-12-31T18:20:19ZwesinatorDon't ask to "Select Audio Device" every time an audio device is plugged in```
Ubuntu 18.04
GNOME 3.28.2
```
**To reproduce:**
- Computer with single unified audio jack
- Plug in headphones
**Actual:** "Select Audio Device" dialog comes up every time device is plugged in.
**Expected:**
One of the following:...```
Ubuntu 18.04
GNOME 3.28.2
```
**To reproduce:**
- Computer with single unified audio jack
- Plug in headphones
**Actual:** "Select Audio Device" dialog comes up every time device is plugged in.
**Expected:**
One of the following:
- Automatically detect if the device is a headset or microphone.
- Persistent option to remember selection via a control in the dialog.