Merge remote-tracking branch 'origin/0.10'
[platform/upstream/gstreamer.git] / docs / random / wtay / network-transp
1 Network Transparent elements
2 ----------------------------
3
4 1) netbin
5
6    - exposes local shims and remote real elements.
7    - all shim pads can be connected to other shim
8      pads and operations are proxied to real elements.
9    - when the pads are not part of the same bin, network
10      transparent ghostpads are created to connect them.
11    - bin has host property to indicate where it should
12      run.
13
14 2) netpipeline
15
16    - synchronizes different netbins, this means distributing
17      the same element base time to the remote bins.
18    - clocks master/slave is set up.
19
20 3) netpad
21
22    - all pad operations are proxied to peer pad using
23      a network protocol, possibly selectable from RTP/TCP/....
24      Serialisation of buffers and events are to be considered
25      but also methods with their arguments. A generator would
26      not be too bad to automate this.
27    - the implementation would be fairly similar to the
28      ghostpad implementation.
29    - This includes event passing (bidirectional) and
30      data passing (unidirectional). Some events have to pass
31      in parallel with the datastream so the event path should
32      use a different connection.
33      
34 4) GStreamer deamon
35
36    - each host has to run a deamon that listens for
37      commands and creates elements/pipelines and performs all
38      operations on the real pipeline.
39
40 Other stuff
41 -----------
42
43  - what about migrating elements from one host to another. This
44    would happen when an element is removed form a bin into another
45    bin. 
46
47  - do we have/need a fast protocol for stuff on the same machine or
48    will regular network connections work fine?