sciveo 0.1.89__tar.gz → 0.1.90__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {sciveo-0.1.89 → sciveo-0.1.90}/PKG-INFO +1 -1
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/cli.py +4 -9
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/capture/gst_server.py +26 -39
- sciveo-0.1.90/sciveo/version.py +2 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo.egg-info/PKG-INFO +1 -1
- sciveo-0.1.89/sciveo/version.py +0 -2
- {sciveo-0.1.89 → sciveo-0.1.90}/README.md +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/api/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/api/base.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/api/predictors.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/api/server.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/api/upload.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/common/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/common/configuration.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/common/model.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/common/optimizers.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/common/sampling.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/content/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/content/dataset.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/content/experiment.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/content/project.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/content/runner.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/db/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/db/read_table.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/capture/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/capture/cam.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/capture/draw.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/capture/games/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/capture/games/asteroids/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/capture/games/asteroids/asteroid.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/capture/games/asteroids/base_move.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/capture/games/asteroids/circle.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/capture/games/asteroids/game.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/capture/games/asteroids/geometrics.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/capture/games/asteroids/gravity_ball.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/capture/games/asteroids/laser.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/capture/games/asteroids/rocket.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/capture/games/asteroids/space_asteroids.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/capture/games/asteroids/volume_bar.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/capture/motion_detection.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/capture/nvr.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/capture/readers.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/capture/rpi.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/capture/rtsp.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/ml/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/ml/base.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/ml/encoders/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/ml/encoders/base.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/ml/encoders/normalizer.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/ml/nlp/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/ml/nlp/search.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/ml/time_series/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/ml/time_series/dataset.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/ml/time_series/predictor.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/ml/time_series/trainer.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/ml/time_series/window_generator.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/base.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/job_daemon.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/layouts/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/layouts/base.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/pipeline.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/postprocessors/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/postprocessors/base.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/postprocessors/default.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/audio/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/audio/audio.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/audio/audio_extractor_process.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/aws.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/base.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/file/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/file/archive.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/image/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/image/album.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/image/album_in_image.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/image/depth_esimation.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/image/embeddings.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/image/filters.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/image/generators.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/image/histogram.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/image/mask.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/image/object_detection.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/image/resize.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/image/segmentation.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/image/watermark.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/media_info.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/nlp/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/nlp/address.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/qr.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/sci/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/sci/base.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/sci/dataset.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/sci/time_series/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/sci/time_series/predictor.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/sci/time_series/trainer.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/tpu_base.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/video/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/video/generators.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/video/motion_detection.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/video/resize.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/video/video_album.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/video/video_frames.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/video/video_resample.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/queues.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/server.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/web/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/web/server.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/tools/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/tools/video_interactive.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/ml/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/ml/base.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/ml/dataset/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/ml/dataset/object_detection.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/ml/evaluation/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/ml/evaluation/markdown.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/ml/evaluation/object_detection.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/ml/images/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/ml/images/base.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/ml/images/description.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/ml/images/embeddings.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/ml/images/object_detection.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/ml/images/tools.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/ml/images/transformers.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/ml/nlp/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/ml/nlp/embeddings.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/ml/nlp/tokenizers/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/ml/nlp/tokenizers/bpe.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/ml/video/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/ml/video/description.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/monitoring/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/monitoring/monitor.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/monitoring/power/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/monitoring/power/ems300.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/monitoring/power/sim.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/monitoring/power/tools.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/monitoring/start.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/monitoring/watchdog/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/monitoring/watchdog/base.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/monitoring/watchdog/process.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/network/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/network/camera.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/network/sniffer.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/network/tools.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/tools/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/tools/array.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/tools/aws/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/tools/aws/priority_queue.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/tools/aws/s3.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/tools/common.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/tools/complexity.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/tools/compress.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/tools/configuration.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/tools/crypto.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/tools/daemon.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/tools/draw/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/tools/draw/contours.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/tools/formating.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/tools/hardware.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/tools/http.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/tools/logger.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/tools/os.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/tools/queue.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/tools/random.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/tools/remote.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/tools/simple_counter.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/tools/synchronized.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/tools/timers.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/tools/totp.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/web/__init__.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo/web/common.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo.egg-info/SOURCES.txt +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo.egg-info/dependency_links.txt +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo.egg-info/entry_points.txt +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo.egg-info/requires.txt +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/sciveo.egg-info/top_level.txt +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/setup.cfg +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/setup.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/test/test_complexity.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/test/test_compress.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/test/test_configuration.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/test/test_crypto.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/test/test_eval_markdown.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/test/test_ml_datasets.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/test/test_monitoring.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/test/test_runner.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/test/test_sampling.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/test/test_tokenizers.py +0 -0
- {sciveo-0.1.89 → sciveo-0.1.90}/test/test_totp.py +0 -0
|
@@ -114,21 +114,16 @@ def main():
|
|
|
114
114
|
player = RTSPVideoPlayer(url)
|
|
115
115
|
player.run()
|
|
116
116
|
else:
|
|
117
|
-
from sciveo.media.capture.gst_server import CamFactory, ColorBarFactory
|
|
117
|
+
from sciveo.media.capture.gst_server import CamFactory, ColorBarFactory
|
|
118
118
|
data = json.loads(args.data_json)
|
|
119
119
|
if args.src_id is not None:
|
|
120
|
-
server = CamFactory(args.src_id, args.width, args.height, args.fps, configuration=data)
|
|
120
|
+
server = CamFactory(args.src_id, args.width, args.height, args.fps, configuration=data, display=args.display)
|
|
121
121
|
elif args.src is not None:
|
|
122
122
|
if "color" in args.src:
|
|
123
|
-
server = ColorBarFactory(args.width, args.height, args.fps)
|
|
123
|
+
server = ColorBarFactory(args.width, args.height, args.fps, display=args.display)
|
|
124
124
|
else:
|
|
125
125
|
# warning("RTSP src", args.src, "not recognised")
|
|
126
|
-
server = CamFactory(args.src, args.width, args.height, args.fps, configuration=data)
|
|
127
|
-
if args.display is not None:
|
|
128
|
-
player = CamPlayerDaemon(server, host=args.host, port=args.port, stream=args.stream, display=args.display)
|
|
129
|
-
player.start()
|
|
130
|
-
player.play()
|
|
131
|
-
else:
|
|
126
|
+
server = CamFactory(args.src, args.width, args.height, args.fps, configuration=data, display=args.display)
|
|
132
127
|
server.serve(host=args.host, port=args.port, stream=args.stream)
|
|
133
128
|
elif args.command == 'capture':
|
|
134
129
|
from sciveo.media.capture.cam import CameraDaemon, ScreenDaemon, CapturePlayer
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
import numpy as np
|
|
13
13
|
import time
|
|
14
|
+
import cv2
|
|
14
15
|
|
|
15
16
|
import gi
|
|
16
17
|
gi.require_version('Gst', '1.0')
|
|
@@ -26,12 +27,14 @@ from sciveo.media.capture.cam import CameraDaemon
|
|
|
26
27
|
|
|
27
28
|
|
|
28
29
|
class RTSPFactoryBase(GstRtspServer.RTSPMediaFactory):
|
|
29
|
-
def __init__(self, width, height, fps, appsrc_name="rtspvideo"):
|
|
30
|
+
def __init__(self, width, height, fps, appsrc_name="rtspvideo", display=None):
|
|
30
31
|
super().__init__()
|
|
31
32
|
self.width = width
|
|
32
33
|
self.height = height
|
|
33
34
|
self.fps = fps
|
|
35
|
+
self.frame = None
|
|
34
36
|
self.appsrc_name = appsrc_name
|
|
37
|
+
self.display = display
|
|
35
38
|
self.set_shared(True)
|
|
36
39
|
self.fps_next_frame = FPSCounter(period=10, tag=f"{appsrc_name} ({self.width}x{self.height}@{self.fps})", round_value=1)
|
|
37
40
|
|
|
@@ -53,10 +56,10 @@ class RTSPFactoryBase(GstRtspServer.RTSPMediaFactory):
|
|
|
53
56
|
self.timestamp = 0
|
|
54
57
|
|
|
55
58
|
def on_need_data(self, src, length):
|
|
56
|
-
frame = self.next_frame()
|
|
57
|
-
frame = np.ascontiguousarray(frame, dtype=np.uint8)
|
|
59
|
+
self.frame = self.next_frame()
|
|
60
|
+
self.frame = np.ascontiguousarray(self.frame, dtype=np.uint8)
|
|
58
61
|
|
|
59
|
-
data = frame.tobytes()
|
|
62
|
+
data = self.frame.tobytes()
|
|
60
63
|
buf = Gst.Buffer.new_allocate(None, len(data), None)
|
|
61
64
|
buf.fill(0, data)
|
|
62
65
|
|
|
@@ -69,6 +72,12 @@ class RTSPFactoryBase(GstRtspServer.RTSPMediaFactory):
|
|
|
69
72
|
def next_frame(self):
|
|
70
73
|
return np.zeros((self.height, self.width, 3), dtype=np.uint8)
|
|
71
74
|
|
|
75
|
+
def play_imshow(self):
|
|
76
|
+
if self.frame is not None:
|
|
77
|
+
cv2.imshow(f"{self.appsrc_name} {self.frame.shape}", self.frame)
|
|
78
|
+
cv2.waitKey(1)
|
|
79
|
+
return True
|
|
80
|
+
|
|
72
81
|
def serve(self, host="0.0.0.0", port=8554, stream="test"):
|
|
73
82
|
rtsp_url = f"rtsp://{host}:{port}/{stream}"
|
|
74
83
|
server = GstRtspServer.RTSPServer()
|
|
@@ -79,6 +88,14 @@ class RTSPFactoryBase(GstRtspServer.RTSPMediaFactory):
|
|
|
79
88
|
mount_points.add_factory(f"/{stream}", self)
|
|
80
89
|
|
|
81
90
|
server.attach(None)
|
|
91
|
+
|
|
92
|
+
if self.display is not None:
|
|
93
|
+
# Consider more display options along with current cv2.imshow()
|
|
94
|
+
if self.display == 0:
|
|
95
|
+
GLib.idle_add(self.play_imshow)
|
|
96
|
+
else:
|
|
97
|
+
GLib.idle_add(self.play_imshow)
|
|
98
|
+
|
|
82
99
|
info(f"RTSP server {type(self).__name__} running at {rtsp_url}")
|
|
83
100
|
GLib.MainLoop().run()
|
|
84
101
|
|
|
@@ -118,8 +135,8 @@ class ColorBarsGenerator:
|
|
|
118
135
|
|
|
119
136
|
|
|
120
137
|
class ColorBarFactory(RTSPFactoryBase):
|
|
121
|
-
def __init__(self, width, height, fps, appsrc_name="colorbar"):
|
|
122
|
-
super().__init__(width, height, fps, appsrc_name=appsrc_name)
|
|
138
|
+
def __init__(self, width, height, fps, appsrc_name="colorbar", display=None):
|
|
139
|
+
super().__init__(width, height, fps, appsrc_name=appsrc_name, display=display)
|
|
123
140
|
self.gen = ColorBarsGenerator(width=width, height=height)
|
|
124
141
|
|
|
125
142
|
def next_frame(self):
|
|
@@ -128,8 +145,8 @@ class ColorBarFactory(RTSPFactoryBase):
|
|
|
128
145
|
|
|
129
146
|
|
|
130
147
|
class CamFactory(ColorBarFactory):
|
|
131
|
-
def __init__(self, cam_id, width, height, fps, configuration={}):
|
|
132
|
-
super().__init__(width, height, fps, appsrc_name=f"cam{cam_id}")
|
|
148
|
+
def __init__(self, cam_id, width, height, fps, configuration={}, display=None):
|
|
149
|
+
super().__init__(width, height, fps, appsrc_name=f"cam{cam_id}", display=display)
|
|
133
150
|
self.cam_id = cam_id
|
|
134
151
|
self.configuration = configuration
|
|
135
152
|
self.list_draw_processors = {
|
|
@@ -172,40 +189,10 @@ class CamFactory(ColorBarFactory):
|
|
|
172
189
|
return frame
|
|
173
190
|
|
|
174
191
|
|
|
175
|
-
class CamPlayerDaemon(DaemonBase):
|
|
176
|
-
def __init__(self, cam_factory, host="0.0.0.0", port=8554, stream="test", display=0):
|
|
177
|
-
super().__init__()
|
|
178
|
-
self.cam_factory = cam_factory
|
|
179
|
-
self.host = host
|
|
180
|
-
self.port = port
|
|
181
|
-
self.stream = stream
|
|
182
|
-
self.display = display
|
|
183
|
-
self.fps_display = FPSCounter(period=10, tag=f"display", round_value=1)
|
|
184
|
-
|
|
185
|
-
def loop(self):
|
|
186
|
-
self.cam_factory.serve(host=self.host, port=self.port, stream=self.stream)
|
|
187
|
-
|
|
188
|
-
def play(self):
|
|
189
|
-
import cv2
|
|
190
|
-
while(True):
|
|
191
|
-
frame = self.cam_factory.read_cam_frame()
|
|
192
|
-
if frame is None:
|
|
193
|
-
time.sleep(0.1)
|
|
194
|
-
continue
|
|
195
|
-
|
|
196
|
-
if self.display == 0:
|
|
197
|
-
cv2.imshow(f"cam {self.cam_factory.cam_id} {frame.shape}", frame)
|
|
198
|
-
if cv2.waitKey(1) & 0xFF == ord('q'):
|
|
199
|
-
break
|
|
200
|
-
|
|
201
|
-
self.fps_display.update()
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
192
|
if __name__ == "__main__":
|
|
206
193
|
|
|
207
194
|
# server = ColorBarFactory(640, 480, 10)
|
|
208
195
|
# server.serve(host="0.0.0.0", port=8554, stream="test")
|
|
209
196
|
|
|
210
|
-
server = CamFactory(0, 640, 480, 30, list_draw={"dt": "cam-test"})
|
|
197
|
+
server = CamFactory(0, 640, 480, 30, list_draw={"dt": "cam-test"}, display=0)
|
|
211
198
|
server.serve(host="0.0.0.0", port=8554, stream="camera")
|
sciveo-0.1.89/sciveo/version.py
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/audio/audio_extractor_process.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/sci/time_series/__init__.py
RENAMED
|
File without changes
|
{sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/sci/time_series/predictor.py
RENAMED
|
File without changes
|
{sciveo-0.1.89 → sciveo-0.1.90}/sciveo/media/pipelines/processors/sci/time_series/trainer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|