|
a/doc/sc2mpd.txt |
|
b/doc/sc2mpd.txt |
|
... |
|
... |
30 |
static link to the OpenHome libraries. This means that, in order to rebuild
|
30 |
static link to the OpenHome libraries. This means that, in order to rebuild
|
31 |
from the source package, you need to follow the normal procedure to build
|
31 |
from the source package, you need to follow the normal procedure to build
|
32 |
the OpenHome libs first (see the ohbuild.sh script further down). The build
|
32 |
the OpenHome libs first (see the ohbuild.sh script further down). The build
|
33 |
tree should be located under /opt/openhome for the package rebuild to work.
|
33 |
tree should be located under /opt/openhome for the package rebuild to work.
|
34 |
|
34 |
|
35 |
== What is Songcast
|
35 |
== What is Linn Songcast
|
36 |
|
36 |
|
37 |
Songcast is a protocol for transporting audio streams across the
|
37 |
*Songcast* is a protocol for transporting audio streams across the network,
|
38 |
network. This is independant from the UPnP framework which mostly deals
|
38 |
developped by link:http://oss.linn.co.uk/trac/wiki/Songcast[Linn] as a
|
39 |
with URLs and audio files (usually, but not necessarily, compressed).
|
39 |
series of open-source libraries and applications.
|
40 |
|
40 |
|
|
|
41 |
There are two types of entities involved in the protocol:
|
|
|
42 |
|
|
|
43 |
- A *Songcast* _Sender_ generates an audio stream.
|
|
|
44 |
- A *Songcast* _Receiver_, which typically runs on an OpenHome Renderer,
|
|
|
45 |
receives the stream and plays it.
|
|
|
46 |
|
41 |
The streams transported by Songcast are actual real-time audio data, which
|
47 |
The streams transported by *Songcast* are actual real-time audio data, which
|
42 |
can go straight to an audio card for playing.
|
48 |
can go straight to an audio card for playing.
|
43 |
|
49 |
|
44 |
Controlling the streams on the renderer (connecting, starting, stopping) is
|
50 |
Controlling the streams (connecting, starting, stopping) is
|
45 |
done through an UPnP service named OpenHome _Receiver_.
|
51 |
done through an UPnP service named OpenHome __Receiver__, which runs on an
|
|
|
52 |
UPnP Media Renderer implementing the OpenHome services.
|
46 |
|
53 |
|
47 |
The typical use of Songcast is to have an audio driver on a Windows or OS X
|
54 |
The typical use of *Songcast* is to have an audio driver on a Windows or OS X
|
48 |
desktop capture and forward the audio stream to a remote Songcast device.
|
55 |
desktop capture and forward the audio stream to a remote *Songcast* device
|
|
|
56 |
(this is the main purpose of the *Songcast* Mac and Windows applications,
|
|
|
57 |
apart from actually controlling the audio destination).
|
49 |
|
58 |
|
50 |
Any application on the desktop will (be compelled to) transparently play to
|
59 |
Any application on the desktop will (be compelled to) transparently play to
|
51 |
the remote device, without need to know anything about Songcast.
|
60 |
the remote device, without need to know anything about *Songcast*.
|
52 |
|
|
|
53 |
|
61 |
|
54 |
== Implementation of Songcast support in upmpdcli
|
62 |
== Implementation of Songcast support in upmpdcli
|
55 |
|
63 |
|
56 |
*upmpdcli* implements the _Receiver_ service, and uses an auxiliary process
|
64 |
*upmpdcli* implements the _Receiver_ service, and uses an auxiliary process
|
57 |
(*sc2mpd*) for transporting the audio data. *sc2mpd* is a slight
|
65 |
(*sc2mpd*) for transporting the audio data. *sc2mpd* is a slight
|