gstreamer/gst/tcp
Jan Schmidt d58def621b Add some documentation comments, and some new headers to be scanned.
Original commit message from CVS:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-base-plugins-overrides.txt:
* docs/plugins/gst-plugins-base-plugins-sections.txt:
* docs/plugins/gst-plugins-base-plugins.args:
* docs/plugins/gst-plugins-base-plugins.hierarchy:
* docs/plugins/gst-plugins-base-plugins.interfaces:
* docs/plugins/gst-plugins-base-plugins.prerequisites:
* docs/plugins/inspect/plugin-adder.xml:
* docs/plugins/inspect/plugin-alsa.xml:
* docs/plugins/inspect/plugin-audioconvert.xml:
* docs/plugins/inspect/plugin-audiorate.xml:
* docs/plugins/inspect/plugin-audioresample.xml:
* docs/plugins/inspect/plugin-audiotestsrc.xml:
* docs/plugins/inspect/plugin-cdparanoia.xml:
* docs/plugins/inspect/plugin-decodebin.xml:
* docs/plugins/inspect/plugin-ffmpegcolorspace.xml:
* docs/plugins/inspect/plugin-gdp.xml:
* docs/plugins/inspect/plugin-gio.xml:
* docs/plugins/inspect/plugin-gnomevfs.xml:
* docs/plugins/inspect/plugin-libvisual.xml:
* docs/plugins/inspect/plugin-ogg.xml:
* docs/plugins/inspect/plugin-pango.xml:
* docs/plugins/inspect/plugin-playback.xml:
* docs/plugins/inspect/plugin-queue2.xml:
* docs/plugins/inspect/plugin-subparse.xml:
* docs/plugins/inspect/plugin-tcp.xml:
* docs/plugins/inspect/plugin-theora.xml:
* docs/plugins/inspect/plugin-typefindfunctions.xml:
* docs/plugins/inspect/plugin-uridecodebin.xml:
* docs/plugins/inspect/plugin-video4linux.xml:
* docs/plugins/inspect/plugin-videorate.xml:
* docs/plugins/inspect/plugin-videoscale.xml:
* docs/plugins/inspect/plugin-videotestsrc.xml:
* docs/plugins/inspect/plugin-volume.xml:
* docs/plugins/inspect/plugin-vorbis.xml:
* docs/plugins/inspect/plugin-ximagesink.xml:
* docs/plugins/inspect/plugin-xvimagesink.xml:
* ext/cdparanoia/gstcdparanoiasrc.c:
* ext/ogg/gstoggdemux.c:
* ext/ogg/gstoggdemux.h:
* ext/ogg/gstoggmux.c:
* ext/ogg/gstoggmux.h:
* gst/audioconvert/audioconvert.c:
* gst/audioconvert/audioconvert.h:
* gst/audioconvert/gstaudioconvert.h:
* gst/gdp/gstgdpdepay.h:
* gst/gdp/gstgdppay.h:
* gst/playback/gstdecodebin.c:
* gst/playback/gstdecodebin2.c:
* gst/playback/gstplaybin.c:
* gst/playback/gstplaybin2.c:
* gst/playback/gsturidecodebin.c:
* gst/tcp/gstmultifdsink.c:
* gst/tcp/gstmultifdsink.h:
* gst/tcp/gsttcp.h:
Add some documentation comments, and some new headers to be scanned.
Rename some internal enum declarations (audioconvert's DitherType and
NoiseShapingType, GstUnitType from the TCP elements) to match the
documented GObject type names so that the docs pick them up.
Name the playbin2 docs markups properly so they get picked up. They'll
need renaming back when/if playbin2 becomes playbin.
100% symbol coverage for the plugin docs, booya.
2008-05-22 22:09:16 +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 Add some documentation comments, and some new headers to be scanned. 2008-05-22 22:09:16 +00:00
gstmultifdsink.h Add some documentation comments, and some new headers to be scanned. 2008-05-22 22:09:16 +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 Remove some unused code. 2008-05-04 15:02:20 +00:00
gsttcp.h Add some documentation comments, and some new headers to be scanned. 2008-05-22 22:09:16 +00:00
gsttcpclientsink.c Use G_PARAM_STATIC_STRINGS everywhere for GParamSpecs that use static strings (i.e. all). This gives us less memory u... 2008-03-22 15:00:53 +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/tcp/: Fix regression in clientsrc because we did not add the fd to the poll set anymore. Fixes #532364. 2008-05-13 16:02:19 +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/: Fix regression in clientsrc because we did not add the fd to the poll set anymore. Fixes #532364. 2008-05-13 16:02:19 +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 Use G_PARAM_STATIC_STRINGS everywhere for GParamSpecs that use static strings (i.e. all). This gives us less memory u... 2008-03-22 15:00:53 +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