README
1This part of the documentation is for the new tcp elements:
2- tcpclientsrc
3- tcpclientsink
4- tcpserversrc
5- tcpserversink
6
7TESTS
8-----
9Use these tests to test functionality of the various tcp plugins
10
11* server: nc -l -p 3000
12 client: nc localhost 3000
13 everything you type in the server is shown on the client
14 everything you type in the client is shown on the server
15
16* server: nc -l -p 3000
17 client: gst-launch tcpclientsrc protocol=none port=3000 ! fdsink fd=2
18 everything you type in the server is shown on the client
19
20* server: nc -l -p 3000
21 client: gst-launch fdsrc fd=1 ! tcpclientsink protocol=none port=3000
22 everything you type in the client is shown on the server
23
24* server: gst-launch tcpserversrc protocol=none port=3000 ! fdsink fd=2
25 client: gst-launch fdsrc fd=1 ! tcpclientsink protocol=none port=3000
26
27* server: gst-launch fdsrc fd=1 ! tcpserversink protocol=none port=3000
28 client: gst-launch tcpclientsrc protocol=none port=3000 ! fdsink fd=2
29 -> Received first buffer without caps set
30
31TODO
32----
33- implement DNS resolution
34
35multifdsink
36-----------
37- operation:
38 - client fd gets added when "add" signal gets emitted on multifdsink
39 - signal handler creates a GstTCPClient structure, adds it to ->clients,
40 and adds the fd to ->fd_hash, then emits client-added
41 - client
42
43 - when a buffer comes in:
44 - the _render vmethod puts the buffer on the global queue
45 - and increases bytes_to_serve
46 - (currently it sets streamheaders, but since this is treated globally
47 this is wrong - clients can be at different positions in the stream)
48
49 - when a client issues a write (ie requests data):
50 - when using GDP, if no caps sent yet, send caps first, then set caps_sent
51 - if streamheader buffers, and we haven't sent yet to this client,
52 send current streamheader buffers, then set streamheader_sent
53 - send out buffers
54