summaryrefslogtreecommitdiff
path: root/src/lib.c
AgeCommit message (Collapse)AuthorFilesLines
2014-07-28server: Verify the UDP client list during token validationNirbheek Chauhan1-0/+49
2014-07-24Implement concurrent RTP-UDP streams, and a REST API for status and authNirbheek Chauhan1-12/+73
When the --token-server=ADDR/MASK argument is passed to the server, the token verification framework is enabled, and the specified subnet is allowed to access the REST API to add/revoke/list tokens that allow clients to connect, and to list/abort streams running on the server. Details about the REST API are documented in the file "REST-API". There were also some organisational and name changes in the code.
2014-07-23cleanup: Don't set pipeline state if there's no pipelineNirbheek Chauhan1-2/+4
2014-07-23server: Track stream state better, and abort betterNirbheek Chauhan1-3/+4
We now differentiate between STREAMING, FLUSHING, and FINISHED. Server aborting is now consolidated into a single function that's called from everywhere.
2014-07-21server: Free server context with low priorityNirbheek Chauhan1-2/+2
This allows functions that might use it to dispatch beforehand
2014-07-17Use G_SOURCE_REMOVE instead of FALSENirbheek Chauhan1-2/+2
2014-07-17server: Fix another potential crashNirbheek Chauhan1-1/+16
2014-07-15server: Make cleanup on server exit and EOS more reliableNirbheek Chauhan1-3/+19
2014-07-14Improve latency by waiting for the next keyframeNirbheek Chauhan1-13/+0
Instead of caching all the data from the previous keyframe till right now and sending it to the client in a burst, since latency is important, we instead wait for the next keyframe before sending buffers to the clients. This will lead to a delay of upto 128 frames before the stream starts. The keyframe distance and hence the delay can be tweaked by setting the "keyframe-max-dist" property on vp8enc in src/encode.c:create_webm_profile()
2014-07-14main: Add SIGINT handlerNirbheek Chauhan1-3/+4
2014-07-14debug: Remove extra newlines, and use g_critical everywhereNirbheek Chauhan1-4/+4
2014-07-14appsink: Pull and write samples in the libsoup main contextNirbheek Chauhan1-2/+0
2014-07-14server: Always send data from the last keyframeNirbheek Chauhan1-1/+14
Store non-keyframe buffers sent to fakesink, and push them to all new clients
2014-07-14debug: Make the server less noisyNirbheek Chauhan1-8/+8
This is very spammy when we get content-length encoding PUT streams
2014-07-14Add two FIXMEs pointed out by slomo in his reviewNirbheek Chauhan1-0/+1
WIP
2014-07-14appsink: Use the correct API for getting the streamheaderNirbheek Chauhan1-6/+4
Pointed out in a review by slomo
2014-07-14server: Fix cleanup of clientsNirbheek Chauhan1-19/+16
On forced server abort, as well as normal exit
2014-07-11Remove trailing whitespace to make git happyNirbheek Chauhan1-4/+4
2014-07-11server: Add support for persistent connection streamsNirbheek Chauhan1-2/+2
Now we also support Content-Length + Content-Range persistent HTTP connections for stream data. If no further data is received before `server_timeout`, we assume the stream has been closed. This is used by souphttpclientsink for sending streams.
2014-07-11Add license headers and COPYINGNirbheek Chauhan1-2/+21
2014-07-10cleanup: Fix client shutdown on server exitNirbheek Chauhan1-2/+31
2014-07-10appsink: Add a client timeout, and handle eos separatelyNirbheek Chauhan1-0/+2
If no chunks are written to a client for 10 seconds, we end that stream and clean it up. This is currently happening due to a bug, but might happen due to bad/slow clients as well. Instead of handling EOS from null samples, handle EOS through the signal handler. This is a more reliable way of handling EOS, and also works when the whole pipeline is torn down because the PUT stream ended.
2014-07-09Fix unref and frees in various placesNirbheek Chauhan1-17/+2
2014-07-09main/appsink: Don't hard-code element namesNirbheek Chauhan1-8/+5
2014-07-09Remove some unused headers, and fix a typoNirbheek Chauhan1-7/+1
2014-07-09Add source filesNirbheek Chauhan1-0/+166