Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2015-05-28 | main.c: Fix double-free | Nirbheek Chauhan | 1 | -4/+2 | |
The cleanup will be called when the pipeline goes EOS, so don't do it twice | |||||
2015-05-28 | misc: trivial comment changes | Nirbheek Chauhan | 1 | -2/+2 | |
Copyright and vim modeline | |||||
2014-08-18 | server: Add /stream/ prefix for streaming URLs | Nirbheek Chauhan | 1 | -13/+20 | |
2014-08-15 | server: Add the ability to treat conflicting connections as restarts | Nirbheek Chauhan | 1 | -2/+13 | |
Also make stream timeouts configurable | |||||
2014-08-15 | server: Use the /api/ prefix for the REST API | Nirbheek Chauhan | 1 | -5/+5 | |
2014-08-04 | server: Add some more stream timeout debugging | Nirbheek Chauhan | 1 | -1/+3 | |
2014-07-31 | main: Add some debug messages for HTTP error statuses | Nirbheek Chauhan | 1 | -0/+10 | |
2014-07-31 | token validation: Fix udp client fetching when not using token validation | Nirbheek Chauhan | 1 | -2/+3 | |
2014-07-28 | misc: Fix some leaks, and remove an unnecessary print | Nirbheek Chauhan | 1 | -5/+10 | |
2014-07-28 | server: Verify the UDP client list during token validation | Nirbheek Chauhan | 1 | -2/+8 | |
2014-07-25 | misc syntactic changes -- no behaviour changes | Nirbheek Chauhan | 1 | -10/+10 | |
2014-07-24 | Implement concurrent RTP-UDP streams, and a REST API for status and auth | Nirbheek Chauhan | 1 | -85/+585 | |
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-23 | server: Remove unused handlers | Nirbheek Chauhan | 1 | -51/+0 | |
We're sure that we won't need them now, and it's making the code harder to follow | |||||
2014-07-23 | server: Track stream state better, and abort better | Nirbheek Chauhan | 1 | -15/+30 | |
We now differentiate between STREAMING, FLUSHING, and FINISHED. Server aborting is now consolidated into a single function that's called from everywhere. | |||||
2014-07-17 | Use G_SOURCE_REMOVE instead of FALSE | Nirbheek Chauhan | 1 | -4/+4 | |
2014-07-17 | server: Send a Content-Type header as well | Nirbheek Chauhan | 1 | -2/+7 | |
Older versions of Firefox require this | |||||
2014-07-17 | Fix a few comments/debug messages | Nirbheek Chauhan | 1 | -1/+1 | |
2014-07-17 | server: Fix another potential crash | Nirbheek Chauhan | 1 | -3/+3 | |
2014-07-17 | appsink: Force encodebin to create a keyframe when a client connects | Nirbheek Chauhan | 1 | -3/+15 | |
This avoids long waits when, for instance, the fps is 3, since the keyframe-max-dist is 128 | |||||
2014-07-15 | main: Remove a few more assertions | Nirbheek Chauhan | 1 | -9/+7 | |
2014-07-15 | main: Don't handle request-aborted | Nirbheek Chauhan | 1 | -20/+1 | |
We hardly get any context about it, and we never actually did anything there | |||||
2014-07-15 | server: Set headers such that browsers don't try to cache the stream | Nirbheek Chauhan | 1 | -0/+9 | |
Firefox in particular caches the stream very aggressively | |||||
2014-07-15 | server: Make cleanup on server exit and EOS more reliable | Nirbheek Chauhan | 1 | -6/+4 | |
2014-07-15 | appsink: Fix a rare crash | Nirbheek Chauhan | 1 | -0/+7 | |
2014-07-14 | encode: Don't leak sinkpad, remove outdated comment | Nirbheek Chauhan | 1 | -1/+0 | |
2014-07-14 | Improve latency by waiting for the next keyframe | Nirbheek Chauhan | 1 | -18/+12 | |
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-14 | main: Add SIGINT handler | Nirbheek Chauhan | 1 | -0/+10 | |
2014-07-14 | debug: Remove extra newlines, and use g_critical everywhere | Nirbheek Chauhan | 1 | -25/+25 | |
2014-07-14 | appsink: Pull and write samples in the libsoup main context | Nirbheek Chauhan | 1 | -20/+17 | |
2014-07-14 | main: Add a FIXME, and be verbose when new requests come | Nirbheek Chauhan | 1 | -2/+6 | |
2014-07-14 | server: Always send data from the last keyframe | Nirbheek Chauhan | 1 | -10/+18 | |
Store non-keyframe buffers sent to fakesink, and push them to all new clients | |||||
2014-07-14 | debug: Make the server less noisy | Nirbheek Chauhan | 1 | -27/+21 | |
This is very spammy when we get content-length encoding PUT streams | |||||
2014-07-14 | Add two FIXMEs pointed out by slomo in his review | Nirbheek Chauhan | 1 | -0/+3 | |
WIP | |||||
2014-07-14 | write-chunks: Use gst_buffer_map instead of gst_memory_map | Nirbheek Chauhan | 1 | -5/+2 | |
Short-cut. Pointed out in a review by slomo. | |||||
2014-07-14 | debug: Use a macro for buffer read/write status printing | Nirbheek Chauhan | 1 | -4/+10 | |
2014-07-14 | appsink: Don't need to use pad blocking while linking from tee | Nirbheek Chauhan | 1 | -70/+56 | |
We still need to block while removing the appsink, though. Pointed out in a review by slomo | |||||
2014-07-14 | server: Fix cleanup of clients | Nirbheek Chauhan | 1 | -5/+6 | |
On forced server abort, as well as normal exit | |||||
2014-07-11 | server: Add support for aborting running streams | Nirbheek Chauhan | 1 | -3/+23 | |
This is useful to cancel streams that are taking too long to encode, etc | |||||
2014-07-11 | Remove trailing whitespace to make git happy | Nirbheek Chauhan | 1 | -17/+17 | |
2014-07-11 | server: Add support for persistent connection streams | Nirbheek Chauhan | 1 | -40/+159 | |
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-11 | misc: Fix/add a couple of error messages, etc | Nirbheek Chauhan | 1 | -3/+9 | |
2014-07-11 | clients: Fix increment of client timeout | Nirbheek Chauhan | 1 | -1/+1 | |
2014-07-11 | Add license headers and COPYING | Nirbheek Chauhan | 1 | -2/+21 | |
2014-07-11 | appsrc: Remove need-data/enough-data signal handlers | Nirbheek Chauhan | 1 | -24/+0 | |
Dead code. Signals were disabled, and using this and pausing the message causes problems with libsoup. | |||||
2014-07-10 | appsink: Add a client timeout, and handle eos separately | Nirbheek Chauhan | 1 | -5/+40 | |
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-10 | debug: Use separate #ifdefs for each DEBUG | Nirbheek Chauhan | 1 | -3/+3 | |
2014-07-09 | appsink: Use a GMutex to control when we pull samples | Nirbheek Chauhan | 1 | -34/+28 | |
We can only pull a new sample and write it out if the previous one has been written, otherwise we get a segfault in SoupMessage. | |||||
2014-07-09 | appsrc: Queue an EOS when aborted too | Nirbheek Chauhan | 1 | -0/+21 | |
2014-07-09 | appsink: Push samples when availability is signalled | Nirbheek Chauhan | 1 | -34/+16 | |
This is to demonstrate that this doesn't work. It seems that using the SoupMessage associated with a response outside the signal handler for which it was created can result in a segfault, and eventually does. | |||||
2014-07-09 | main/appsink: Don't hard-code element names | Nirbheek Chauhan | 1 | -6/+4 | |