I am running 2018 R1 SDK. We are mostly running Windows 10 Pro OS.
When running 7 cameras live, my CPU sits around 7% (higher than other video integrators, but still totally acceptable)
Each time I open a Playback Dialog, the CPU increases. After closing the Playback dialog, the CPU never decreases.
For both Live and Playback, I set:
EnvironmentManager.Instance.EnvironmentOptions[“UseActiveX”] = “No”;
When I close the Playback window I run:
if (\_imageViewerControl1 == null) return;
\_imageViewerControl1.Disconnect();
\_imageViewerControl1.Close();
\_imageViewerControl1.Dispose();
\_imageViewerControl1 = null;
It most definitely seems like the Milestone SDK Environment is holding onto some form of memory or process or playback or something.
This is causing major issues for our customer, who is experiencing the same CPU issue. After opening/closing the Playback window a dozen times, the CPU will be at 90+%, and never reduces.
What is causing this? How can it be corrected?
Note: There are no issues at all with Live view. This issue ONLY involves Playback.
Here is my connection code for Playback:
if (\_playbackControllerFqid == null)
\_playbackControllerFqid = ClientControl.Instance.GeneratePlaybackController();
\_imageViewerControl1 = ClientControl.Instance.GenerateImageViewerControl();
\_imageViewerControl1.Dock = DockStyle.Fill;
\_imageViewerControl1.PlaybackControllerFQID = \_playbackControllerFqid;
panel1.Controls.Clear();
panel1.Controls.Add(\_imageViewerControl1);
panel1.Width = this.Width - 2;
panel1.Height = this.Height - 2;
panel1.BringToFront();
\_imageViewerControl1.CameraFQID = \_currentItem.FQID;
\_imageViewerControl1.EnableVisibleLiveIndicator = EnvironmentManager.Instance.Mode == Mode.ClientLive;
\_imageViewerControl1.EnableMousePtzEmbeddedHandler = false;
\_imageViewerControl1.MaintainImageAspectRatio = true;
\_imageViewerControl1.EnableRecordedImageDisplayedEvent = true;
\_imageViewerControl1.RecordedImageReceivedEvent += \_imageViewerControl1\_RecordedImageReceivedEvent;
\_imageViewerControl1.EnableVisibleTimeStamp = true;
\_imageViewerControl1.SetVideoQuality(DvrConnect.ImageQuality);
\_imageViewerControl1.EnableVisibleHeader = true;
\_imageViewerControl1.EnableDigitalZoom = false;
\_imageViewerControl1.Initialize();
\_imageViewerControl1.Connect();
\_imageViewerControl1.Selected = true;
EnvironmentManager.Instance.EnvironmentOptions\["UseActiveX"\] = "No";
EnvironmentManager.Instance.SendMessage(
new VideoOS.Platform.Messaging.Message(MessageId.System.ModeChangeCommand, Mode.ClientPlayback),
\_playbackControllerFqid);
EnvironmentManager.Instance.SendMessage(new VideoOS.Platform.Messaging.Message(
MessageId.SmartClient.PlaybackCommand,
new PlaybackCommandData() { Command = PlaybackData.Goto, DateTime = \_startTime }), \_playbackControllerFqid);
EnvironmentManager.Instance.SendMessage(new VideoOS.Platform.Messaging.Message(
MessageId.SmartClient.PlaybackCommand,
new PlaybackCommandData() { Command = PlaybackData.PlayForward, Speed = 1.0 }), \_playbackControllerFqid);
this.Show();