You are not logged in.

#1 2019-02-28 16:53:22

Maniaxx
Member
Registered: 2014-05-14
Posts: 761

[SOLVED]Firefox - What exactly is AudioIPC?

I'm aware its short for 'inter-process communication' and usually it's also the default name for the Pulseaudio channel.
The problem is it behaves very strange here. I can play YouTube videos in Firefox and ALSA is occupied (i use plug/asym asoundrc config or in other words enforced software mixing. It should play/mix any count of concurrent audio channels but Fx is a blocker here). If Firefox plays sound no one else can (or vice versa). This only happens with Fx. All other apps play nicely together.

The other point is even though i have PulseAudio installed it is disabled (at least i think so) and nevertheless audio is playing in Firefox.

$ systemctl --user status pulseaudio.service
● pulseaudio.service - Sound Service
   Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
$ systemctl --user status pulseaudio.socket
● pulseaudio.socket
   Loaded: masked (Reason: Unit pulseaudio.socket is masked.)
   Active: inactive (dead)

Also, no pulse (or JACK) processes are running during Fx playback. I usually start/stop it on-demand with 'pulseaudio -D' or 'pulseaudio -k'.

Looking into Firefox 'about:support' it shows:

Audio Backend	remote

No word about PulseAudio at all.

Is this ArchLinux specific or default Mozilla behavior? How is it possible to screw up the system from userspace like this? How exactly does this IPC work? There is no PulseAudio process running in userspace. This rather looks like a custom dirty hook into ALSA or something done by the Arch community (just a wild guess).

Edit:
It also connects to JACK. Wtf.. they decline ALSA support but include JACK?
(screenshots from about:support)
fx-defaultdaj79.png fx-jackkwkbq.png

Last edited by Maniaxx (2019-02-28 21:42:01)


sys2064

Offline

#2 2019-02-28 18:46:23

progandy
Member
Registered: 2012-05-17
Posts: 5,321

Re: [SOLVED]Firefox - What exactly is AudioIPC?

ALSA is still in the firefox codebase, the arch package is compiled with ALSA, but the firefox devs do not provide any tech and bug support for it anymore. I seem to remember mozilla saying that they lack the manpower to manage the ALSA implementation and nobody stepped up when they asked for help. I'm not sure what exactly the problem was. Maybe something with it not playing nicely with sandboxing or something like that.

I don't run firefox with alsa, but AudioIPC may be a homegrown firefox internal "soundserver" that handles the sound interface between the system and the tab sandboxes.

Edit: Here it is in the firefox repo: https://github.com/mozilla/gecko-dev/tr … a/audioipc

Last edited by progandy (2019-02-28 18:53:58)


| alias CUTF='LANG=en_XX.UTF-8@POSIX ' | alias ENGLISH='LANG=C.UTF-8 ' |

Offline

#3 2019-02-28 19:49:10

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 25,376

Re: [SOLVED]Firefox - What exactly is AudioIPC?

That firefox issue with ALSA has even been present when ALSA was still officially supported, for some reason it doesn't properly use the default device (assuming it is properly defined, what's the output of aplay -L ?). I'm not sure what the proper fix here is or if there even is one.

Offline

#4 2019-02-28 19:52:14

Maniaxx
Member
Registered: 2014-05-14
Posts: 761

Re: [SOLVED]Firefox - What exactly is AudioIPC?

Thanks.
I'm not sure where i've seen the string 'AudioIPC' exactly the last time (i think it was in process list) but at the moment i cannot find it anymore so i'm not sure if the above case is 'AudioIPC' indeed.
As ALSA is still active this could simply be the last (buggy) state i'm experiencing.

$ aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
jack
    JACK Audio Connection Kit
pulse
    PulseAudio Sound Server
sysdefault:CARD=Audigy2
    SB Audigy 2 ZS [SB0350], ADC Capture/Standard PCM Playback
    Default Audio Device
front:CARD=Audigy2,DEV=0
    SB Audigy 2 ZS [SB0350], ADC Capture/Standard PCM Playback
    Front speakers
rear:CARD=Audigy2,DEV=0
    SB Audigy 2 ZS [SB0350], ADC Capture/Standard PCM Playback
    Rear speakers
center_lfe:CARD=Audigy2,DEV=0
    SB Audigy 2 ZS [SB0350], ADC Capture/Standard PCM Playback
    Center and Subwoofer speakers
side:CARD=Audigy2,DEV=0
    SB Audigy 2 ZS [SB0350], ADC Capture/Standard PCM Playback
    Side speakers
surround21:CARD=Audigy2,DEV=0
    SB Audigy 2 ZS [SB0350], ADC Capture/Standard PCM Playback
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Audigy2,DEV=0
    SB Audigy 2 ZS [SB0350], ADC Capture/Standard PCM Playback
    4.0 Surround output to Front and Rear speakers
surround41:CARD=Audigy2,DEV=0
    SB Audigy 2 ZS [SB0350], ADC Capture/Standard PCM Playback
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Audigy2,DEV=0
    SB Audigy 2 ZS [SB0350], ADC Capture/Standard PCM Playback
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Audigy2,DEV=0
    SB Audigy 2 ZS [SB0350], ADC Capture/Standard PCM Playback
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Audigy2,DEV=0
    SB Audigy 2 ZS [SB0350], ADC Capture/Standard PCM Playback
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Audigy2,DEV=0
    SB Audigy 2 ZS [SB0350], ADC Capture/Standard PCM Playback
    IEC958 (S/PDIF) Digital Audio Output
usbstream:CARD=Audigy2
    SB Audigy 2 ZS [SB0350]
    USB Stream Output
hdmi:CARD=NVidia,DEV=0
    HDA NVidia, HDMI 0
    HDMI Audio Output
hdmi:CARD=NVidia,DEV=1
    HDA NVidia, HDMI 1
    HDMI Audio Output
hdmi:CARD=NVidia,DEV=2
    HDA NVidia, HDMI 2
    HDMI Audio Output
hdmi:CARD=NVidia,DEV=3
    HDA NVidia, HDMI 3
    HDMI Audio Output
usbstream:CARD=NVidia
    HDA NVidia
    USB Stream Output

Last edited by Maniaxx (2019-02-28 19:53:41)


sys2064

Offline

#5 2019-02-28 20:20:34

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 25,376

Re: [SOLVED]Firefox - What exactly is AudioIPC?

You don't have a default device, afaik firefox will just hardcode on sysdefault in this case, which is synonymous with directly and exclusively use the card. Can you post your config? What's the behaviour with e.g.

speaker-test -Ddefault -c2

Offline

#6 2019-02-28 20:43:29

Maniaxx
Member
Registered: 2014-05-14
Posts: 761

Re: [SOLVED]Firefox - What exactly is AudioIPC?

How can i define the 'default' device?

$ speaker-test -Ddefault -c2

speaker-test 1.1.8

Playback device is default
Stream parameters are 48000Hz, S16_LE, 2 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 2048 to 8192
Period size range from 1024 to 1024
Using max buffer size 8192
Periods = 4
was set period_size = 1024
was set buffer_size = 8192
 0 - Front Left
 1 - Front Right
Time per period = 5.809501
 0 - Front Left
 1 - Front Right
Time per period = 5.973667
 0 - Front Left
 1 - Front Right
Time per period = 5.973671
 0 - Front Left
 1 - Front Right
[...]

.asoundrc

defaults.pcm.rate_converter "speexrate_medium"

pcm.!default {
	type plug
	slave.pcm "asym"
}

ctl.!default {
	type hw
	card "hw:0,0"
}

pcm.asym {
	type asym
	playback.pcm "output"
	capture.pcm "input"
}

pcm.output  {
	type dmix
	ipc_key 2048
	ipc_perm 0666
	slave {
		pcm "hw:0,0"
		period_time 0
		period_size 1024
		buffer_size 8192
		rate 48000
		channels 2
	}
	bindings {
		0 0
		1 1
	}
}

pcm.input {
	type dsnoop
	ipc_key 1024
	ipc_perm 0666
	slave {
		pcm "hw:0,1" 
		channels 2
		period_size 1024
		buffer_size 4096
		rate 48000
		periods 0
		period_time 0
	}
}

pcm.dsp0 {
	type plug
	slave.pcm "asym"
}

Last edited by Maniaxx (2019-02-28 20:47:33)


sys2064

Offline

#7 2019-02-28 21:04:23

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 25,376

Re: [SOLVED]Firefox - What exactly is AudioIPC?

If pulseaudio-alsa's conf and some cursory reading through the default file in /usr/share/alsa/alsa.conf is any indication, you should be able to make it listable to programs that rely on this with

pcm.!default {
	type plug
	slave.pcm "asym"
        hint {
           show on
           description "Default device"
     }
}

Last edited by V1del (2019-02-28 21:08:01)

Offline

#8 2019-02-28 21:41:43

Maniaxx
Member
Registered: 2014-05-14
Posts: 761

Re: [SOLVED]Firefox - What exactly is AudioIPC?

Shows up in 'aplay -L' as well. Thanks!

$ aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
jack
    JACK Audio Connection Kit
pulse
    PulseAudio Sound Server
default
    Default device
sysdefault:CARD=Audigy2
    SB Audigy 2 ZS [SB0350], ADC Capture/Standard PCM Playback
    Default Audio Device
front:CARD=Audigy2,DEV=0
    SB Audigy 2 ZS [SB0350], ADC Capture/Standard PCM Playback
    Front speakers
[...]

Edit:
Even though... when i set 'defaults.namehint.showall on' (and disable the explicit 'hint') i get the output below. Looks like its already set by default. Just not visible.

$ aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
jack
    JACK Audio Connection Kit
pulse
    PulseAudio Sound Server
default
asym
output
input
dsp0
sysdefault:CARD=Audigy2
    SB Audigy 2 ZS [SB0350], ADC Capture/Standard PCM Playback
    Default Audio Device
front:CARD=Audigy2,DEV=0
    SB Audigy 2 ZS [SB0350], ADC Capture/Standard PCM Playback
    Front speakers

Last edited by Maniaxx (2019-02-28 21:49:22)


sys2064

Offline

#9 2019-02-28 22:18:28

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 25,376

Re: [SOLVED]Firefox - What exactly is AudioIPC?

Well yeah you can theoretically list every pcm, that would include a lot of the ones that are usually only used as intermediaries and would clutter up that list with potential disfunct entries, which is probably why it's set up like that by default.

Offline

Board footer

Powered by FluxBB