sciveo 0.1.85__tar.gz → 0.1.87__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.
Files changed (191) hide show
  1. {sciveo-0.1.85 → sciveo-0.1.87}/PKG-INFO +1 -1
  2. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/cli.py +18 -5
  3. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/capture/cam.py +39 -7
  4. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/capture/gst_server.py +3 -3
  5. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/tools/timers.py +19 -0
  6. sciveo-0.1.87/sciveo/version.py +2 -0
  7. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo.egg-info/PKG-INFO +1 -1
  8. sciveo-0.1.85/sciveo/version.py +0 -2
  9. {sciveo-0.1.85 → sciveo-0.1.87}/README.md +0 -0
  10. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/__init__.py +0 -0
  11. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/api/__init__.py +0 -0
  12. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/api/base.py +0 -0
  13. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/api/predictors.py +0 -0
  14. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/api/server.py +0 -0
  15. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/api/upload.py +0 -0
  16. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/common/__init__.py +0 -0
  17. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/common/configuration.py +0 -0
  18. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/common/model.py +0 -0
  19. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/common/optimizers.py +0 -0
  20. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/common/sampling.py +0 -0
  21. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/content/__init__.py +0 -0
  22. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/content/dataset.py +0 -0
  23. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/content/experiment.py +0 -0
  24. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/content/project.py +0 -0
  25. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/content/runner.py +0 -0
  26. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/db/__init__.py +0 -0
  27. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/db/read_table.py +0 -0
  28. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/__init__.py +0 -0
  29. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/capture/__init__.py +0 -0
  30. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/capture/draw.py +0 -0
  31. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/capture/games/__init__.py +0 -0
  32. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/capture/games/asteroids/__init__.py +0 -0
  33. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/capture/games/asteroids/asteroid.py +0 -0
  34. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/capture/games/asteroids/base_move.py +0 -0
  35. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/capture/games/asteroids/circle.py +0 -0
  36. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/capture/games/asteroids/game.py +0 -0
  37. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/capture/games/asteroids/geometrics.py +0 -0
  38. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/capture/games/asteroids/gravity_ball.py +0 -0
  39. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/capture/games/asteroids/laser.py +0 -0
  40. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/capture/games/asteroids/rocket.py +0 -0
  41. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/capture/games/asteroids/space_asteroids.py +0 -0
  42. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/capture/games/asteroids/volume_bar.py +0 -0
  43. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/capture/motion_detection.py +0 -0
  44. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/capture/nvr.py +0 -0
  45. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/capture/readers.py +0 -0
  46. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/capture/rpi.py +0 -0
  47. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/capture/rtsp.py +0 -0
  48. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/ml/__init__.py +0 -0
  49. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/ml/base.py +0 -0
  50. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/ml/encoders/__init__.py +0 -0
  51. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/ml/encoders/base.py +0 -0
  52. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/ml/encoders/normalizer.py +0 -0
  53. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/ml/nlp/__init__.py +0 -0
  54. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/ml/nlp/search.py +0 -0
  55. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/ml/time_series/__init__.py +0 -0
  56. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/ml/time_series/dataset.py +0 -0
  57. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/ml/time_series/predictor.py +0 -0
  58. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/ml/time_series/trainer.py +0 -0
  59. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/ml/time_series/window_generator.py +0 -0
  60. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/__init__.py +0 -0
  61. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/base.py +0 -0
  62. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/job_daemon.py +0 -0
  63. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/layouts/__init__.py +0 -0
  64. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/layouts/base.py +0 -0
  65. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/pipeline.py +0 -0
  66. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/postprocessors/__init__.py +0 -0
  67. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/postprocessors/base.py +0 -0
  68. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/postprocessors/default.py +0 -0
  69. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/__init__.py +0 -0
  70. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/audio/__init__.py +0 -0
  71. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/audio/audio.py +0 -0
  72. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/audio/audio_extractor_process.py +0 -0
  73. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/aws.py +0 -0
  74. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/base.py +0 -0
  75. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/file/__init__.py +0 -0
  76. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/file/archive.py +0 -0
  77. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/image/__init__.py +0 -0
  78. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/image/album.py +0 -0
  79. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/image/album_in_image.py +0 -0
  80. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/image/depth_esimation.py +0 -0
  81. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/image/embeddings.py +0 -0
  82. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/image/filters.py +0 -0
  83. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/image/generators.py +0 -0
  84. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/image/histogram.py +0 -0
  85. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/image/mask.py +0 -0
  86. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/image/object_detection.py +0 -0
  87. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/image/resize.py +0 -0
  88. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/image/segmentation.py +0 -0
  89. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/image/watermark.py +0 -0
  90. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/media_info.py +0 -0
  91. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/nlp/__init__.py +0 -0
  92. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/nlp/address.py +0 -0
  93. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/qr.py +0 -0
  94. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/sci/__init__.py +0 -0
  95. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/sci/base.py +0 -0
  96. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/sci/dataset.py +0 -0
  97. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/sci/time_series/__init__.py +0 -0
  98. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/sci/time_series/predictor.py +0 -0
  99. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/sci/time_series/trainer.py +0 -0
  100. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/tpu_base.py +0 -0
  101. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/video/__init__.py +0 -0
  102. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/video/generators.py +0 -0
  103. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/video/motion_detection.py +0 -0
  104. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/video/resize.py +0 -0
  105. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/video/video_album.py +0 -0
  106. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/video/video_frames.py +0 -0
  107. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/processors/video/video_resample.py +0 -0
  108. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/queues.py +0 -0
  109. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/server.py +0 -0
  110. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/web/__init__.py +0 -0
  111. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/pipelines/web/server.py +0 -0
  112. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/tools/__init__.py +0 -0
  113. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/media/tools/video_interactive.py +0 -0
  114. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/ml/__init__.py +0 -0
  115. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/ml/base.py +0 -0
  116. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/ml/dataset/__init__.py +0 -0
  117. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/ml/dataset/object_detection.py +0 -0
  118. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/ml/evaluation/__init__.py +0 -0
  119. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/ml/evaluation/markdown.py +0 -0
  120. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/ml/evaluation/object_detection.py +0 -0
  121. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/ml/images/__init__.py +0 -0
  122. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/ml/images/base.py +0 -0
  123. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/ml/images/description.py +0 -0
  124. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/ml/images/embeddings.py +0 -0
  125. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/ml/images/object_detection.py +0 -0
  126. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/ml/images/tools.py +0 -0
  127. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/ml/images/transformers.py +0 -0
  128. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/ml/nlp/__init__.py +0 -0
  129. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/ml/nlp/embeddings.py +0 -0
  130. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/ml/nlp/tokenizers/__init__.py +0 -0
  131. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/ml/nlp/tokenizers/bpe.py +0 -0
  132. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/ml/video/__init__.py +0 -0
  133. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/ml/video/description.py +0 -0
  134. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/monitoring/__init__.py +0 -0
  135. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/monitoring/monitor.py +0 -0
  136. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/monitoring/power/__init__.py +0 -0
  137. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/monitoring/power/ems300.py +0 -0
  138. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/monitoring/power/sim.py +0 -0
  139. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/monitoring/power/tools.py +0 -0
  140. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/monitoring/start.py +0 -0
  141. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/monitoring/watchdog/__init__.py +0 -0
  142. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/monitoring/watchdog/base.py +0 -0
  143. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/monitoring/watchdog/process.py +0 -0
  144. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/network/__init__.py +0 -0
  145. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/network/camera.py +0 -0
  146. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/network/sniffer.py +0 -0
  147. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/network/tools.py +0 -0
  148. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/tools/__init__.py +0 -0
  149. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/tools/array.py +0 -0
  150. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/tools/aws/__init__.py +0 -0
  151. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/tools/aws/priority_queue.py +0 -0
  152. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/tools/aws/s3.py +0 -0
  153. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/tools/common.py +0 -0
  154. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/tools/complexity.py +0 -0
  155. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/tools/compress.py +0 -0
  156. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/tools/configuration.py +0 -0
  157. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/tools/crypto.py +0 -0
  158. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/tools/daemon.py +0 -0
  159. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/tools/draw/__init__.py +0 -0
  160. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/tools/draw/contours.py +0 -0
  161. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/tools/formating.py +0 -0
  162. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/tools/hardware.py +0 -0
  163. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/tools/http.py +0 -0
  164. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/tools/logger.py +0 -0
  165. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/tools/os.py +0 -0
  166. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/tools/queue.py +0 -0
  167. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/tools/random.py +0 -0
  168. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/tools/remote.py +0 -0
  169. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/tools/simple_counter.py +0 -0
  170. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/tools/synchronized.py +0 -0
  171. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/tools/totp.py +0 -0
  172. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/web/__init__.py +0 -0
  173. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo/web/common.py +0 -0
  174. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo.egg-info/SOURCES.txt +0 -0
  175. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo.egg-info/dependency_links.txt +0 -0
  176. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo.egg-info/entry_points.txt +0 -0
  177. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo.egg-info/requires.txt +0 -0
  178. {sciveo-0.1.85 → sciveo-0.1.87}/sciveo.egg-info/top_level.txt +0 -0
  179. {sciveo-0.1.85 → sciveo-0.1.87}/setup.cfg +0 -0
  180. {sciveo-0.1.85 → sciveo-0.1.87}/setup.py +0 -0
  181. {sciveo-0.1.85 → sciveo-0.1.87}/test/test_complexity.py +0 -0
  182. {sciveo-0.1.85 → sciveo-0.1.87}/test/test_compress.py +0 -0
  183. {sciveo-0.1.85 → sciveo-0.1.87}/test/test_configuration.py +0 -0
  184. {sciveo-0.1.85 → sciveo-0.1.87}/test/test_crypto.py +0 -0
  185. {sciveo-0.1.85 → sciveo-0.1.87}/test/test_eval_markdown.py +0 -0
  186. {sciveo-0.1.85 → sciveo-0.1.87}/test/test_ml_datasets.py +0 -0
  187. {sciveo-0.1.85 → sciveo-0.1.87}/test/test_monitoring.py +0 -0
  188. {sciveo-0.1.85 → sciveo-0.1.87}/test/test_runner.py +0 -0
  189. {sciveo-0.1.85 → sciveo-0.1.87}/test/test_sampling.py +0 -0
  190. {sciveo-0.1.85 → sciveo-0.1.87}/test/test_tokenizers.py +0 -0
  191. {sciveo-0.1.85 → sciveo-0.1.87}/test/test_totp.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sciveo
3
- Version: 0.1.85
3
+ Version: 0.1.87
4
4
  Description-Content-Type: text/markdown
5
5
  Provides-Extra: mon
6
6
  Provides-Extra: net
@@ -28,7 +28,7 @@ def main():
28
28
  'command',
29
29
  choices=[
30
30
  'init', 'monitor', 'scan',
31
- 'nvr', 'rtsp',
31
+ 'nvr', 'rtsp', 'capture',
32
32
  'predictors-server', 'media-server', 'media-run',
33
33
  'watchdog',
34
34
  ],
@@ -114,7 +114,7 @@ def main():
114
114
  player = RTSPVideoPlayer(url)
115
115
  player.run()
116
116
  else:
117
- from sciveo.media.capture.gst_server import CamFactory, ColorBarFactory, CamDisplayDaemon
117
+ from sciveo.media.capture.gst_server import CamFactory, ColorBarFactory, CamPlayerDaemon
118
118
  data = json.loads(args.data_json)
119
119
  if args.src_id is not None:
120
120
  server = CamFactory(args.src_id, args.width, args.height, args.fps, configuration=data)
@@ -125,11 +125,24 @@ def main():
125
125
  # warning("RTSP src", args.src, "not recognised")
126
126
  server = CamFactory(args.src, args.width, args.height, args.fps, configuration=data)
127
127
  if args.display is not None:
128
- display_daemon = CamDisplayDaemon(server, host=args.host, port=args.port, stream=args.stream, display=args.display)
129
- display_daemon.start()
130
- display_daemon.display()
128
+ player = CamPlayerDaemon(server, host=args.host, port=args.port, stream=args.stream, display=args.display)
129
+ player.start()
130
+ player.play()
131
131
  else:
132
132
  server.serve(host=args.host, port=args.port, stream=args.stream)
133
+ elif args.command == 'capture':
134
+ from sciveo.media.capture.cam import CameraDaemon, ScreenDaemon, CapturePlayer
135
+ if args.src == "screen":
136
+ cap = ScreenDaemon(src=args.src_id, region=json.loads(args.data_json))
137
+ elif args.src == "cam":
138
+ cap = CameraDaemon(cam_id=args.src_id)
139
+ elif args.src == "rpi":
140
+ from sciveo.media.capture.rpi import RPICamera
141
+ cap = RPICamera(cam_id=args.src_id, width=args.width, height=args.height)
142
+ else:
143
+ cap = CameraDaemon(cam_id=args.src_id)
144
+ player = CapturePlayer(cap=cap, tag=args.src, fps=args.fps or 0)
145
+ player.play()
133
146
  elif args.command == 'media-server':
134
147
  from sciveo.media.pipelines.server import __START_SCIVEO_MEDIA_SERVER__
135
148
  __START_SCIVEO_MEDIA_SERVER__()
@@ -18,7 +18,7 @@ import mss
18
18
 
19
19
  from sciveo.tools.logger import *
20
20
  from sciveo.tools.daemon import DaemonBase
21
- from sciveo.tools.timers import FPSCounter
21
+ from sciveo.tools.timers import FPSCounter, FPSDelay
22
22
 
23
23
 
24
24
  class CaptureBase(DaemonBase):
@@ -153,11 +153,43 @@ class ScreenDaemon(CaptureBase):
153
153
  self.frame = frame
154
154
 
155
155
 
156
+ class CapturePlayer:
157
+ def __init__(self, cap, tag="capture", fps=0, key_quit='q'):
158
+ self.cap = cap
159
+ self.tag = tag
160
+ self.key_quit = key_quit
161
+
162
+ self.fps = fps
163
+ if self.fps > 0:
164
+ self.delay = 1.0 / self.fps
165
+ else:
166
+ self.delay = 0
167
+
168
+ self.fps_player = FPSCounter(period=10, tag=f"play", round_value=1)
169
+ self.fps_delay = FPSDelay(self.fps)
170
+ self.cap.start()
171
+
172
+ def play(self):
173
+ info("Press", self.key_quit, "to quit")
174
+ while(True):
175
+ self.fps_delay.start()
176
+
177
+ frame = self.cap.read()
178
+ if frame is None:
179
+ time.sleep(0.1)
180
+ continue
181
+ cv2.imshow(f"{self.tag} {frame.shape}", frame)
182
+ if cv2.waitKey(1) & 0xFF == ord(self.key_quit):
183
+ break
184
+
185
+ self.fps_player.update()
186
+
187
+ self.fps_delay.wait()
188
+
189
+ self.cap.close()
190
+
191
+
156
192
  if __name__ == '__main__':
157
193
  cap = ScreenDaemon(src=1, region=[300,300, 800,800])
158
- cap.start()
159
- while(True):
160
- frame = cap.read()
161
- frame = cv2.resize(frame, (250, 250))
162
- cv2.imshow("captured", frame)
163
- cv2.waitKey(1)
194
+ player = CapturePlayer(cap, tag="screen", key_quit='q')
195
+ player.play()
@@ -11,7 +11,6 @@
11
11
 
12
12
  import numpy as np
13
13
  import time
14
- import cv2
15
14
 
16
15
  import gi
17
16
  gi.require_version('Gst', '1.0')
@@ -173,7 +172,7 @@ class CamFactory(ColorBarFactory):
173
172
  return frame
174
173
 
175
174
 
176
- class CamDisplayDaemon(DaemonBase):
175
+ class CamPlayerDaemon(DaemonBase):
177
176
  def __init__(self, cam_factory, host="0.0.0.0", port=8554, stream="test", display=0):
178
177
  super().__init__()
179
178
  self.cam_factory = cam_factory
@@ -186,7 +185,8 @@ class CamDisplayDaemon(DaemonBase):
186
185
  def loop(self):
187
186
  self.cam_factory.serve(host=self.host, port=self.port, stream=self.stream)
188
187
 
189
- def display(self):
188
+ def play(self):
189
+ import cv2
190
190
  while(True):
191
191
  frame = self.cam_factory.read_cam_frame()
192
192
  if frame is None:
@@ -14,6 +14,25 @@ import time
14
14
  from sciveo.tools.logger import *
15
15
 
16
16
 
17
+ class FPSDelay:
18
+ def __init__(self, fps):
19
+ self.fps = fps
20
+ if fps > 0:
21
+ self.delay = 1.0 / fps
22
+ else:
23
+ self.delay = 0
24
+
25
+ def start(self):
26
+ self.from_time = time.time()
27
+
28
+ def wait(self):
29
+ current_time = time.time()
30
+ elapsed_time = current_time - self.from_time
31
+ time_to_wait = self.delay - elapsed_time
32
+ if time_to_wait > 0:
33
+ time.sleep(time_to_wait)
34
+
35
+
17
36
  class FPSCounter:
18
37
  def __init__(self, period=1, tag="", print_period=1, printer=debug, round_value=2):
19
38
  self.period = period
@@ -0,0 +1,2 @@
1
+
2
+ __version__ = '0.1.87'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sciveo
3
- Version: 0.1.85
3
+ Version: 0.1.87
4
4
  Description-Content-Type: text/markdown
5
5
  Provides-Extra: mon
6
6
  Provides-Extra: net
@@ -1,2 +0,0 @@
1
-
2
- __version__ = '0.1.85'
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes