Hi Jens,

as we previously talked about, I modified rendererconsole.py to do my work,
and I integrated discovery and player creation into SBS aka. LMS.

Then I discovered the hard way that only software renderers will accept the
stream I created with MPD.... dialog goes like this; 101 is an Onkyo
receiver and 113 runs MPD httpd stream that I can connect and play using
exactly the same method by XBMC built-in renderer, VLC, or even from Onkyo
receiver when I define it as a Internet "radio" "favourite" - but not when
pushing it as UPnP stream:

1)
216    7.696159    192.168.1.101    192.168.1.113    TCP    229    57194 >
8767 [PSH, ACK] Seq=1 Ack=2 Win=5840 Len=163 TSval=177510163 TSecr=446219
8`w    D>Et@@Abeqj"?{#h

GET /mpd.mp3 HTTP/1.1
Range: bytes=0-
transferMode.dlna.org: Streaming
Host: 192.168.1.113:8767
User-Agent: Mediabolic-IMHTTP/1.8.225 UPNP/1.0 DLNADOC/1.50

2)
217    7.696195    192.168.1.113    192.168.1.101    TCP    54    8767 >
57194 [RST] Seq=2 Win=0 Len=0
D>8`wE(@@qe"?j#P`


And in response from 192.168.1.101: (extracted)
TransportStatus
val="ERROR_OCCURRED"/><CurrentTransportActions
...then...
<UPnPError
  xmlns="urn:schemas-upnp-org:control-1-0"><errorCode>716</errorCode>
 <errorDescription>Resource not found</errorDescription></UPnPError>

Same dialog with Samsung TV

Long story short - does anyone know of a method of creating a UPnP
compliant stream that responds in a way it should respond? I thought MPD
does that as I found a patch discussed for this purpose when using FLAC,
but mow looking at the code it seems to be a quick hack for a particular
device ...

Please note, I'm not looking for a UPnP server - I just need to create an
mp3/flac/whatever stream from available raw PCM data stream (created by
SBS/MPD/some player) that can be pushed to DLNA renderer

Any help very much appreciated!

Kind regards,
Andrej


Andrej Falout
NZ: +64(21)02566825 AU: +61(45)1166010 US: +1(360)4880970 HR:+385(91)1520436


On Thu, Jan 24, 2013 at 9:19 PM, Jens Georg <[email protected]> wrote:

> On Mi, 2013-01-23 at 14:17 +1300, Andrej Falout wrote:
>
> >         Yes. Call GetProtocolInfo on the Renderer's ConnectionManager
> >         service.
> >         The sink variable of the response gives you a comma-separated
> >         list with
> >         entries like http-get:*:audio/mpeg:DLNA.ORG_PN=MP3 or maybe a
> >         * at the
> >         end as well, I think dLeyna even preprocesses that for you.
> >         The only
> >         uncompressed format DLNA supports is raw PCM (profile LPCM),
> >         but there
> >         should be devices doing flac as well.
> >
> >
> > I assume that due to 'http-get" in response this means that this
> > formats are supported for streaming? I have Onkio that is advertised
> > as supporting Flac, but when I bought it it turned out it is
> > explicitly not supported for streaming, only for files :-(
>
> No, http-get means both. Some devices (wrongly) assume that they can
> just download it. That's the subtle difference between UPnP and DLNA,
> you can't mark a stream as a stream in UPnP but you can in DLNA. It
> might even be that we don't do that correctly in Rygel. Is the Onkio a
> (certified) DLNA or just a UPnP-AV device?
>
> >
> >
> >
> > Do I need to specify http-get somehow to GetProtocolInfo or will this
> > return both streaming supported formats and file supported formats?
> >
> >
> >
> > Yes, Linn does streaming Flac (which is an compressed format btw)
>
> Ah, sorry, yes. somehow had compressed == lossy in my mind.
>
> The only real uncompressed formats are either WAV (rather rare) or raw
> PCM (16 bit big endian, signed, every certified DLNA device has to
> support that) with the sample rate and channels in the content-type
> (e.g. audio/L16;rate=44100;channels=2)
>
> >         Btw, to be really foolproof, all your uris should have a file
> >         extension
> >         matching the file-type. Some (mainly cheap) devices rely on
> >         them.
> >
> >
> > I suppose that means http://1.2.3.4:yyy:xxx.mp3 (I used only
> > http://1.2.3.4:yyy in my tests) but what should I have as xxx ?
>
> assuming yyy is a port number, you could make it whatever you want, just
> call it http://1.2.3.4:7890/stream.mp3 or such.
>
> >
> >
> >
> >         > 1) a command-line control point, which can push URL to
> >         renderer,
> >         > stop/play/pause, change volume etc....
> >
> >
> >         Not really.
> >
> >
> > Bummer. That would help people trying to script things .. like me :-)
> > I think rendererconsole.py is about to have a surgery :-)
>
> I think the dLeyna people would definitely like such contribution.
>
>
> >         > 2) A web browser control point. I am aware of dLeyna Cloud,
> >         but that
> >         > is barely a prototype
> >
> >
> >         There was something as a demo of gupnp-php, but I've no idea
> >         how usable
> >         that is or what it's called.
> >
> >
> > Could not find anything other then few examples that are part of the
> > gupnp-php code
>
> Sorry, I don't remember what it was. Probably abandoned anyway.
>
> > With all this DLNA devices all over the place, I am fascinated that so
> > few people want to use them :-) If I can find an app like Ampache but
> > from 21st century (eg HTML5) I might do something myself...
>
> People tend to get frustrated easily with DLNA. I expect some HTML5
> controller stuff to pop up with the rise of it as a mobile platform.
>
>
>
_______________________________________________
rygel-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/rygel-list

Reply via email to