mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 20:21:24 +00:00
702d5980d3
Original commit message from CVS: * gst/tcp/gstmultifdsink.c: (gst_sync_method_get_type), (gst_unit_type_get_type), (gst_multi_fd_sink_class_init), (gst_multi_fd_sink_init), (gst_multi_fd_sink_add_full), (gst_multi_fd_sink_add), (gst_multi_fd_sink_handle_client_read), (find_syncframe), (find_limits), (assign_value), (count_burst_unit), (gst_multi_fd_sink_new_client), (gst_multi_fd_sink_handle_client_write), (gst_multi_fd_sink_queue_buffer), (gst_multi_fd_sink_render), (gst_multi_fd_sink_set_property), (gst_multi_fd_sink_get_property), (gst_multi_fd_sink_change_state): * gst/tcp/gstmultifdsink.h: Added shiny new burst-on-connect methods. Add properties to control the minimal amount of data queued. Small cleanups. API: bytes-min property API: time-min property API: buffers-min property API: burst-unit property API: burst-value property API: add-full signal * gst/tcp/gsttcp-marshal.list: Added new marshaller code for the new signal. * tests/check/elements/multifdsink.c: (GST_START_TEST), (multifdsink_suite): Added testcases for new burst methods. |
||
---|---|---|
.. | ||
.gitignore | ||
fdsetstress.c | ||
gstfdset.c | ||
gstfdset.h | ||
gstmultifdsink.c | ||
gstmultifdsink.h | ||
gsttcp-marshal.list | ||
gsttcp.c | ||
gsttcp.h | ||
gsttcpclientsink.c | ||
gsttcpclientsink.h | ||
gsttcpclientsrc.c | ||
gsttcpclientsrc.h | ||
gsttcpplugin.c | ||
gsttcpplugin.h | ||
gsttcpserversink.c | ||
gsttcpserversink.h | ||
gsttcpserversrc.c | ||
gsttcpserversrc.h | ||
Makefile.am | ||
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 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