hzeller / gmrender-resurrect

Resource efficient UPnP/DLNA renderer, optimal for Raspberry Pi, CuBox or a general MediaServer. Fork of GMediaRenderer to add some features to make it usable.
GNU General Public License v2.0
842 stars 204 forks source link

foobar2000 - stopping playback breaks the renderer #65

Open grawity opened 10 years ago

grawity commented 10 years ago

Currently I'm trying out gmrender 61f5a8f with foobar2000 as the player. Regular playback works – one song finishes, another starts, all is fine etc. – but when I try to switch songs manually, all I get is silence, a couple GStreamer assertion failures, and sometimes a few hundred PulseAudio errors ("Failed to push data into queue"). The only way to get sound again is to completely restart the renderer.

The logs look like this:

(playing old song)
INFO  [2014-08-15 18:24:02.014588 | transport] RelativeTimePosition: 0:02:37
INFO  [2014-08-15 18:24:03.015281 | transport] RelativeTimePosition: 0:02:38
INFO  [2014-08-15 18:24:04.015874 | transport] RelativeTimePosition: 0:02:39
INFO  [2014-08-15 18:24:05.016554 | transport] RelativeTimePosition: 0:02:40
INFO  [2014-08-15 18:24:06.017309 | transport] RelativeTimePosition: 0:02:41
INFO  [2014-08-15 18:24:07.018057 | transport] RelativeTimePosition: 0:02:42
(asking foobar2000 to play another song)
INFO  [2014-08-15 18:24:07.507840 | transport] TransportState: STOPPED
INFO  [2014-08-15 18:24:07.507879 | transport] CurrentTransportActions: PLAY,SEEK
INFO  [2014-08-15 18:24:07.507927 | transport] LastChange: <?xml version="1.0"?>
<Event xmlns="urn:schemas-upnp-org:metadata-1-0/AVT/">
<InstanceID val="0">
<TransportState val="STOPPED"></TransportState>
<CurrentTransportActions val="PLAY,SEEK"></CurrentTransportActions>
</InstanceID>
</Event>
INFO  [2014-08-15 18:24:07.699827 | transport] AVTransportURI: http://192.168.1.10:2793/stream.l16
INFO  [2014-08-15 18:24:07.699871 | transport] AVTransportURIMetaData: <DIDL-Lite xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/"><item id="1" parentID="0" restricted="0"><dc:title>foobar2000 audio stream</dc:title><res bitsPerSample="16" nrAudioChannels="2" protocolInfo="http-get:*:audio/L16;rate=44100;channels=2:*" sampleFrequency="44100">http://192.168.1.10:2793/stream.l16</res><upnp:class>object.item.audioItem.musicTrack</upnp:class></item></DIDL-Lite>
INFO  [2014-08-15 18:24:07.699895 | gstreamer] Set uri to 'http://192.168.1.10:2793/stream.l16'
INFO  [2014-08-15 18:24:07.699987 | transport] LastChange: <?xml version="1.0"?>
<Event xmlns="urn:schemas-upnp-org:metadata-1-0/AVT/">
<InstanceID val="0">
<AVTransportURI val="http://192.168.1.10:2793/stream.l16"></AVTransportURI>
<AVTransportURIMetaData val="&lt;DIDL-Lite xmlns=&quot;urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:upnp=&quot;urn:schemas-upnp-org:metadata-1-0/upnp/&quot;&gt;&lt;item id=&quot;1&quot; parentID=&quot;0&quot; restricted=&quot;0&quot;&gt;&lt;dc:title&gt;foobar2000 audio stream&lt;/dc:title&gt;&lt;res bitsPerSample=&quot;16&quot; nrAudioChannels=&quot;2&quot; protocolInfo=&quot;http-get:*:audio/L16;rate=44100;channels=2:*&quot; sampleFrequency=&quot;44100&quot;&gt;http://192.168.1.10:2793/stream.l16&lt;/res&gt;&lt;upnp:class&gt;object.item.audioItem.musicTrack&lt;/upnp:class&gt;&lt;/item&gt;&lt;/DIDL-Lite&gt;"></AVTransportURIMetaData>
</InstanceID>
</Event>
INFO  [2014-08-15 18:24:07.707902 | transport] RelativeTimePosition: 0:00:00
INFO  [2014-08-15 18:24:07.713477 | transport] TransportState: PLAYING
INFO  [2014-08-15 18:24:07.713557 | transport] CurrentTransportActions: PAUSE,STOP,SEEK
INFO  [2014-08-15 18:24:07.713593 | transport] CurrentTrackURI: http://192.168.1.10:2793/stream.l16
INFO  [2014-08-15 18:24:07.713626 | transport] CurrentTrackMetaData: <DIDL-Lite xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/"><item id="1" parentID="0" restricted="0"><dc:title>foobar2000 audio stream</dc:title><res bitsPerSample="16" nrAudioChannels="2" protocolInfo="http-get:*:audio/L16;rate=44100;channels=2:*" sampleFrequency="44100">http://192.168.1.10:2793/stream.l16</res><upnp:class>object.item.audioItem.musicTrack</upnp:class></item></DIDL-Lite>
INFO  [2014-08-15 18:24:07.713836 | transport] LastChange: <?xml version="1.0"?>
<Event xmlns="urn:schemas-upnp-org:metadata-1-0/AVT/">
<InstanceID val="0">
<TransportState val="PLAYING"></TransportState>
<CurrentTransportActions val="PAUSE,STOP,SEEK"></CurrentTransportActions>
<CurrentTrackURI val="http://192.168.1.10:2793/stream.l16"></CurrentTrackURI>
<CurrentTrackMetaData val="&lt;DIDL-Lite xmlns=&quot;urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:upnp=&quot;urn:schemas-upnp-org:metadata-1-0/upnp/&quot;&gt;&lt;item id=&quot;1&quot; parentID=&quot;0&quot; restricted=&quot;0&quot;&gt;&lt;dc:title&gt;foobar2000 audio stream&lt;/dc:title&gt;&lt;res bitsPerSample=&quot;16&quot; nrAudioChannels=&quot;2&quot; protocolInfo=&quot;http-get:*:audio/L16;rate=44100;channels=2:*&quot; sampleFrequency=&quot;44100&quot;&gt;http://192.168.1.10:2793/stream.l16&lt;/res&gt;&lt;upnp:class&gt;object.item.audioItem.musicTrack&lt;/upnp:class&gt;&lt;/item&gt;&lt;/DIDL-Lite&gt;"></CurrentTrackMetaData>
</InstanceID>
</Event>

(gmediarender:203637): GStreamer-CRITICAL **: gst_segment_to_running_time: assertion 'segment->format == format' failed

(gmediarender:203637): GStreamer-CRITICAL **: gst_segment_to_running_time: assertion 'segment->format == format' failed
INFO  [2014-08-15 18:24:09.019188 | transport] RelativeTimePosition: 0:00:01
INFO  [2014-08-15 18:24:10.019856 | transport] RelativeTimePosition: 0:00:02
INFO  [2014-08-15 18:24:11.020597 | transport] RelativeTimePosition: 0:00:03
INFO  [2014-08-15 18:24:12.021291 | transport] RelativeTimePosition: 0:00:04
INFO  [2014-08-15 18:24:13.022044 | transport] RelativeTimePosition: 0:00:05
INFO  [2014-08-15 18:24:14.022730 | transport] RelativeTimePosition: 0:00:06
(silence while foobar2000 thinks it's playing)

Using gmrender 61f5a8f, libupnp 1.6.19, glib 2.41.3, gstreamer 1.4.0, pulseaudio 5.0, fb2k 1.3.3, foo_out_upnp 1.0b4, etc.