No more SPDIF passthrough after upgrading to F40

I used to have SPDIF passthrough with Kodi 21 Flatpak for my Logitech Z906 when started with ‘flatpak run tv.kodi.Kodi --audio-backend=pulseaudio &’

It’s not working anymore with any AC3/DTS file I have in hand. Was working perfectly fine with F39 yesterday.

I noticed a new audio-backend=pipewire that wasn’t working with F39 and now works with F40. No passthrough though.

Passthrough options aren’t available/visible anymore in Kodi using audio-backend = pipewire / pulseaudio. Only for alsa they’re visible whereas they weren’t with F39. On top of that, they’re not working with audio-backend=alsa.

It was pretty simple with Kodi 20 and Fedora 39:

<setting id="audiooutput.audiodevice">PULSE:alsa_output.pci-0000_00_14.2.iec958-stereo|Audio interne Stéréo numérique (IEC958)</setting>
<setting id="audiooutput.channels">8</setting>
<setting id="audiooutput.config">3</setting>

That means no more 5.1 sound. Needless to say I want that back ASAP.

__

Update. Got passthrough back by installing pulseaudio over pipewire-pulseaudio and restarting daemons, but I doubt it’s a long term solution:

$ sudo dnf --allowerasing install pulseaudio
$ systemctl --user restart pipewire
$ systemctl --user restart pulseaudio
$ systemctl --user restart wireplumber
$ flatpak run tv.kodi.Kodi --audio-backend=pulseaudio &
Dernière vérification de l’expiration des métadonnées effectuée il y a 1:48:17 le mer 24 avr 2024 14:02:04.
Dépendances résolues.
==========================================================================================================================================================
 Paquet                                            Architecture                 Version                              Dépôt                          Taille
==========================================================================================================================================================
Installation:
 pulseaudio                                        x86_64                       16.1-7.fc40                          fedora                         1.0 M
Installation des dépendances:
 pulseaudio-module-bluetooth                       x86_64                       16.1-7.fc40                          fedora                         104 k
Installation des dépendances faibles:
 mpg123-plugins-pulseaudio                         x86_64                       1.31.3-4.fc40                        fedora                          15 k
Supprimer des paquets dépendants:
 pipewire-pulseaudio                               x86_64                       1.0.5-1.fc40                         @updates                       411 k

Résumé de la transaction
==========================================================================================================================================================
Installer  3 Paquets
Supprimer  1 Paquet

Taille totale des téléchargements : 1.1 M
Voulez-vous continuer ? [O/n] : 
Téléchargement des paquets :
(1/3): mpg123-plugins-pulseaudio-1.31.3-4.fc40.x86_64.rpm                                                                  24 kB/s |  15 kB     00:00    
(2/3): pulseaudio-module-bluetooth-16.1-7.fc40.x86_64.rpm                                                                 134 kB/s | 104 kB     00:00    
(3/3): pulseaudio-16.1-7.fc40.x86_64.rpm                                                                                  1.0 MB/s | 1.0 MB     00:01    
----------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                     711 kB/s | 1.1 MB     00:01     
Test de la transaction
La vérification de la transaction a réussi.
Lancement de la transaction de test
Transaction de test réussie.
Exécution de la transaction
  Préparation           :                                                                                                                             1/1 
  Installation          : mpg123-plugins-pulseaudio-1.31.3-4.fc40.x86_64                                                                              1/4 
  Exécution du scriptlet: pulseaudio-16.1-7.fc40.x86_64                                                                                               2/4 
  Installation          : pulseaudio-16.1-7.fc40.x86_64                                                                                               2/4 
  Exécution du scriptlet: pulseaudio-16.1-7.fc40.x86_64                                                                                               2/4 
Created symlink /etc/systemd/user/sockets.target.wants/pulseaudio.socket → /usr/lib/systemd/user/pulseaudio.socket.

  Installation          : pulseaudio-module-bluetooth-16.1-7.fc40.x86_64                                                                              3/4 
  Suppression de        : pipewire-pulseaudio-1.0.5-1.fc40.x86_64                                                                                     4/4 
  Exécution du scriptlet: pulseaudio-16.1-7.fc40.x86_64                                                                                               4/4 
  Exécution du scriptlet: pipewire-pulseaudio-1.0.5-1.fc40.x86_64                                                                                     4/4 

Installé:
  mpg123-plugins-pulseaudio-1.31.3-4.fc40.x86_64          pulseaudio-16.1-7.fc40.x86_64          pulseaudio-module-bluetooth-16.1-7.fc40.x86_64         
Supprimé:
  pipewire-pulseaudio-1.0.5-1.fc40.x86_64                                                                                                                 

Terminé !

__

2nd update, the day after:

Solved by reinstalling pipewire-pulse and removing pulseaudio. However it’s not sticking so I suggest starting kodi in passthrough mode with that script. If you need kodi in alsa mode, then don’t bother:

$ cat bin/kodi-passthrough.sh 
#!/bin/bash
cp ~/Kodi\ Backups/guisettings.xml ~/.var/app/tv.kodi.Kodi/data/userdata/
sleep 2s
systemctl --user restart pipewire
sleep 2s
systemctl --user restart pulseaudio
sleep 2s
systemctl --user restart wireplumber
sleep 2s
flatpak run tv.kodi.Kodi --audio-backend=pulseaudio &

How I got it is not clear. I basically removed and reinstalled pipewire-pulse. Here is the complete history in case you wionder:

 6409  cat bin/kodi-passthrough.sh 
 6411  flatpak run tv.kodi.Kodi --audio-backend=alsa+pulseaudio &
 6412  flatpak run tv.kodi.Kodi --audio-backend=pulseaudio &
 6413  systemctl --user restart pipewire
 6415  systemctl --user restart wireplumber
 6416  flatpak run tv.kodi.Kodi --audio-backend=alsa+pulseaudio &
 6417  bin/kodi-passthrough.sh 
 6418  systemctl --user status pipewire
 6419  systemctl --user status wireplumber
 6420  flatpak run tv.kodi.Kodi --audio-backend=alsa
 6421  bin/kodi-passthrough.sh 
 6422  systemctl --user status pipewire-pulse
 6423  systemctl --user restart pipewire-pulse
 6424  bin/kodi-passthrough.sh 
 6425  cat ~/.config/pipewire/pipewire.conf
 6427  journalctl --user -u pipewire
 6428  journalctl --user -u pipewire-pulse
 6429  journalctl --user -u wireplumber
 6430  pactl list cards
 6433  journalctl --user -u pulseaudio
 6434  sudo dnf install pulseaudio
 6436  flatpak run tv.kodi.Kodi --audio-backend=pipewire
 6443  mpv --audio-device=pipewire/alsa_output.pci-0000_00_14.2.iec958-stereo.2 Videos/AAC-test.mp4 
 6446  mpv --audio-device=pulse/alsa_output.pci-0000_00_14.2.iec958-stereo.2 Videos/AAC-test.mp4 
 6458  flatpak run tv.kodi.Kodi --audio-backend=pulseaudio &
 6460  cat /etc/asound.conf
 6461  aplay -l
 6462  aplay -L
 6469  systemctl --user restart pipewire
 6470  systemctl --user restart pipewire-pulse
 6471  systemctl --user restart wireplumber
 6472  flatpak run tv.kodi.Kodi --audio-backend=pulseaudio &
 6473  sudo dnf install pulseaudio
 6474  sudo dnf --allowerasing install pulseaudio
 6475  systemctl --user restart wireplumber
 6476  systemctl --user restart pipewire-pulse
 6477  systemctl --user restart pipewire
 6478  systemctl --user restart pulseaudio
 6479  systemctl --user status pulseaudio
 6480  flatpak run tv.kodi.Kodi --audio-backend=pulseaudio &
 6483  bin/kodi-passthrough.sh 
 6495  sudo dnf install gstreamer1-plugins-good gstreamer1-plugins-ugly gstreamer1-plugins-bad-free
 6496  sudo dnf install gstreamer1-libav gstreamer1-plugin-openh264
 6497  sudo dnf update
 6498  sudo dnf upgrade
 6503  sudo dnf remove pulseaudio
 6504  cat bin/kodi-passthrough.sh 
 6505  systemctl --user restart pipewire
 6506  systemctl --user restart wireplumber
 6507  sudo dnf install pipewire-pulseaudio
 6508  systemctl --user restart pipewire-pulseaudio
 6509  cat bin/kodi-passthrough.sh 
 6510  systemctl --user restart pipewire-pulse
 6511  flatpak run tv.kodi.Kodi --audio-backend=pulseaudio &
 6512  pactl list cards
 6513  pactl list sinks
 6514  pactl list sink-inputs
 6515  sudo fuser -v /dev/snd/*
 6516  sudo dnf swap --allowerasing pipewire-pulseaudio pulseaudio
 6517  pactl list cards
 6518  pactl list sinks
 6519  pactl list sink-inputs
 6520  sudo fuser -v /dev/snd/*
 6521  sudo dnf swap --allowerasing pipewire-pulseaudio pulseaudio
 6522  cat bin/kodi-passthrough.sh 
 6523  systemctl --user restart pipewire
 6524  systemctl --user restart pulseaudio
 6525  systemctl --user restart wireplumber
 6526  sudo fuser -v /dev/snd/*
 6527  sudo dnf remove pipewire
 6528  pactl list cards
 6529  pactl list sink-inputs
 6531  pactl list sinks
 6532  cat bin/kodi-passthrough.sh 
 6533  flatpak run tv.kodi.Kodi --audio-backend=pulseaudio &
 6534  bin/kodi-passthrough.sh 
 6536  sudo fuser -v /dev/snd/*
 6550  cat bin/kodi-passthrough.sh 
 6551  systemctl --user restart pipewire
 6552  sleep 2s
 6553  systemctl --user restart pulseaudio
 6554  sleep 2s
 6555  systemctl --user restart wireplumber
 6556  systemctl --user status pulseaudio
 6557  bin/kodi-passthrough.sh
2 Likes

Added f40, pulseaudio

Solution here:

Have you tried disabling [suspend-on-idle] in /etc/pulse/default.pa?

1 Like