gstreamer/gst/tcp
Tim-Philipp Müller 58a92964c6 build: Makefile.am fixes
Mostly just add missing $(GST_BASE_CFLAGS), but also fix up order
of flags (see docs/random/moving-plugins).
2010-03-19 01:00:36 +00:00
..
.gitignore
gstmultifdsink.c gst_element_class_set_details => gst_element_class_set_details_simple 2010-03-16 17:41:50 +01:00
gstmultifdsink.h multifdsink: add property to resend streamheaders 2009-04-14 17:04:06 +02:00
gsttcp-marshal.list multifdsink: fix signature of the add-full signal 2009-05-07 23:14:56 +02:00
gsttcp.c tcp(client/server)src: Fix handling of closed sockets 2010-02-18 11:44:59 -08:00
gsttcp.h Add some documentation comments, and some new headers to be scanned. 2008-05-22 22:09:16 +00:00
gsttcpclientsink.c gst_element_class_set_details => gst_element_class_set_details_simple 2010-03-16 17:41:50 +01: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_element_class_set_details => gst_element_class_set_details_simple 2010-03-16 17:41:50 +01: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
gsttcpplugin.h
gsttcpserversink.c gst_element_class_set_details => gst_element_class_set_details_simple 2010-03-16 17:41:50 +01: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_element_class_set_details => gst_element_class_set_details_simple 2010-03-16 17:41:50 +01: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 build: Makefile.am fixes 2010-03-19 01:00:36 +00:00
README docs: add examples for tcp elements, also use correct section name. Fixes #564139 2009-03-23 17:03:38 +02:00
tcp.vcproj

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