Commit Graph

3363 Commits

Author SHA1 Message Date
Saxon 0ca75538d2 revid: created multiSender retry field and setting based on outputs
Added a retry field for the multiSender which will be used to decide whether to retry sending or not. This is being set true if we have a http sender and no other senders.
2019-03-12 15:18:02 +10:30
Saxon 30ea5d74f6 revid: simplified multiSender Write method 2019-03-12 15:13:24 +10:30
Saxon 1c75867ba5 revid: simplified logic for setup of senders and encoders in revid.reset 2019-03-12 12:59:10 +10:30
Saxon cce05db3f2 revid: changes made to stream/flv regarding last commit for removal of flv header bytes 2019-03-12 12:58:31 +10:30
Saxon 9d010ed76c revid & stream/flv: removed writing of 'flv header' in the flv encoder
We are now only employing flv encoding for use with rtmp, and rtmp does not like the inclusion of the 'flv header' at the start of a
stream, so this functionality has been removed along with error handling of the invalidFlvTag error from rtmp in the rtmp sender.
2019-03-12 12:47:08 +10:30
Saxon 6c29b362c9 revid: sendRetry check is now in if rather than loop 2019-03-12 09:45:00 +10:30
Alan Noble 910b120b9b It is time we had some tests for revid (esp. ones that test for current or previously reported bugs).
Approved-by: Alan Noble <anoble@gmail.com>
2019-03-11 23:03:52 +00:00
Saxon a726acf520 revid: enc=>e 2019-03-12 03:05:36 +10:30
Saxon 652a5ab173 revid: made logic regarding sender and encoder selection more readable, and added more commenting 2019-03-12 03:01:43 +10:30
Saxon 2588a125a9 revid: don't write to rtmp connection unless it's not nil 2019-03-10 17:48:18 +10:30
Saxon 48c7a1f21d revid: fixed multiSender sending and handling of send fails 2019-03-10 16:49:41 +10:30
Saxon 85401c8df4 revid: making handSendFail functions for senders work as they should as appropriate - e.g. rtmp handleSendFail will attempt to restart connection 2019-03-10 16:37:28 +10:30
Saxon 6a8423bfe6 revid: fixed mtsSender_test.go 2019-03-10 15:56:56 +10:30
Saxon f55daa02c1 stream/flv & stream/mts: updated commenting for flv and mts encoders 2019-03-10 13:04:15 +10:30
Saxon 9f4f9e8920 revid: Encoder type now implements io.Writer 2019-03-10 13:00:58 +10:30
Saxon def220daf3 revid: sending encode errors to errorHandler and made multiSender smarter
Errors captured from encoding are now sent to the error handler.
We also made multiSender smart so that during a write if sendRetry is on, we first check
that revid is actually running before attempting to send again. If revid is not running we return.
We also now log any send errors inside multiSender.
2019-03-10 12:34:45 +10:30
Saxon fc72eeaa0f revid: improved commenting 2019-03-10 12:21:53 +10:30
Saxon b96b52ace5 revid: reverting changes made to config.go 2019-03-09 22:44:12 +10:30
Saxon 93e856792d cmd/revid-cli & revid: fixed conflict 2019-03-09 15:54:52 +10:30
Saxon e0039da2e4 cmd/revid-cli & revid: moved ringBuffer to earlier in pipeline
Removed packetization flag for revid-cli as no longer required.
Packetization will be decided based on outputs.
Removed buffer type definition and Write receiver func in
mtsSender_test.go as this is now defined in revid.go.
Made ringbuffer size and element size consisten no matter the
output methods, as we're now going to only be putting h264 in there.
Modified H264 lex function to take an io.Writer rather than an
Encoder.
Removed destination []loadSender slice from revids fields and
added an encoder []stream.Encoder slice to hold encoders used
during a particular configuration. Each encoder will write to
the desired outputs.
Modified logic regarding encoder and sender setup. We now check
what outputs we have and add encoders to revid's encoder slice
depending on what each output requires.
Modified outputClips routine such that it ranges through revid's
encoders and encodes to them. They then write to the senders and
they handle logic regarding the amount of data they send out
and when. They also handle actions to perform on send failures.
Wrote multiSender struct which will be written to from encoders.
It will then use it's senders to distribute the data accordingly
to senders that work with the encoding from said encoders.
Modified senders so that their load methods no longer take ring
chunks, but rather slices.
Modified senders such that their release methods no longer
perform chunk closing.
2019-03-09 15:28:07 +10:30
Saxon Milton cfb4946588 Merged in video-rotate (pull request #158)
Video rotate

Approved-by: Alan Noble <anoble@gmail.com>
2019-03-08 23:33:40 +00:00
Alan Noble 71e993255b Merged in revid-bitrate-fix (pull request #157)
Don't call rv.Bitrate when rv is nil.

Approved-by: Saxon Milton <saxon.milton@gmail.com>
Approved-by: Alan Noble <anoble@gmail.com>
2019-03-08 23:01:59 +00:00
scruzin 437470b53f Only dump stack for Fatal log messages. 2019-03-09 06:57:55 +10:30
scruzin db265404eb Skip if raspivid not present. 2019-03-08 20:43:01 +10:30
scruzin e0471d5e2c Initial revision. 2019-03-08 17:45:38 +10:30
scruzin aced40b5bd Merge branch 'master' of https://bitbucket.org/ausocean/av 2019-03-08 16:59:23 +10:30
Trek H ed6b2cc7f1 ADPCM: changed directory of adpcm package to audio folder 2019-03-08 15:55:20 +10:30
Trek H c234c8b760 ADPCM: changed location of encode decode adpcm file commands 2019-03-08 15:46:48 +10:30
Trek H f3a890c999 new exp folder needed
Merge branch 'master' into audio-compression
2019-03-08 15:41:56 +10:30
Trek H 4e41402cb6 Merge branch 'audio-compression' of https://bitbucket.org/ausocean/av into audio-compression 2019-03-08 15:27:45 +10:30
Trek H 7c2fccb50f ADPCM: Improved comment consistancy. 2019-03-08 15:27:10 +10:30
Trek H c271418f58 ADPCM: removed capAdd16 no longer used 2019-03-08 15:27:10 +10:30
Trek H 8642d1e087 ADPCM: got rid of buggy overflow checks 2019-03-08 15:27:10 +10:30
Trek H 89ccf9eac7 ADPCM: small fixes, comments and style. 2019-03-08 15:27:10 +10:30
Trek H d5cf171485 ADPCM: updated encode decode commands to use restructured encoder and decoder 2019-03-08 15:27:10 +10:30
Trek H 29f4acd7fe ADPCM: decoder now writes to bytes.Buffer instead of returning a byte array, tests updated. 2019-03-08 15:27:10 +10:30
Trek H e45c67e157 ADPCM: encoder now uses bytes.Buffer so that bytes and byte arrays can be written out 2019-03-08 15:27:10 +10:30
Trek H edb0ec6de1 ADPCM: encoder now using byte writer instead of returning byte slices 2019-03-08 15:27:10 +10:30
Trek H 8f282b1200 ADPCM: resructure to encoder and decoder structs 2019-03-08 15:27:10 +10:30
Trek H 7af363a3a4 ADPCM: fixed header indentation 2019-03-08 15:27:10 +10:30
Trek H 5204b52ece ADPCM: removed reference to revid in headers 2019-03-08 15:27:10 +10:30
Trek H 1ad2195938 ADPCM: fixed conversions and calculations for block variables 2019-03-08 15:27:10 +10:30
Trek H 48e848b7c4 ADPCM: added descriptions to file headers and author to readme 2019-03-08 15:27:10 +10:30
Trek H 3f8d889ce5 ADPCM: correct calls to adpcm functions in test 2019-03-08 15:27:10 +10:30
Trek H ebdd65ea09 ADPCM: Simplified for loops for creating and encoding/decoding blocks 2019-03-08 15:27:10 +10:30
Trek H 408a952c9a ADPCM: changed adpcm_test.go to use pre-allocation of byte slices 2019-03-08 15:27:10 +10:30
Trek H 071b16ccf6 ADPCM: pre-allocating memory for entire known length of output byte slice 2019-03-08 15:27:10 +10:30
Trek H 6edd86f5da ADPCM: added helper function for adding int16s without overflowing 2019-03-08 15:27:10 +10:30
Trek H 8762b3c74f ADPCM: fixed spacing and overflow check 2019-03-08 15:27:10 +10:30
Trek H 1d88c498ca ADPCM: added decode test, named constants and added comments 2019-03-08 15:27:10 +10:30