sciveo 0.1.88__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.
Files changed (191) hide show
  1. {sciveo-0.1.88 → sciveo-0.1.90}/PKG-INFO +1 -1
  2. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/cli.py +4 -9
  3. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/capture/gst_server.py +26 -39
  4. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/ml/evaluation/object_detection.py +1 -1
  5. sciveo-0.1.90/sciveo/version.py +2 -0
  6. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo.egg-info/PKG-INFO +1 -1
  7. sciveo-0.1.88/sciveo/version.py +0 -2
  8. {sciveo-0.1.88 → sciveo-0.1.90}/README.md +0 -0
  9. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/__init__.py +0 -0
  10. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/api/__init__.py +0 -0
  11. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/api/base.py +0 -0
  12. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/api/predictors.py +0 -0
  13. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/api/server.py +0 -0
  14. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/api/upload.py +0 -0
  15. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/common/__init__.py +0 -0
  16. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/common/configuration.py +0 -0
  17. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/common/model.py +0 -0
  18. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/common/optimizers.py +0 -0
  19. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/common/sampling.py +0 -0
  20. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/content/__init__.py +0 -0
  21. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/content/dataset.py +0 -0
  22. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/content/experiment.py +0 -0
  23. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/content/project.py +0 -0
  24. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/content/runner.py +0 -0
  25. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/db/__init__.py +0 -0
  26. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/db/read_table.py +0 -0
  27. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/__init__.py +0 -0
  28. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/capture/__init__.py +0 -0
  29. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/capture/cam.py +0 -0
  30. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/capture/draw.py +0 -0
  31. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/capture/games/__init__.py +0 -0
  32. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/capture/games/asteroids/__init__.py +0 -0
  33. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/capture/games/asteroids/asteroid.py +0 -0
  34. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/capture/games/asteroids/base_move.py +0 -0
  35. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/capture/games/asteroids/circle.py +0 -0
  36. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/capture/games/asteroids/game.py +0 -0
  37. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/capture/games/asteroids/geometrics.py +0 -0
  38. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/capture/games/asteroids/gravity_ball.py +0 -0
  39. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/capture/games/asteroids/laser.py +0 -0
  40. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/capture/games/asteroids/rocket.py +0 -0
  41. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/capture/games/asteroids/space_asteroids.py +0 -0
  42. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/capture/games/asteroids/volume_bar.py +0 -0
  43. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/capture/motion_detection.py +0 -0
  44. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/capture/nvr.py +0 -0
  45. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/capture/readers.py +0 -0
  46. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/capture/rpi.py +0 -0
  47. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/capture/rtsp.py +0 -0
  48. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/ml/__init__.py +0 -0
  49. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/ml/base.py +0 -0
  50. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/ml/encoders/__init__.py +0 -0
  51. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/ml/encoders/base.py +0 -0
  52. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/ml/encoders/normalizer.py +0 -0
  53. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/ml/nlp/__init__.py +0 -0
  54. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/ml/nlp/search.py +0 -0
  55. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/ml/time_series/__init__.py +0 -0
  56. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/ml/time_series/dataset.py +0 -0
  57. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/ml/time_series/predictor.py +0 -0
  58. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/ml/time_series/trainer.py +0 -0
  59. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/ml/time_series/window_generator.py +0 -0
  60. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/__init__.py +0 -0
  61. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/base.py +0 -0
  62. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/job_daemon.py +0 -0
  63. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/layouts/__init__.py +0 -0
  64. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/layouts/base.py +0 -0
  65. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/pipeline.py +0 -0
  66. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/postprocessors/__init__.py +0 -0
  67. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/postprocessors/base.py +0 -0
  68. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/postprocessors/default.py +0 -0
  69. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/__init__.py +0 -0
  70. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/audio/__init__.py +0 -0
  71. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/audio/audio.py +0 -0
  72. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/audio/audio_extractor_process.py +0 -0
  73. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/aws.py +0 -0
  74. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/base.py +0 -0
  75. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/file/__init__.py +0 -0
  76. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/file/archive.py +0 -0
  77. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/image/__init__.py +0 -0
  78. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/image/album.py +0 -0
  79. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/image/album_in_image.py +0 -0
  80. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/image/depth_esimation.py +0 -0
  81. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/image/embeddings.py +0 -0
  82. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/image/filters.py +0 -0
  83. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/image/generators.py +0 -0
  84. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/image/histogram.py +0 -0
  85. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/image/mask.py +0 -0
  86. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/image/object_detection.py +0 -0
  87. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/image/resize.py +0 -0
  88. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/image/segmentation.py +0 -0
  89. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/image/watermark.py +0 -0
  90. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/media_info.py +0 -0
  91. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/nlp/__init__.py +0 -0
  92. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/nlp/address.py +0 -0
  93. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/qr.py +0 -0
  94. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/sci/__init__.py +0 -0
  95. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/sci/base.py +0 -0
  96. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/sci/dataset.py +0 -0
  97. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/sci/time_series/__init__.py +0 -0
  98. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/sci/time_series/predictor.py +0 -0
  99. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/sci/time_series/trainer.py +0 -0
  100. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/tpu_base.py +0 -0
  101. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/video/__init__.py +0 -0
  102. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/video/generators.py +0 -0
  103. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/video/motion_detection.py +0 -0
  104. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/video/resize.py +0 -0
  105. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/video/video_album.py +0 -0
  106. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/video/video_frames.py +0 -0
  107. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/processors/video/video_resample.py +0 -0
  108. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/queues.py +0 -0
  109. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/server.py +0 -0
  110. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/web/__init__.py +0 -0
  111. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/pipelines/web/server.py +0 -0
  112. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/tools/__init__.py +0 -0
  113. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/media/tools/video_interactive.py +0 -0
  114. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/ml/__init__.py +0 -0
  115. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/ml/base.py +0 -0
  116. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/ml/dataset/__init__.py +0 -0
  117. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/ml/dataset/object_detection.py +0 -0
  118. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/ml/evaluation/__init__.py +0 -0
  119. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/ml/evaluation/markdown.py +0 -0
  120. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/ml/images/__init__.py +0 -0
  121. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/ml/images/base.py +0 -0
  122. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/ml/images/description.py +0 -0
  123. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/ml/images/embeddings.py +0 -0
  124. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/ml/images/object_detection.py +0 -0
  125. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/ml/images/tools.py +0 -0
  126. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/ml/images/transformers.py +0 -0
  127. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/ml/nlp/__init__.py +0 -0
  128. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/ml/nlp/embeddings.py +0 -0
  129. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/ml/nlp/tokenizers/__init__.py +0 -0
  130. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/ml/nlp/tokenizers/bpe.py +0 -0
  131. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/ml/video/__init__.py +0 -0
  132. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/ml/video/description.py +0 -0
  133. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/monitoring/__init__.py +0 -0
  134. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/monitoring/monitor.py +0 -0
  135. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/monitoring/power/__init__.py +0 -0
  136. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/monitoring/power/ems300.py +0 -0
  137. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/monitoring/power/sim.py +0 -0
  138. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/monitoring/power/tools.py +0 -0
  139. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/monitoring/start.py +0 -0
  140. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/monitoring/watchdog/__init__.py +0 -0
  141. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/monitoring/watchdog/base.py +0 -0
  142. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/monitoring/watchdog/process.py +0 -0
  143. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/network/__init__.py +0 -0
  144. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/network/camera.py +0 -0
  145. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/network/sniffer.py +0 -0
  146. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/network/tools.py +0 -0
  147. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/tools/__init__.py +0 -0
  148. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/tools/array.py +0 -0
  149. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/tools/aws/__init__.py +0 -0
  150. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/tools/aws/priority_queue.py +0 -0
  151. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/tools/aws/s3.py +0 -0
  152. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/tools/common.py +0 -0
  153. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/tools/complexity.py +0 -0
  154. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/tools/compress.py +0 -0
  155. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/tools/configuration.py +0 -0
  156. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/tools/crypto.py +0 -0
  157. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/tools/daemon.py +0 -0
  158. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/tools/draw/__init__.py +0 -0
  159. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/tools/draw/contours.py +0 -0
  160. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/tools/formating.py +0 -0
  161. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/tools/hardware.py +0 -0
  162. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/tools/http.py +0 -0
  163. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/tools/logger.py +0 -0
  164. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/tools/os.py +0 -0
  165. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/tools/queue.py +0 -0
  166. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/tools/random.py +0 -0
  167. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/tools/remote.py +0 -0
  168. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/tools/simple_counter.py +0 -0
  169. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/tools/synchronized.py +0 -0
  170. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/tools/timers.py +0 -0
  171. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/tools/totp.py +0 -0
  172. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/web/__init__.py +0 -0
  173. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo/web/common.py +0 -0
  174. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo.egg-info/SOURCES.txt +0 -0
  175. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo.egg-info/dependency_links.txt +0 -0
  176. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo.egg-info/entry_points.txt +0 -0
  177. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo.egg-info/requires.txt +0 -0
  178. {sciveo-0.1.88 → sciveo-0.1.90}/sciveo.egg-info/top_level.txt +0 -0
  179. {sciveo-0.1.88 → sciveo-0.1.90}/setup.cfg +0 -0
  180. {sciveo-0.1.88 → sciveo-0.1.90}/setup.py +0 -0
  181. {sciveo-0.1.88 → sciveo-0.1.90}/test/test_complexity.py +0 -0
  182. {sciveo-0.1.88 → sciveo-0.1.90}/test/test_compress.py +0 -0
  183. {sciveo-0.1.88 → sciveo-0.1.90}/test/test_configuration.py +0 -0
  184. {sciveo-0.1.88 → sciveo-0.1.90}/test/test_crypto.py +0 -0
  185. {sciveo-0.1.88 → sciveo-0.1.90}/test/test_eval_markdown.py +0 -0
  186. {sciveo-0.1.88 → sciveo-0.1.90}/test/test_ml_datasets.py +0 -0
  187. {sciveo-0.1.88 → sciveo-0.1.90}/test/test_monitoring.py +0 -0
  188. {sciveo-0.1.88 → sciveo-0.1.90}/test/test_runner.py +0 -0
  189. {sciveo-0.1.88 → sciveo-0.1.90}/test/test_sampling.py +0 -0
  190. {sciveo-0.1.88 → sciveo-0.1.90}/test/test_tokenizers.py +0 -0
  191. {sciveo-0.1.88 → sciveo-0.1.90}/test/test_totp.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sciveo
3
- Version: 0.1.88
3
+ Version: 0.1.90
4
4
  Description-Content-Type: text/markdown
5
5
  Provides-Extra: mon
6
6
  Provides-Extra: net
@@ -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, CamPlayerDaemon
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")
@@ -149,7 +149,7 @@ class EvalObjectDetection:
149
149
  order = np.argsort(recall)
150
150
  try:
151
151
  ap = np.trapezoid(precision[order], recall[order])
152
- except Exception:
152
+ except AttributeError:
153
153
  ap = np.trapz(precision[order], recall[order])
154
154
  return ap, FP
155
155
 
@@ -0,0 +1,2 @@
1
+
2
+ __version__ = '0.1.90'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sciveo
3
- Version: 0.1.88
3
+ Version: 0.1.90
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.88'
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes