Skip to content
This repository was archived by the owner on Aug 21, 2024. It is now read-only.
This repository was archived by the owner on Aug 21, 2024. It is now read-only.

Sound loopback doesn't work on Pipewire :/ #74

Description

@UnlimitedCookies

The sound loopback used to work perfectly until I upgraded from native Pulseaudio to Pipewire :/
Is this expected behavior and is a potential fix a possibility?

$ mon2cam -s -v
DEBUG Starting Mon2Cam with the following options: Options {
  framerate: 60,
  device: 50,
  resolution: "",
  ffmpeg: [],
  border: false,
  sound: true,
  wayland: false,
  loggerOptions: { verbose: true },
  execOptions: { verbose: true, output: 3 }
}
DEBUG Checking if V4L2 device exists
DEBUG V4L2 device found with id 50

Exec Context: 38548766-b69b-4cc7-9edd-e041e0058458
    Exec Options:  { verbose: true, output: 3 }
    Exec Command: pactl list sink-inputs
    Exec Command Splits:  [pactl,list,sink-inputs]
    Exec Result:  { code: 0, success: true },
 output: "Sink Input #64
	Driver: PipeWire
	Owner Module: n/a
	Client: 63
	Sink: 103
	Sample Specification: float32le 2ch 44100Hz
	Channel Map: front-left,front-right
	Format: pcm, format.sample_format = "\"float32le\""  format.rate = "44100"  format.channels = "2"  format.channel_map = "\"front-left,front-right\""
	Corked: no
	Mute: no
	Volume: front-left: 47141 /  72% / -8.58 dB,   front-right: 47141 /  72% / -8.58 dB
	        balance 0.00
	Buffer Latency: 0 usec
	Sink Latency: 0 usec
	Resample method: PipeWire
	Properties:
		client.api = "pipewire-pulse"
		application.name = "spotify"
		application.process.id = "2393"
		application.process.user = "kevin"
		application.process.host = "omega"
		application.process.binary = "spotify"
		application.language = "en_US.UTF-8"
		window.x11.display = ":1"
		application.process.machine_id = "2479c9f40b6842b28210235e67424972"
		media.role = "music"
		media.name = "Spotify"
		stream.is-live = "true"
		node.name = "spotify"
		node.autoconnect = "true"
		media.class = "Stream/Output/Audio"
		adapt.follower.node = ""
		factory.id = "6"
		audio.adapt.follower = ""
		factory.mode = "split"
		library.name = "audioconvert/libspa-audioconvert"
		object.id = "64"
		client.id = "63"
		node.latency = "43218/44100"
		pulse.attr.maxlength = "4194304"
		pulse.attr.tlength = "705600"
		pulse.attr.prebuf = "0"
		pulse.attr.minreq = "7056"
		module-stream-restore.id = "sink-input-by-media-role:music""
Exec Context: 38548766-b69b-4cc7-9edd-e041e0058458

64: spotify
Choose which applications you want to route(space separated list):
64

Exec Context: d375d829-bf0c-4d1e-836e-8ca1c362b430
    Exec Options:  { verbose: true, output: 3 }
    Exec Command: pactl list sources
    Exec Command Splits:  [pactl,list,sources]
    Exec Result:  { code: 0, success: true },
 output: "Source #65581
	State: SUSPENDED
	Name: alsa_output.pci-0000_0a_00.3.iec958-stereo.monitor
	Description: Monitor of Family 17h (Models 00h-0fh) HD Audio Controller Digital Stereo (IEC958)
	Driver: PipeWire
	Sample Specification: s32le 2ch 48000Hz
	Channel Map: front-left,front-right
	Owner Module: 4294967295
	Mute: yes
	Volume: front-left: 64695 /  99% / -0.34 dB,   front-right: 64695 /  99% / -0.34 dB
	        balance 0.00
	Base Volume: 65536 / 100% / 0.00 dB
	Monitor of Sink: alsa_output.pci-0000_0a_00.3.iec958-stereo
	Latency: 0 usec, configured 0 usec
	Flags: HARDWARE HW_MUTE_CTRL DECIBEL_VOLUME LATENCY 
	Properties:
		object.path = "alsa:pcm:2:iec958:2:playback"
		api.alsa.path = "iec958:2"
		api.alsa.pcm.card = "2"
		api.alsa.pcm.stream = "playback"
		audio.channels = "2"
		audio.position = "FL,FR"
		device.routes = "1"
		alsa.resolution_bits = "16"
		device.api = "alsa"
		device.class = "sound"
		alsa.class = "generic"
		alsa.subclass = "generic-mix"
		alsa.name = "ALC887-VD Digital"
		alsa.id = "ALC887-VD Digital"
		alsa.subdevice = "0"
		alsa.subdevice_name = "subdevice #0"
		alsa.device = "1"
		alsa.card = "2"
		alsa.card_name = "HD-Audio Generic"
		alsa.long_card_name = "HD-Audio Generic at 0xf6700000 irq 67"
		alsa.driver_name = "snd_hda_intel"
		device.profile.name = "iec958-stereo"
		device.profile.description = "Digital Stereo (IEC958)"
		card.profile.device = "6"
		device.id = "41"
		factory.name = "api.alsa.pcm.sink"
		priority.driver = "608"
		priority.session = "608"
		media.class = "Audio/Sink"
		node.nick = "HD-Audio Generic"
		node.name = "alsa_output.pci-0000_0a_00.3.iec958-stereo"
		device.description = "Family 17h (Models 00h-0fh) HD Audio Controller Digital Stereo (IEC958)"
		node.pause-on-idle = "false"
		factory.id = "18"
		client.id = "30"
		node.driver = "true"
		factory.mode = "merge"
		audio.adapt.follower = ""
		library.name = "audioconvert/libspa-audioconvert"
		object.id = "45"
	Formats:
		pcm

Source #65639
	State: RUNNING
	Name: alsa_output.usb-BEHRINGER_UMC202HD_192k-00.iec958-stereo.monitor
	Description: Monitor of UMC202HD 192k Digital Stereo (IEC958)
	Driver: PipeWire
	Sample Specification: s32le 2ch 48000Hz
	Channel Map: front-left,front-right
	Owner Module: 4294967295
	Mute: no
	Volume: front-left: 64143 /  98% / -0.56 dB,   front-right: 64438 /  98% / -0.44 dB
	        balance 0.00
	Base Volume: 65536 / 100% / 0.00 dB
	Monitor of Sink: alsa_output.usb-BEHRINGER_UMC202HD_192k-00.iec958-stereo
	Latency: 0 usec, configured 0 usec
	Flags: HARDWARE DECIBEL_VOLUME LATENCY 
	Properties:
		object.path = "alsa:pcm:0:iec958:0:playback"
		api.alsa.path = "iec958:0"
		api.alsa.pcm.card = "0"
		api.alsa.pcm.stream = "playback"
		audio.channels = "2"
		audio.position = "FL,FR"
		device.routes = "1"
		alsa.resolution_bits = "16"
		device.api = "alsa"
		device.class = "sound"
		alsa.class = "generic"
		alsa.subclass = "generic-mix"
		alsa.name = "USB Audio"
		alsa.id = "USB Audio"
		alsa.subdevice = "0"
		alsa.subdevice_name = "subdevice #0"
		alsa.device = "0"
		alsa.card = "0"
		alsa.card_name = "UMC202HD 192k"
		alsa.long_card_name = "BEHRINGER UMC202HD 192k at usb-0000:02:00.0-7, high speed"
		alsa.driver_name = "snd_usb_audio"
		device.profile.name = "iec958-stereo"
		device.profile.description = "Digital Stereo (IEC958)"
		card.profile.device = "5"
		device.id = "97"
		factory.name = "api.alsa.pcm.sink"
		priority.driver = "1008"
		priority.session = "1008"
		media.class = "Audio/Sink"
		node.nick = "UMC202HD 192k"
		node.name = "alsa_output.usb-BEHRINGER_UMC202HD_192k-00.iec958-stereo"
		device.description = "UMC202HD 192k Digital Stereo (IEC958)"
		node.pause-on-idle = "false"
		factory.id = "18"
		client.id = "30"
		node.driver = "true"
		factory.mode = "merge"
		audio.adapt.follower = ""
		library.name = "audioconvert/libspa-audioconvert"
		object.id = "103"
		node.max-latency = "32768/48000"
	Formats:
		pcm

Source #82
	State: SUSPENDED
	Name: alsa_input.usb-BEHRINGER_UMC202HD_192k-00.iec958-stereo
	Description: UMC202HD 192k Digital Stereo (IEC958)
	Driver: PipeWire
	Sample Specification: s32le 2ch 48000Hz
	Channel Map: front-left,front-right
	Owner Module: 4294967295
	Mute: no
	Volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
	        balance 0.00
	Base Volume: 65536 / 100% / 0.00 dB
	Monitor of Sink: n/a
	Latency: 0 usec, configured 0 usec
	Flags: HARDWARE DECIBEL_VOLUME LATENCY 
	Properties:
		object.path = "alsa:pcm:0:iec958:0:capture"
		api.alsa.path = "iec958:0"
		api.alsa.pcm.card = "0"
		api.alsa.pcm.stream = "capture"
		audio.channels = "2"
		audio.position = "FL,FR"
		device.routes = "1"
		alsa.resolution_bits = "32"
		device.api = "alsa"
		device.class = "sound"
		alsa.class = "generic"
		alsa.subclass = "generic-mix"
		alsa.name = "USB Audio"
		alsa.id = "USB Audio"
		alsa.subdevice = "0"
		alsa.subdevice_name = "subdevice #0"
		alsa.device = "0"
		alsa.card = "0"
		alsa.card_name = "UMC202HD 192k"
		alsa.long_card_name = "BEHRINGER UMC202HD 192k at usb-0000:02:00.0-7, high speed"
		alsa.driver_name = "snd_usb_audio"
		device.profile.name = "iec958-stereo"
		device.profile.description = "Digital Stereo (IEC958)"
		card.profile.device = "3"
		device.id = "97"
		factory.name = "api.alsa.pcm.source"
		priority.driver = "2008"
		priority.session = "2008"
		media.class = "Audio/Source"
		node.nick = "UMC202HD 192k"
		node.name = "alsa_input.usb-BEHRINGER_UMC202HD_192k-00.iec958-stereo"
		device.description = "UMC202HD 192k Digital Stereo (IEC958)"
		node.pause-on-idle = "false"
		factory.id = "18"
		client.id = "30"
		node.driver = "true"
		factory.mode = "split"
		audio.adapt.follower = ""
		library.name = "audioconvert/libspa-audioconvert"
		object.id = "82"
		node.max-latency = "32768/48000"
	Ports:
		iec958-stereo-input: Digital Input (S/PDIF) (type: SPDIF, priority: 0, availability unknown)
	Active Port: iec958-stereo-input
	Formats:
		pcm

Source #65580
	State: SUSPENDED
	Name: alsa_output.pci-0000_08_00.1.hdmi-stereo.monitor
	Description: Monitor of GP104 High Definition Audio Controller Digital Stereo (HDMI)
	Driver: PipeWire
	Sample Specification: s32le 2ch 48000Hz
	Channel Map: front-left,front-right
	Owner Module: 4294967295
	Mute: no
	Volume: front-left: 48287 /  74% / -7.96 dB,   front-right: 48287 /  74% / -7.96 dB
	        balance 0.00
	Base Volume: 65536 / 100% / 0.00 dB
	Monitor of Sink: alsa_output.pci-0000_08_00.1.hdmi-stereo
	Latency: 0 usec, configured 0 usec
	Flags: HARDWARE DECIBEL_VOLUME LATENCY 
	Properties:
		object.path = "alsa:pcm:1:hdmi:1:playback"
		api.alsa.path = "hdmi:1"
		api.alsa.pcm.card = "1"
		api.alsa.pcm.stream = "playback"
		audio.channels = "2"
		audio.position = "FL,FR"
		device.routes = "1"
		alsa.resolution_bits = "16"
		device.api = "alsa"
		device.class = "sound"
		alsa.class = "generic"
		alsa.subclass = "generic-mix"
		alsa.name = "HDMI 0"
		alsa.id = "HDMI 0"
		alsa.subdevice = "0"
		alsa.subdevice_name = "subdevice #0"
		alsa.device = "3"
		alsa.card = "1"
		alsa.card_name = "HDA NVidia"
		alsa.long_card_name = "HDA NVidia at 0xf6080000 irq 65"
		alsa.driver_name = "snd_hda_intel"
		device.profile.name = "hdmi-stereo"
		device.profile.description = "Digital Stereo (HDMI)"
		card.profile.device = "7"
		device.id = "40"
		factory.name = "api.alsa.pcm.sink"
		priority.driver = "632"
		priority.session = "632"
		media.class = "Audio/Sink"
		node.nick = "HDA NVidia"
		node.name = "alsa_output.pci-0000_08_00.1.hdmi-stereo"
		device.description = "GP104 High Definition Audio Controller Digital Stereo (HDMI)"
		node.pause-on-idle = "false"
		factory.id = "18"
		client.id = "30"
		node.driver = "true"
		factory.mode = "merge"
		audio.adapt.follower = ""
		library.name = "audioconvert/libspa-audioconvert"
		object.id = "44"
	Formats:
		pcm"
Exec Context: d375d829-bf0c-4d1e-836e-8ca1c362b430

ParsedOutputElement { index: -1, arguments: {}, properties: {} }
ParsedOutputElement {
  index: 65581,
  arguments: {
    State: "SUSPENDED",
    Name: "alsa_output.pci-0000_0a_00.3.iec958-stereo.monitor",
    Description: "Monitor of Family 17h (Models 00h-0fh) HD Audio Controller Digital Stereo (IEC958)",
    Driver: "PipeWire",
    "Sample Specification": "s32le 2ch 48000Hz",
    "Channel Map": "front-left,front-right",
    "Owner Module": "4294967295",
    Mute: "yes",
    Volume: "front-left",
    "Base Volume": "65536 / 100% / 0.00 dB",
    "Monitor of Sink": "alsa_output.pci-0000_0a_00.3.iec958-stereo",
    Latency: "0 usec, configured 0 usec"
  },
  properties: {
    "object.path": '"alsa:pcm:2:iec958:2:playback"',
    "api.alsa.path": '"iec958:2"',
    "api.alsa.pcm.card": '"2"',
    "api.alsa.pcm.stream": '"playback"',
    "audio.channels": '"2"',
    "audio.position": '"FL,FR"',
    "device.routes": '"1"',
    "alsa.resolution_bits": '"16"',
    "device.api": '"alsa"',
    "device.class": '"sound"',
    "alsa.class": '"generic"',
    "alsa.subclass": '"generic-mix"',
    "alsa.name": '"ALC887-VD Digital"',
    "alsa.id": '"ALC887-VD Digital"',
    "alsa.subdevice": '"0"',
    "alsa.subdevice_name": '"subdevice #0"',
    "alsa.device": '"1"',
    "alsa.card": '"2"',
    "alsa.card_name": '"HD-Audio Generic"',
    "alsa.long_card_name": '"HD-Audio Generic at 0xf6700000 irq 67"',
    "alsa.driver_name": '"snd_hda_intel"',
    "device.profile.name": '"iec958-stereo"',
    "device.profile.description": '"Digital Stereo (IEC958)"',
    "card.profile.device": '"6"',
    "device.id": '"41"',
    "factory.name": '"api.alsa.pcm.sink"',
    "priority.driver": '"608"',
    "priority.session": '"608"',
    "media.class": '"Audio/Sink"',
    "node.nick": '"HD-Audio Generic"',
    "node.name": '"alsa_output.pci-0000_0a_00.3.iec958-stereo"',
    "device.description": '"Family 17h (Models 00h-0fh) HD Audio Controller Digital Stereo (IEC958)"',
    "node.pause-on-idle": '"false"',
    "factory.id": '"18"',
    "client.id": '"30"',
    "node.driver": '"true"',
    "factory.mode": '"merge"',
    "audio.adapt.follower": '""',
    "library.name": '"audioconvert/libspa-audioconvert"',
    "object.id": '"45"'
  }
}
ParsedOutputElement {
  index: 65639,
  arguments: {
    State: "RUNNING",
    Name: "alsa_output.usb-BEHRINGER_UMC202HD_192k-00.iec958-stereo.monitor",
    Description: "Monitor of UMC202HD 192k Digital Stereo (IEC958)",
    Driver: "PipeWire",
    "Sample Specification": "s32le 2ch 48000Hz",
    "Channel Map": "front-left,front-right",
    "Owner Module": "4294967295",
    Mute: "no",
    Volume: "front-left",
    "Base Volume": "65536 / 100% / 0.00 dB",
    "Monitor of Sink": "alsa_output.usb-BEHRINGER_UMC202HD_192k-00.iec958-stereo",
    Latency: "0 usec, configured 0 usec"
  },
  properties: {
    "object.path": '"alsa:pcm:0:iec958:0:playback"',
    "api.alsa.path": '"iec958:0"',
    "api.alsa.pcm.card": '"0"',
    "api.alsa.pcm.stream": '"playback"',
    "audio.channels": '"2"',
    "audio.position": '"FL,FR"',
    "device.routes": '"1"',
    "alsa.resolution_bits": '"16"',
    "device.api": '"alsa"',
    "device.class": '"sound"',
    "alsa.class": '"generic"',
    "alsa.subclass": '"generic-mix"',
    "alsa.name": '"USB Audio"',
    "alsa.id": '"USB Audio"',
    "alsa.subdevice": '"0"',
    "alsa.subdevice_name": '"subdevice #0"',
    "alsa.device": '"0"',
    "alsa.card": '"0"',
    "alsa.card_name": '"UMC202HD 192k"',
    "alsa.long_card_name": '"BEHRINGER UMC202HD 192k at usb-0000:02:00.0-7, high speed"',
    "alsa.driver_name": '"snd_usb_audio"',
    "device.profile.name": '"iec958-stereo"',
    "device.profile.description": '"Digital Stereo (IEC958)"',
    "card.profile.device": '"5"',
    "device.id": '"97"',
    "factory.name": '"api.alsa.pcm.sink"',
    "priority.driver": '"1008"',
    "priority.session": '"1008"',
    "media.class": '"Audio/Sink"',
    "node.nick": '"UMC202HD 192k"',
    "node.name": '"alsa_output.usb-BEHRINGER_UMC202HD_192k-00.iec958-stereo"',
    "device.description": '"UMC202HD 192k Digital Stereo (IEC958)"',
    "node.pause-on-idle": '"false"',
    "factory.id": '"18"',
    "client.id": '"30"',
    "node.driver": '"true"',
    "factory.mode": '"merge"',
    "audio.adapt.follower": '""',
    "library.name": '"audioconvert/libspa-audioconvert"',
    "object.id": '"103"',
    "node.max-latency": '"32768/48000"'
  }
}
ParsedOutputElement {
  index: 82,
  arguments: {
    State: "SUSPENDED",
    Name: "alsa_input.usb-BEHRINGER_UMC202HD_192k-00.iec958-stereo",
    Description: "UMC202HD 192k Digital Stereo (IEC958)",
    Driver: "PipeWire",
    "Sample Specification": "s32le 2ch 48000Hz",
    "Channel Map": "front-left,front-right",
    "Owner Module": "4294967295",
    Mute: "no",
    Volume: "front-left",
    "Base Volume": "65536 / 100% / 0.00 dB",
    "Monitor of Sink": "n/a",
    Latency: "0 usec, configured 0 usec",
    "Active Port": "iec958-stereo-input"
  },
  properties: {
    "object.path": '"alsa:pcm:0:iec958:0:capture"',
    "api.alsa.path": '"iec958:0"',
    "api.alsa.pcm.card": '"0"',
    "api.alsa.pcm.stream": '"capture"',
    "audio.channels": '"2"',
    "audio.position": '"FL,FR"',
    "device.routes": '"1"',
    "alsa.resolution_bits": '"32"',
    "device.api": '"alsa"',
    "device.class": '"sound"',
    "alsa.class": '"generic"',
    "alsa.subclass": '"generic-mix"',
    "alsa.name": '"USB Audio"',
    "alsa.id": '"USB Audio"',
    "alsa.subdevice": '"0"',
    "alsa.subdevice_name": '"subdevice #0"',
    "alsa.device": '"0"',
    "alsa.card": '"0"',
    "alsa.card_name": '"UMC202HD 192k"',
    "alsa.long_card_name": '"BEHRINGER UMC202HD 192k at usb-0000:02:00.0-7, high speed"',
    "alsa.driver_name": '"snd_usb_audio"',
    "device.profile.name": '"iec958-stereo"',
    "device.profile.description": '"Digital Stereo (IEC958)"',
    "card.profile.device": '"3"',
    "device.id": '"97"',
    "factory.name": '"api.alsa.pcm.source"',
    "priority.driver": '"2008"',
    "priority.session": '"2008"',
    "media.class": '"Audio/Source"',
    "node.nick": '"UMC202HD 192k"',
    "node.name": '"alsa_input.usb-BEHRINGER_UMC202HD_192k-00.iec958-stereo"',
    "device.description": '"UMC202HD 192k Digital Stereo (IEC958)"',
    "node.pause-on-idle": '"false"',
    "factory.id": '"18"',
    "client.id": '"30"',
    "node.driver": '"true"',
    "factory.mode": '"split"',
    "audio.adapt.follower": '""',
    "library.name": '"audioconvert/libspa-audioconvert"',
    "object.id": '"82"',
    "node.max-latency": '"32768/48000"'
  }
}
ParsedOutputElement {
  index: 65580,
  arguments: {
    State: "SUSPENDED",
    Name: "alsa_output.pci-0000_08_00.1.hdmi-stereo.monitor",
    Description: "Monitor of GP104 High Definition Audio Controller Digital Stereo (HDMI)",
    Driver: "PipeWire",
    "Sample Specification": "s32le 2ch 48000Hz",
    "Channel Map": "front-left,front-right",
    "Owner Module": "4294967295",
    Mute: "no",
    Volume: "front-left",
    "Base Volume": "65536 / 100% / 0.00 dB",
    "Monitor of Sink": "alsa_output.pci-0000_08_00.1.hdmi-stereo",
    Latency: "0 usec, configured 0 usec"
  },
  properties: {
    "object.path": '"alsa:pcm:1:hdmi:1:playback"',
    "api.alsa.path": '"hdmi:1"',
    "api.alsa.pcm.card": '"1"',
    "api.alsa.pcm.stream": '"playback"',
    "audio.channels": '"2"',
    "audio.position": '"FL,FR"',
    "device.routes": '"1"',
    "alsa.resolution_bits": '"16"',
    "device.api": '"alsa"',
    "device.class": '"sound"',
    "alsa.class": '"generic"',
    "alsa.subclass": '"generic-mix"',
    "alsa.name": '"HDMI 0"',
    "alsa.id": '"HDMI 0"',
    "alsa.subdevice": '"0"',
    "alsa.subdevice_name": '"subdevice #0"',
    "alsa.device": '"3"',
    "alsa.card": '"1"',
    "alsa.card_name": '"HDA NVidia"',
    "alsa.long_card_name": '"HDA NVidia at 0xf6080000 irq 65"',
    "alsa.driver_name": '"snd_hda_intel"',
    "device.profile.name": '"hdmi-stereo"',
    "device.profile.description": '"Digital Stereo (HDMI)"',
    "card.profile.device": '"7"',
    "device.id": '"40"',
    "factory.name": '"api.alsa.pcm.sink"',
    "priority.driver": '"632"',
    "priority.session": '"632"',
    "media.class": '"Audio/Sink"',
    "node.nick": '"HDA NVidia"',
    "node.name": '"alsa_output.pci-0000_08_00.1.hdmi-stereo"',
    "device.description": '"GP104 High Definition Audio Controller Digital Stereo (HDMI)"',
    "node.pause-on-idle": '"false"',
    "factory.id": '"18"',
    "client.id": '"30"',
    "node.driver": '"true"',
    "factory.mode": '"merge"',
    "audio.adapt.follower": '""',
    "library.name": '"audioconvert/libspa-audioconvert"',
    "object.id": '"44"'
  }
}
error: Uncaught (in promise) TypeError: Cannot read property 'replace' of undefined
                    let source_name = source.properties["device.product.name"].replace(/"/g, "");
                                                                               ^
    at file:///usr/bin/mon2cam:879:80
    at Array.forEach (<anonymous>)
    at file:///usr/bin/mon2cam:878:30

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions