gstreamer/gst/tcp
Josep Torre Valles 4de10dacb6 ext/gnomevfs/: Fix URI interface implementation return type.
Original commit message from CVS:
2006-10-10  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

Patch by: Josep Torre Valles <josep@fluendo.com>

* ext/gnomevfs/gstgnomevfssink.c:
* ext/gnomevfs/gstgnomevfssrc.c:
Fix URI interface implementation return type.
* ext/pango/gsttextoverlay.c: (gst_text_overlay_set_property):
Fix what looks like a copy/paste issue when assigning values.
* gst-libs/gst/audio/gstaudiofiltertemplate.c:
(gst_audio_filter_template_get_type):
Cast to prevent Forte warnings.
* gst-libs/gst/cdda/gstcddabasesrc.c: (gst_cdda_base_src_create):
Fix URI interface implementation return type.
gst_pad_query_position requires a signed integer pointer as
3rd parameter, GstClockTime is unsigned.
* gst/audioconvert/audioconvert.c:
Fix integer overflow when treated as signed.
* gst/audioresample/resample.c: (resample_add_input_data):
Cast to prevent warnings on Forte.
* gst/ffmpegcolorspace/imgconvert.c: (build_rgb_palette):
Fix integer overflow when treated as signed.
* gst/ffmpegcolorspace/imgconvert_template.h:
Fix integer overflow when treated as signed. RGBA_OUT shifts bits.
* gst/playback/gstdecodebin.c: (queue_filled_cb),
(cleanup_decodebin):
Who initialises a guint to -1!
Cast function pointers to prevent warnings on Forte.
* gst/playback/gstplaybasebin.c: (queue_deadlock_check),
(queue_threshold_reached):
Cast function pointers correctly to prevent warnings on Forte.
* gst/playback/gststreaminfo.c: (gst_stream_info_dispose):
Cast function pointers correctly to prevent warnings on Forte.
* gst/subparse/gstssaparse.c: (gst_ssa_parse_setcaps):
Obvious change to unsigned, 0xEF > max signed char.
* gst/tcp/gstmultifdsink.c: (get_buffers_max), (count_burst_unit):
GstClockTime is unsigned, initialise correctly.
* gst/tcp/gsttcp.c: (gst_tcp_socket_write):
Cast so pointer arithemetic doesn't cause warnings on Forte.
* gst/videorate/gstvideorate.c:
Use correct return value.
* tests/examples/seek/scrubby.c:
GstClockTime is unsigned, initialise correctly.
2006-10-10 12:49:03 +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
fdsetstress.c gst/tcp/: Added more locks around fdset structures. Fixed/reworked the poll array resizing code. 2004-10-28 14:22:15 +00:00
gstfdset.c Const-ify GEnumValue and GFlagsValue arrays. Use 2006-05-09 19:24:46 +00:00
gstfdset.h expand tabs 2005-12-06 19:42:02 +00:00
gstmultifdsink.c ext/gnomevfs/: Fix URI interface implementation return type. 2006-10-10 12:49:03 +00:00
gstmultifdsink.h gst/tcp/gstmultifdsink.*: Implement stubbed out properties unit-type, units-soft-max, units-max, to allow specifying ... 2006-09-19 11:31:06 +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 ext/gnomevfs/: Fix URI interface implementation return type. 2006-10-10 12:49:03 +00:00
gsttcp.h gst/tcp/gsttcp.h: For now, always disable deprecation here -- fixes the build. 2006-08-11 15:29:56 +00:00
gsttcpclientsink.c Use GST_DEBUG_CATEGORY_STATIC where possible (#342503). 2006-06-23 09:53:09 +00:00
gsttcpclientsink.h Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass 2006-06-01 19:19:51 +00:00
gsttcpclientsrc.c Use GST_DEBUG_CATEGORY_STATIC where possible (#342503). 2006-06-23 09:53:09 +00:00
gsttcpclientsrc.h Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass 2006-06-01 19:19:51 +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 Use GST_DEBUG_CATEGORY_STATIC where possible (#342503). 2006-06-23 09:53:09 +00:00
gsttcpserversink.h Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass 2006-06-01 19:19:51 +00:00
gsttcpserversrc.c Use GST_DEBUG_CATEGORY_STATIC where possible (#342503). 2006-06-23 09:53:09 +00:00
gsttcpserversrc.h Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass 2006-06-01 19:19:51 +00:00
Makefile.am gst/tcp/Makefile.am: fdstresstest doesn't need Gtk+, fix compilation if gtk is not available (#342566). 2006-05-22 11:42:03 +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