@camera.ui/server 0.0.50-internal.0 → 0.0.50-internal.1

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 (387) hide show
  1. package/dist/interface/index.html +44 -44
  2. package/dist/interface/js/{@primevue.OhxoO3MD.0.0.50-internal.0.js → @primevue.CiB2EGly.0.0.50-internal.1.js} +1 -1
  3. package/dist/interface/js/{@tanstack.D1IL6eOv.0.0.50-internal.0.js → @tanstack.DxMw_rJn.0.0.50-internal.1.js} +1 -1
  4. package/dist/interface/js/{@vee-validate.BGPyWWTh.0.0.50-internal.0.js → @vee-validate.RxZ3hn6V.0.0.50-internal.1.js} +1 -1
  5. package/dist/interface/js/{@vueuse.BsKtqdiG.0.0.50-internal.0.js → @vueuse.C-k73ACm.0.0.50-internal.1.js} +1 -1
  6. package/dist/interface/js/{Adminpanel.D93Kvbwp.0.0.50-internal.0.js → Adminpanel.DumNu6GD.0.0.50-internal.1.js} +1 -1
  7. package/dist/interface/js/{Camera.DF2l3OMA.0.0.50-internal.0.js → Camera.BuosoqFl.0.0.50-internal.1.js} +1 -1
  8. package/dist/interface/js/{Cameras.YzvZccdv.0.0.50-internal.0.js → Cameras.A7NJflGG.0.0.50-internal.1.js} +2 -2
  9. package/dist/interface/js/Cammesh.Dv3C0UiR.0.0.50-internal.1.js +1 -0
  10. package/dist/interface/js/{Camview.CB7_HnoQ.0.0.50-internal.0.js → Camview.GgjJp7JR.0.0.50-internal.1.js} +1 -1
  11. package/dist/interface/js/{Config.BwflsWTm.0.0.50-internal.0.js → Config.BL3L-BFE.0.0.50-internal.1.js} +2 -2
  12. package/dist/interface/js/{Console.DZM8pN8Q.0.0.50-internal.0.js → Console.CxwRmUVF.0.0.50-internal.1.js} +1 -1
  13. package/dist/interface/js/{CuiConsole.BXXU7Gth.0.0.50-internal.0.js → CuiConsole.D16kkT6R.0.0.50-internal.1.js} +1 -1
  14. package/dist/interface/js/{CuiPluginCard.YFOrpbVD.0.0.50-internal.0.js → CuiPluginCard.Bkp__d8n.0.0.50-internal.1.js} +1 -1
  15. package/dist/interface/js/{CuiTimeline.VV5KSJd5.0.0.50-internal.0.js → CuiTimeline.C9HKvo0G.0.0.50-internal.1.js} +1 -1
  16. package/dist/interface/js/{FirstSteps.b-nvymgb.0.0.50-internal.0.js → FirstSteps.QuJjtAtF.0.0.50-internal.1.js} +1 -1
  17. package/dist/interface/js/{Plugin.BOMpVEwM.0.0.50-internal.0.js → Plugin.BLUUbEej.0.0.50-internal.1.js} +1 -1
  18. package/dist/interface/js/{Plugins.DdPwaUDA.0.0.50-internal.0.js → Plugins.DviCIk7w.0.0.50-internal.1.js} +1 -1
  19. package/dist/interface/js/Recordings.Dsp07cHs.0.0.50-internal.1.js +1 -0
  20. package/dist/interface/js/{Settings.D24ttaPu.0.0.50-internal.0.js → Settings.Clx4y9gP.0.0.50-internal.1.js} +1 -1
  21. package/dist/interface/js/{SettingsAccount.ms3aqz4E.0.0.50-internal.0.js → SettingsAccount.cfY4-PYd.0.0.50-internal.1.js} +1 -1
  22. package/dist/interface/js/SettingsAppearance.CBGZAazb.0.0.50-internal.1.js +1 -0
  23. package/dist/interface/js/{SettingsAppearance.vue_vue_type_script_setup_true_lang.CBQ6lL3T.0.0.50-internal.0.js → SettingsAppearance.vue_vue_type_script_setup_true_lang.kxAPXcBy.0.0.50-internal.1.js} +1 -1
  24. package/dist/interface/js/{SettingsBackup.BPEc4Rjg.0.0.50-internal.0.js → SettingsBackup.DOaJA4pp.0.0.50-internal.1.js} +1 -1
  25. package/dist/interface/js/SettingsRecordings.BGcwL6tk.0.0.50-internal.1.js +1 -0
  26. package/dist/interface/js/{SettingsRemote.BL5nXbUT.0.0.50-internal.0.js → SettingsRemote.BVU_w1Jm.0.0.50-internal.1.js} +1 -1
  27. package/dist/interface/js/{SettingsSystem.D7T0AIpm.0.0.50-internal.0.js → SettingsSystem.P0vy90vA.0.0.50-internal.1.js} +1 -1
  28. package/dist/interface/js/{SettingsUsers.1u0vCOVG.0.0.50-internal.0.js → SettingsUsers.DaP5m7eo.0.0.50-internal.1.js} +1 -1
  29. package/dist/interface/js/{VersionsHandler.vue_vue_type_script_setup_true_lang.xDishkkS.0.0.50-internal.0.js → VersionsHandler.vue_vue_type_script_setup_true_lang.MmrWYW3K.0.0.50-internal.1.js} +1 -1
  30. package/dist/interface/js/{ace-builds.D1nmvCwb.0.0.50-internal.0.js → ace-builds.C0aqA_3x.0.0.50-internal.1.js} +2 -2
  31. package/dist/interface/js/{ace.config.G96T2z54.0.0.50-internal.0.js → ace.config.C9wgzklI.0.0.50-internal.1.js} +1 -1
  32. package/dist/interface/js/{backup.B_Gzxtp_.0.0.50-internal.0.js → backup.BeH6lJ5t.0.0.50-internal.1.js} +1 -1
  33. package/dist/interface/js/{chart.js.CP_nMnnf.0.0.50-internal.0.js → chart.js.BQHSWV_g.0.0.50-internal.1.js} +1 -1
  34. package/dist/interface/js/{close-circle.DYLuVIOg.0.0.50-internal.0.js → close-circle.DDKMxauw.0.0.50-internal.1.js} +1 -1
  35. package/dist/interface/js/{dnd-core.T9OeW7mu.0.0.50-internal.0.js → dnd-core.dWz9rJqH.0.0.50-internal.1.js} +1 -1
  36. package/dist/interface/js/{draggabilly.D3zGcBb3.0.0.50-internal.0.js → draggabilly.D-iZIS1n.0.0.50-internal.1.js} +1 -1
  37. package/dist/interface/js/{engine.io-client.kITRnq-g.0.0.50-internal.0.js → engine.io-client.BwxOddB_.0.0.50-internal.1.js} +1 -1
  38. package/dist/interface/js/{fast-deep-equal.Bpc9mIsj.0.0.50-internal.0.js → fast-deep-equal.Dz96RC_N.0.0.50-internal.1.js} +1 -1
  39. package/dist/interface/js/{highlight.js.BlSXU-Wb.0.0.50-internal.0.js → highlight.js.CmcM8OM6.0.0.50-internal.1.js} +1 -1
  40. package/dist/interface/js/{linkify-it.C3N1lWsJ.0.0.50-internal.0.js → linkify-it.BgLcBzlw.0.0.50-internal.1.js} +1 -1
  41. package/dist/interface/js/{main.D0YR3Jat.0.0.50-internal.0.js → main.6bOgRV7D.0.0.50-internal.1.js} +3 -3
  42. package/dist/interface/js/{markdown-it.Dj0dt5s2.0.0.50-internal.0.js → markdown-it.CTgfs-3p.0.0.50-internal.1.js} +1 -1
  43. package/dist/interface/js/{nprogress.BwQWDcGj.0.0.50-internal.0.js → nprogress.CMhnq8jS.0.0.50-internal.1.js} +1 -1
  44. package/dist/interface/js/{pinia.DRh7plEC.0.0.50-internal.0.js → pinia.CuC5ZfNs.0.0.50-internal.1.js} +1 -1
  45. package/dist/interface/js/{primevue.Cl58krXf.0.0.50-internal.0.js → primevue.DmwjJ4xV.0.0.50-internal.1.js} +1 -1
  46. package/dist/interface/js/{qrcode.C1sDj6P8.0.0.50-internal.0.js → qrcode.DGZO3j1c.0.0.50-internal.1.js} +1 -1
  47. package/dist/interface/js/{react-dnd-touch-backend.BA4WhUJo.0.0.50-internal.0.js → react-dnd-touch-backend.CEGHlD-T.0.0.50-internal.1.js} +1 -1
  48. package/dist/interface/js/{refresh-rounded.D_SmhhUf.0.0.50-internal.0.js → refresh-rounded.D0keXzBc.0.0.50-internal.1.js} +1 -1
  49. package/dist/interface/js/{rxjs.C-fTBwEO.0.0.50-internal.0.js → rxjs.CiDbFOB0.0.0.50-internal.1.js} +1 -1
  50. package/dist/interface/js/{socket.io-client.DKrRxgjP.0.0.50-internal.0.js → socket.io-client.BPcXPAHG.0.0.50-internal.1.js} +1 -1
  51. package/dist/interface/js/{socket.io-parser.EXj3YDH2.0.0.50-internal.0.js → socket.io-parser.DSGzrW_l.0.0.50-internal.1.js} +1 -1
  52. package/dist/interface/js/{system.CY8rGd-Q.0.0.50-internal.0.js → system.BKlEObmx.0.0.50-internal.1.js} +1 -1
  53. package/dist/interface/js/{trash-fill.CMnCN3Oy.0.0.50-internal.0.js → trash-fill.BDFILs86.0.0.50-internal.1.js} +1 -1
  54. package/dist/interface/js/{unidragger.D0w6Tqtt.0.0.50-internal.0.js → unidragger.DcxsxHCS.0.0.50-internal.1.js} +1 -1
  55. package/dist/interface/js/{vee-validate.BeiObIH8.0.0.50-internal.0.js → vee-validate.BGRg3oQ8.0.0.50-internal.1.js} +1 -1
  56. package/dist/interface/js/{vue-chartjs.DtdZdiYw.0.0.50-internal.0.js → vue-chartjs.B9yk2de7.0.0.50-internal.1.js} +1 -1
  57. package/dist/interface/js/{vue-i18n.BW2bx_6z.0.0.50-internal.0.js → vue-i18n.DXDZITpf.0.0.50-internal.1.js} +1 -1
  58. package/dist/interface/js/{vue-inline-svg.BJkQGmKz.0.0.50-internal.0.js → vue-inline-svg.BDYaTfbi.0.0.50-internal.1.js} +1 -1
  59. package/dist/interface/js/{vue-router.B2mOXHaC.0.0.50-internal.0.js → vue-router.CFEDA008.0.0.50-internal.1.js} +1 -1
  60. package/dist/interface/js/{vue-zoomable.BKDyCJE7.0.0.50-internal.0.js → vue-zoomable.zqTafMgD.0.0.50-internal.1.js} +1 -1
  61. package/dist/interface/js/{vue3-dnd.DRK24CBp.0.0.50-internal.0.js → vue3-dnd.BxM3dbYs.0.0.50-internal.1.js} +1 -1
  62. package/dist/interface/js/{zoom-out.DxvzgVEo.0.0.50-internal.0.js → zoom-out.B6SY9IIj.0.0.50-internal.1.js} +1 -1
  63. package/dist/interface/sw.js +1 -1
  64. package/dist/server/package.json +1 -1
  65. package/package.json +1 -1
  66. package/.prettierignore +0 -12
  67. package/.prettierrc.json +0 -12
  68. package/artillery.yaml +0 -29
  69. package/bin/cameraui-server.ts +0 -11
  70. package/dist/interface/js/Cammesh.D-6dAROQ.0.0.50-internal.0.js +0 -1
  71. package/dist/interface/js/Recordings.DhxjIW7e.0.0.50-internal.0.js +0 -1
  72. package/dist/interface/js/SettingsAppearance.DsTjKXk1.0.0.50-internal.0.js +0 -1
  73. package/dist/interface/js/SettingsRecordings.DgW7M0jj.0.0.50-internal.0.js +0 -1
  74. package/eslint.config.js +0 -103
  75. package/localdeps.txt +0 -10
  76. package/mypy.ini +0 -30
  77. package/requirements.txt +0 -15
  78. package/ruff.toml +0 -90
  79. package/src/__init__.py +0 -0
  80. package/src/_camera_ui_tools/__init__.py +0 -0
  81. package/src/_camera_ui_tools/__pycache__/__init__.cpython-311.pyc +0 -0
  82. package/src/api/controllers/api.controller.ts +0 -19
  83. package/src/api/controllers/auth.controller.ts +0 -294
  84. package/src/api/controllers/backup.controller.ts +0 -72
  85. package/src/api/controllers/cameras.controller.ts +0 -1029
  86. package/src/api/controllers/config.controller.ts +0 -102
  87. package/src/api/controllers/files.controller.ts +0 -35
  88. package/src/api/controllers/frameWorkers.controller.ts +0 -109
  89. package/src/api/controllers/plugins.controller.ts +0 -1206
  90. package/src/api/controllers/system.controller.ts +0 -273
  91. package/src/api/controllers/users.controller.ts +0 -648
  92. package/src/api/database/checks.ts +0 -268
  93. package/src/api/database/constants.ts +0 -8
  94. package/src/api/database/index.ts +0 -262
  95. package/src/api/database/migration.ts +0 -62
  96. package/src/api/database/selfcheck.ts +0 -492
  97. package/src/api/database/types.ts +0 -104
  98. package/src/api/go2rtc/api/application.ts +0 -48
  99. package/src/api/go2rtc/api/config.ts +0 -61
  100. package/src/api/go2rtc/api/discover.ts +0 -197
  101. package/src/api/go2rtc/api/index.ts +0 -49
  102. package/src/api/go2rtc/api/snapshot.ts +0 -44
  103. package/src/api/go2rtc/api/streams.ts +0 -168
  104. package/src/api/go2rtc/index.ts +0 -43
  105. package/src/api/go2rtc/queue.ts +0 -50
  106. package/src/api/go2rtc/types.ts +0 -174
  107. package/src/api/index.ts +0 -286
  108. package/src/api/middlewares/authPermission.middleware.ts +0 -46
  109. package/src/api/middlewares/authValidation.middleware.ts +0 -160
  110. package/src/api/middlewares/pagination.middleware.ts +0 -67
  111. package/src/api/middlewares/socketAuth.middleware.ts +0 -136
  112. package/src/api/plugins/header.plugin.ts +0 -15
  113. package/src/api/plugins/logger.plugin.ts +0 -44
  114. package/src/api/plugins/proxy.plugin.ts +0 -255
  115. package/src/api/plugins/socket.plugin.ts +0 -28
  116. package/src/api/plugins/system.plugin.ts +0 -48
  117. package/src/api/plugins/useragent.plugin.ts +0 -19
  118. package/src/api/routes/api.routes.ts +0 -10
  119. package/src/api/routes/auth.routes.ts +0 -56
  120. package/src/api/routes/backup.routes.ts +0 -28
  121. package/src/api/routes/cameras.routes.ts +0 -281
  122. package/src/api/routes/config.routes.ts +0 -66
  123. package/src/api/routes/files.routes.ts +0 -15
  124. package/src/api/routes/frameWorkers.routes.ts +0 -39
  125. package/src/api/routes/index.ts +0 -37
  126. package/src/api/routes/plugins.routes.ts +0 -420
  127. package/src/api/routes/system.routes.ts +0 -101
  128. package/src/api/routes/users.routes.ts +0 -167
  129. package/src/api/schemas/backup.schema.ts +0 -112
  130. package/src/api/schemas/cameras.schema.ts +0 -479
  131. package/src/api/schemas/config.schema.ts +0 -38
  132. package/src/api/schemas/go2rtc.schema.ts +0 -189
  133. package/src/api/schemas/plugins.schema.ts +0 -126
  134. package/src/api/schemas/storage.schema.ts +0 -11
  135. package/src/api/schemas/system.schema.ts +0 -45
  136. package/src/api/schemas/users.schema.ts +0 -185
  137. package/src/api/services/auth.service.ts +0 -210
  138. package/src/api/services/backup.service.ts +0 -144
  139. package/src/api/services/cameras.service.ts +0 -671
  140. package/src/api/services/plugins.service.ts +0 -470
  141. package/src/api/services/system.service.ts +0 -85
  142. package/src/api/services/users.service.ts +0 -276
  143. package/src/api/types/index.ts +0 -675
  144. package/src/api/utils/cert.ts +0 -254
  145. package/src/api/utils/constants.ts +0 -17
  146. package/src/api/utils/fetch.ts +0 -21
  147. package/src/api/utils/moveFiles.ts +0 -45
  148. package/src/api/utils/parse.ts +0 -17
  149. package/src/api/websocket/index.ts +0 -110
  150. package/src/api/websocket/nsp/logs.ts +0 -240
  151. package/src/api/websocket/nsp/main.ts +0 -27
  152. package/src/api/websocket/nsp/metrics.ts +0 -301
  153. package/src/api/websocket/nsp/notifications.ts +0 -43
  154. package/src/api/websocket/nsp/plugins.ts +0 -37
  155. package/src/api/websocket/nsp/server.ts +0 -220
  156. package/src/api/websocket/nsp/status.ts +0 -77
  157. package/src/api/websocket/types.ts +0 -55
  158. package/src/api.ts +0 -163
  159. package/src/camera/classes.ts +0 -32
  160. package/src/camera/controller.ts +0 -579
  161. package/src/camera/device.ts +0 -422
  162. package/src/camera/frameWorker.ts +0 -403
  163. package/src/camera/index.ts +0 -679
  164. package/src/camera/interfaces.ts +0 -95
  165. package/src/camera/iou.ts +0 -153
  166. package/src/camera/polygon.ts +0 -226
  167. package/src/camera/python/__init__.py +0 -0
  168. package/src/camera/python/__pycache__/__init__.cpython-311.pyc +0 -0
  169. package/src/camera/python/__pycache__/classes.cpython-311.pyc +0 -0
  170. package/src/camera/python/__pycache__/delegate_controller.cpython-311.pyc +0 -0
  171. package/src/camera/python/__pycache__/interfaces.cpython-311.pyc +0 -0
  172. package/src/camera/python/__pycache__/iou.cpython-310.pyc +0 -0
  173. package/src/camera/python/__pycache__/iou.cpython-311.pyc +0 -0
  174. package/src/camera/python/__pycache__/iou2.cpython-310.pyc +0 -0
  175. package/src/camera/python/__pycache__/polygon.cpython-311.pyc +0 -0
  176. package/src/camera/python/__pycache__/typings.cpython-311.pyc +0 -0
  177. package/src/camera/python/__pycache__/video_frame.cpython-311.pyc +0 -0
  178. package/src/camera/python/classes.py +0 -41
  179. package/src/camera/python/interfaces.py +0 -130
  180. package/src/camera/python/iou.py +0 -158
  181. package/src/camera/python/polygon.py +0 -230
  182. package/src/camera/python/test/__pycache__/polygon.cpython-310.pyc +0 -0
  183. package/src/camera/python/test/iou_test.py +0 -799
  184. package/src/camera/python/test/polygon.py +0 -238
  185. package/src/camera/python/test/polygon_test.py +0 -256
  186. package/src/camera/python/test/polygon_test2.py +0 -484
  187. package/src/camera/python/typings.py +0 -50
  188. package/src/camera/python/video_frame.py +0 -143
  189. package/src/camera/session.ts +0 -192
  190. package/src/camera/streaming/fmp4-session.ts +0 -390
  191. package/src/camera/streaming/peer-connection.ts +0 -273
  192. package/src/camera/streaming/rtsp-session.ts +0 -331
  193. package/src/camera/streaming/webrtc-connection.ts +0 -260
  194. package/src/camera/streaming/werift-session.ts +0 -317
  195. package/src/camera/test/iou_test.ts +0 -761
  196. package/src/camera/test/polygon.test.ts +0 -611
  197. package/src/camera/test/polygon_test.ts +0 -210
  198. package/src/camera/types.ts +0 -48
  199. package/src/camera/utils.ts +0 -489
  200. package/src/camera/videoFrame.ts +0 -123
  201. package/src/cloud/index.ts +0 -61
  202. package/src/cloud/remote/cloudflare.ts +0 -18
  203. package/src/cloud/remote/upnp.ts +0 -18
  204. package/src/cloud/remote/utils.ts +0 -24
  205. package/src/cloud/types.ts +0 -16
  206. package/src/decoder/child.ts +0 -883
  207. package/src/decoder/imageUtils.ts +0 -275
  208. package/src/decoder/manager.ts +0 -251
  209. package/src/decoder/python/__init__.py +0 -0
  210. package/src/decoder/python/__pycache__/__init__.cpython-311.pyc +0 -0
  211. package/src/decoder/python/__pycache__/image_utils.cpython-311.pyc +0 -0
  212. package/src/decoder/python/__pycache__/typings.cpython-311.pyc +0 -0
  213. package/src/decoder/python/__pycache__/utils.cpython-311.pyc +0 -0
  214. package/src/decoder/python/child.py +0 -903
  215. package/src/decoder/python/image_utils.py +0 -196
  216. package/src/decoder/python/pool.py +0 -45
  217. package/src/decoder/python/test/group.py +0 -62
  218. package/src/decoder/python/test/motion.mp4 +0 -0
  219. package/src/decoder/python/test/motion2.mp4 +0 -0
  220. package/src/decoder/python/test/opencl.cl +0 -70
  221. package/src/decoder/python/test/opencl2.cl +0 -130
  222. package/src/decoder/python/test/test.py +0 -427
  223. package/src/decoder/python/test/test1.jpg +0 -0
  224. package/src/decoder/python/test/test1_resized.jpg +0 -0
  225. package/src/decoder/python/test/test2.jpg +0 -0
  226. package/src/decoder/python/test/test2.py +0 -451
  227. package/src/decoder/python/test/test2_resized.jpg +0 -0
  228. package/src/decoder/python/test/test3.jpg +0 -0
  229. package/src/decoder/python/test/utils.py +0 -50
  230. package/src/decoder/python/typings.py +0 -57
  231. package/src/decoder/python/utils.py +0 -70
  232. package/src/decoder/test/child.ts +0 -117
  233. package/src/decoder/test/ffmpeg.ts +0 -371
  234. package/src/decoder/test/test.ts +0 -182
  235. package/src/decoder/types.ts +0 -27
  236. package/src/decoder/utils.ts +0 -64
  237. package/src/decoder/wasm/asconfig.json +0 -28
  238. package/src/decoder/wasm/assembly/console.ts +0 -1
  239. package/src/decoder/wasm/assembly/index.ts +0 -890
  240. package/src/decoder/wasm/build/decoder.d.ts +0 -43
  241. package/src/decoder/wasm/build/decoder.js +0 -108
  242. package/src/decoder/wasm/build/decoder.wasm +0 -0
  243. package/src/decoder/wasm/tsconfig.json +0 -5
  244. package/src/decoder/worker.ts +0 -113
  245. package/src/go2rtc/index.ts +0 -324
  246. package/src/go2rtc/types.ts +0 -88
  247. package/src/main.ts +0 -267
  248. package/src/manager/coreManager.ts +0 -78
  249. package/src/manager/deviceManager.ts +0 -132
  250. package/src/manager/types.ts +0 -17
  251. package/src/plugins/index.ts +0 -443
  252. package/src/plugins/plugin.ts +0 -177
  253. package/src/plugins/runtime/base.ts +0 -282
  254. package/src/plugins/runtime/index.ts +0 -15
  255. package/src/plugins/runtime/node/child.ts +0 -193
  256. package/src/plugins/runtime/node/index.ts +0 -67
  257. package/src/plugins/runtime/node/plugin.ts +0 -122
  258. package/src/plugins/runtime/node/pluginApi.ts +0 -27
  259. package/src/plugins/runtime/node/proxy/cameraDevice.ts +0 -299
  260. package/src/plugins/runtime/node/proxy/coreManager.ts +0 -128
  261. package/src/plugins/runtime/node/proxy/deviceManager.ts +0 -187
  262. package/src/plugins/runtime/node/storage.ts +0 -312
  263. package/src/plugins/runtime/node/storageController.ts +0 -91
  264. package/src/plugins/runtime/python/__init__.py +0 -0
  265. package/src/plugins/runtime/python/__pycache__/__init__.cpython-311.pyc +0 -0
  266. package/src/plugins/runtime/python/__pycache__/camera_storage.cpython-311.pyc +0 -0
  267. package/src/plugins/runtime/python/__pycache__/config_service.cpython-311.pyc +0 -0
  268. package/src/plugins/runtime/python/__pycache__/constants.cpython-311.pyc +0 -0
  269. package/src/plugins/runtime/python/__pycache__/ipc.cpython-311.pyc +0 -0
  270. package/src/plugins/runtime/python/__pycache__/logger.cpython-311.pyc +0 -0
  271. package/src/plugins/runtime/python/__pycache__/message_queue.cpython-311.pyc +0 -0
  272. package/src/plugins/runtime/python/__pycache__/namespaces.cpython-311.pyc +0 -0
  273. package/src/plugins/runtime/python/__pycache__/plugin.cpython-311.pyc +0 -0
  274. package/src/plugins/runtime/python/__pycache__/plugin_api.cpython-311.pyc +0 -0
  275. package/src/plugins/runtime/python/__pycache__/plugin_logger.cpython-311.pyc +0 -0
  276. package/src/plugins/runtime/python/__pycache__/proxy_utils.cpython-311.pyc +0 -0
  277. package/src/plugins/runtime/python/__pycache__/schema.cpython-311.pyc +0 -0
  278. package/src/plugins/runtime/python/__pycache__/storage.cpython-311.pyc +0 -0
  279. package/src/plugins/runtime/python/__pycache__/storage_controller.cpython-311.pyc +0 -0
  280. package/src/plugins/runtime/python/__pycache__/typings.cpython-311.pyc +0 -0
  281. package/src/plugins/runtime/python/child.py +0 -248
  282. package/src/plugins/runtime/python/index.ts +0 -73
  283. package/src/plugins/runtime/python/namespaces.py +0 -101
  284. package/src/plugins/runtime/python/plugin.py +0 -155
  285. package/src/plugins/runtime/python/plugin_api.py +0 -29
  286. package/src/plugins/runtime/python/proxy/__pycache__/camera_device.cpython-310.pyc +0 -0
  287. package/src/plugins/runtime/python/proxy/__pycache__/camera_device.cpython-311.pyc +0 -0
  288. package/src/plugins/runtime/python/proxy/__pycache__/camera_device.cpython-38.pyc +0 -0
  289. package/src/plugins/runtime/python/proxy/__pycache__/camera_device.cpython-39.pyc +0 -0
  290. package/src/plugins/runtime/python/proxy/__pycache__/constants.cpython-311.pyc +0 -0
  291. package/src/plugins/runtime/python/proxy/__pycache__/constants.cpython-39.pyc +0 -0
  292. package/src/plugins/runtime/python/proxy/__pycache__/core_manager.cpython-311.pyc +0 -0
  293. package/src/plugins/runtime/python/proxy/__pycache__/device_manager.cpython-310.pyc +0 -0
  294. package/src/plugins/runtime/python/proxy/__pycache__/device_manager.cpython-311.pyc +0 -0
  295. package/src/plugins/runtime/python/proxy/__pycache__/device_manager.cpython-38.pyc +0 -0
  296. package/src/plugins/runtime/python/proxy/__pycache__/device_manager.cpython-39.pyc +0 -0
  297. package/src/plugins/runtime/python/proxy/__pycache__/generate_keys.cpython-310.pyc +0 -0
  298. package/src/plugins/runtime/python/proxy/__pycache__/generate_keys.cpython-311.pyc +0 -0
  299. package/src/plugins/runtime/python/proxy/__pycache__/generate_keys.cpython-38.pyc +0 -0
  300. package/src/plugins/runtime/python/proxy/__pycache__/generate_keys.cpython-39.pyc +0 -0
  301. package/src/plugins/runtime/python/proxy/__pycache__/message_queue.cpython-310.pyc +0 -0
  302. package/src/plugins/runtime/python/proxy/__pycache__/message_queue.cpython-311.pyc +0 -0
  303. package/src/plugins/runtime/python/proxy/__pycache__/message_queue.cpython-38.pyc +0 -0
  304. package/src/plugins/runtime/python/proxy/__pycache__/message_queue.cpython-39.pyc +0 -0
  305. package/src/plugins/runtime/python/proxy/__pycache__/plugins_manager.cpython-310.pyc +0 -0
  306. package/src/plugins/runtime/python/proxy/__pycache__/plugins_manager.cpython-311.pyc +0 -0
  307. package/src/plugins/runtime/python/proxy/__pycache__/plugins_manager.cpython-38.pyc +0 -0
  308. package/src/plugins/runtime/python/proxy/__pycache__/plugins_manager.cpython-39.pyc +0 -0
  309. package/src/plugins/runtime/python/proxy/__pycache__/system_manager.cpython-310.pyc +0 -0
  310. package/src/plugins/runtime/python/proxy/__pycache__/system_manager.cpython-311.pyc +0 -0
  311. package/src/plugins/runtime/python/proxy/__pycache__/system_manager.cpython-38.pyc +0 -0
  312. package/src/plugins/runtime/python/proxy/__pycache__/system_manager.cpython-39.pyc +0 -0
  313. package/src/plugins/runtime/python/proxy/camera_device.py +0 -1732
  314. package/src/plugins/runtime/python/proxy/core_manager.py +0 -126
  315. package/src/plugins/runtime/python/proxy/device_manager.py +0 -197
  316. package/src/plugins/runtime/python/schema.py +0 -99
  317. package/src/plugins/runtime/python/storage.py +0 -353
  318. package/src/plugins/runtime/python/storage_controller.py +0 -102
  319. package/src/plugins/runtime/python/typings.py +0 -195
  320. package/src/plugins/schema.ts +0 -472
  321. package/src/plugins/types.ts +0 -60
  322. package/src/plugins/worker.ts +0 -250
  323. package/src/rpc/index.ts +0 -149
  324. package/src/rpc/namespaces.ts +0 -79
  325. package/src/rpc/server.ts +0 -422
  326. package/src/rpc/types.ts +0 -119
  327. package/src/rpc/utils.ts +0 -16
  328. package/src/services/config/constants.ts +0 -47
  329. package/src/services/config/defaults.ts +0 -57
  330. package/src/services/config/index.ts +0 -744
  331. package/src/services/config/types.ts +0 -211
  332. package/src/services/logger/index.ts +0 -96
  333. package/src/types.ts +0 -47
  334. package/src/utils/path.ts +0 -16
  335. package/src/utils/pythonInstaller.ts +0 -597
  336. package/tsconfig.json +0 -37
  337. package/updates.config.js +0 -3
  338. /package/dist/interface/assets/{@xterm.DYP7pi_n.0.0.50-internal.0.css → @xterm.DYP7pi_n.0.0.50-internal.1.css} +0 -0
  339. /package/dist/interface/assets/{Adminpanel.BKek2EMH.0.0.50-internal.0.css → Adminpanel.BKek2EMH.0.0.50-internal.1.css} +0 -0
  340. /package/dist/interface/assets/{Cameras.BDWZJqPN.0.0.50-internal.0.css → Cameras.BDWZJqPN.0.0.50-internal.1.css} +0 -0
  341. /package/dist/interface/assets/{Camview.BFUFMoNX.0.0.50-internal.0.css → Camview.BFUFMoNX.0.0.50-internal.1.css} +0 -0
  342. /package/dist/interface/assets/{CuiConsole.DCYyxdVg.0.0.50-internal.0.css → CuiConsole.DCYyxdVg.0.0.50-internal.1.css} +0 -0
  343. /package/dist/interface/assets/{CuiPluginCard.yF8V0SZY.0.0.50-internal.0.css → CuiPluginCard.yF8V0SZY.0.0.50-internal.1.css} +0 -0
  344. /package/dist/interface/assets/{CuiTimeline.BkIwlYtw.0.0.50-internal.0.css → CuiTimeline.BkIwlYtw.0.0.50-internal.1.css} +0 -0
  345. /package/dist/interface/assets/{Plugin.DJElsAn5.0.0.50-internal.0.css → Plugin.DJElsAn5.0.0.50-internal.1.css} +0 -0
  346. /package/dist/interface/assets/{Plugins.0h77qnmN.0.0.50-internal.0.css → Plugins.0h77qnmN.0.0.50-internal.1.css} +0 -0
  347. /package/dist/interface/assets/{Settings.CkgfRkQr.0.0.50-internal.0.css → Settings.CkgfRkQr.0.0.50-internal.1.css} +0 -0
  348. /package/dist/interface/assets/{SettingsAccount.DeFul3eQ.0.0.50-internal.0.css → SettingsAccount.DeFul3eQ.0.0.50-internal.1.css} +0 -0
  349. /package/dist/interface/assets/{SettingsBackup.CX0rT0QJ.0.0.50-internal.0.css → SettingsBackup.CX0rT0QJ.0.0.50-internal.1.css} +0 -0
  350. /package/dist/interface/assets/{highlight.Ch2EwETz.0.0.50-internal.0.css → highlight.Ch2EwETz.0.0.50-internal.1.css} +0 -0
  351. /package/dist/interface/assets/{logo-256.BCQk9H1-.0.0.50-internal.0.png → logo-256.BCQk9H1-.0.0.50-internal.1.png} +0 -0
  352. /package/dist/interface/assets/{logo-512.DLKVOU2S.0.0.50-internal.0.png → logo-512.DLKVOU2S.0.0.50-internal.1.png} +0 -0
  353. /package/dist/interface/assets/{logo.DmEiRk0z.0.0.50-internal.0.png → logo.DmEiRk0z.0.0.50-internal.1.png} +0 -0
  354. /package/dist/interface/assets/{main.Cip9LkS3.0.0.50-internal.0.css → main.Cip9LkS3.0.0.50-internal.1.css} +0 -0
  355. /package/dist/interface/assets/{mode-json.Br7xisR1.0.0.50-internal.0.js → mode-json.Br7xisR1.0.0.50-internal.1.js} +0 -0
  356. /package/dist/interface/assets/{mode-yaml.CIYL8U3d.0.0.50-internal.0.js → mode-yaml.CIYL8U3d.0.0.50-internal.1.js} +0 -0
  357. /package/dist/interface/assets/{worker-base.jEXLGV2h.0.0.50-internal.0.js → worker-base.jEXLGV2h.0.0.50-internal.1.js} +0 -0
  358. /package/dist/interface/assets/{worker-json.DgwNIOck.0.0.50-internal.0.js → worker-json.DgwNIOck.0.0.50-internal.1.js} +0 -0
  359. /package/dist/interface/assets/{worker-yaml.B3uUYINB.0.0.50-internal.0.js → worker-yaml.B3uUYINB.0.0.50-internal.1.js} +0 -0
  360. /package/dist/interface/js/{@babel.l0sNRNKZ.0.0.50-internal.0.js → @babel.l0sNRNKZ.0.0.50-internal.1.js} +0 -0
  361. /package/dist/interface/js/{@intlify.BkGPX90O.0.0.50-internal.0.js → @intlify.BkGPX90O.0.0.50-internal.1.js} +0 -0
  362. /package/dist/interface/js/{@kurkle.D8fDXNIl.0.0.50-internal.0.js → @kurkle.D8fDXNIl.0.0.50-internal.1.js} +0 -0
  363. /package/dist/interface/js/{@primeuix.BFAY2Bk9.0.0.50-internal.0.js → @primeuix.BFAY2Bk9.0.0.50-internal.1.js} +0 -0
  364. /package/dist/interface/js/{@react-dnd.CcwRs9xb.0.0.50-internal.0.js → @react-dnd.CcwRs9xb.0.0.50-internal.1.js} +0 -0
  365. /package/dist/interface/js/{@socket.io.Dkula2eQ.0.0.50-internal.0.js → @socket.io.Dkula2eQ.0.0.50-internal.1.js} +0 -0
  366. /package/dist/interface/js/{@vue.B5vqhCp2.0.0.50-internal.0.js → @vue.B5vqhCp2.0.0.50-internal.1.js} +0 -0
  367. /package/dist/interface/js/{@xterm.CAa7rpjv.0.0.50-internal.0.js → @xterm.DIUBesyz.0.0.50-internal.1.js} +0 -0
  368. /package/dist/interface/js/{axios.DHr9lByg.0.0.50-internal.0.js → axios.DHr9lByg.0.0.50-internal.1.js} +0 -0
  369. /package/dist/interface/js/{birpc.l0sNRNKZ.0.0.50-internal.0.js → birpc.l0sNRNKZ.0.0.50-internal.1.js} +0 -0
  370. /package/dist/interface/js/{compare-versions.DqEOhma6.0.0.50-internal.0.js → compare-versions.DqEOhma6.0.0.50-internal.1.js} +0 -0
  371. /package/dist/interface/js/{dijkstrajs.C00ieaqj.0.0.50-internal.0.js → dijkstrajs.C00ieaqj.0.0.50-internal.1.js} +0 -0
  372. /package/dist/interface/js/{engine.io-parser.BiEtp6m2.0.0.50-internal.0.js → engine.io-parser.BiEtp6m2.0.0.50-internal.1.js} +0 -0
  373. /package/dist/interface/js/{entities.C20TfXL6.0.0.50-internal.0.js → entities.C20TfXL6.0.0.50-internal.1.js} +0 -0
  374. /package/dist/interface/js/{ev-emitter.X5f1qa-c.0.0.50-internal.0.js → ev-emitter.X5f1qa-c.0.0.50-internal.1.js} +0 -0
  375. /package/dist/interface/js/{get-size.D1dS-IaP.0.0.50-internal.0.js → get-size.D1dS-IaP.0.0.50-internal.1.js} +0 -0
  376. /package/dist/interface/js/{hookable.l0sNRNKZ.0.0.50-internal.0.js → hookable.l0sNRNKZ.0.0.50-internal.1.js} +0 -0
  377. /package/dist/interface/js/{mdurl.k9Sl0PQj.0.0.50-internal.0.js → mdurl.k9Sl0PQj.0.0.50-internal.1.js} +0 -0
  378. /package/dist/interface/js/{perfect-debounce.l0sNRNKZ.0.0.50-internal.0.js → perfect-debounce.l0sNRNKZ.0.0.50-internal.1.js} +0 -0
  379. /package/dist/interface/js/{primelocale.Bga3dOQu.0.0.50-internal.0.js → primelocale.Bga3dOQu.0.0.50-internal.1.js} +0 -0
  380. /package/dist/interface/js/{punycode.js.Dj65hjkv.0.0.50-internal.0.js → punycode.js.Dj65hjkv.0.0.50-internal.1.js} +0 -0
  381. /package/dist/interface/js/{react-dnd-html5-backend.1HQjlkwI.0.0.50-internal.0.js → react-dnd-html5-backend.1HQjlkwI.0.0.50-internal.1.js} +0 -0
  382. /package/dist/interface/js/{redux.BFxtlG_c.0.0.50-internal.0.js → redux.BFxtlG_c.0.0.50-internal.1.js} +0 -0
  383. /package/dist/interface/js/{tslib.9k7AwCpt.0.0.50-internal.0.js → tslib.9k7AwCpt.0.0.50-internal.1.js} +0 -0
  384. /package/dist/interface/js/{uc.micro.kMc2yuuw.0.0.50-internal.0.js → uc.micro.kMc2yuuw.0.0.50-internal.1.js} +0 -0
  385. /package/dist/interface/js/{uuid.C6aID195.0.0.50-internal.0.js → uuid.C6aID195.0.0.50-internal.1.js} +0 -0
  386. /package/dist/interface/js/{vue.l0sNRNKZ.0.0.50-internal.0.js → vue.l0sNRNKZ.0.0.50-internal.1.js} +0 -0
  387. /package/dist/interface/js/{zod.SKKegNRO.0.0.50-internal.0.js → zod.SKKegNRO.0.0.50-internal.1.js} +0 -0
@@ -1,196 +0,0 @@
1
- from typing import Any, Literal, Union
2
-
3
- import numpy as np
4
- from PIL import Image
5
-
6
- from _camera_ui_tools.camera_ui_common import to_thread
7
- from _camera_ui_tools.camera_ui_types import (
8
- DecoderFormat,
9
- ImageCrop,
10
- ImageFormat,
11
- ImageOptions,
12
- ImageResize,
13
- )
14
-
15
- _YUV2RGB_MATRIX = np.array([[1.0, 0.0, 1.402], [1.0, -0.344136, -0.714136], [1.0, 1.772, 0.0]]).T
16
-
17
-
18
- async def process_image_threaded(
19
- image_data: bytes,
20
- input_width: int,
21
- input_height: int,
22
- input_format: Union[DecoderFormat, Literal["rgba"], Literal["gray"]],
23
- options: ImageOptions,
24
- ) -> bytes:
25
- return await to_thread(
26
- lambda: process_image(image_data, input_width, input_height, input_format, options)
27
- )
28
-
29
-
30
- def process_image(
31
- image_data: bytes,
32
- input_width: int,
33
- input_height: int,
34
- input_format: Union[DecoderFormat, Literal["rgba"], Literal["gray"]],
35
- options: ImageOptions,
36
- ) -> bytes:
37
- image: Union[Image.Image, None] = None
38
-
39
- crop = options.get("crop", None)
40
- resize = options.get("resize", None)
41
- format = options.get("format", None)
42
-
43
- if format and format["to"] == "gray":
44
- if input_format == "yuv420p":
45
- gray = yuv420_to_gray(image_data, input_width, input_height)
46
- image = Image.fromarray(gray)
47
- elif input_format == "nv12":
48
- gray = nv12_to_gray(image_data, input_width, input_height)
49
- image = Image.fromarray(gray)
50
- elif input_format == "rgb24":
51
- image = Image.frombytes("RGB", (input_width, input_height), image_data).convert("L")
52
- elif input_format == "rgba":
53
- image = Image.frombytes("RGBA", (input_width, input_height), image_data).convert("L")
54
- else:
55
- image = Image.frombytes("L", (input_width, input_height), image_data)
56
-
57
- format = None
58
- elif format and format["to"] == "rgba":
59
- if input_format == "yuv420p":
60
- rgba = yuv420_to_rgba(image_data, input_width, input_height)
61
- image = Image.fromarray(rgba)
62
- elif input_format == "nv12":
63
- rgba = nv12_to_rgba(image_data, input_width, input_height)
64
- image = Image.fromarray(rgba)
65
- elif input_format == "rgb24":
66
- image = Image.frombytes("RGB", (input_width, input_height), image_data).convert("RGBA")
67
- elif input_format == "gray":
68
- image = Image.frombytes("L", (input_width, input_height), image_data).convert("RGBA")
69
- else:
70
- image = Image.frombytes("RGBA", (input_width, input_height), image_data)
71
-
72
- format = None
73
- else:
74
- if input_format == "yuv420p":
75
- rgb = yuv420_to_rgb(image_data, input_width, input_height)
76
- image = Image.fromarray(rgb)
77
- elif input_format == "nv12":
78
- rgb = nv12_to_rgb(image_data, input_width, input_height)
79
- image = Image.fromarray(rgb)
80
- elif input_format == "rgb24":
81
- image = Image.frombytes("RGB", (input_width, input_height), image_data)
82
- elif input_format == "gray":
83
- image = Image.frombytes("L", (input_width, input_height), image_data)
84
- else:
85
- image = Image.frombytes("RGBA", (input_width, input_height), image_data)
86
-
87
- if crop:
88
- image = crop_image(image, crop)
89
- input_width = crop["width"]
90
- input_height = crop["height"]
91
-
92
- if resize:
93
- image = resize_image(image, input_width, input_height, resize)
94
- input_width = resize["width"]
95
- input_height = resize["height"]
96
-
97
- if format:
98
- image = format_image(image, format)
99
-
100
- return image.tobytes()
101
-
102
-
103
- def crop_image(image: Image.Image, crop: ImageCrop) -> Image.Image:
104
- crop_box = (
105
- int(crop["left"]),
106
- int(crop["top"]),
107
- int(crop["left"] + crop["width"]),
108
- int(crop["top"] + crop["height"]),
109
- )
110
-
111
- return image.crop(crop_box)
112
-
113
-
114
- def resize_image(image: Image.Image, input_width: int, input_height: int, resize: ImageResize) -> Image.Image:
115
- width = resize["width"]
116
- height = resize["height"]
117
-
118
- if width and height and (width != input_width or height != input_height):
119
- image = image.resize((int(width), int(height)), resample=Image.Resampling.BILINEAR)
120
-
121
- return image
122
-
123
-
124
- def format_image(image: Image.Image, format: ImageFormat) -> Image.Image:
125
- if format["to"] == "rgba":
126
- image = image.convert("RGBA")
127
- elif format["to"] == "gray":
128
- image = image.convert("L")
129
-
130
- return image
131
-
132
-
133
- def yuv420_to_rgb(yuv_bytes: bytes, width: int, height: int) -> np.ndarray[Any, Any]:
134
- frame_size = width * height
135
- uv_size = frame_size // 4
136
-
137
- raw_data = np.frombuffer(yuv_bytes, dtype=np.uint8)
138
-
139
- y = raw_data[:frame_size].reshape((height, width)).astype(np.float32) - 16.0
140
- u = (
141
- raw_data[frame_size : frame_size + uv_size].reshape((height // 2, width // 2)).astype(np.float32)
142
- - 128.0
143
- )
144
- v = raw_data[frame_size + uv_size :].reshape((height // 2, width // 2)).astype(np.float32) - 128.0
145
-
146
- u = u.repeat(2, axis=0).repeat(2, axis=1)
147
- v = v.repeat(2, axis=0).repeat(2, axis=1)
148
-
149
- r = y + 1.402 * v
150
- g = y - 0.344136 * u - 0.714136 * v
151
- b = y + 1.772 * u
152
-
153
- rgb = np.stack((r, g, b), axis=-1)
154
- return np.clip(rgb, 0, 255).astype(np.uint8)
155
-
156
-
157
- def yuv420_to_rgba(yuv_bytes: bytes, width: int, height: int) -> np.ndarray[Any, Any]:
158
- rgb = yuv420_to_rgb(yuv_bytes, width, height)
159
- alpha = np.full((height, width, 1), 255, dtype=np.uint8)
160
- rgba = np.concatenate((rgb, alpha), axis=-1)
161
- return rgba
162
-
163
-
164
- def yuv420_to_gray(yuv_bytes: bytes, width: int, height: int) -> np.ndarray[Any, Any]:
165
- frame_size = width * height
166
- raw_data = np.frombuffer(yuv_bytes, dtype=np.uint8)
167
- return raw_data[:frame_size].reshape((height, width)).astype(np.uint8)
168
-
169
-
170
- def nv12_to_gray(nv12_bytes: bytes, width: int, height: int) -> np.ndarray[Any, Any]:
171
- frame_size = width * height
172
- raw_data = np.frombuffer(nv12_bytes, dtype=np.uint8)
173
- return raw_data[:frame_size].reshape((height, width))
174
-
175
-
176
- def nv12_to_rgb(nv12_bytes: bytes, width: int, height: int) -> np.ndarray[Any, Any]:
177
- frame_size = width * height
178
-
179
- raw_data = np.frombuffer(nv12_bytes, dtype=np.uint8)
180
- y = raw_data[:frame_size].reshape((height, width)).astype(np.float32) - 16.0
181
- uv_plane = raw_data[frame_size:].reshape((height // 2, width)).astype(np.float32) - 128.0
182
-
183
- u = uv_plane[:, 0::2].repeat(2, axis=0).repeat(2, axis=1)
184
- v = uv_plane[:, 1::2].repeat(2, axis=0).repeat(2, axis=1)
185
-
186
- yuv = np.stack((y, u, v), axis=-1)
187
-
188
- rgb = np.dot(yuv, _YUV2RGB_MATRIX)
189
-
190
- return np.clip(rgb, 0, 255).astype(np.uint8)
191
-
192
-
193
- def nv12_to_rgba(nv12_bytes: bytes, width: int, height: int) -> np.ndarray[Any, Any]:
194
- rgb = nv12_to_rgb(nv12_bytes, width, height)
195
- alpha = np.full((height, width, 1), 255, dtype=np.uint8)
196
- return np.concatenate((rgb, alpha), axis=-1)
@@ -1,45 +0,0 @@
1
- import weakref
2
-
3
-
4
- class FramePool:
5
- def __init__(self, frame_size: int, max_pool_size: int = 4):
6
- self._frame_size = frame_size
7
- self._max_pool_size = max_pool_size
8
- self._pool: list[memoryview] = []
9
- self._in_use: dict[int, weakref.ref[memoryview]] = {}
10
-
11
- # Initial pool filling
12
- for _ in range(max_pool_size):
13
- self._pool.append(memoryview(bytearray(frame_size)))
14
-
15
- def get(self) -> memoryview:
16
- self._cleanup_expired_refs()
17
- frame = self._pool.pop() if self._pool else memoryview(bytearray(self._frame_size))
18
- frame_id = id(frame)
19
-
20
- def callback(ref: weakref.ref[memoryview]) -> None:
21
- return self._on_frame_collected(frame_id)
22
-
23
- self._in_use[frame_id] = weakref.ref(frame, callback)
24
-
25
- return frame
26
-
27
- def release(self, frame: memoryview) -> None:
28
- if frame.nbytes != self._frame_size:
29
- return # Ignore invalid frames
30
-
31
- frame_id = id(frame)
32
- if frame_id in self._in_use:
33
- del self._in_use[frame_id]
34
-
35
- if len(self._pool) < self._max_pool_size:
36
- self._pool.append(frame)
37
-
38
- def _cleanup_expired_refs(self) -> None:
39
- expired = [frame_id for frame_id, ref in self._in_use.items() if ref() is None]
40
- for frame_id in expired:
41
- del self._in_use[frame_id]
42
-
43
- def _on_frame_collected(self, frame_id: int) -> None:
44
- if frame_id in self._in_use:
45
- del self._in_use[frame_id]
@@ -1,62 +0,0 @@
1
- def __get_optimal_work_group_size1():
2
- width = 640
3
- height = 360
4
-
5
- max_work_group_size = 256
6
- compute_units = 8
7
-
8
- optimal_group_count = compute_units * 4
9
-
10
- for size in [32, 16, 8, 4]:
11
- work_groups_per_dimension = (width // size) * (height // size)
12
- if (
13
- width % size == 0
14
- and height % size == 0
15
- and size * size <= max_work_group_size
16
- and work_groups_per_dimension >= optimal_group_count
17
- ):
18
- return (size, size)
19
-
20
- return (min(max_work_group_size, width), 1)
21
-
22
-
23
- def get_optimal_work_group_size2():
24
- width = 640
25
- height = 360
26
-
27
- max_work_group_size = 256
28
- compute_units = 8
29
-
30
- # Prüfe zunächst auf quadratische Größen, die Potenzen von zwei sind
31
- for size in [32, 16, 8, 4]:
32
- if width % size == 0 and height % size == 0 and size * size <= max_work_group_size:
33
- return (size, size)
34
-
35
- # Wenn keine geeignete quadratische Größe gefunden wurde, suche nach der besten rechteckigen Größe
36
- for size in range(min(max_work_group_size, width), 0, -1):
37
- if width % size == 0:
38
- return (size, 1)
39
-
40
- # Wenn keine passende Workgroup-Größe gefunden wurde, Fallback auf eine sehr kleine Größe
41
- return (1, 1)
42
-
43
-
44
- def get_optimal_work_group_size3():
45
- width = 640
46
- height = 360
47
-
48
- max_work_group_size = 256
49
- compute_units = 8
50
-
51
- # Priorisiere größere Workgroup-Größen, um die GPU-Auslastung zu maximieren
52
- for size in [16, 8, 4]:
53
- if width % size == 0 and height % size == 0 and size * size <= max_work_group_size:
54
- return (size, size)
55
-
56
- # Fallback auf eine kleinere rechteckige Workgroup-Größe, falls notwendig
57
- return (min(max_work_group_size, width), 1)
58
-
59
-
60
- print(__get_optimal_work_group_size1())
61
- print(get_optimal_work_group_size2())
62
- print(get_optimal_work_group_size3())
Binary file
Binary file
@@ -1,70 +0,0 @@
1
- __constant sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_CLAMP_TO_EDGE | CLK_FILTER_NEAREST;
2
-
3
- __kernel void process_frame(
4
- __read_only image2d_t input,
5
- __global float *background_model,
6
- __global float *temp_buffer,
7
- __write_only image2d_t output,
8
- __constant float *kernel_values,
9
- int kernel_size,
10
- int width,
11
- int height,
12
- float alpha,
13
- float threshold,
14
- int dilation_size,
15
- int first_frame
16
- ) {
17
- int x = get_global_id(0);
18
- int y = get_global_id(1);
19
- if (x >= width || y >= height) return;
20
- int idx = y * width + x;
21
-
22
- // Gaussian blur
23
- int radius = (kernel_size - 1) / 2;
24
- float blurred_value = 0.0f;
25
- for (int i = -radius; i <= radius; i++) {
26
- for (int j = -radius; j <= radius; j++) {
27
- int2 samplePos = (int2)(clamp(x + i, 0, width - 1), clamp(y + j, 0, height - 1));
28
- float4 pixel = read_imagef(input, sampler, samplePos);
29
- float weight = kernel_values[i + radius] * kernel_values[j + radius];
30
- blurred_value += pixel.x * weight;
31
- }
32
- }
33
-
34
- // Store blurred value in temp buffer
35
- temp_buffer[idx] = blurred_value;
36
-
37
- if (first_frame) {
38
- // Initialize background model
39
- background_model[idx] = blurred_value;
40
- write_imagef(output, (int2)(x, y), (float4)(0.0f, 0.0f, 0.0f, 1.0f));
41
- } else {
42
- // Background subtraction
43
- float bg_pixel = background_model[idx];
44
-
45
- // Update background model
46
- float updated_bg = bg_pixel * (1.0f - alpha) + blurred_value * alpha;
47
- background_model[idx] = updated_bg;
48
-
49
- // Compute difference and threshold
50
- float diff = fabs(blurred_value - bg_pixel);
51
- float mask_value = (diff > threshold) ? 1.0f : 0.0f;
52
-
53
- // Dilation
54
- float maxValue = mask_value;
55
- for (int dy = -dilation_size; dy <= dilation_size; dy++) {
56
- int sy = clamp(y + dy, 0, height - 1);
57
- for (int dx = -dilation_size; dx <= dilation_size; dx++) {
58
- int sx = clamp(x + dx, 0, width - 1);
59
- int neighbor_idx = sy * width + sx;
60
- float neighbor_pixel = background_model[neighbor_idx];
61
- float neighbor_blurred = temp_buffer[neighbor_idx];
62
- float neighbor_diff = fabs(neighbor_blurred - neighbor_pixel);
63
- float neighbor_mask = (neighbor_diff > threshold) ? 1.0f : 0.0f;
64
- maxValue = fmax(maxValue, neighbor_mask);
65
- }
66
- }
67
-
68
- write_imagef(output, (int2)(x, y), (float4)(maxValue, maxValue, maxValue, 1.0f));
69
- }
70
- }
@@ -1,130 +0,0 @@
1
- __constant sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_CLAMP_TO_EDGE | CLK_FILTER_NEAREST;
2
-
3
- __kernel void gaussian_blur_combined(
4
- __read_only image2d_t input,
5
- __write_only image2d_t output,
6
- __constant float *kernel_values,
7
- int kernel_size
8
- ) {
9
- int x = get_global_id(0);
10
- int y = get_global_id(1);
11
- int width = get_image_width(input);
12
- int height = get_image_height(input);
13
-
14
- if (x >= width || y >= height) return;
15
-
16
- int radius = (kernel_size - 1) / 2;
17
- float sum = 0.0f;
18
-
19
- // Kombinierter horizontaler und vertikaler Blur
20
- for (int i = -radius; i <= radius; i++) {
21
- for (int j = -radius; j <= radius; j++) {
22
- int2 samplePos = (int2)(clamp(x + i, 0, width - 1), clamp(y + j, 0, height - 1));
23
- float4 pixel = read_imagef(input, sampler, samplePos);
24
- float weight = kernel_values[i + radius] * kernel_values[j + radius];
25
- sum += pixel.x * weight;
26
- }
27
- }
28
-
29
- write_imagef(output, (int2)(x, y), (float4)(sum, 0.0f, 0.0f, 1.0f));
30
- }
31
-
32
- __kernel void gaussian_blur_horizontal(
33
- __read_only image2d_t input,
34
- __write_only image2d_t output,
35
- __global float *kernel_values,
36
- int kernel_size
37
- ) {
38
- int x = get_global_id(0);
39
- int y = get_global_id(1);
40
-
41
- int width = get_image_width(input);
42
- int radius = (kernel_size - 1) / 2;
43
-
44
- if (x >= width) return;
45
-
46
- float sum = 0.0f;
47
- for (int k = -radius; k <= radius; k++) {
48
- int sx = clamp(x + k, 0, width - 1);
49
- float4 pixel = read_imagef(input, sampler, (int2)(sx, y));
50
- float weight = kernel_values[k + radius];
51
- sum += pixel.x * weight;
52
- }
53
-
54
- write_imagef(output, (int2)(x, y), (float4)(sum, 0.0f, 0.0f, 1.0f));
55
- }
56
-
57
- __kernel void gaussian_blur_vertical(
58
- __read_only image2d_t input,
59
- __write_only image2d_t output,
60
- __global float *kernel_values,
61
- int kernel_size
62
- ) {
63
- int x = get_global_id(0);
64
- int y = get_global_id(1);
65
-
66
- int height = get_image_height(input);
67
- int radius = (kernel_size - 1) / 2;
68
-
69
- if (y >= height) return;
70
-
71
- float sum = 0.0f;
72
- for (int k = -radius; k <= radius; k++) {
73
- int sy = clamp(y + k, 0, height - 1);
74
- float4 pixel = read_imagef(input, sampler, (int2)(x, sy));
75
- float weight = kernel_values[k + radius];
76
- sum += pixel.x * weight;
77
- }
78
-
79
- write_imagef(output, (int2)(x, y), (float4)(sum, 0.0f, 0.0f, 1.0f));
80
- }
81
-
82
- __kernel void background_subtraction(
83
- __read_only image2d_t current_frame,
84
- __global float *background_model,
85
- __write_only image2d_t mask,
86
- int width,
87
- int height,
88
- float alpha,
89
- float threshold
90
- ) {
91
- int x = get_global_id(0);
92
- int y = get_global_id(1);
93
- if (x >= width || y >= height) return;
94
- int idx = y * width + x;
95
-
96
- float current_pixel = read_imagef(current_frame, sampler, (int2)(x, y)).x;
97
- float bg_pixel = background_model[idx];
98
-
99
- // Aktualisiere Hintergrundmodell
100
- float updated_bg = bg_pixel * (1.0f - alpha) + current_pixel * alpha;
101
- background_model[idx] = updated_bg;
102
-
103
- // Berechne Differenz
104
- float diff = fabs(current_pixel - bg_pixel);
105
- float result = (diff > threshold) ? 1.0f : 0.0f;
106
- write_imagef(mask, (int2)(x, y), (float4)(result, 0.0f, 0.0f, 1.0f));
107
- }
108
-
109
- __kernel void dilate(
110
- __read_only image2d_t input,
111
- __write_only image2d_t output,
112
- int size
113
- ) {
114
- int x = get_global_id(0);
115
- int y = get_global_id(1);
116
- int width = get_image_width(input);
117
- int height = get_image_height(input);
118
- if (x >= width || y >= height) return;
119
-
120
- float maxValue = 0.0f;
121
- for (int dy = -size; dy <= size; dy++) {
122
- int sy = clamp(y + dy, 0, height - 1);
123
- for (int dx = -size; dx <= size; dx++) {
124
- int sx = clamp(x + dx, 0, width - 1);
125
- float pixel = read_imagef(input, sampler, (int2)(sx, sy)).x;
126
- maxValue = fmax(maxValue, pixel);
127
- }
128
- }
129
- write_imagef(output, (int2)(x, y), (float4)(maxValue, 0.0f, 0.0f, 1.0f));
130
- }