2004-05-20 10:15:31 +00:00
|
|
|
This part of the documentation is for the new tcp elements:
|
|
|
|
- tcpclientsrc
|
|
|
|
- tcpclientsink
|
|
|
|
- tcpserversrc
|
|
|
|
- tcpserversink
|
|
|
|
|
|
|
|
TESTS
|
|
|
|
-----
|
|
|
|
Use these tests to test functionality of the various tcp plugins
|
|
|
|
|
2009-03-23 14:19:11 +00:00
|
|
|
* server: nc -l -p 3000
|
2004-05-20 10:15:31 +00:00
|
|
|
client: nc localhost 3000
|
|
|
|
everything you type in the server is shown on the client
|
|
|
|
everything you type in the client is shown on the server
|
|
|
|
|
2009-03-23 14:19:11 +00:00
|
|
|
* server: nc -l -p 3000
|
2004-05-20 10:15:31 +00:00
|
|
|
client: gst-launch tcpclientsrc protocol=none port=3000 ! fdsink fd=2
|
|
|
|
everything you type in the server is shown on the client
|
|
|
|
|
2009-03-23 14:19:11 +00:00
|
|
|
* server: nc -l -p 3000
|
2004-05-20 10:15:31 +00:00
|
|
|
client: gst-launch fdsrc fd=1 ! tcpclientsink protocol=none port=3000
|
|
|
|
everything you type in the client is shown on the server
|
|
|
|
|
|
|
|
* server: gst-launch tcpserversrc protocol=none port=3000 ! fdsink fd=2
|
|
|
|
client: gst-launch fdsrc fd=1 ! tcpclientsink protocol=none port=3000
|
|
|
|
|
2009-03-23 14:19:11 +00:00
|
|
|
* server: gst-launch fdsrc fd=1 ! tcpserversink protocol=none port=3000
|
|
|
|
client: gst-launch tcpclientsrc protocol=none port=3000 ! fdsink fd=2
|
|
|
|
-> Received first buffer without caps set
|
2004-05-20 10:15:31 +00:00
|
|
|
|
|
|
|
TODO
|
|
|
|
----
|
|
|
|
- implement DNS resolution
|
|
|
|
|
2006-06-02 16:26:54 +00:00
|
|
|
multifdsink
|
|
|
|
-----------
|
|
|
|
- operation:
|
|
|
|
- client fd gets added when "add" signal gets emitted on multifdsink
|
|
|
|
- signal handler creates a GstTCPClient structure, adds it to ->clients,
|
|
|
|
and adds the fd to ->fd_hash, then emits client-added
|
|
|
|
- client
|
|
|
|
|
|
|
|
- when a buffer comes in:
|
|
|
|
- the _render vmethod puts the buffer on the global queue
|
|
|
|
- and increases bytes_to_serve
|
|
|
|
- (currently it sets streamheaders, but since this is treated globally
|
|
|
|
this is wrong - clients can be at different positions in the stream)
|
|
|
|
|
|
|
|
- when a client issues a write (ie requests data):
|
|
|
|
- when using GDP, if no caps sent yet, send caps first, then set caps_sent
|
|
|
|
- if streamheader buffers, and we haven't sent yet to this client,
|
|
|
|
send current streamheader buffers, then set streamheader_sent
|
|
|
|
- send out buffers
|