nedo-vision-worker 1.3.13__tar.gz → 1.3.14__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 (110) hide show
  1. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/PKG-INFO +1 -1
  2. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/__init__.py +1 -1
  3. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/services/FileToRTMPServer.py +51 -3
  4. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker.egg-info/PKG-INFO +1 -1
  5. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/README.md +0 -0
  6. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/bootstrap.py +0 -0
  7. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/cli.py +0 -0
  8. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/config/ConfigurationManager.py +0 -0
  9. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/config/ConfigurationManagerInterface.py +0 -0
  10. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/config/DummyConfigurationManager.py +0 -0
  11. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/config/__init__.py +0 -0
  12. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/database/DatabaseManager.py +0 -0
  13. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/database/__init__.py +0 -0
  14. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/doctor.py +0 -0
  15. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/models/__init__.py +0 -0
  16. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/models/ai_model.py +0 -0
  17. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/models/auth.py +0 -0
  18. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/models/config.py +0 -0
  19. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/models/dataset_source.py +0 -0
  20. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/models/logs.py +0 -0
  21. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/models/ppe_detection.py +0 -0
  22. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/models/ppe_detection_label.py +0 -0
  23. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/models/restricted_area_violation.py +0 -0
  24. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/models/user.py +0 -0
  25. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/models/worker_source.py +0 -0
  26. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/models/worker_source_pipeline.py +0 -0
  27. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/models/worker_source_pipeline_config.py +0 -0
  28. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/models/worker_source_pipeline_debug.py +0 -0
  29. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/models/worker_source_pipeline_detection.py +0 -0
  30. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/protos/AIModelService_pb2.py +0 -0
  31. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/protos/AIModelService_pb2_grpc.py +0 -0
  32. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/protos/DatasetSourceService_pb2.py +0 -0
  33. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/protos/DatasetSourceService_pb2_grpc.py +0 -0
  34. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/protos/HumanDetectionService_pb2.py +0 -0
  35. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/protos/HumanDetectionService_pb2_grpc.py +0 -0
  36. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/protos/PPEDetectionService_pb2.py +0 -0
  37. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/protos/PPEDetectionService_pb2_grpc.py +0 -0
  38. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/protos/VisionWorkerService_pb2.py +0 -0
  39. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/protos/VisionWorkerService_pb2_grpc.py +0 -0
  40. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/protos/WorkerSourcePipelineService_pb2.py +0 -0
  41. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/protos/WorkerSourcePipelineService_pb2_grpc.py +0 -0
  42. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/protos/WorkerSourceService_pb2.py +0 -0
  43. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/protos/WorkerSourceService_pb2_grpc.py +0 -0
  44. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/protos/__init__.py +0 -0
  45. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/repositories/AIModelRepository.py +0 -0
  46. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/repositories/DatasetSourceRepository.py +0 -0
  47. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/repositories/PPEDetectionRepository.py +0 -0
  48. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/repositories/RestrictedAreaRepository.py +0 -0
  49. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/repositories/WorkerSourcePipelineDebugRepository.py +0 -0
  50. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/repositories/WorkerSourcePipelineDetectionRepository.py +0 -0
  51. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/repositories/WorkerSourcePipelineRepository.py +0 -0
  52. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/repositories/WorkerSourceRepository.py +0 -0
  53. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/repositories/__init__.py +0 -0
  54. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/services/AIModelClient.py +0 -0
  55. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/services/ConnectionInfoClient.py +0 -0
  56. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/services/DatasetSourceClient.py +0 -0
  57. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/services/DirectDeviceToRTMPStreamer.py +0 -0
  58. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/services/GrpcClientBase.py +0 -0
  59. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/services/GrpcClientManager.py +0 -0
  60. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/services/GrpcConnection.py +0 -0
  61. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/services/ImageUploadClient.py +0 -0
  62. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/services/PPEDetectionClient.py +0 -0
  63. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/services/RTSPtoRTMPStreamer.py +0 -0
  64. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/services/RestrictedAreaClient.py +0 -0
  65. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/services/SharedDirectDeviceClient.py +0 -0
  66. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/services/SharedVideoStreamServer.py +0 -0
  67. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/services/SystemUsageClient.py +0 -0
  68. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/services/SystemWideDeviceCoordinator.py +0 -0
  69. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/services/VideoSharingDaemon.py +0 -0
  70. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/services/VideoStreamClient.py +0 -0
  71. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/services/WorkerSourceClient.py +0 -0
  72. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/services/WorkerSourcePipelineClient.py +0 -0
  73. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/services/WorkerSourceUpdater.py +0 -0
  74. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/services/WorkerStatusClient.py +0 -0
  75. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/services/__init__.py +0 -0
  76. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/util/CorruptedImageValidator.py +0 -0
  77. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/util/EncoderSelector.py +0 -0
  78. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/util/FFmpegUtil.py +0 -0
  79. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/util/HardwareID.py +0 -0
  80. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/util/ImageUploader.py +0 -0
  81. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/util/Networking.py +0 -0
  82. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/util/PlatformDetector.py +0 -0
  83. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/util/RTMPUrl.py +0 -0
  84. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/util/SystemMonitor.py +0 -0
  85. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/util/VideoProbeUtil.py +0 -0
  86. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/util/__init__.py +0 -0
  87. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/worker/CoreActionWorker.py +0 -0
  88. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/worker/DataSenderWorker.py +0 -0
  89. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/worker/DataSyncWorker.py +0 -0
  90. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/worker/DatasetFrameSender.py +0 -0
  91. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/worker/DatasetFrameWorker.py +0 -0
  92. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/worker/PPEDetectionManager.py +0 -0
  93. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/worker/PipelineActionWorker.py +0 -0
  94. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/worker/PipelineImageWorker.py +0 -0
  95. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/worker/PipelinePreviewWorker.py +0 -0
  96. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/worker/RabbitMQListener.py +0 -0
  97. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/worker/RestrictedAreaManager.py +0 -0
  98. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/worker/SystemUsageManager.py +0 -0
  99. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/worker/VideoStreamWorker.py +0 -0
  100. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/worker/WorkerManager.py +0 -0
  101. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/worker/__init__.py +0 -0
  102. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker/worker_service.py +0 -0
  103. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker.egg-info/SOURCES.txt +0 -0
  104. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker.egg-info/dependency_links.txt +0 -0
  105. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker.egg-info/entry_points.txt +0 -0
  106. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker.egg-info/requires.txt +0 -0
  107. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/nedo_vision_worker.egg-info/top_level.txt +0 -0
  108. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/pyproject.toml +0 -0
  109. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/setup.cfg +0 -0
  110. {nedo_vision_worker-1.3.13 → nedo_vision_worker-1.3.14}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nedo-vision-worker
3
- Version: 1.3.13
3
+ Version: 1.3.14
4
4
  Summary: Nedo Vision Worker Service Library for AI Vision Processing
5
5
  Author-email: Willy Achmat Fauzi <willy.achmat@gmail.com>
6
6
  Maintainer-email: Willy Achmat Fauzi <willy.achmat@gmail.com>
@@ -6,5 +6,5 @@ A library for running worker agents in the Nedo Vision platform.
6
6
 
7
7
  from .worker_service import WorkerService
8
8
 
9
- __version__ = "1.3.13"
9
+ __version__ = "1.3.14"
10
10
  __all__ = ["WorkerService"]
@@ -1,6 +1,7 @@
1
1
  import subprocess
2
2
  import logging
3
3
  import os
4
+ import threading
4
5
  from ..util.EncoderSelector import EncoderSelector
5
6
  from ..util.RTMPUrl import RTMPUrl
6
7
 
@@ -53,6 +54,7 @@ class FileToRTMPStreamer:
53
54
  "-g", str(self.fps),
54
55
  "-vf", f"scale={self.resolution}",
55
56
 
57
+ "-loglevel", "error",
56
58
  "-an", # Disable audio
57
59
 
58
60
  "-f", "flv",
@@ -63,11 +65,17 @@ class FileToRTMPStreamer:
63
65
  with open(os.devnull, "w") as devnull:
64
66
  self.process = subprocess.Popen(
65
67
  ffmpeg_command,
66
- stdout=devnull,
67
- stderr=devnull,
68
- text=True
68
+ stdout=subprocess.DEVNULL,
69
+ stderr=subprocess.PIPE,
70
+ text=True,
71
+ bufsize=1
69
72
  )
70
73
 
74
+ threading.Thread(
75
+ target=self._monitor_ffmpeg_errors,
76
+ daemon=True
77
+ ).start()
78
+
71
79
  logging.info("✅ [APP] FFmpeg file stream process started successfully.")
72
80
  self.process.wait() # Block until process is terminated
73
81
 
@@ -81,3 +89,43 @@ class FileToRTMPStreamer:
81
89
  self.process.terminate()
82
90
  self.process.wait()
83
91
  logging.info("🛑 [APP] FFmpeg file stream process terminated.")
92
+
93
+ def _classify_ffmpeg_error(self, msg: str):
94
+ if "No such file or directory" in msg:
95
+ return "FILE_NOT_FOUND"
96
+
97
+ if "Invalid data found" in msg:
98
+ return "INVALID_MEDIA"
99
+
100
+ if "encoder" in msg.lower() or "nvenc" in msg.lower():
101
+ return "ENCODER_ERROR"
102
+
103
+ if "server returned" in msg.lower() or "rtmp" in msg.lower():
104
+ return "RTMP_ERROR"
105
+
106
+ if "broken pipe" in msg.lower():
107
+ return "PIPE_BROKEN"
108
+
109
+ return "UNKNOWN_ERROR"
110
+
111
+ def _monitor_ffmpeg_errors(self):
112
+ """Read FFmpeg stderr and log meaningful errors."""
113
+ try:
114
+ for line in iter(self.process.stderr.readline, ''):
115
+ if not line:
116
+ break
117
+
118
+ msg = line.strip()
119
+ if not msg:
120
+ continue
121
+
122
+ error_type = self._classify_ffmpeg_error(msg)
123
+ logging.error(f"🔥 [FFMPEG][{error_type}] {msg}")
124
+
125
+ # Stop on critical errors
126
+ if error_type != "UNKNOWN_ERROR":
127
+ logging.error("🛑 [APP] Critical FFmpeg error detected. Stopping stream.")
128
+ self.stop_stream()
129
+ break
130
+ except Exception as e:
131
+ logging.error(f"🚨 [APP] Error while reading FFmpeg stderr: {e}")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nedo-vision-worker
3
- Version: 1.3.13
3
+ Version: 1.3.14
4
4
  Summary: Nedo Vision Worker Service Library for AI Vision Processing
5
5
  Author-email: Willy Achmat Fauzi <willy.achmat@gmail.com>
6
6
  Maintainer-email: Willy Achmat Fauzi <willy.achmat@gmail.com>