eonpatapon / mpDris2

MPRIS V2.1 support for mpd
GNU General Public License v3.0
210 stars 46 forks source link

mpDris2 crashes on startup #107

Open sbuller opened 5 years ago

sbuller commented 5 years ago

mpDris2 has been running long enough that I didn't even remember what it was when my media keys stopped working...

I got it working again by clearing my playlist in mpd before re-running mpDris2. Looking a bit further into it, it seems I've got some ogg files that cause trouble. 02-So Far.ogg: Audio file with ID3 version 2.3.0, contains:Ogg data, Vorbis audio, stereo, 44100 Hz, ~224000 bps, created by: Xiph.Org libVorbis I

Switching to a different song before launch avoids trouble, and mpDris2 handles the problem files fine once it's running. So, no longer an issue for me, but a reproducible crash on startup.

This is mpDris2 version 0.7 on Fedora 28.

2018-11-07 14:24:44,122 mpDris2 INFO: Using file:///home/stefan/Music as music library path.
2018-11-07 14:24:44,122 mpDris2 INFO: Using Mutagen to read covers from music files.
2018-11-07 14:24:44,123 mpd INFO: Calling MPD connect('localhost', '6600', timeout=None)
Traceback (most recent call last):
  File "/usr/bin/mpDris2", line 1307, in <module>
    mpd_wrapper.run()
  File "/usr/bin/mpDris2", line 279, in run
    if self.my_connect():
  File "/usr/bin/mpDris2", line 354, in my_connect
    self.timer_callback()
  File "/usr/bin/mpDris2", line 442, in timer_callback
    self._update_properties(force=False)
  File "/usr/bin/mpDris2", line 704, in _update_properties
    self.update_metadata()
  File "/usr/bin/mpDris2", line 567, in update_metadata
    cover = self.find_cover(song_url)
  File "/usr/bin/mpDris2", line 626, in find_cover
    song = mutagen.File(song_path)
  File "/usr/lib/python3.6/site-packages/mutagen/_util.py", line 148, in wrapper_func
    return func(h, *args, **kwargs)
  File "/usr/lib/python3.6/site-packages/mutagen/_file.py", line 297, in File
    return Kind(fileobj, filename=filething.filename)
  File "/usr/lib/python3.6/site-packages/mutagen/_file.py", line 49, in __init__
    self.load(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/mutagen/_util.py", line 140, in wrapper
    return func(self, h, *args, **kwargs)
  File "/usr/lib/python3.6/site-packages/mutagen/id3/_file.py", line 406, in load
    self.info = self._Info(fileobj, offset)
  File "/usr/lib/python3.6/site-packages/mutagen/_util.py", line 169, in wrapper
    return func(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/mutagen/mp3/__init__.py", line 403, in __init__
    raise HeaderNotFoundError("can't sync to MPEG frame")
mutagen.mp3.HeaderNotFoundError: can't sync to MPEG frame