Daemon crashes when sink input has no client ID
Closed this issue · 1 comments
cyberworm commented
Hi,
in my PulseAudio setup I use the modules module-echo-cancel and module-loopback. Both will create sink inputs without a client ID:
$ pact list short sink-inputs
0 1 - module-echo-cancel.c float32le 2ch 32000Hz
3 4 - module-loopback.c s16le 2ch 44100Hz
resulting in a ValueError
2021-01-21 18:52:52 [ERROR]:
Traceback (most recent call last):
File "/home/cyberworm/Applications/steamvr_utils/scripts/steamvr_utils.py", line 124, in main
steamvr_utils.action(selected_action)
File "/home/cyberworm/Applications/steamvr_utils/scripts/steamvr_utils.py", line 45, in action
self.start_daemon()
File "/home/cyberworm/Applications/steamvr_utils/scripts/steamvr_utils.py", line 51, in start_daemon
SteamvrDaemon.create_daemon(self)
File "/home/cyberworm/Applications/steamvr_utils/scripts/steamvr_daemon.py", line 45, in create_daemon
steamvr_daemon.loop()
File "/home/cyberworm/Applications/steamvr_utils/scripts/steamvr_daemon.py", line 57, in loop
self.steamvr_utils.turn_on()
File "/home/cyberworm/Applications/steamvr_utils/scripts/steamvr_utils.py", line 69, in turn_on
self.audio_switcher.switch_to_vr()
File "/home/cyberworm/Applications/steamvr_utils/scripts/audio_switcher.py", line 99, in switch_to_vr
self.set_sink(self.vr_sink)
File "/home/cyberworm/Applications/steamvr_utils/scripts/audio_switcher.py", line 106, in set_sink
self.set_sink_for_all_sink_inputs(sink)
File "/home/cyberworm/Applications/steamvr_utils/scripts/audio_switcher.py", line 126, in set_sink_for_all_sink_inputs
sink_inputs = pactl_interface.SinkInput.get_all_sink_inputs(self)
File "/home/cyberworm/Applications/steamvr_utils/scripts/pactl_interface/sink_input.py", line 24, in get_all_sink_inputs
sink_inputs = [cls(line) for line in sink_inputs_lines]
File "/home/cyberworm/Applications/steamvr_utils/scripts/pactl_interface/sink_input.py", line 24, in <listcomp>
sink_inputs = [cls(line) for line in sink_inputs_lines]
File "/home/cyberworm/Applications/steamvr_utils/scripts/pactl_interface/sink_input.py", line 9, in __init__
self.client_id = int(line.split('\t')[2])
ValueError: invalid literal for int() with base 10: '-'
DavidRisch commented