masmu / pulseaudio-dlna

A lightweight streaming server which brings DLNA / UPNP and Chromecast support to PulseAudio and Linux
GNU General Public License v3.0
1.25k stars 161 forks source link

TypeError: decode() argument 1 must be string, not None #379

Open koyuch opened 5 years ago

koyuch commented 5 years ago

When I'm trying to connect to raspberry pi's kodi app trough dlna/upnp I get always this exception.

$ pulseaudio-dlna
04-07 17:54:55 pulseaudio_dlna.application                    INFO     Using version: 0.5.2
04-07 17:54:55 pulseaudio_dlna.application                    INFO     Binding to *:8080
04-07 17:54:55 pulseaudio_dlna.application                    INFO     Encoder settings:
04-07 17:54:55 pulseaudio_dlna.application                    INFO       <AVConvAacEncoder available="False" bit-rate="192">
04-07 17:54:55 pulseaudio_dlna.application                    INFO       <AVConvFlacEncoder available="False">
04-07 17:54:55 pulseaudio_dlna.application                    INFO       <AVConvL16Encoder available="False" sample-rate="44100" channels="2">
04-07 17:54:55 pulseaudio_dlna.application                    INFO       <AVConvMp3Encoder available="False" bit-rate="192">
04-07 17:54:55 pulseaudio_dlna.application                    INFO       <AVConvOggEncoder available="False" bit-rate="192">
04-07 17:54:55 pulseaudio_dlna.application                    INFO       <AVConvOpusEncoder available="False" bit-rate="192">
04-07 17:54:55 pulseaudio_dlna.application                    INFO       <AVConvWavEncoder available="False">
04-07 17:54:55 pulseaudio_dlna.application                    INFO       <FFMpegAacEncoder available="False" bit-rate="192">
04-07 17:54:55 pulseaudio_dlna.application                    INFO       <FFMpegFlacEncoder available="False">
04-07 17:54:55 pulseaudio_dlna.application                    INFO       <FFMpegL16Encoder available="False" sample-rate="44100" channels="2">
04-07 17:54:55 pulseaudio_dlna.application                    INFO       <FFMpegMp3Encoder available="False" bit-rate="192">
04-07 17:54:55 pulseaudio_dlna.application                    INFO       <FFMpegOggEncoder available="False" bit-rate="192">
04-07 17:54:55 pulseaudio_dlna.application                    INFO       <FFMpegOpusEncoder available="False" bit-rate="192">
04-07 17:54:55 pulseaudio_dlna.application                    INFO       <FFMpegWavEncoder available="False">
04-07 17:54:55 pulseaudio_dlna.application                    INFO       <FaacAacEncoder available="False" bit-rate="192">
04-07 17:54:55 pulseaudio_dlna.application                    INFO       <FlacFlacEncoder available="True">
04-07 17:54:55 pulseaudio_dlna.application                    INFO       <LameMp3Encoder available="True" bit-rate="192">
04-07 17:54:55 pulseaudio_dlna.application                    INFO       <NullEncoder available="True">
04-07 17:54:55 pulseaudio_dlna.application                    INFO       <OggencOggEncoder available="True" bit-rate="192">
04-07 17:54:55 pulseaudio_dlna.application                    INFO       <OpusencOpusEncoder available="True" bit-rate="192">
04-07 17:54:55 pulseaudio_dlna.application                    INFO       <SoxL16Encoder available="True" sample-rate="44100" channels="2">
04-07 17:54:55 pulseaudio_dlna.application                    INFO       <SoxWavEncoder available="True">
04-07 17:54:55 pulseaudio_dlna.application                    INFO     Codec settings:
04-07 17:54:55 pulseaudio_dlna.application                    INFO       <AacCodec enabled="True" priority="12" mime_type="audio/aac" backend="generic">
04-07 17:54:55 pulseaudio_dlna.application                    INFO       <L16Codec enabled="True" priority="1" mime_type="audio/L16" backend="generic">
04-07 17:54:55 pulseaudio_dlna.application                    INFO       <OpusCodec enabled="True" priority="3" mime_type="audio/opus" backend="generic">
04-07 17:54:55 pulseaudio_dlna.application                    INFO       <Mp3Codec enabled="True" priority="18" mime_type="audio/mp3" backend="generic">
04-07 17:54:55 pulseaudio_dlna.application                    INFO       <FlacCodec enabled="True" priority="9" mime_type="audio/flac" backend="generic">
04-07 17:54:55 pulseaudio_dlna.application                    INFO       <WavCodec enabled="True" priority="15" mime_type="audio/wav" backend="generic">
04-07 17:54:55 pulseaudio_dlna.application                    INFO       <OggCodec enabled="True" priority="6" mime_type="audio/ogg" backend="generic">
04-07 17:54:55 pulseaudio_dlna.pulseaudio                     INFO     Module "module-dbus-protocol" already loaded.
04-07 17:54:55 pulseaudio_dlna.pulseaudio                     INFO     Probing for $PULSE_DBUS_SERVER unsuccessful.
04-07 17:54:55 pulseaudio_dlna.pulseaudio                     INFO     Probing for /run/pulse/dbus-socket unsuccessful.
04-07 17:54:55 pulseaudio_dlna.pulseaudio                     INFO     Probing for $XDG_RUNTIME_DIR successful (unix:path=/run/user/1000/pulse/dbus-socket).
04-07 17:54:55 pulseaudio_dlna.pulseaudio                     INFO     Probing for org.PulseAudio.ServerLookup1 successful (unix:path=/run/user/1000/pulse/dbus-socket).
04-07 17:54:55 pulseaudio_dlna.pulseaudio                     INFO     Found the following pulseaudio server addresses: unix:path=/run/user/1000/pulse/dbus-socket
04-07 17:54:55 pulseaudio_dlna.pulseaudio                     INFO     Connecting to pulseaudio on "unix:path=/run/user/1000/pulse/dbus-socket" ...
Exception in thread Thread-3:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/local/lib/python2.7/dist-packages/pulseaudio_dlna-0.5.2-py2.7.egg/pulseaudio_dlna/plugins/dlna/__init__.py", line 55, in launch_discover
    discover.search(ssdp_ttl=ttl)
  File "/usr/local/lib/python2.7/dist-packages/pulseaudio_dlna-0.5.2-py2.7.egg/pulseaudio_dlna/plugins/dlna/ssdp/discover.py", line 68, in search
    self._search(self.host or '', ssdp_ttl, ssdp_mx, ssdp_amount)
  File "/usr/local/lib/python2.7/dist-packages/pulseaudio_dlna-0.5.2-py2.7.egg/pulseaudio_dlna/plugins/dlna/ssdp/discover.py", line 110, in _search
    header = header.decode(guess['encoding'])
TypeError: decode() argument 1 must be string, not None

In debug mode I checked the variables and header is empty string (probably empty response?) If I try "easy fix" if not header: continue everything works correct (even discovering the streamer) I have tried ubuntu (18.04) version of pulseaudio-dlna - pulseaudio-dlna/bionic,bionic 0.5.3+git20170406-1 all even the version from master - the result is same kodi version - kodi/unknown,stable,now 2:18.1-1~stretch all from repo http://pipplware.pplware.pt/pipplware/dists/stretch/main/binary raspbian version 9.8 (stretch) Or is it more problem of kodi? (but anyway pulseaudio shouldn't crash just on empty response..)

FabD86 commented 3 years ago

Got the same problem on ArchLinux. Thanks for the workaround :+1: With both packages: https://aur.archlinux.org/packages/pulseaudio-dlna/ https://aur.archlinux.org/packages/pulseaudio-dlna-python3-git/