summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2014-07-25Makefile: default to non-debug buildNirbheek Chauhan1-3/+3
2014-07-25misc syntactic changes -- no behaviour changesNirbheek Chauhan2-11/+11
2014-07-24Implement concurrent RTP-UDP streams, and a REST API for status and authNirbheek Chauhan10-172/+828
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: Remove unused handlersNirbheek Chauhan1-51/+0
We're sure that we won't need them now, and it's making the code harder to follow
2014-07-23server: Track stream state better, and abort betterNirbheek Chauhan3-19/+45
We now differentiate between STREAMING, FLUSHING, and FINISHED. Server aborting is now consolidated into a single function that's called from everywhere.
2014-07-22encode: POC for streaming incoming video streams to RTP/UDPNirbheek Chauhan1-0/+106
The UDP broadcast happens to localhost:5004 by default. Doesn't handle multiple video streams properly yet, because this is a POC.
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 Chauhan2-6/+6
2014-07-17server: Send a Content-Type header as wellNirbheek Chauhan1-2/+7
Older versions of Firefox require this
2014-07-17Fix a few comments/debug messagesNirbheek Chauhan2-2/+3
2014-07-17server: Fix another potential crashNirbheek Chauhan2-4/+19
2014-07-17stp-playback: Set autoplayNirbheek Chauhan1-1/+1
The file never plays if autoplay isn't set. Our seek hack still works.
2014-07-17appsink: Force encodebin to create a keyframe when a client connectsNirbheek Chauhan2-4/+16
This avoids long waits when, for instance, the fps is 3, since the keyframe-max-dist is 128
2014-07-15TESTING: Always do videoconvert before pushing to sink or encoderNirbheek Chauhan1-2/+2
2014-07-15HTML/JS code for experimental browser latency reductionNirbheek Chauhan1-0/+28
2014-07-15main: Remove a few more assertionsNirbheek Chauhan1-9/+7
2014-07-15main: Don't handle request-abortedNirbheek Chauhan1-20/+1
We hardly get any context about it, and we never actually did anything there
2014-07-15server: Set headers such that browsers don't try to cache the streamNirbheek Chauhan1-0/+9
Firefox in particular caches the stream very aggressively
2014-07-15server: Make cleanup on server exit and EOS more reliableNirbheek Chauhan3-9/+24
2014-07-15Makefile: fix order of arguments to gccNirbheek Chauhan1-2/+2
On Ubuntu, the order seems to matter. Iddo faced this problem.
2014-07-15appsink: Fix a rare crashNirbheek Chauhan1-0/+7
2014-07-14encode: Don't leak sinkpad, remove outdated commentNirbheek Chauhan2-1/+1
2014-07-14Improve latency by waiting for the next keyframeNirbheek Chauhan4-61/+14
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 Chauhan2-3/+14
2014-07-14TESTING: use timeoverlay instead of clockoverlayNirbheek Chauhan1-1/+1
Gives us millisecond resolution
2014-07-14Add error message details to TESTINGNirbheek Chauhan1-0/+7
2014-07-14Add a TESTING documentNirbheek Chauhan1-0/+22
2014-07-14debug: Remove extra newlines, and use g_critical everywhereNirbheek Chauhan3-36/+36
2014-07-14appsink: Pull and write samples in the libsoup main contextNirbheek Chauhan3-23/+17
2014-07-14main: Add a FIXME, and be verbose when new requests comeNirbheek Chauhan1-2/+6
2014-07-14server: Always send data from the last keyframeNirbheek Chauhan4-19/+94
Store non-keyframe buffers sent to fakesink, and push them to all new clients
2014-07-14debug: Make the server less noisyNirbheek Chauhan3-35/+35
This is very spammy when we get content-length encoding PUT streams
2014-07-14Makefile: Document another DEBUG flagNirbheek Chauhan1-1/+1
2014-07-14Add two FIXMEs pointed out by slomo in his reviewNirbheek Chauhan2-0/+4
WIP
2014-07-14lib: Remove unused function definitionsNirbheek Chauhan1-6/+0
Pointed out in a review by slomo
2014-07-14write-chunks: Use gst_buffer_map instead of gst_memory_mapNirbheek Chauhan1-5/+2
Short-cut. Pointed out in a review by slomo.
2014-07-14debug: Use a macro for buffer read/write status printingNirbheek Chauhan1-4/+10
2014-07-14appsink: Don't need to use pad blocking while linking from teeNirbheek Chauhan1-70/+56
We still need to block while removing the appsink, though. Pointed out in a review by slomo
2014-07-14appsink: Use the correct API for getting the streamheaderNirbheek Chauhan1-6/+4
Pointed out in a review by slomo
2014-07-14encode: Set fakesink to sync to the clock to ensure it's always realtimeNirbheek Chauhan1-0/+2
2014-07-14server: Fix cleanup of clientsNirbheek Chauhan2-24/+22
On forced server abort, as well as normal exit
2014-07-11server: Add support for aborting running streamsNirbheek Chauhan2-3/+28
This is useful to cancel streams that are taking too long to encode, etc
2014-07-11Update README for souphttp support + misc fixesNirbheek Chauhan1-9/+24
2014-07-11Remove trailing whitespace to make git happyNirbheek Chauhan7-31/+31
2014-07-11server: Add support for persistent connection streamsNirbheek Chauhan3-47/+169
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-11misc: Fix/add a couple of error messages, etcNirbheek Chauhan1-3/+9
2014-07-11clients: Fix increment of client timeoutNirbheek Chauhan1-1/+1
2014-07-11Update README and add known bugsNirbheek Chauhan1-7/+30
2014-07-11Add license headers and COPYINGNirbheek Chauhan8-14/+628