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 * server: nc -l -p 3000 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 * server: nc -l -p 3000 client: gst-launch tcpclientsrc protocol=none port=3000 ! fdsink fd=2 everything you type in the server is shown on the client * server: nc -l -p 3000 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 * 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 TODO ---- - implement DNS resolution 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