Skip to content

opensight-cv/upgraded-engineer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

upgraded-engineer

Code style: black PyPI

upgraded-engineer is a Python library for interacting with rusty-engine.

Installation

pip install upgraded-engineer

Dependencies

  • GStreamer (base and bad plugins required for upgraded-engineer, more required by rusty-engine)
  • Open CV (known working with >= 4.0.0, must be compiled with GStreamer support)

Usage

Importing is simple:

import engine

To simply start a new rusty-engine process, create an instance of the engine.Engine class. You will have to figure out how to write frames into the shared memory yourself. (Note that rusty-engine is expecting I420 color, and cannot determine what is being written for itself.)

Alternatively, using engine.EngineWriters provide the write_frame method to write "normal" Open CV BGR color frames into shared memory for streaming.

import engine
# see also: engine.GStreamerEngineWriter for a GStreamer-only impl
ew = engine.OpenCVEngineWriter()
# alternately, if we wanted smaller video
ew = engine.OpenCVEngineWriter(video_size=(426, 240, 30)) # width, height, framerate

Now, writing frames into shared memory is simple.

def on_new_frame_whenever_that_is_for_you(frame):
    ew.write_frame(frame) # ew.write_frame handles the BGR to I420 conversion automagically