Difference between revisions of "BindSight"

From Hack Manhattan Wiki
Jump to: navigation, search
(Skeleton)
Line 14: Line 14:
 
* run test against ipv6-only camera device to confirm can now handle scenario
 
* run test against ipv6-only camera device to confirm can now handle scenario
 
* rudimentary server home page
 
* rudimentary server home page
 +
* dev-only config
  
 
==== Pipelines ====
 
==== Pipelines ====
 
* reimplement using GenStage
 
* reimplement using GenStage
 +
* web consumer poolboy
 
* consumer-producer to handle broadcast
 
* consumer-producer to handle broadcast
 
* consumer-producer to check for bad frames
 
* consumer-producer to check for bad frames
 
* consumer to flush and track quality
 
* consumer to flush and track quality
 +
 +
==== Streaming ====
 
* implement stream as snapshot flipshow
 
* implement stream as snapshot flipshow
 
* ensure recovery when flipshow fails
 
* ensure recovery when flipshow fails

Revision as of 19:14, 2 August 2019

Github icon.jpg Github Repository | Bricodash screenshot.png A Bricodash Sub-Project | Beads Land-Trujillo.jpg A Beadsland Creation

Concurrent frame-scrubbing multiplexing webcam gateway daemon.

Devoted service to stream doorcam and spacecam to Bricodash and public gateway, respectively, while tracking activity and performance of these and other webcams at the space. Will be more efficient and reliable than spawning PHP and Python processes on an as-they-come basis.

Written in Elixir, will be taking advantage of various new features of the language, building on the strengths of Erlang/OTP, including Mint (web client), StreamData (sample-data based unit testing), GenStage (backpressure event pipelines) and ultimately mix release (build-time deployment packaging).

Current project plan:

Future Proofing

  • run test against ipv6-only camera device to confirm can now handle scenario
  • rudimentary server home page
  • dev-only config

Pipelines

  • reimplement using GenStage
  • web consumer poolboy
  • consumer-producer to handle broadcast
  • consumer-producer to check for bad frames
  • consumer to flush and track quality

Streaming

  • implement stream as snapshot flipshow
  • ensure recovery when flipshow fails
  • reimplement stream to consume source stream
  • ensure recovery when source stream fails

Advanced

  • provide for throwing timeouts
  • implement greytoss checking
  • configure to launch as daemon
  • bootstrap to obtain dependencies and compile cold
  • incorporate sous veil / swap out PHP touch points
  • incorporate upt chk / swap out Python CGI touch point

Performance

  • investigate periodic multi-hit events: server severing connections prematurely? badly behaved client device?
  • investigate specific issue of pishop launch causing multi-hit failures on all other clients