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