Commit Graph

262 Commits

Author SHA1 Message Date
Trek H ee4b188175 mjpeg-player: revert reorder of switch cases to minimise diff 2019-12-13 14:03:39 +10:30
Trek H 9ba9eb14af mjpeg-player: cosmetic changes to minimise diff 2019-12-13 13:53:52 +10:30
Trek H 47d9130385 mjpeg-player: added header to mts-demuxer 2019-12-12 14:16:52 +10:30
Trek H a0a5496d44 mjpeg-player: demux mods added 2019-12-12 14:00:21 +10:30
Trek H c1930baf40 mjpeg-player: added player code and hlsjs modifications 2019-12-12 13:56:50 +10:30
Trek H 9476440e21 mjpeg-player: added original hls.js code for mts demuxer 2019-12-12 13:41:44 +10:30
Scott c11444f043 FlipHorizontal & FlipVertical variables renamed 2019-12-06 16:36:29 +10:30
Scott 565ba3079c Formatted code 2019-12-03 14:55:08 +10:30
Scott d5191d9daf Revid CLI accepts MJPEG as an input codec
The ffmpeg command uses the input codec value (H264 or mjpeg). However, it does not yet capture in mjpeg correctly.
2019-12-03 12:05:57 +10:30
Trek H cd63d0d95a alsa: unexported ringbuffer chunksize
Chunksize can be calculated without needing an ALSA device instance.

Added a DataSize function to pcm package for calculating size of pcm data given relevant attributes.

Removed ChunkSize from config revid config struct.

Changed NewByteLexer to accept an in rather than a pointer.
2019-11-13 19:56:13 +10:30
Trek H d7a8d2bd87 Merge branch 'general-pcm' into unexport-chunksize 2019-11-13 17:15:38 +10:30
Trek H f2c9cc5881 alsa: renamed ALSA.buf to ALSA.pb since there are two buffers
Also elaborated on the difference in the comments.
2019-11-13 17:11:35 +10:30
Trek H 796a3b9a97 pcm: changed term clip to buffer 2019-11-13 16:54:41 +10:30
Saxon 1a65dc9da4 fixing build errors and testing bugs + removed config_test.go as not relevant anymore 2019-11-13 14:11:29 +10:30
Trek H 5e472ba4c9 pcm: refactored to be general not alsa only
Addition of new structs and helper functions for passing around pcm clips/buffers and their formats so that we don't have to import and rely on yobert/alsa code.

Updated any commands and alsa package to use refactored code.
2019-11-12 21:24:08 +10:30
Saxon 57d73a8d0a created av/device package and sub packages raspivid, geovision, webcam and file
av/device/device.go now contains the AVDevice interface and implementations of this
interface, namely, raspivid, geovision, webcam and file are contained in the packages
av/device/raspivid, av/device/geovision, av/device/webcam and av/device/file
respctively. config.go and testing was also moved to a new package called config.go in
order to remove would be circular dependency between AVDevice implementations and revid.
Modifications were made elsewhere expecting config.Config to be part of the revid package.
2019-11-06 17:44:50 +10:30
Saxon 7dc15d8095 revid-cli: updated input and output const names 2019-11-05 20:22:05 +10:30
Saxon 4a68c42510 cmd/revid-cli/main.go: fixed description for CameraIP flag 2019-10-23 20:02:10 +10:30
Saxon 02a44ecea2 fixed audio testing requiring logger 2019-10-23 12:59:12 +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 8c1c192218 revid: revid config to update geovision configuration using gvctrl
Added required new params to config structure, and therefore also added new defaults and validation checking.
Also updated revid's update func so that we can control new parameters using vars. Now using gvctrl in
startRTSPCamera function and interpreting revid config to configure camera.
2019-10-22 14:54:38 +10:30
Trek H 76dddda6cd audio-player: using typed arrays
change decoder to use typed array and array indexing instead of pushing to regular arrays for performance reasons.
2019-10-01 10:24:15 +09:30
Trek H d170afea8e audio-player: added decBytes function
I added a function called decBytes to calculate the number of PCM bytes that will be generated from a given array of ADPCM bytes.
2019-09-27 18:59:08 +09:30
Trek H 7f2c77368d audio-player: structured Decoder as a class 2019-09-27 17:32:16 +09:30
Trek H 0517e399d1 audio-player: using correct js declarations 2019-09-27 12:06:09 +09:30
Trek H 1de5438565 audio-player: corrected indentation and comments 2019-09-24 17:15:58 +09:30
Trek H 1a8493853e Merge branch 'master' into audio-player 2019-09-19 12:44:25 +09:30
Trek H 7ed73f3301 audio-player: fixed conflict 2019-09-14 22:35:37 +09:30
Trek H d0e5fd954f audio-netsender: changed rac back to how it was 2019-09-14 22:05:51 +09:30
Trek H 83a425ce2b audio-netsender: fixed type and netsender errors 2019-09-14 19:24:47 +09:30
Trek H 3bd3e52371 audio-netsender: moved audio-netsender from iot to av 2019-09-14 19:23:44 +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 9eb155dfed revid-cli: removed use of config quantize param in revid-cli 2019-08-24 14:05:34 +09:30
Saxon Milton 2470ce95ad revid-cli: setting default InputCodec to codecutil.H264 2019-08-09 09:41:47 +00:00
Saxon 61274a18d5 revid-cli: removed reference to framesPerClip which doesn't exist anymore 2019-08-08 13:25:24 +09:30
Trek H 3f29f0c84e Merge branch 'master' into revid-audio 2019-08-02 23:32:21 +09:30
scruzin 3c1965d938 Propagate netsender client error. 2019-07-26 18:55:56 +09:30
Trek H e3ba1e43f3 Merge branch 'master' into revid-audio 2019-06-14 00:15:04 +09:30
Trek H 96c1b51173 revid and audio: seperated audio into own package
audio device input is now handle in its own package which resides in the new input directory
a list of codecs was added to codecutil package to help with multiple packages using the same codecs
2019-06-06 02:09:55 +09:30
Trek H 3d7539c6df Merge branch 'master' into revid-audio 2019-06-03 17:50:48 +09:30
Saxon b6e5414c8a revid: fixed merge conflicts 2019-05-27 15:15:26 +09:30
Trek H c58c573cd7 revid: changed writeRates and recPeriods to floats 2019-05-21 12:39:10 +09:30
Saxon 88ffdf08b5 revid: changed the input enum for RTSP input from RTSPCamera to RTSP 2019-05-21 12:18:52 +09:30
Saxon 3ff726e439 revid & cmd/revid-cli: removed need for command line flags to specify addresses for RTP and RTCP.
Removed the command line flags that were used to specifiy local and remote addresses for RTP and RTCP. These are now
derived from the initial RTSP connection and also from the RTSP SETUP method reply.
2019-05-20 19:45:59 +09:30
Saxon bc6a0ae55e revid: using RTCP client to maintain RTP stream from RTSP server
Now adopting an RTCP client so that the RTP stream from the RTSP server can be maintained past 1 minute.
This change involved some refactor.
The rtcp.NewClient signature has been simplified. There is now a default send interval and name for use
in the source description in the receiver reports. These can be customised if required with the new
SetSendInterval and SetName funcs. The rtcp.NewClient signature now takes an rtp.Client, so that it
can get information from the RTP stream, like most recent sequence number. As a result of this requirement
the rtp package parse file has been extended with some functions for parsing out the sequence number and
ssrc from RTP packets and the RTP client provides getters for these things.
2019-05-20 18:14:27 +09:30
Saxon bd56e936a4 cmd/revid-cli: checking Input flag string and assigning cfg.Input to revid.RTSPCamera if 'RTSPCamera' is entered. 2019-05-16 13:05:09 +09:30
Saxon 5a2f15054d cmd/revid-cli: added flags related to RTSP input
Added 'RTSPCamera' option to description for 'Input' revid-cli flag. Also added other flags required
to set config params for RTSP input, like RTSPURL, RTPRecvAddr and RTCPAddr.
2019-05-16 12:55:35 +09:30
Saxon 1762adf338 revid/config.go: finished commenting config fields, and removed unused options. 2019-05-13 16:55:20 +09:30
Saxon 835f97203a revid: config fields that are exported and acronyms now capitalized. 2019-05-13 16:23:38 +09:30
Saxon 51fcb18505 revid: capitalize exported enums that are acronyms like Rtmp->RTMP, Mpegts->MPEGTS etc. 2019-05-13 16:18:41 +09:30
Saxon dc0ecf712d fixed config outputs defaulting bug 2019-05-12 01:57:38 +09:30
Trek H e699c30a85 revid: updated documentation and licenses 2019-05-08 19:31:25 +09:30
Trek H faa6246a51 Merge branch 'master' into revid-audio 2019-05-08 16:23:56 +09:30
Trek H 7d4da08cf0 revid: audio lexer reading and writing correct bytes 2019-05-07 16:52:58 +09:30
Trek H a3c7cb5616 revid: added chunkSize to audioInput and bufferSize to lex functions
The audio lexers need to know how much data they will be receiving unlike video which has a fixed buffer size.
This means that all the lex function will need to be given a buffer size since they are used as a function pointer with the same signature.
2019-05-05 17:56:14 +09:30
Trek H 09db8907a5 revid: matching up audio packet sizes, chunk sizes and rates throughout revid pipeline 2019-04-26 17:03:30 +09:30
Trek H b1e5b4341f revid: pid for audio being written to mts packets 2019-04-24 16:39:18 +09:30
Trek H 3484e35692 revid: revid building and running with audio additions 2019-04-24 13:58:56 +09:30
Trek H c51e0ec168 revid: adding audio config parameters 2019-04-23 19:05:47 +09:30
Trek H 20c9e6c409 revid: added PCM and ADPCM codecs 2019-04-23 16:20:47 +09:30
Trek H a60c65a6cf revid: added rate flags to config and cli, started writing test 2019-04-23 14:51:17 +09:30
Saxon e3c711d1f6 cmd/revid-cli: run failed log message to warning level 2019-04-15 13:13:01 +09:30
Alan Noble be0f8d0094 Fix typo in Rotation param. 2019-04-11 22:17:01 +00:00
Saxon 937f54f418 av: fixed conflicts with master 2019-03-28 11:03:05 +10:30
Saxon 5366eca2f2 av: fixed imports 2019-03-25 11:51:03 +10:30
Saxon fa011fb129 Merge branch 'master' into ringbuffer-move 2019-03-17 12:13:13 +10:30
Saxon 39a7b382f6 revid: fixed build errors 2019-03-15 18:05:15 +10:30
Saxon 056f3b75b3 revid: general clean 2019-03-15 17:58:24 +10:30
Saxon 524989d2ed revid: resolved conflicts 2019-03-15 17:51:17 +10:30
Saxon b18502c7ba revid: adding defaults for exposure and awb cmd flags 2019-03-15 17:32:28 +10:30
Saxon 9d5771fcbf revid: completed addition of exposure, awb, saturation and brightness options 2019-03-15 17:24:29 +10:30
Matthew Michael 9a510f5c31 cmd/revid-cli & revid: adding raspivid exposure and brightness parameters
Started working on adding exposure, brightness, saturation and awb flags to revid-cli so that we can control raspivid parameters.
Updated revid logic to give these to raspivid and updated config to consider these parameters in config validation.
2019-03-15 12:44:13 +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
Saxon 3a9e90dcf8 cmd/revid-cli & revid: added back vertical and horizontal flip options 2019-03-06 11:51:55 +10:30
Saxon cfcb899bcb revid & cmd/revid-cli: rotate => rotation 2019-03-04 12:11:34 +10:30
Saxon 2d229077a2 revid & cmd/revid-cli: removed any mention of horizontal and vertical flip and replaced with rotate 2019-03-04 12:07:28 +10:30
Saxon d7863863c7 cmd/revid-cli: structuring flags by type, and added a Rotate flag so that video can be rotated using raspivid rotate flag. 2019-03-04 11:53:28 +10:30
Alan Noble 313944de90 Made more idiomatic. 2019-03-03 23:22:42 +00:00
Alan Noble 1c9dde3798 Don't call rv.Bitrate when rv is nil. 2019-03-03 23:04:49 +00:00
Saxon d5af370d71 cmd/revid-cli: corrected value assignment for an undefined pin when revid is not yet initialised 2019-03-02 20:46:12 +10:30
Saxon 562c8effc3 cmd/revid-cli: adjusted logging levels to make more appropriate 2019-03-02 15:23:33 +10:30
Saxon 01474ee870 cmd/revid-cli: made general changes to make revi-cli more robust i.e. not so trigger happy with fatals 2019-03-02 14:54:49 +10:30
Saxon 9d1d2914a4 cmd/revid-cli: removing fatal error if we get an error during run() 2019-03-02 13:46:43 +10:30
Saxon 3c273adf4c cmd/revid-cli: not expecting error from revid.Stop() in revid-cli anymore: 2019-03-02 13:30:46 +10:30
Saxon b9bccaabdd cmd/revid-cli: fixed default value for log verbosity flag 2019-02-28 16:53:06 +10:30
Saxon 589d922ddb cmd/revid-cli: verbosity flag default to Info 2019-02-28 14:12:44 +10:30
Saxon Milton b6a3e062b5 Merged in path-flag-fix (pull request #143)
revid: got rid of OutputFileName and InputFileName
2019-02-28 03:04:05 +00:00
Saxon Milton 4cfb85b8e1 Merged in fix-verbosity-flag (pull request #144)
cmd/revid-cli: initialisation of logger actually usses what was given as revid-cli verbosity flag input
2019-02-28 03:03:13 +00:00
Saxon Milton c247e63bd0 Merged in default-mode-crash-fix (pull request #150)
revid-cli: initialising config.Output slice when no outputs are defined so that a default output can still be set

Approved-by: Alan Noble <anoble@gmail.com>
2019-02-25 06:42:38 +00:00
Alan Noble 95303b4e71 Set default log level to Info (to match the comment). 2019-02-25 06:31:12 +00:00
Saxon 37850e8350 revid-cli: initialising config.Output slice when no outputs are defined so that a default output can still be set 2019-02-25 12:59:57 +10:30
saxon c3743174da cmd/revid-cli: initialisation of logger actually usses what was given as revid-cli verbosity flag input 2019-02-12 18:37:15 +10:30
saxon 3ee2683ca9 cmd/revid-cli & revid: outputFileNamePtr => outputPathPtr, config.OutputFileName=>config.OutputPath, inputFileNamePtr=>inputPathPtr and finally, config.InputFileName=>config.InputPath 2019-02-12 18:22:46 +10:30
saxon 2a61f2d08d cmd/revid-cli: added space before rv declaration 2019-02-12 11:37:50 +10:30
saxon e2d80b423c cmd/revid-cli: removed comment we don't need anymore 2019-02-12 11:33:48 +10:30
saxon 69029889fe cmd/revid-cli: using closure for readPin func so that we don't have to have global revid 2019-02-12 11:32:02 +10:30
saxon b9c53791d8 cmd/revid-cli: updated readPin func comment 2019-02-12 10:42:26 +10:30
saxon 4e1c8e7c45 cmd/revid-cli: made Revid global so that revid.Bitrate() can be accessed in readPin 2019-02-12 10:39:23 +10:30