Difference between revisions of "BindSight"

From Hack Manhattan Wiki
Jump to: navigation, search
(Further Stages)
m
Line 11: Line 11:
 
Current project plan:
 
Current project plan:
  
==== Pipelines ====
+
==== SnapSource Stage ====
 
+
===== SnapSource Stage =====
+
  
 
* revert changes
 
* revert changes
Line 20: Line 18:
 
* catch dead cameras rather than erroring out repeatedly
 
* catch dead cameras rather than erroring out repeatedly
  
===== Broadcast Stage =====
+
==== Broadcast Stage ====
  
 
* test grab a batch
 
* test grab a batch
  
===== Bad Frames =====
+
==== Bad Frames ====
 
* consumer-producer to check for bad frames
 
* consumer-producer to check for bad frames
 
* consumer-producer to queue multiple events into single batch event (handle_demand)
 
* consumer-producer to queue multiple events into single batch event (handle_demand)
Line 33: Line 31:
 
** unbatch result to dispatch as list of events (ignore backpressure)
 
** unbatch result to dispatch as list of events (ignore backpressure)
  
===== Quality Tracking =====
+
==== Quality Tracking ====
 
* generic spigot to filter out :corrupt/:greytoss messages after broadcast/before final sink
 
* generic spigot to filter out :corrupt/:greytoss messages after broadcast/before final sink
 
* introduce :corrupt/:greytoss messages and unit test on filter-spigot GenStage.Stream
 
* introduce :corrupt/:greytoss messages and unit test on filter-spigot GenStage.Stream
Line 39: Line 37:
 
* consumer to flush broadcast and track quality
 
* consumer to flush broadcast and track quality
  
===== Web Consumer =====
+
==== Web Consumer ====
 
* web consumer as filter-spigot Task
 
* web consumer as filter-spigot Task
 
* web consumer poolboy
 
* web consumer poolboy

Revision as of 15:05, 4 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), GenStage (backpressure event pipelines) and ultimately mix release (build-time deployment packaging).

Current project plan:

SnapSource Stage

  • revert changes
  • ignore backpressure, just dispatch events from task loop
  • test grab a batch
  • catch dead cameras rather than erroring out repeatedly

Broadcast Stage

  • test grab a batch

Bad Frames

  • consumer-producer to check for bad frames
  • consumer-producer to queue multiple events into single batch event (handle_demand)
  • retool bad frames checker (handle_events):
    • max_demand/min_demand: 2/1
    • task_async over each batch event
    • filter out :corrupt/:greytoss for now
    • unbatch result to dispatch as list of events (ignore backpressure)

Quality Tracking

  • generic spigot to filter out :corrupt/:greytoss messages after broadcast/before final sink
  • introduce :corrupt/:greytoss messages and unit test on filter-spigot GenStage.Stream
  • allow natural :corrupt/:greytoss to flow from bad frames checker
  • consumer to flush broadcast and track quality

Web Consumer

  • web consumer as filter-spigot Task
  • web consumer poolboy

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