Introduction
Introduction to MIP SDK 2016
MIPSDK General
- Move to 64 bit as default
- MIPSDK is now installed under "Program Files\Milestone\MIPSDK"
- Templates will generate 64-bit solution by default
- MIPSDK\Bin contains 64-bit DLLs
- MIPSDK\Bin\debug contains 64-bit DLLs in debug mode (for C++ development)
- 32-bit DLLs are available in a separate installer
- Redistibutable installers exists for both 32-bit and 64-bit customers
- Support and documentation for Transact - new Introduction included. Reference documentation placed under 'Plugin Integration'
- Move Hardware: The Move Hardware feature released with the Corporate and Expert products, is supported by the .net Component. As cameras and related devices are moved from one recorder to another, the MIPSDK .net component will update and restructure the internal configuration. Video sessions active at the time will automatically swap to the new recorder within 10-20 seconds. For partners integrating via protocols, the ServerCommandService SOAP method “QueryChanges” can be used to trigger an update.
- Multicast: When Corporate or Expert recording servers are configured for multicast, the .net component showing view (ImageViewControl and ImageViewer ActiveX) will now support retrieve video stream via multicast.
- OEM products: To support partners OEM’ing the XProtect products, the EnvironmentManager’s EnvironmentOptions now contains a key “CompanyNameFolder” with a value of the OEM partner. Default value is “Milestone”.
- ACM has been updated to be more user friendly for large installations – no plugin changes required.
- Transact Client sample removed, as new Transact now released.
Changes in MIPSDK Component library (VideoOS.Platform.SDK.* files)
- Some enhancement for quicker login and server identification
- LoadSiteItem now available on MultiEnvironment and MultiUserEnvironment classes
- The ServerMonitor class now utilizes a new method on the ServerCommandService: IsOnline. This ensures that when result is states as server online, then the internal Corporate server is actually running. (Previously is would only state if the connection to the IIS was working).
- The Items for Kind.Input will now contain generic events and user-defined events, where the Properties will contain a key of “SubType” and an “EventType” – with value of either “Generic” or “Global”. (“Global” identifies User-Defined events and Global manual buttons)
- Hardware can now be requested from the Configuration, to retrieve a collection of related items. These Items are the cameras, speakers, microphones, metadata items that are physically located on the hardware. To retrieve a hardware item, call one of the “GetItems” with Kind = Kind.Hardware. The retrieved hardware item will contain all it’s sub-items in the “GetRelated()” list.
- New events and alarms generated via the messages NewEvenrCommand and NewAlarmCommand now supports sending to multiple event servers in the same execution. The Message.Data’s eventheader’sserverid is used to identify what server to send it to.
- Internal server table now use both servername and port for lookup. This will support multiple XProtect servers being accessed via same IP address – e.g. a gateway configuration.
- GetItemConfiguration and GetItemConfigurations now has new overload method where the ServerId can be specified - .e.g. supports loading ItemConfiguration from secondary XProtect servers.
- Added missing status guids in KnownStatusEvents class
- Added code to return SiteItem for XPCO / Basic users
- Added millisecond to logger
- Added new login mechanism, to access each slave individually (not through master) : improves late access to slaves that are offline at login time. (A new flag 'ServerConfiguration' = 'AllServersIndividually' has to be set)
XProtect Smart Client
- VideoControl now has support for setting overlays
- Temporary view groups can now be updated after creation.
- Hardware accelerated video rendering is now default. MIP plugins showing video can control if software decoding should be used or not. Check the options available in the EnvironmentOptions class. MIP plugins showing overlays, works as previous, no change required.
- ViewItemUserControl - Important when using ImageViewerControl: The order of calling OnLoad, and Init has been reversed. We suggest that you do NOT use OnLoad anymore but include all initialization in the Init() method.
New features for administrators
- Accessing playback video is now supported in the Management Client and Management Application. This can enhance setup of video related configuration, e.g. analytics.
- A simple PlaybackUserControl now available for use in the administrators
- It is now possible to configure different rights for different administrator. The MIP plugin providing items for configuration in administrators should define “ADMIN_SECURITY” if they have already defined “GENERIC_READ” and “GENERIC_WRITE”. For backwards compatibility – the “ADMIN_SECURITY” will be added if not found.
General MIP changes
- Environments now have an ”Uninitialize” method, in case a complete restart of the component is required.
- ImageViewerAddOn now has a number of Mouse click events, and information about image size and location
- Metadata format for boundingbox extended with line thickness and color.
New Samples
- Transact connector - Show how a continues source of data can be entered into the system
- MetadataProvider changed to MultiChannelMetadataProvider
- Smart Search sample added to show applications can use same search feature as now available in the Smart Client
- Tool sample SCMessageAreaMesagetester show how Smart Client message area can be used
- MediaPlaybackViewer2015 is a new sample utilizing the new PlaybackController. This sample is a much simpler version of the MediaPlaybackViewer
- New sample BoundingBoxMetadataProvider showing the extended fields of the boundingbox metadata
Updated Samples
- Tool sample SCOverlayImageTester show more overlay features
Fixed issues
- Handle when no Metadata devices available (got null exception for login to XPE)
- Fixed issue for opening multiple PQZ files via MIPSDK (Got duplicate serverid exception)
- Fixed issue for initalizaing SDKAudioPlayer with (-5) -- browser relevant fix
- Fixed JPEG live saver cpp sample, contained issues for receiving small images
- Added copy statement for Python in cpp.bat file (could result in Loader exception)
- Handle async soap login, when issued from UI thread (Critical)
- Fixed RemoveServer ( uri ) - to support replacing one server/login credentials
- Sample TcpVideoViewer - fixed token refresh for XPE connections
- Fixed issue about Messageommunication: When multiple classes within same application(e.g. Smart Client) listens to same event, stopping one class would stop all classes listening to this event
- Avoid null exception when DeSerializaing invalid ItemConfigurations - would lead to loss of ItemConfigurations
- Ensure date time format is always InvariantCulture. Issue found when client and server used different culture
- Enabled preset using Guids, changing the FQID and lookup
- For component integrations where server and client have different computer culture, and fix has been applied to ensure correct time format.
- Modified MediaPlaybackVewer sample to fix an issue around backwards playback (reference to SDKPlaybackController removed/replaced)