gstreamer/gst/tcp
Tim-Philipp Müller fb6d09055a Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	ext/alsa/gstalsadeviceprobe.c
	ext/alsa/gstalsamixer.c
	ext/pango/gsttextoverlay.c
	ext/pango/gsttextoverlay.h
	gst-libs/gst/audio/gstaudiobasesink.c
	gst-libs/gst/audio/gstaudioringbuffer.c
	gst-libs/gst/audio/gstaudiosrc.c
	gst-libs/gst/video/Makefile.am
	gst-libs/gst/video/video.c
	gst/encoding/gststreamcombiner.c
	gst/encoding/gststreamsplitter.c
	gst/playback/gstplaybasebin.c
	gst/playback/gststreamsynchronizer.c
	gst/playback/gstsubtitleoverlay.c
	gst/playback/gsturidecodebin.c
	sys/xvimage/xvimagesink.c
	tests/examples/Makefile.am
	win32/common/libgstvideo.def

Video overlay composition disabled for now, needs
porting to buffer meta.
2011-12-08 01:19:03 +00:00
..
.gitignore
gstmultifdsink.c Merge remote-tracking branch 'origin/master' into 0.11 2011-12-08 01:19:03 +00:00
gstmultifdsink.h Merge branch 'master' into 0.11 2011-02-28 11:47:44 +01:00
gsttcp-marshal.list
gsttcp.c Merge remote-tracking branch 'origin/master' into 0.11 2011-12-02 11:10:17 +00:00
gsttcp.h tcp: remove deprecated GDP protocol 2010-12-06 20:01:35 +01:00
gsttcpclientsink.c various: fix pad template leaks 2011-11-28 13:09:02 +00:00
gsttcpclientsink.h tcp: remove deprecated GDP protocol 2010-12-06 20:01:35 +01:00
gsttcpclientsrc.c various: fix pad template leaks 2011-11-28 13:09:02 +00:00
gsttcpclientsrc.h tcp: remove deprecated GDP protocol 2010-12-06 20:01:35 +01:00
gsttcpplugin.c
gsttcpplugin.h
gsttcpserversink.c gst: Use G_DEFINE_TYPE instead of GST_BOILERPLATE 2011-04-19 11:35:53 +02:00
gsttcpserversink.h
gsttcpserversrc.c various: fix pad template leaks 2011-11-28 13:09:02 +00:00
gsttcpserversrc.h tcp: remove deprecated GDP protocol 2010-12-06 20:01:35 +01:00
Makefile.am android: make it ready for androgenizer 2011-04-11 07:23:21 +02:00
README
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