E Mixer creates many duplicate recording sinks
#35
Open
opened 3 months ago by dankasak
·
1 comments
No Branch/Tag Specified
devs/asdfuser/comp-sounds
devs/bu5hm4n/bsd_build_fix
devs/bu5hm4n/bugfixing
devs/bu5hm4n/debug_code
devs/bu5hm4n/econfigure2
devs/bu5hm4n/fix
devs/bu5hm4n/fixes
devs/bu5hm4n/luncher_verbose
devs/bu5hm4n/meson_wip
devs/bu5hm4n/mixer-fix
devs/bu5hm4n/mixer_fix
devs/bu5hm4n/mixer_fix_range
devs/bu5hm4n/mixerfun
devs/bu5hm4n/netstart_fixes
devs/bu5hm4n/pointer-fix
devs/bu5hm4n/recognition
devs/bu5hm4n/sandbox_fix
devs/bu5hm4n/swipe_real
devs/bu5hm4n/systray
devs/captainigloo/eglfs
devs/captainigloo/eglfs_rpi
devs/derekf/for_derbyw
devs/derekf/wip2
devs/derekf/wip_viewporter
devs/devilhorns/drm_rotation
devs/devilhorns/e_comp_wl
devs/devilhorns/e_wayland
devs/devilhorns/ecore_drm2
devs/devilhorns/ecore_wl2
devs/devilhorns/output
devs/devilhorns/rotation
devs/devilhorns/wl_buffer
devs/devilhorns/xwayland
devs/discomfitor/action_route
devs/discomfitor/debug
devs/discomfitor/eo
devs/discomfitor/junk
devs/discomfitor/output_states
devs/discomfitor/quicklaunch
devs/discomfitor/xdg-shedsmanship
devs/illogict/signals_priority
devs/princeamd/enlightenment-0.17-elive
devs/sachiel/e19
devs/stanluk/a11y
devs/stefan/wl-session-recovery
devs/yoz/bryce
devs/yoz/imfos
enlightenment-0.17
enlightenment-0.18
enlightenment-0.19
enlightenment-0.20
enlightenment-0.21
enlightenment-0.22
enlightenment-0.23
enlightenment-0.24
f/fix_xlib_protocol_error
feature/quicklaunch
feature/wayland/multi-output
master
v-0.25.0
v0.17.0
v0.17.1
v0.17.2
v0.17.2.1
v0.17.3
v0.17.4
v0.17.5
v0.17.6
v0.18.0
v0.18.0-alpha1
v0.18.0-alpha3
v0.18.0-alpha4
v0.18.0-rc1
v0.18.0-rc2
v0.18.1
v0.18.2
v0.18.3
v0.18.4
v0.18.5
v0.18.6
v0.18.7
v0.18.8
v0.18.9
v0.19.0
v0.19.0-alpha1
v0.19.0-alpha2
v0.19.0-rc3
v0.19.1
v0.19.10
v0.19.11
v0.19.12
v0.19.14
v0.19.2
v0.19.3
v0.19.4
v0.19.5
v0.19.6
v0.19.7
v0.19.8
v0.19.9
v0.20.0
v0.20.0-alpha
v0.20.0-beta
v0.20.0-rc
v0.20.1
v0.20.2
v0.20.3
v0.20.4
v0.20.5
v0.20.6
v0.20.7
v0.20.8
v0.20.9
v0.21.0
v0.21.0-alpha
v0.21.0-beta
v0.21.0-rc
v0.21.1
v0.21.10
v0.21.11
v0.21.2
v0.21.3
v0.21.4
v0.21.5
v0.21.6
v0.21.7
v0.21.8
v0.21.9
v0.22.0
v0.22.0-alpha
v0.22.0-beta
v0.22.0-rc
v0.22.1
v0.22.2
v0.22.3
v0.22.4
v0.23.0
v0.23.0-alpha
v0.23.0-beta
v0.23.1
v0.24.0
v0.24.1
v0.24.2
v0.25.0
v0.25.1
v0.25.2
v0.25.3
v0.25.3-2
v0.25.4
Labels
Apply labels
Clear labels
No items
No Label
Milestone
Set milestone
Clear milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
Assign users
Clear assignees
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.
No due date set.
Dependencies
No dependencies set.
Reference: enlightenment/enlightenment#35
Reference in new issue
There is no content yet.
Delete Branch '%!s(<nil>)'
Deleting a branch is permanent. It CANNOT be undone. Continue?
No
Yes
The Mixer module is creating a lot of duplicate recording sinks, as viewed in pavumixer. It is also consuming a considerable amount of CPU ( which is how I noticed ). Steps to reproduce and observe:
Have at least 1 application playing audio.
Open pavumixer and click on the "Recording" tab. Observe the list of clients currently "recording". I generally have none at this point:
Click the Mixer module to close the pop-up window, and the sink disappears.
Now click the Mixer module to re-open the pop-up window. This time, change the volume levels of the client playing audio ( in this example, Firefox ), and note the duplicate __e_mon recording sinks:
As mentioned, this has a serious impact on CPU utilisation, in Enlightenment and X. When I restart E, all the duplicate sinks are removed.
I don't see duplicates like you - i do see the source outputs. e (and e's mixer tool) use these to monitor playback, output and input streams. pavucontrol also does the same thing. mixer popup appears - i see one of e's monitor outputs then when popup goes away, it disappears (in pavucontrol). e and e's mixer tool (both inherit the same backend code in the mixer module) specifically ignore any outputs named __e_mon as it knows it's one of its own monitor streams. pavucontrol does the same trick. it names them "Peak detect".
So this command to list media:
that's with pavucontrol running. now i open e's mixer popup:
now i hide the popup:
i run e's mixer tool:
Close the emixer tool window:
Now close pavucontrol:
i.e. - nothing. I now pop up e's mixer popup again:
Also nothing. No output playing or anything recording and nothnig to monitor...
So I'm not seeing some leak in monitors here. Regular pulseaudio running. 3 Audio devices (2 USB and a HDMI device).
I guess I should have e ignore "Peak detect" recording streams as they are just pavucontrol's own way of doing what e';s mixer popup does and emixer tool does - monitor input sources to show the current sound levels. e's mixer popup will only show the microphone volume level monitor if it sees something recording at the time (i did this for the case you use e.g. zoom or whatever and you now know what is asking to record - the cases for the 2 mixer tools is one where they are not actually recording but monitoring so filtering is probably a better experience).