Introduction
Introduction to MIP SDK 2020 R3
MIPSDK General
XProtect 2020 R3 can be configured to operate in a FIPS 140-2 compliant mode, which also affects certain parts of the SDK and APIs:
- Default value for
DBExporter.EncryptionStrength
has been changed from DES-56 to AES-256. - On a FIPS enabled system, database exports will fail if they use a non-FIPS compliant encryption method.
- On a FIPS enabled system, load of exports in database format will fail if they have been encrypted with a non-FIPS compliant encryption method.
- Access to licenses (either system or MIP) and feature flags through either
EnvironmentManager.SystemLicense
or theLicenseManager
classes from a pre 2020 R3 standalone or Smart Client integration towards a FIPS enabled VMS will not work. If FIPS is not enabled on the server, the access will still work. - On a FIPS enabled system, pre 2020 R3 MIP SDK versions of
MediaProviderService
will not work. Similarly, theMediaProviderService
cannot communicate with a pre 2020 R3 MIPDriver that is running on a FIPS enabled system.
In general, our partners - especially those with customers running with FIPS enabled - are encouraged to upgrade their standalone integrations to use the 2020 R3 MIP SDK, and also to make sure that their integrations are FIPS compliant.
- Default value for
Item
class now has a new property namedEncrypt
. If this is set to true, everything in theProperties
dictionary of theItem
will be encrypted before storing in the server database, and decrypted whenever accessed.
Breaking changes
The Search API has changed between MIP SDK 2020 R2 and 2020 R3. This could cause search agents that were developed using MIP SDK 2020 R2 or earlier to no longer run in 2020 R3 or later.
Parameters have been changed for the following method in MIP SDK 2020 R3:
- VideoOS.Platform.Search.SearchResultData.GetCachedBoundingShapesAsync
The following methods are no longer available in MIP SDK 2020 R3:
- VideoOS.Platform.Search.SearchUserControlResolver.AddSearchUserControlsPlugin
- VideoOS.Platform.Search.SearchAgentErrorEventArgs
- VideoOS.Platform.Search.SearchAgentResultReadyEventArgs
- VideoOS.Platform.Search.SearchResultData.IgnoredSearchFilters
- VideoOS.Platform.Search.SearchResultTypes
- VideoOS.Platform.Search.SearchInput.set_SessionId
- VideoOS.Platform.Search.SearchInput.set_From
- VideoOS.Platform.Search.SearchInput.set_To
- VideoOS.Platform.Search.SearchInput.set_Items
- VideoOS.Platform.Search.SearchInput.set_SortOrder
The following properties are no longer available in MIP SDK 2020 R3:
- VideoOS.Platform.Search.SearchResultData.IgnoredSearchFilters
- VideoOS.Platform.Search.SearchCriteria.AllFilterValues
The following classes are no longer available in MIP SDK 2020 R3:
- VideoOS.Platform.Search.SearchAgentErrorEventArgs
- VideoOS.Platform.Search.SearchAgentResultReadyEventArgs
- VideoOS.Platform.Search.SearchResultTypes
Component integrations
The SDK Database Export format has been updated
- A tampering key has been added. Any manual changes in the exported Scp file will be detected by the Smart Client. If changes are detected, the file cannot be opened in Smart Client Player.
- Password handling in the Scp file has been updated. Before the update, when opening an export in Smart Client Player, the user would have to type the password for each exported camera. After the update, the user will only have to type the password once.
Database export loading now supports SCP files
Environment.AddServer
andEnvironment.LoadConfiguration
now also supports taking an SCP file as parameter. This will cause the SDK to automatically load all devices available in the export and related device information.
Configuration API
-
Support has been added to the Configuration API for the following rule actions:
- On site trigger user-defined event
- Apply new settings on devices
- Access control actions (except Access request notification)
XProtect Smart Client
- The
VideoOS.Platform.Search.SearchResultData.GetBoundingShapesAsync(CancellationToken cancellationToken)
method has been marked as obsolete and will not be supported from 2021 R3. It has been replaced with the methodVideoOS.Platform.Search.SearchResultData.GetBoundingShapesAsync(DateTime time, CancellationToken cancellationToken)
. - Alarm Plugin has been extended with functionality to allow other plugins to select a specific alarm. A plugin can now send a message containing the id of the alarm and the id of the window containing the alarm plugin. The plugin in the given window will then select the corresponding alarm. If the id of the window is null, all windows with the alarm plugin will select the corresponding alarm.
Samples
- The Export Sample has been expanded to handle multiple cameras
- The
MediaPlaybackViewer
sample has been updated to load database export from bank and SCP file. - The
PlaybackWpfUser
sample has been updated to support audio and offline playback from SCP file. - The
MetadataPlaybackViewer
sample has been updated to support offline playback from SCP file.
Fixed issues
- The properties PreventReExport and SignExport on the DBExporter had no effect when used in a Smart Client plug-in.
- Using the Configuration API, a situation could occur in an exception handler where two threads recreated at the same time, causing unhandled exceptions.
- In some cases, Message Communication could stop soon after starting the Event Server service.
- Values provided in CameraDeviceDefinition Settings for streams was ignored when adding a new device.
- If message communication tracing was enabled, it would cause the Event Server to write a large number of exception logs in the MIP log.
- Memory usage of the Smart Client could increase when changing view using ImageViewerControl.
- When loading multiple microphones from offline files, only the last would be usable.
- Close() would not be executed when DemoDriver hardware is deleted.
- Documentation of the decoder_implementation parameter was incorrect and has therefore been updated.
- Fixed an issue where BitmapLiveSource would deliver 1 FPS no matter which FPS value was set.