baboylolo writes

I am using Upplay and Linn Klimax DS on UPnP AV on Ubuntu 16.04 with MinimServer 0.8.4, but gapless doesn’t work.

I found following on LINN FORUMS:

> On the Playlist source (utilising the DS extensions to Upnp AV):
> - Gapless playback is fully support for all lossless formats
>   On the Upnp AV source:
> - Gapless playback (for both lossless and lossy) cannot be supported.

Two renderers are found on "Select Media Renderer" dialog: Main Room:UPnP AV Main Room:Klimax DS

I checked latter is OpenHome device by GUPnP. However I cannot chose it on "Select Media Renderer" dialog, "Can’t connect to Main Room:Klimax DS" error was displayed at OK button was pressed. How I can manage it?

medoc92 writes

Please start upplay in a terminal as:

UPPLAY_LOGLEVEL=6 upplay

Try to connect to the Main Room:Klimax DS

And attach (copy/paste) the resulting trace, hopefully we’ll be able to see what’s wrong and correct it. I have no Linn hardware to test with, so it’s not too surprising that there might be issues.

I think that the statements you cite from the Linn forum have been garbled by the Github formatting ? I guess that they mean that the Klimax does not support gapless at all on UPnP AV (shame on them), and only for lossless data on OpenHome (more shame…).

baboylolo writes

It seems an error on pasting, On the Playlist source (utilising the DS extensions to Upnp AV): Gapless playback is fully support for all lossless formats On the Upnp AV source: Gapless playback (for both lossless and lossy) cannot be supported.

## The log is in below, problem was from line 53. (I amended IP address on l2)

$ UPPLAY_LOGLEVEL=6 upplay
:4:libupnpp/upnpplib.cxx:155::LibUPnP: Using IP 192.168.XX.XX port 49153
:4:libupnpp/control/mediarenderer.cxx:169::MediaRenderer: OHProduct service not found
:2:libupnpp/soaphelp.cxx:73::SoapIncoming: Empty Action request (no topNode) ??
:3:libupnpp/control/service.cxx:197::Service::runAction: failed: errcode: -1 : "" for request: <?xml version="1.0"? >
<u:SetPlayMode xmlns:u="urn:schemas-upnp-org:service:AVTransport:1" >
<InstanceID >0</InstanceID >
<NewPlayMode >NORMAL</NewPlayMode >
/u:SetPlayMode

Application::setupRenderer: using AVT playlist
:3:libupnpp/control/cdircontent.cxx:108::checkobjok: found object of unknown class: [object.item.audioItem.audioBroadcast]
:3:libupnpp/control/cdircontent.cxx:108::checkobjok: found object of unknown class: [object.item.audioItem.audioBroadcast]
AVT: Changed:  AVTransportURIMetaData  (dirc):  UPnPDirObject: item id [0$playlists$_p1$:items$_c1] pid [0$playlists$_p1$:items] title [q2]
Properties:
[upnp:class]- >[object.item.audioItem.audioBroadcast]
Resources:
  Uri [http://q2stream.wqxr.org/q2]
  Resource attributes:
    [protocolInfo]- >[http-get:_:_:_]

Application::setupRenderer: using Rendering Control
:3:libupnpp/control/cdircontent.cxx:108::checkobjok: found object of unknown class: [object.item.audioItem.audioBroadcast]
AVT: emitting tpStateChanged: Stopped
AVT: update: ext track change: cur [  ] new [ http://q2stream.wqxr.org/q2 ]
setcururi:  http://q2stream.wqxr.org/q2
AVT: emitting currentMetadata
PlaylistAVT::onCurrentMetadata
GUI_Player::update_track()
AVT: emitting newTrackPlaying: "http://q2stream.wqxr.org/q2"
PlaylistAVT::onExtTrackChange  "http://q2stream.wqxr.org/q2"
PlaylistAVT::onExtTrackChange: index now  0
GUI_Player::update_track()
CDBrowser::initialPage: waiting  3
:3:libupnpp/control/cdircontent.cxx:108::checkobjok: found object of unknown class: [object.item.audioItem.audioBroadcast]
:3:libupnpp/control/cdircontent.cxx:108::checkobjok: found object of unknown class: [object.item.audioItem.audioBroadcast]
:3:libupnpp/control/cdircontent.cxx:108::checkobjok: found object of unknown class: [object.item.audioItem.audioBroadcast]
:3:libupnpp/control/cdircontent.cxx:108::checkobjok: found object of unknown class: [object.item.audioItem.audioBroadcast]
:3:libupnpp/control/cdircontent.cxx:108::checkobjok: found object of unknown class: [object.item.audioItem.audioBroadcast]
:3:libupnpp/control/cdircontent.cxx:108::checkobjok: found object of unknown class: [object.item.audioItem.audioBroadcast]
:3:libupnpp/control/cdircontent.cxx:108::checkobjok: found object of unknown class: [object.item.audioItem.audioBroadcast]
:3:libupnpp/control/cdircontent.cxx:108::checkobjok: found object of unknown class: [object.item.audioItem.audioBroadcast]
:3:libupnpp/control/cdircontent.cxx:108::checkobjok: found object of unknown class: [object.item.audioItem.audioBroadcast]
:3:libupnpp/control/cdircontent.cxx:108::checkobjok: found object of unknown class: [object.item.audioItem.audioBroadcast]
:3:libupnpp/control/cdircontent.cxx:108::checkobjok: found object of unknown class: [object.item.audioItem.audioBroadcast]
:3:libupnpp/control/cdircontent.cxx:108::checkobjok: found object of unknown class: [object.item.audioItem.audioBroadcast]
:3:libupnpp/control/cdircontent.cxx:108::checkobjok: found object of unknown class: [object.item.audioItem.audioBroadcast]
:3:libupnpp/control/cdircontent.cxx:108::checkobjok: found object of unknown class: [object.item.audioItem.audioBroadcast]
:3:libupnpp/control/cdircontent.cxx:108::checkobjok: found object of unknown class: [object.item.audioItem.audioBroadcast]
:3:libupnpp/control/cdircontent.cxx:108::checkobjok: found object of unknown class: [object.item.audioItem.audioBroadcast]
OHProductQO::getSourceType:  UpnpAv
Application::setupRenderer: OHTm ok, no need for avt
:4:libupnpp/control/mediarenderer.cxx:133::MediaRenderer: RenderingControl service not found
:4:libupnpp/control/mediarenderer.cxx:295::MediaRenderer: OHVolume service not found
Device implements neither RenderingControl nor OHVolume
OHProductQO::getSourceType:  UpnpAv
:4:./libupnpp/workqueue.h:175::setTerminateAndWait:DiscoveredQueue
:4:./libupnpp/workqueue.h:311::WorkQueue:ok:DiscoveredQueue: not ok m_ok 0 m_workers_exited 0 m_worker_threads size 1
:4:./libupnpp/workqueue.h:292::workerExit:DiscoveredQueue
:3:./libupnpp/workqueue.h:191::DiscoveredQueue: tasks 14 nowakes 14 wsleeps 15 csleeps 0
:4:./libupnpp/workqueue.h:215::setTerminateAndWait:DiscoveredQueue done

medoc92 writes

I could just get the control point to run without volume control, but I wonder if the Volume service is actually not there, or if I am just not finding it. Do you have a system on which you could run upnp-inspector, or a similar upnp debug tool and check if it lists a Volume:1 service for the device ?

I also wonder about the "OHProductQO::getSourceType: UpnpAv" line. Would you have another CP (e.g. kazoo or bubble DS) which would let you set the source to Playlist, just to check if this changes anything to the Upplay connection issue ?

baboylolo writes

Solved! I switched off Internal Volume Control of Linn DS then choose Main Room:UPnP AV in Select Media Renderer and Playlist in Select Source. Now gapless works fine. Many thanks.

medoc92 writes

Well, I would not really call this "solved", because I think that upplay should manage this by itself, but if you found a way to make it work, that’s great !

I’m need to provide a way to extract the device and service description documents from upplay so that I can explore this kind of problem remotely. Future version. Or someone will give me a DS :)