sciveo 0.1.81__tar.gz → 0.1.83__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.81 → sciveo-0.1.83}/PKG-INFO +1 -1
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/capture/cam.py +1 -1
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/capture/gst_server.py +7 -2
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/capture/nvr.py +6 -1
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/capture/rtsp.py +6 -1
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/tools/timers.py +9 -1
- sciveo-0.1.83/sciveo/version.py +2 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo.egg-info/PKG-INFO +1 -1
- sciveo-0.1.81/sciveo/version.py +0 -2
- {sciveo-0.1.81 → sciveo-0.1.83}/README.md +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/api/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/api/base.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/api/predictors.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/api/server.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/api/upload.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/cli.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/common/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/common/configuration.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/common/model.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/common/optimizers.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/common/sampling.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/content/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/content/dataset.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/content/experiment.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/content/project.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/content/runner.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/db/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/db/read_table.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/capture/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/capture/draw.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/capture/games/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/capture/games/asteroids/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/capture/games/asteroids/asteroid.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/capture/games/asteroids/base_move.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/capture/games/asteroids/circle.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/capture/games/asteroids/game.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/capture/games/asteroids/geometrics.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/capture/games/asteroids/gravity_ball.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/capture/games/asteroids/laser.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/capture/games/asteroids/rocket.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/capture/games/asteroids/space_asteroids.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/capture/games/asteroids/volume_bar.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/capture/motion_detection.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/capture/readers.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/capture/rpi.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/ml/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/ml/base.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/ml/encoders/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/ml/encoders/base.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/ml/encoders/normalizer.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/ml/nlp/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/ml/nlp/search.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/ml/time_series/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/ml/time_series/dataset.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/ml/time_series/predictor.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/ml/time_series/trainer.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/ml/time_series/window_generator.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/base.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/job_daemon.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/layouts/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/layouts/base.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/pipeline.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/postprocessors/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/postprocessors/base.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/postprocessors/default.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/audio/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/audio/audio.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/audio/audio_extractor_process.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/aws.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/base.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/file/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/file/archive.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/image/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/image/album.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/image/album_in_image.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/image/depth_esimation.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/image/embeddings.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/image/filters.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/image/generators.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/image/histogram.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/image/mask.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/image/object_detection.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/image/resize.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/image/segmentation.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/image/watermark.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/media_info.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/nlp/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/nlp/address.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/qr.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/sci/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/sci/base.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/sci/dataset.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/sci/time_series/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/sci/time_series/predictor.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/sci/time_series/trainer.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/tpu_base.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/video/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/video/generators.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/video/motion_detection.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/video/resize.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/video/video_album.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/video/video_frames.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/video/video_resample.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/queues.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/server.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/web/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/web/server.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/tools/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/tools/video_interactive.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/ml/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/ml/base.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/ml/dataset/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/ml/dataset/object_detection.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/ml/evaluation/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/ml/evaluation/markdown.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/ml/evaluation/object_detection.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/ml/images/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/ml/images/base.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/ml/images/description.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/ml/images/embeddings.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/ml/images/object_detection.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/ml/images/tools.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/ml/images/transformers.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/ml/nlp/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/ml/nlp/embeddings.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/ml/nlp/tokenizers/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/ml/nlp/tokenizers/bpe.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/ml/video/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/ml/video/description.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/monitoring/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/monitoring/monitor.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/monitoring/power/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/monitoring/power/ems300.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/monitoring/power/sim.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/monitoring/power/tools.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/monitoring/start.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/monitoring/watchdog/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/monitoring/watchdog/base.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/monitoring/watchdog/process.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/network/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/network/camera.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/network/sniffer.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/network/tools.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/tools/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/tools/array.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/tools/aws/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/tools/aws/priority_queue.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/tools/aws/s3.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/tools/common.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/tools/complexity.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/tools/compress.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/tools/configuration.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/tools/crypto.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/tools/daemon.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/tools/draw/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/tools/draw/contours.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/tools/formating.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/tools/hardware.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/tools/http.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/tools/logger.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/tools/os.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/tools/queue.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/tools/random.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/tools/remote.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/tools/simple_counter.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/tools/synchronized.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/tools/totp.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/web/__init__.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo/web/common.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo.egg-info/SOURCES.txt +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo.egg-info/dependency_links.txt +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo.egg-info/entry_points.txt +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo.egg-info/requires.txt +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/sciveo.egg-info/top_level.txt +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/setup.cfg +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/setup.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/test/test_complexity.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/test/test_compress.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/test/test_configuration.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/test/test_crypto.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/test/test_eval_markdown.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/test/test_ml_datasets.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/test/test_monitoring.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/test/test_runner.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/test/test_sampling.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/test/test_tokenizers.py +0 -0
- {sciveo-0.1.81 → sciveo-0.1.83}/test/test_totp.py +0 -0
|
@@ -28,7 +28,7 @@ class CaptureBase(DaemonBase):
|
|
|
28
28
|
self.tag = tag
|
|
29
29
|
self.lock_frame = threading.Lock()
|
|
30
30
|
self.frame = None
|
|
31
|
-
self.fps = FPSCounter(period=10, tag=f"{self.tag} [{self.src}]")
|
|
31
|
+
self.fps = FPSCounter(period=10, tag=f"{self.tag} [{self.src}]", round_value=1)
|
|
32
32
|
|
|
33
33
|
def close(self):
|
|
34
34
|
pass
|
|
@@ -31,16 +31,18 @@ class RTSPFactoryBase(GstRtspServer.RTSPMediaFactory):
|
|
|
31
31
|
self.fps = fps
|
|
32
32
|
self.appsrc_name = appsrc_name
|
|
33
33
|
self.set_shared(True)
|
|
34
|
-
self.fps_next_frame = FPSCounter(period=10, tag=f"{appsrc_name} ({self.width}x{self.height}@{self.fps})")
|
|
34
|
+
self.fps_next_frame = FPSCounter(period=10, tag=f"{appsrc_name} ({self.width}x{self.height}@{self.fps})", round_value=1)
|
|
35
35
|
|
|
36
36
|
def do_create_element(self, url):
|
|
37
37
|
pipeline_str = (
|
|
38
38
|
f"appsrc name={self.appsrc_name} is-live=true block=true format=time "
|
|
39
39
|
f"caps=video/x-raw,format=BGR,width={self.width},height={self.height},framerate={self.fps}/1 "
|
|
40
40
|
"! videoconvert "
|
|
41
|
-
"!
|
|
41
|
+
"! video/x-raw,format=I420 "
|
|
42
|
+
"! x264enc tune=zerolatency speed-preset=ultrafast key-int-max=30 "
|
|
42
43
|
"! rtph264pay config-interval=1 name=pay0 pt=96"
|
|
43
44
|
)
|
|
45
|
+
info("GST Pipeline", pipeline_str)
|
|
44
46
|
return Gst.parse_launch(pipeline_str)
|
|
45
47
|
|
|
46
48
|
def do_configure(self, rtsp_media):
|
|
@@ -50,13 +52,16 @@ class RTSPFactoryBase(GstRtspServer.RTSPMediaFactory):
|
|
|
50
52
|
|
|
51
53
|
def on_need_data(self, src, length):
|
|
52
54
|
frame = self.next_frame()
|
|
55
|
+
frame = np.ascontiguousarray(frame, dtype=np.uint8)
|
|
53
56
|
|
|
54
57
|
data = frame.tobytes()
|
|
55
58
|
buf = Gst.Buffer.new_allocate(None, len(data), None)
|
|
56
59
|
buf.fill(0, data)
|
|
60
|
+
|
|
57
61
|
buf.duration = Gst.SECOND // self.fps
|
|
58
62
|
buf.pts = buf.dts = self.timestamp
|
|
59
63
|
self.timestamp += buf.duration
|
|
64
|
+
|
|
60
65
|
src.emit("push-buffer", buf)
|
|
61
66
|
|
|
62
67
|
def next_frame(self):
|
|
@@ -22,6 +22,7 @@ from sciveo.tools.logger import *
|
|
|
22
22
|
from sciveo.tools.daemon import DaemonBase
|
|
23
23
|
from sciveo.tools.queue import TouchedFilePathQueue
|
|
24
24
|
from sciveo.tools.simple_counter import RunCounter
|
|
25
|
+
from sciveo.tools.timers import FPSCounter
|
|
25
26
|
from sciveo.media.capture.motion_detection import MotionDetectorDaemon
|
|
26
27
|
|
|
27
28
|
|
|
@@ -205,13 +206,16 @@ class RTSPVideoPlayer:
|
|
|
205
206
|
self.name = name
|
|
206
207
|
self.cap = None
|
|
207
208
|
self.is_running = False
|
|
209
|
+
self.fps = FPSCounter(period=10, tag=f"{name}", printer=info, round_value=1)
|
|
208
210
|
|
|
209
211
|
def open(self):
|
|
210
|
-
info("Opening
|
|
212
|
+
info("Opening...", self.rtsp_url)
|
|
211
213
|
self.cap = cv2.VideoCapture(self.rtsp_url)
|
|
212
214
|
if not self.cap.isOpened():
|
|
213
215
|
error("Failed to open RTSP URL", self.rtsp_url)
|
|
214
216
|
self.cap = None
|
|
217
|
+
else:
|
|
218
|
+
info("Opened", self.rtsp_url)
|
|
215
219
|
|
|
216
220
|
def close(self):
|
|
217
221
|
if self.cap:
|
|
@@ -250,6 +254,7 @@ class RTSPVideoPlayer:
|
|
|
250
254
|
info("Quit key pressed, stopping player")
|
|
251
255
|
self.close()
|
|
252
256
|
self.is_running = False
|
|
257
|
+
self.fps.update()
|
|
253
258
|
|
|
254
259
|
def finalise(self):
|
|
255
260
|
self.close()
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
import time
|
|
13
13
|
import cv2
|
|
14
14
|
|
|
15
|
+
from sciveo.tools.timers import FPSCounter
|
|
15
16
|
from sciveo.tools.logger import *
|
|
16
17
|
|
|
17
18
|
|
|
@@ -23,13 +24,16 @@ class RTSPVideoPlayer:
|
|
|
23
24
|
self.name = name
|
|
24
25
|
self.cap = None
|
|
25
26
|
self.is_running = False
|
|
27
|
+
self.fps = FPSCounter(period=10, tag=f"{name}", printer=info, round_value=1)
|
|
26
28
|
|
|
27
29
|
def open(self):
|
|
28
|
-
info("Opening
|
|
30
|
+
info("Opening...", self.rtsp_url)
|
|
29
31
|
self.cap = cv2.VideoCapture(self.rtsp_url)
|
|
30
32
|
if not self.cap.isOpened():
|
|
31
33
|
error("Failed to open RTSP URL", self.rtsp_url)
|
|
32
34
|
self.cap = None
|
|
35
|
+
else:
|
|
36
|
+
info("Opened", self.rtsp_url)
|
|
33
37
|
|
|
34
38
|
def close(self):
|
|
35
39
|
if self.cap:
|
|
@@ -68,6 +72,7 @@ class RTSPVideoPlayer:
|
|
|
68
72
|
info("Quit key pressed, stopping player")
|
|
69
73
|
self.close()
|
|
70
74
|
self.is_running = False
|
|
75
|
+
self.fps.update()
|
|
71
76
|
|
|
72
77
|
def finalise(self):
|
|
73
78
|
self.close()
|
|
@@ -15,7 +15,7 @@ from sciveo.tools.logger import *
|
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
class FPSCounter:
|
|
18
|
-
def __init__(self, period=1, tag="", print_period=1, printer=debug):
|
|
18
|
+
def __init__(self, period=1, tag="", print_period=1, printer=debug, round_value=2):
|
|
19
19
|
self.period = period
|
|
20
20
|
self.print_period = print_period
|
|
21
21
|
self.printer = printer
|
|
@@ -24,6 +24,7 @@ class FPSCounter:
|
|
|
24
24
|
self.n = 0
|
|
25
25
|
self.t1 = time.time()
|
|
26
26
|
self.value = 0
|
|
27
|
+
self.round_value = round_value
|
|
27
28
|
|
|
28
29
|
def print(self):
|
|
29
30
|
self.print_n += 1
|
|
@@ -36,10 +37,17 @@ class FPSCounter:
|
|
|
36
37
|
t2 = time.time()
|
|
37
38
|
if t2 - self.t1 > self.period:
|
|
38
39
|
self.value = self.n / (t2 - self.t1)
|
|
40
|
+
if self.round_value is not None:
|
|
41
|
+
self.value = round(self.value, self.round_value)
|
|
39
42
|
self.n = 0
|
|
40
43
|
self.t1 = time.time()
|
|
41
44
|
self.print()
|
|
42
45
|
|
|
46
|
+
def reset(self):
|
|
47
|
+
self.n = 0
|
|
48
|
+
self.t1 = time.time()
|
|
49
|
+
self.value = 0
|
|
50
|
+
|
|
43
51
|
|
|
44
52
|
class TimerExec:
|
|
45
53
|
def __init__(self, fn, period=1.0):
|
sciveo-0.1.81/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
|
{sciveo-0.1.81 → sciveo-0.1.83}/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.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/sci/time_series/__init__.py
RENAMED
|
File without changes
|
{sciveo-0.1.81 → sciveo-0.1.83}/sciveo/media/pipelines/processors/sci/time_series/predictor.py
RENAMED
|
File without changes
|
{sciveo-0.1.81 → sciveo-0.1.83}/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
|