gst_plugins_base/gst/tcp/README
branchRCL_3
changeset 30 7e817e7e631c
parent 29 567bb019e3e3
equal deleted inserted replaced
29:567bb019e3e3 30:7e817e7e631c
     1 This part of the documentation is for the new tcp elements:
       
     2 - tcpclientsrc
       
     3 - tcpclientsink
       
     4 - tcpserversrc
       
     5 - tcpserversink
       
     6                                                                                 
       
     7 TESTS
       
     8 -----
       
     9 Use 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 
       
    31 TODO
       
    32 ----
       
    33 - implement DNS resolution
       
    34 
       
    35 multifdsink
       
    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