Pelco Developer Network (PDN)

Digital Sentry older API creating video clip

Will older API versions still work with the latest Digital Sentry systems

Hi - We are using a very old API (about 6 versions older) (developed in 2011) and we have a customer that is experiencing an issue where the video playback is not functioning. Is there any known backwards compatibility issues with older versions of the API and latest VMS.

Jason

Hi Jason -

Which 'very old API' are you using with DS? Are you referring to DS ConneX SDK (which isn't an API but an SDK; a set of tools)?

If you're using DS Pelco API on a Digital Sentry and combining that using Pelco SDK - using SDK to make calls to the interface API on the DS, that's different. I don't think we had that as an option back in 2011, so my guess is DS ConneX SDK.

I've reviewed information that I have access to, and have not come up with a specific incompatibility or issue that would prevent DS ConneX SDK from working with current versions of Digital Sentry.

I would suggest engaging in support with our Product Support team, if they need to escalate to our team, they can let us know. Something that might be curious also is if they can view playback from the DS when using Control Point (ensuring that recording is taking place).

Edit: Oh, some things that I did forget to mention:

Digital Sentry is not as active in development at Pelco these days as the primary focus is now VideoXpert. Additionally, DS ConneX SDK has not had a release in many years, and is really only out there for older development effort - as you've pointed out. Basically what I want to establish is expectations that these products are not widely used, known, or supported from a development perspective very much today (far less than they were several years ago, and even that was not as much as Endura).

As Chris points out the PelcoSDK replaced DSConnex for DigitalSentry integrations a while back. Digital Sentry compatibility with DS ConneX SDK broke with DigitalSentry version 7.10.

I am actually using the Pelco SDK and from what I was told from our end user is that all functionality works except the Create Video Clip. Sample code looks like this:

PelcoVideo.Log.Info("Start PelcoAPIWrapper.CreateVideoClip(...).");

var pViewer = new PelcoAPI.PelcoAPIViewerNet();
pViewer.SetPluginDir(PLUGIN_PATH);
string sessionID = string.Empty;
string rtp = String.Format("rtp://{0}:{1}", FindIpAddress(camera.Server.HostOrIP, ushort.Parse(camera.Server.Port)), camera.LiveVideoPort.ToString());

PelcoVideo.Log.Info("PelcoAPIWrapper.CreateVideoClip - RTP: " + rtp);

PelcoVideo.Log.Info("Network Video Recorder: IP:{0}, Port{1}", camera.Server.NetworkVideoRecorderIp, camera.Server.NetworkVideoRecorderPort);
if (string.IsNullOrEmpty(camera.Server.NetworkVideoRecorderIp) || string.IsNullOrEmpty(camera.Server.NetworkVideoRecorderPort))
{
GetNetworkVideoRecorder(camera.Server);
}

PelcoAPI.StreamInfoNet streamInfoNet = new PelcoAPI.StreamInfoNet();
bool cameraquery = pViewer.VideoQuery("NOW", "INFINITE", camera.CameraIpAddress, camera.CameraPort, "1", "1", camera.CameraUID, false, ref streamInfoNet);
sessionID = pViewer.StartStream("NOW", "INFINITE", camera.CameraIpAddress, camera.CameraPort, "1", rtp, camera.CameraUID, "1", null, false, false, null);
PelcoVideo.Log.Info("PelcoAPIWrapper.CreateVideoClip SessionID={0}", sessionID);
PelcoVideo.Log.Info("PelcoAPIWrapper.CreateVideoClip RecorderIP={0}, RecorderPort={1}, RecorderID={2}, CameraID={3}, CameraIndex={4}", camera.Server.NetworkVideoRecorderIp, camera.Server.NetworkVideoRecorderPort, camera.Server.NetworkVideoRecorderId, camera.CameraUID, camera.Index);
var startRecording = pViewer.StartManualRecording(sessionID, "1", camera.Server.NetworkVideoRecorderIp, camera.Server.NetworkVideoRecorderPort, "1");
PelcoVideo.Log.Info("PelcoAPIWrapper.CreateVideoClip StartRecording={0}", startRecording);
Thread.Sleep(camera.PostRecordTime.Value * 1000);
var stopRecording = pViewer.StopManualRecording(sessionID);
PelcoVideo.Log.Info("PelcoAPIWrapper.CreateVideoClip StopRecording={0}", stopRecording);
pViewer.StopStream(sessionID);
pViewer.Dispose();

PelcoVideo.Log.Info("Finish PelcoAPIWrapper.CreateVideoClip(...).");

Thank you for your comments, Jason.

The 'older API' that you mention was actually a much older version of Pelco SDK from the looks of things. What Pelco SDK version specifically are you using? What DS version are you trying to use it with?

I can say that testing between old SDK versions and newer DS versions has not been done. Both products are not under active development any longer, so there might be anomalies or things that do not function as expected. If, at the end of the day, it does end up being a problem with one or the other, I'm sorry to say that it is unlikely to be addressed.

Specific to the snippet of code that you've posted, it appears that you're attempting to begin a clip of manual recording on the Digital Sentry using the older PelcoAPIViewer tool. I suspect that this has worked in the past - otherwise you would probably know about it already and not be asking us this question - right? If so, can you indicate which versions of Pelco SDK combined with which versions of DS Pelco API this behavior did work properly with?

It may be an issue with the DS Pelco API service specifically. It could be a combination of using the new DS Pelco API version with the requests that the older version of Pelco SDK is using. I would suggest examining Wireshark to read the TCP request and response traffic to see what the request that is being sent when using the Pelco SDK (what it looks like), and what the response from the Digital Sentry looks like.

Finally, please take a moment to read through our Forum Guidelines post, as some of the information and suggestions there might be able to help you out.