Code Monkey home page Code Monkey logo

dragondaemon's Introduction

tauraamui, Backend and Tools Developer

tauraamui

I try to make stuff, have ADHD brain.

tauraamui

tauraamui

dragondaemon's People

Contributors

tauraamui avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

dragondaemon's Issues

Improve process composition by using context instead of custom channel passing and closing

At the moment when a signal interrupt has been received, the daemon begins to shutdown. It waits until the last in progress clip file is done saving to disk before closing as otherwise the persist location would be littered with random unreadable clip files and the user would experience footage loss. It also waits for until a couple of other processes have finished closing, it does this by passing manually instantiated and passed goroutines, it would be much better instead of this to pass contexts to facilitate this.

Tidy up pointer receive usage

I suspect that the code is frequently using function pointer receives unnecessarily, that is probably a poor practice so should be investigated and tidied up.

Process file clips in memory to detect motion before saving to disk

Currently all CCTV footage is written to disk no matter what. The previous refactor of the stream to disk process has now made it possible to logically process a collection of stream frames as a logical clip entity in memory. It would be silly to not take advantage of this to now decide to save the clips based on whether they contain motion. This will need to still allow for a future continuous live stream of each feed to be shown on a display however, so that should be kept in mind whilst actioning this feature.

Make connection be in charge of it's underlying connection stream

At the moment, the server gives a connection a reference to it's now open stream. Unless this turns out to be a bad idea, this should be refactored into something that the connection manages. It is pretty confusing otherwise, and the overloads in the test don't make sense for the mock video capture instances for this reason.

Refactor internal library and cmd specific usage massively

The current structure of the logic, project and resulting layout of the code leaves a lot to be desired. Whilst the functionality code is all working fine and is practically there, the actual package structure can be massively improved.

Animate offline/mock video stream visual content.

Dragon daemon has a built in facility to fake/mock a video stream to ensure the whole process is working correctly without requiring the use or access to real camera connections. In order to more easily observe dropped frames or lag the footage content should include moving elements/an animation. For example the three colour circles could rotate slowly within the clip.

Times in clip file names don't match real time

Because saving clips takes more time than 2 seconds occasionally, the time stamp used to save a clip file is unlikely to match the actual timeframe that it contains. This should be fixed by mapping buffer content with a time reference so instead of using time.Now to get the filename we use a correct time reference instead. This is probably going to be really hard to solve.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.