Commit Graph

162 Commits

Author SHA1 Message Date
Saxon Nelson-Milton b077752462 revid & device/raspistill & container/mts: integrating device/raspistill functionality into revid 2021-01-27 16:49:17 +10:30
Trek H cca5582acb revid: simplify syntax 2020-08-15 17:38:45 +09:30
Trek H e72ebe2f06 revid: add S0 to pins that are sent via HTTP 2020-08-14 23:04:56 +09:30
Saxon Milton a286d6c140 Merged in rtmp-bw-modifiable (pull request #412)
protocol/rtmp: added options parameter to rtmp.Dial and provided options for bandwidths and link timeout

Approved-by: Trek Hopton <trek.hopton@gmail.com>
2020-05-19 03:07:34 +00:00
Saxon f4e6a5217c revid/senders.go: using len(s.buf) to adjust mtsSender ring buffer instead of len(d) 2020-05-02 20:37:13 +09:30
Saxon 48ecea7123 revid/senders.go: newMtsSender=>newMTSSender and newHttpSender=>newHTTPSender 2020-04-27 21:02:20 +09:30
Saxon Nelson-Milton 4d5a85b853 revid/senders.go: remember previously adjusted RB element sizes 2020-04-10 17:32:44 +01:00
Saxon Milton cc467243ea revid/senders.go: reduce max buff len 2020-04-10 07:05:45 +00:00
Saxon c0614c3456 revid: reverted to fixed element size ring buffer 2020-04-09 15:55:01 +09:30
Saxon f1c1339e9f revid: no longer prepending package name before log messagges 2020-03-28 01:08:09 +10:30
Saxon Milton 0fa50d1a46 Merged in improve-logging (pull request #389)
Improve debug and info logging quality and frequency

* cmd/rv: added some more debug and info logging

* revid: improving logging in revid.go

* revid: improved logging in senders.go

* revid: don't need to set log level as netsender does it

* added some extract log messages

Approved-by: Trek Hopton <trek.hopton@gmail.com>
2020-03-27 12:20:51 +00:00
Scott 1876fe9dea Added bitrate reporting to RTP sender. 2020-01-24 15:46:14 +10:30
Scott cdd74c7a22 revid/senders.go: reportSent -> report 2020-01-24 15:46:14 +10:30
Scott 9a0fa09879 revid/senders.go,revid.go: Added bitrate calculations to revid. 2020-01-24 15:46:14 +10:30
Saxon e9bd2fc0d1 revid: now using variable ring buffer 2020-01-09 13:31:03 +10:30
Alan Noble db02c8daa2 Log n with ring buffer errors (in addition to size). 2019-11-22 02:19:21 +00:00
scruzin 980e48c22c Log size along with ring buffer error. 2019-11-22 10:10:02 +10:30
Saxon 53dc629fb1 revid: sender ring buffers flush only if write was successful 2019-11-08 10:06:51 +10:30
Saxon 38cfad7b67 revid: fixing some more bugs
Fixed H264 RTP extractor. Fine tuned some timing regarding geovision setup. Added some more
logging to geovision setup.
2019-10-23 12:48:22 +10:30
Saxon 874b9639cf revid: made RTMP and MTS sender ring buffer write timeouts configurable 2019-10-12 21:10:48 +10:30
Saxon fc4e88bce6 fixed bugs causing problems with GeoVision H264 RTMP to youtube streaming.
Two fixes were involved, firstly, access unit delimeters were used to denote access units and the Write timeout on rtmpSender's ringBuffer was
increased to stop the 'unable to dump old write' errors. Also made some small changes elsewhere that should fix future issues, particular with
MTS output.
2019-10-07 14:18:20 +10:30
Saxon e57e14678a container/mts: using RealTime type from utils package instead of global vars with mutator functions 2019-08-26 13:29:07 +09:30
Saxon 817cc86a34 revid: now have MinPeriod and ClipDuration params
This change included a rename of IntraRefreshPeriod to MinPeriod, and the addition of the ClipDuration param. PSI are now written before IDR. Clips are no longer outputed
based on PSI but rather a time ClipDuration, where ClipDuration >= MinPeriod, however, PSI must still be at the beginning of each clip. Also created functionality to update
meta time even if we don't have a response to update.
2019-08-25 20:42:01 +09:30
Saxon Milton 37b8e7a8bc revid: increase sender ring buffer read timeouts to slow down output loops 2019-08-23 15:51:01 +09:30
Saxon 75b7a2946f revid: made MTS and RTMP ringbuffer sizes configurable via vars and added to revid config 2019-08-08 13:20:02 +09:30
Saxon 83407004ed revid: gave mtsSender and rtmpSender separate ringBuffer sizes, and also increase rtmpSender ringBuffer element size 2019-08-07 17:02:06 +09:30
Trek H 3f29f0c84e Merge branch 'master' into revid-audio 2019-08-02 23:32:21 +09:30
Saxon Milton 05f79ddbe3 revid: increase RtmpSender ring buffer size 2019-07-14 05:59:55 +00:00
Trek H 7ba9d023a3 revid: made start and stop change audio device state 2019-05-21 00:45:54 +09:30
Saxon 9ba72fac62 av: addressing PR feedback 2019-04-22 15:14:08 +09:30
Saxon d76b60a515 revid: addressing PR feedback 2019-04-18 18:31:49 +09:30
Saxon 74c995d452 revid: addressing PR feedback 2019-04-18 16:55:48 +09:30
Saxon cea3a5958a revid: changed no location in reply log message to level debug 2019-04-15 13:09:56 +09:30
Saxon 88431b1357 revid: made rtmpSender smarter with write error handling 2019-04-15 11:20:36 +09:30
Saxon d18373908b revid: added ringBuffer to rtmpSender 2019-04-15 10:48:12 +09:30
Saxon d75ea20137 revid: applying some feedback from last PR 2019-04-15 10:25:35 +09:30
Saxon f59879b51d revid: removed ringBuffer after lexer
Now that we want buffered senders (as required), the ringBuffer that was after the
lexer has been removed. Instead, we now have an ioext.multiWriterCloser to which the
lexer writes to. This then writes to the encoders, and then encoders write to each of
their own multiWriteClosers, which write to the appropriate senders. We now call
close on the first multiWriteCloser to close down the entired pipeline, as this close
call propogates through each level.

We have removed the outputClips routine as it's not required anymore to get data
from the revid ringBuffer, and have removed other things that were used by this, like
the IsRunning function.

We have also updated tests to work with these changes - they are passing.
2019-04-15 08:42:56 +09:30
Saxon eb866ada5e revid: restructure rtmpSender's Close method 2019-04-10 12:20:39 +09:30
Saxon 9a52f19e3d revid: fixed mtsSender's output routine's logic 2019-04-10 12:19:28 +09:30
Saxon f546b9daed revid: improved mtsSender's output comment and moved closer to call 2019-04-10 12:15:46 +09:30
Saxon 66622920d5 revid: Buffered MtsSender
The mtsSender now has a ringBuffer and tests have been updated accordingly. The mtsSender now uses an output routine to get data from it's ringBuffer to send.
 Revid now uses ioext.multiWriteClosers for encoders to write to so that senders can be closed and therefore any output routines.
2019-04-09 15:58:34 +09:30
Saxon 4978db2f2b revid: fixed silly rtp bug 2019-04-09 15:44:18 +09:30
Saxon 2bd17d0296 revid: removed restarter interface from senders.go as not required anymore 2019-04-03 11:34:18 +10:30
Saxon dbcac80d1f revid: fixed some general commenting 2019-04-02 13:45:36 +10:30
Saxon 681e07540a revid: removed loadSender interface as no longer required
Removed the loadSender interface as no longer required. As a result close implementations that do nothing have also been removed.
2019-04-02 13:29:18 +10:30
Saxon 6b91746cf6 revid: removed multiSender and started using std io.multiWriter
We are now using an io.multiWriter rather than the multiSender. Code has been updated inside revid.go to account for this change, and tests have also been updated accordingly. Tests for
the multiSender have been removed. A dummyMultiWriter has been written to inject our own multiWriter during testing.
2019-04-02 13:21:46 +10:30
Saxon 065f8ded79 revid: finished simplifying senders
simplified rtmp and rtp senders by removing load and send methods and doing equivalent logic inside their Write functions.
2019-04-02 12:53:42 +10:30
Saxon cdd2537cc3 revid: simplified file sender to remove load and send and just do logic in Write 2019-04-01 12:11:05 +10:30
Saxon f17d2ffb8c revid: got rid of minimalHttpSender
Now that we're removing the concept of a loadSender, there is no need to have a minimalHttpSender (did not implement loadSender) and a httpSender (implemented loadSender). So we can now have
a single httpSender that implements io.Writer just like every other sender.
2019-04-01 12:07:28 +10:30
Saxon 5a67e71fe4 revid: made minimalHttpSender implement io.Writer 2019-04-01 12:02:15 +10:30