gstreamer/gst/tcp
Wim Taymans 8a822e70be gst/: Remove GstPollMode from gstpoll constructor.
Original commit message from CVS:
* gst-libs/gst/rtsp/gstrtspconnection.c:
(gst_rtsp_connection_create):
* gst/tcp/gstmultifdsink.c: (gst_fdset_mode_get_type),
(gst_multi_fd_sink_class_init), (gst_multi_fd_sink_start):
* gst/tcp/gstmultifdsink.h:
* gst/tcp/gsttcpclientsrc.c: (gst_tcp_client_src_start):
* gst/tcp/gsttcpserversrc.c: (gst_tcp_server_src_start):
Remove GstPollMode from gstpoll constructor.
2008-03-07 15:48:51 +00:00
..
.gitignore gst/tcp/: Added burst on connect sync_method, deprecated sync_clients, streamlined the sync code some more. 2004-10-29 11:10:38 +00:00
gstmultifdsink.c gst/: Remove GstPollMode from gstpoll constructor. 2008-03-07 15:48:51 +00:00
gstmultifdsink.h gst/: Remove GstPollMode from gstpoll constructor. 2008-03-07 15:48:51 +00:00
gsttcp-marshal.list gst/tcp/gstmultifdsink.*: Added shiny new burst-on-connect methods. 2006-06-19 17:12:57 +00:00
gsttcp.c gst/tcp/: Removed fdset and stress test, they are now known as GstPoll in core. 2008-02-28 10:54:14 +00:00
gsttcp.h gst/tcp/: Removed fdset and stress test, they are now known as GstPoll in core. 2008-02-28 10:54:14 +00:00
gsttcpclientsink.c gst/tcp/: Removed fdset and stress test, they are now known as GstPoll in core. 2008-02-28 10:54:14 +00:00
gsttcpclientsink.h gst/tcp/: Removed fdset and stress test, they are now known as GstPoll in core. 2008-02-28 10:54:14 +00:00
gsttcpclientsrc.c gst/: Remove GstPollMode from gstpoll constructor. 2008-03-07 15:48:51 +00:00
gsttcpclientsrc.h gst/tcp/: Removed fdset and stress test, they are now known as GstPoll in core. 2008-02-28 10:54:14 +00:00
gsttcpplugin.c more borgifying 2005-12-01 01:21:49 +00:00
gsttcpplugin.h expand tabs 2005-12-06 19:42:02 +00:00
gsttcpserversink.c gst/tcp/: Removed fdset and stress test, they are now known as GstPoll in core. 2008-02-28 10:54:14 +00:00
gsttcpserversink.h gst/tcp/: Removed fdset and stress test, they are now known as GstPoll in core. 2008-02-28 10:54:14 +00:00
gsttcpserversrc.c gst/: Remove GstPollMode from gstpoll constructor. 2008-03-07 15:48:51 +00:00
gsttcpserversrc.h gst/tcp/: Removed fdset and stress test, they are now known as GstPoll in core. 2008-02-28 10:54:14 +00:00
Makefile.am gst/tcp/: Removed fdset and stress test, they are now known as GstPoll in core. 2008-02-28 10:54:14 +00:00
README gst/tcp/: make multifdsink properly deal with streamheader: 2006-06-02 16:26:54 +00:00
tcp.vcproj more working plugins 2004-07-27 21:41:30 +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

* 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


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