Introduction
Introduction to MIP SDK 2020 R1
MIPSDK General
- Announcement of an upcoming breaking change: In the next release, 2020 R2, Milestone will discontinue the concurrent licensing option, and the associated VideoOS.Platform.License.ConcurrentLicenseManager class. This license counter checks the number of running instances of a particular plug-in.
- Announcement of an upcoming breaking change: In the next release, 2020 R2, Milestone will discontinue support of the following MIP message IDs as they have been deprecated for a long time and alternatives exist:
Server.EventCommand
: Use Server.NewEventCommand instead
Server.NewAlarmAsEventCommand
: Use Server.NewEventCommand instead
Server.NewEventAsAlarmHandlerCommand
: Use Server.NewAlarmCommand instead
Server.NewAlertAsAlarmHandlerCommand
: Use Server.NewAlarmCommand instead
Video Processing Toolkit
- A new video processing service toolkit has been added. This enables easy integration between the XProtect product portfolio and a GStreamer based processing pipeline that can run on both either Linux and Windows. The toolkit includes a sample video processing service, with source code, that can receive video streams and process those through a GStreamer pipeline. The resulting video and/or metadata can then be passed back to the Recording Server for storage and further use within XProtect.
Configuration API
- Support for configuring rules has been added to the Configuration API. In this version only with support for a limited number of trigger types and actions, but more is planned to be added in coming releases. See the Configuration API introduction document for a detailed description of what is currently supported.
XProtect Smart Client
- New messages have been added allowing to create and control notifications that are displayed to the user by the Smart Client as Toast messages. The Toast messages are displayed in their own - always on top - window, typically positioned in the lower right corner of the screen.
- VideoOS.Platform.Search.SearchDefinition has been extended with an overload of the Search(…) method that takes a SearchInput as parameter. This was done to introduce SortOrder, allowing search agents to deliver results in the order the user has chosen to see them. The new method will be used going forward and should be implemented by all search agents targeting 2020 R1 and later, while the old one still remains in the API and must be implemented for a search agent to be supported in 2019 R3. See the search framework documentation for more details.
Samples
- SCToast sample has been added, demonstrating how to show and control the new Toast messages.
- Video processing service collection of samples has been added. These demonstrates what is needed to build a working video processing solution based on the GStreamer framework.
- Demo Driver sample has been updated to also support custom driver commands.
Fixed issues
- The ReadStorageInformation method on storages in the Configuration API would return incorrect values for used disk space.
- VideoOS.Platform.SDK.StatusClient.SystemStatusClient will now automatically include status from new cameras added while running. Previously a restart was required in order to pick up new cameras.
- When a device based on the driver framework was added in XProtect microphones, speakers and metadata were not automatically configured as being related to the camera. In addition, edge retrieval and edge playback of microphones and metadata devices through the driver framework did not work as expected.
- On non-English Windows versions the driver framework was not able to allocate memory for transferring frames thus preventing data from being transferred between the proxy and the Recording Server.
- Drivers using the new MIP Driver Framework would lose access to settings if the proxy application was for some reason restarted.
- JPEGVideoSource and BitmapVideoSource did not include PreviousTime in the returned data object.
- If MessageCommunication.Start and MessageCommunication.TransmitMessage were called immediately after each other in the Event Server it could lead to a null reference exception.