Plugin is receiving both primary and secondary stream together when other plugin selects different stream type
AnsweredI have reported this issue before. The previous post is https://support.networkoptix.com/hc/en-us/community/posts/4418176150807-Plugin-receives-primary-and-secondary-stream-back-and-forth- . I observed this issue at 4.2.0.32660. I am still seeing the issue at 5.0.0.34785.
We implemented two plugins. One is a plugin that performs analytics inside the camera and delivers only the results to Nx VMS. (I'll call it Edge plugin) The other one works on the server, receives an encoded stream from Nx, performs analytics, and delivers the result to Nx VMS. (I will call it a server plugin) It is assumed that the user installs all plugins for convenience.
A problem occurs when two plugins select different streams.
The server plugin returns the manifest string as follows.
Engine::manifestString()
"preferredStream": "secondary",
DeviceAgent::manifestString()
"capabilities":"disableStreamSelection"
(The reason for doing this is that the server plug-in wants to use a secondary stream by default. Nx tells us that it works only by doing this. However, this way, the user cannot select a stream. This is not what we want.)
In this state, if the Edge plug-in selects the input as the Primary stream, both the Primary stream and the Secondary stream come to the server plug-in, and the two cannot be distinguished. And the plugin doesn't know if all frames are coming or not.
If the input of the edge plug-in is selected as the secondary stream, the server plug-in receives the secondary stream normally.
Desired solution:
Under the above conditions, only secondary should come as a server plug-in regardless of which stream other plug-ins select.
-
Hi Jason,
The server plugin returns the manifest string as follows.
Engine::manifestString()
"preferredStream": "secondary",
DeviceAgent::manifestString()
"capabilities":"disableStreamSelection"
(The reason for doing this is that the server plug-in wants to use a secondary stream by default. Nx tells us that it works only by doing this. However, this way, the user cannot select a stream. This is not what we want.)
As I recall, suggested manifest was a way to work around an issue when without disableStreamSelection option, user interface would show primary stream regardless of the preferredStream value. However, this issue is fixed in the up to date meta builds.
In this state, if the Edge plug-in selects the input as the Primary stream, both the Primary stream and the Secondary stream come to the server plug-in, and the two cannot be distinguished. And the plugin doesn't know if all frames are coming or not.
Could you please tell a little bit more about edge plugin? At the moment I'm not sure how it have any impact on the stream selection for the server plugin. Am I right to assume this plugin is implemented without involving metadata SDK and working only on the camera? How does it push events/objects to the mediaserver?
0
Please sign in to leave a comment.
Comments
1 comment