예제 #1
0
        private void setDvrCompressionCfgV30(CHCNetSDK.NET_DVR_COMPRESSIONCFG_V30 compressionCfgInfoV30)
        {
            checkUserSessionValid();

            IntPtr ptrCompressionCfgInfoV30 = IntPtr.Zero;

            try {
                int compressionCfgInfoV30Size = Marshal.SizeOf(compressionCfgInfoV30);
                ptrCompressionCfgInfoV30 = Marshal.AllocHGlobal(compressionCfgInfoV30Size);
                Marshal.StructureToPtr(compressionCfgInfoV30, ptrCompressionCfgInfoV30, false);

                if (!CHCNetSDK.NET_DVR_SetDVRConfig(NvrUserSession.UserSessionState.UserId,
                                                    CHCNetSDK.NET_DVR_SET_COMPRESSCFG_V30,
                                                    NvrUserSession.UserSessionState.SelectedChannelNum,
                                                    ptrCompressionCfgInfoV30,
                                                    (uint)compressionCfgInfoV30Size))
                {
                    throw new NvrSdkException(CHCNetSDK.NET_DVR_GetLastError(), "NET_DVR_SetDVRConfig: NET_DVR_SET_COMPRESSCFG_V30 failed");
                }

                debugInfo($"NET_DVR_SetDVRConfig: NET_DVR_SET_COMPRESSCFG_V30 succ!");
            } finally {
                if (ptrCompressionCfgInfoV30 != IntPtr.Zero)
                {
                    Marshal.FreeHGlobal(ptrCompressionCfgInfoV30);
                }
            }
        }
예제 #2
0
        private CHCNetSDK.NET_DVR_COMPRESSIONCFG_V30 getDvrCompressionCfgV30()
        {
            checkUserSessionValid();

            IntPtr ptrCompressionCfgInfoV30 = IntPtr.Zero;

            CHCNetSDK.NET_DVR_COMPRESSIONCFG_V30 compressionCfgInfoV30 = new CHCNetSDK.NET_DVR_COMPRESSIONCFG_V30();

            try {
                int compressionCfgInfoV30Size = Marshal.SizeOf(compressionCfgInfoV30);
                ptrCompressionCfgInfoV30 = Marshal.AllocHGlobal(compressionCfgInfoV30Size);
                Marshal.StructureToPtr(compressionCfgInfoV30, ptrCompressionCfgInfoV30, false);

                uint dwReturn = 0;
                if (!CHCNetSDK.NET_DVR_GetDVRConfig(NvrUserSession.UserSessionState.UserId,
                                                    CHCNetSDK.NET_DVR_GET_COMPRESSCFG_V30,
                                                    NvrUserSession.UserSessionState.SelectedChannelNum,
                                                    ptrCompressionCfgInfoV30,
                                                    (uint)compressionCfgInfoV30Size,
                                                    ref dwReturn))
                {
                    throw new NvrSdkException(CHCNetSDK.NET_DVR_GetLastError(), "NET_DVR_GetDVRConfig: NET_DVR_GET_COMPRESSCFG_V30 failed");
                }

                compressionCfgInfoV30 = (CHCNetSDK.NET_DVR_COMPRESSIONCFG_V30)Marshal.PtrToStructure(ptrCompressionCfgInfoV30, typeof(CHCNetSDK.NET_DVR_COMPRESSIONCFG_V30));
                debugInfo($"NET_DVR_GetDVRConfig: NET_DVR_GET_COMPRESSCFG_V30 succ! return={dwReturn}");
            } finally {
                if (ptrCompressionCfgInfoV30 != IntPtr.Zero)
                {
                    Marshal.FreeHGlobal(ptrCompressionCfgInfoV30);
                }
            }

            return(compressionCfgInfoV30);
        }