Fix 'not-negotiated' errors on some Spotify tracks (fixes #213)
This commit is contained in:
parent
587616ebf7
commit
b53a82dbba
@ -5,6 +5,16 @@ Changes
|
|||||||
This change log is used to track all major changes to Mopidy.
|
This change log is used to track all major changes to Mopidy.
|
||||||
|
|
||||||
|
|
||||||
|
v0.8.1 (in development)
|
||||||
|
=======================
|
||||||
|
|
||||||
|
**Bug fixes**
|
||||||
|
|
||||||
|
- :issue:`213`: Fix "streaming task paused, reason not-negotiated" errors
|
||||||
|
observed by some users on some Spotify tracks due to a change introduced in
|
||||||
|
0.8.0. See the issue for a patch that applies to 0.8.0.
|
||||||
|
|
||||||
|
|
||||||
v0.8.0 (2012-09-20)
|
v0.8.0 (2012-09-20)
|
||||||
===================
|
===================
|
||||||
|
|
||||||
|
|||||||
@ -70,6 +70,21 @@ class Audio(ThreadingActor):
|
|||||||
fakesink = gst.element_factory_make('fakesink')
|
fakesink = gst.element_factory_make('fakesink')
|
||||||
self._playbin.set_property('video-sink', fakesink)
|
self._playbin.set_property('video-sink', fakesink)
|
||||||
|
|
||||||
|
self._playbin.connect('notify::source', self._on_new_source)
|
||||||
|
|
||||||
|
def _on_new_source(self, element, pad):
|
||||||
|
uri = element.get_property('uri')
|
||||||
|
if not uri or not uri.startswith('appsrc://'):
|
||||||
|
return
|
||||||
|
|
||||||
|
# These caps matches the audio data provided by libspotify
|
||||||
|
default_caps = gst.Caps(
|
||||||
|
'audio/x-raw-int, endianness=(int)1234, channels=(int)2, '
|
||||||
|
'width=(int)16, depth=(int)16, signed=(boolean)true, '
|
||||||
|
'rate=(int)44100')
|
||||||
|
source = element.get_property('source')
|
||||||
|
source.set_property('caps', default_caps)
|
||||||
|
|
||||||
def _teardown_playbin(self):
|
def _teardown_playbin(self):
|
||||||
self._playbin.set_state(gst.STATE_NULL)
|
self._playbin.set_state(gst.STATE_NULL)
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user