New streaming endpoints #265

Merged
blacklight merged 17 commits from 264-streaming-endpoints into master 2023-06-27 13:38:14 +02:00
Owner

A very large PR that includes the following:

  • A full rewrite of the streaming endpoints (namely camera and sound endpoints, at least for now) to support the new Tornado-based async paradigm.

  • A full rewrite of the sound plugin to be more extensible, feature-rich and stable.

  • A full rewrite of the logic that synchronizes camera and sound streams to any streaming clients by using Redis pubsub.

A very large PR that includes the following: - A full rewrite of the streaming endpoints (namely camera and sound endpoints, at least for now) to support the new Tornado-based async paradigm. - A full rewrite of the sound plugin to be more extensible, feature-rich and stable. - A full rewrite of the logic that synchronizes camera and sound streams to any streaming clients by using Redis pubsub.
Also, proper fix for the multi-inheritance problem of
the ffmpeg writers.
Too much of a pain in the ass to handle, too many format options to
think of, too many combinations of pipelines to support, and if I don't
think of those beforehand then I'll have to offload all of that
complexity on the user.
Camera routes migrated from Flask blueprints to Tornado handlers.
This reverts commit b4d714df8a.
- The readiness condition should be `multiprocessing.Condition`, not
  `threading.Condition` - in most of the cases it will be checked in a
  multiprocess environment.

- Fixed parameter name for `write`.
The Redis pub/sub mechanism is now a native feature for Tornado routes
through the `PubSubMixin`.

(Plus, lint/black chore for the sound plugin)
Sign in to join this conversation.
No description provided.