
com.hikvision.netsdk.linux.HikNetSDKLibrary Maven / Gradle / Ivy
package com.hikvision.netsdk.linux;
import com.hikvision.netsdk.def.ErrorNumber;
import com.hikvision.netsdk.linux.callback.ExceptionCallBack;
import com.hikvision.netsdk.linux.callback.RealDataCallBack;
import com.hikvision.netsdk.linux.callback.RealDataCallBack_V30;
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.NativeLibrary;
import com.sun.jna.Pointer;
import com.sun.jna.ptr.IntByReference;
/**
* 海康的Linux版本设备网络SDK封装库
*/
@SuppressWarnings("UnusedDeclaration")
public interface HikNetSDKLibrary extends Library {
public static final String JNA_LIBRARY_NAME = "hcnetsdk";
public static final NativeLibrary JNA_NATIVE_LIB = NativeLibrary.getInstance(HikNetSDKLibrary.JNA_LIBRARY_NAME);
public static final HikNetSDKLibrary INSTANCE = (HikNetSDKLibrary) Native.loadLibrary(HikNetSDKLibrary.JNA_LIBRARY_NAME, HikNetSDKLibrary.class);
/**
* 序列号长度
*/
public static final int SERIALNO_LEN = (int) 48;
public static final int TRUE = (int) 1;
public static final int FALSE = (int) 0;
/**
* 返回最后操作的错误码。
*
* @return 返回值为错误码。错误码主要分为网络通讯库错误码、RTSP通讯库错误码和软硬解库错误码,详见下表。
* 网络通讯库错误码
*
*
* 错误类型 错误值 错误信息
*
*
* {@link ErrorNumber#NET_DVR_NOERROR} 0 没有错误。
* {@link ErrorNumber#NET_DVR_PASSWORD_ERROR} 1 用户名密码错误。注册时输入的用户名或者密码错误。
* {@link ErrorNumber#NET_DVR_NOENOUGHPRI} 2 权限不足。该注册用户没有权限执行当前对设备的操作,可以与远程用户参数配置做对比。
* {@link ErrorNumber#NET_DVR_NOINIT} 3 SDK未初始化。
* {@link ErrorNumber#NET_DVR_CHANNEL_ERROR} 4 通道号错误。设备没有对应的通道号。
* {@link ErrorNumber#NET_DVR_OVER_MAXLINK} 5 设备总的连接数超过最大。
* {@link ErrorNumber#NET_DVR_VERSIONNOMATCH} 6 版本不匹配。SDK和设备的版本不匹配。
* {@link ErrorNumber#NET_DVR_NETWORK_FAIL_CONNECT} 7 连接设备失败。设备不在线或网络原因引起的连接超时等。
* {@link ErrorNumber#NET_DVR_NETWORK_SEND_ERROR} 8 向设备发送失败。
* {@link ErrorNumber#NET_DVR_NETWORK_RECV_ERROR} 9 从设备接收数据失败。
* {@link ErrorNumber#NET_DVR_NETWORK_RECV_TIMEOUT} 10 从设备接收数据超时。
* {@link ErrorNumber#NET_DVR_NETWORK_ERRORDATA} 11 传送的数据有误。发送给设备或者从设备接收到的数据错误,如远程参数配置时输入设备不支持的值。
* {@link ErrorNumber#NET_DVR_ORDER_ERROR} 12 调用次序错误。
* {@link ErrorNumber#NET_DVR_OPERNOPERMIT} 13 无此权限。
* {@link ErrorNumber#NET_DVR_COMMANDTIMEOUT} 14 设备命令执行超时。
* {@link ErrorNumber#NET_DVR_ERRORSERIALPORT} 15 串口号错误。指定的设备串口号不存在。
* {@link ErrorNumber#NET_DVR_ERRORALARMPORT} 16 报警端口错误。指定的设备报警输出端口不存在。
* {@link ErrorNumber#NET_DVR_PARAMETER_ERROR} 17 参数错误。SDK接口中给入的输入或输出参数为空,或者参数格式或值不符合要求。
* {@link ErrorNumber#NET_DVR_CHAN_EXCEPTION} 18 设备通道处于错误状态
* {@link ErrorNumber#NET_DVR_NODISK} 19 设备无硬盘。当设备无硬盘时,对设备的录像文件、硬盘配置等操作失败。
* {@link ErrorNumber#NET_DVR_ERRORDISKNUM} 20 硬盘号错误。当对设备进行硬盘管理操作时,指定的硬盘号不存在时返回该错误。
* {@link ErrorNumber#NET_DVR_DISK_FULL} 21 设备硬盘满。
* {@link ErrorNumber#NET_DVR_DISK_ERROR} 22 设备硬盘出错
* {@link ErrorNumber#NET_DVR_NOSUPPORT} 23 设备不支持。
* {@link ErrorNumber#NET_DVR_BUSY} 24 设备忙。
* {@link ErrorNumber#NET_DVR_MODIFY_FAIL} 25 设备修改不成功。
* {@link ErrorNumber#NET_DVR_PASSWORD_FORMAT_ERROR} 26 密码输入格式不正确
* {@link ErrorNumber#NET_DVR_DISK_FORMATING} 27 硬盘正在格式化,不能启动操作。
* {@link ErrorNumber#NET_DVR_DVRNORESOURCE} 28 设备资源不足。
* {@link ErrorNumber#NET_DVR_DVROPRATEFAILED} 29 设备操作失败。
* {@link ErrorNumber#NET_DVR_OPENHOSTSOUND_FAIL} 30 语音对讲、语音广播操作中采集本地音频或打开音频输出失败。
* {@link ErrorNumber#NET_DVR_DVRVOICEOPENED} 31 设备语音对讲被占用。
* {@link ErrorNumber#NET_DVR_TIMEINPUTERROR} 32 时间输入不正确。
* {@link ErrorNumber#NET_DVR_NOSPECFILE} 33 回放时设备没有指定的文件。
* {@link ErrorNumber#NET_DVR_CREATEFILE_ERROR} 34 创建文件出错。本地录像、保存图片、获取配置文件和远程下载录像时创建文件失败。
* {@link ErrorNumber#NET_DVR_FILEOPENFAIL} 35 打开文件出错。设置配置文件、设备升级、上传审讯文件时打开文件失败。
* {@link ErrorNumber#NET_DVR_OPERNOTFINISH} 36 上次的操作还没有完成。
* {@link ErrorNumber#NET_DVR_GETPLAYTIMEFAIL} 37 获取当前播放的时间出错。
* {@link ErrorNumber#NET_DVR_PLAYFAIL} 38 播放出错。
* {@link ErrorNumber#NET_DVR_FILEFORMAT_ERROR} 39 文件格式不正确。
* {@link ErrorNumber#NET_DVR_DIR_ERROR} 40 路径错误
* {@link ErrorNumber#NET_DVR_ALLOC_RESOURCE_ERROR} 41 SDK资源分配错误。
* {@link ErrorNumber#NET_DVR_AUDIO_MODE_ERROR} 42 声卡模式错误。当前打开声音播放模式与实际设置的模式不符出错。
* {@link ErrorNumber#NET_DVR_NOENOUGH_BUF} 43 缓冲区太小。接收设备数据的缓冲区或存放图片缓冲区不足。
* {@link ErrorNumber#NET_DVR_CREATESOCKET_ERROR} 44 创建SOCKET出错。
* {@link ErrorNumber#NET_DVR_SETSOCKET_ERROR} 45 设置SOCKET出错。
* {@link ErrorNumber#NET_DVR_MAX_NUM} 46 个数达到最大。分配的注册连接数、预览连接数超过SDK支持的最大数。
* {@link ErrorNumber#NET_DVR_USERNOTEXIST} 47 用户不存在。注册的用户ID已注销或不可用。
* {@link ErrorNumber#NET_DVR_WRITEFLASHERROR} 48 写FLASH出错。设备升级时写FLASH失败。
* {@link ErrorNumber#NET_DVR_UPGRADEFAIL} 49 设备升级失败。网络或升级文件语言不匹配等原因升级失败。
* {@link ErrorNumber#NET_DVR_CARDHAVEINIT} 50 解码卡已经初始化过。
* {@link ErrorNumber#NET_DVR_PLAYERFAILED} 51 调用播放库中某个函数失败。
* {@link ErrorNumber#NET_DVR_MAX_USERNUM} 52 登录设备的用户数达到最大。
* {@link ErrorNumber#NET_DVR_GETLOCALIPANDMACFAIL} 53 获得本地PC的IP地址或物理地址失败。
* {@link ErrorNumber#NET_DVR_NOENCODEING} 54 设备该通道没有启动编码。
* {@link ErrorNumber#NET_DVR_IPMISMATCH} 55 IP地址不匹配。
* {@link ErrorNumber#NET_DVR_MACMISMATCH} 56 MAC地址不匹配。
* {@link ErrorNumber#NET_DVR_UPGRADELANGMISMATCH} 57 升级文件语言不匹配。
* {@link ErrorNumber#NET_DVR_MAX_PLAYERPORT} 58 播放器路数达到最大。
* {@link ErrorNumber#NET_DVR_NOSPACEBACKUP} 59 备份设备中没有足够空间进行备份。
* {@link ErrorNumber#NET_DVR_NODEVICEBACKUP} 60 没有找到指定的备份设备。
* {@link ErrorNumber#NET_DVR_PICTURE_BITS_ERROR} 61 图像素位数不符,限24色。
* {@link ErrorNumber#NET_DVR_PICTURE_DIMENSION_ERROR} 62 图片高*宽超限,限128*256。
* {@link ErrorNumber#NET_DVR_PICTURE_SIZ_ERROR} 63 图片大小超限,限100K。
* {@link ErrorNumber#NET_DVR_LOADPLAYERSDKFAILED} 64 载入当前目录下Player Sdk出错。
* {@link ErrorNumber#NET_DVR_LOADPLAYERSDKPROC_ERROR} 65 找不到Player Sdk中某个函数入口。
* {@link ErrorNumber#NET_DVR_LOADDSSDKFAILED} 66 载入当前目录下DSsdk出错。
* {@link ErrorNumber#NET_DVR_LOADDSSDKPROC_ERROR} 67 找不到DsSdk中某个函数入口。
* {@link ErrorNumber#NET_DVR_DSSDK_ERROR} 68 调用硬解码库DsSdk中某个函数失败。
* {@link ErrorNumber#NET_DVR_VOICEMONOPOLIZE} 69 声卡被独占。
* {@link ErrorNumber#NET_DVR_JOINMULTICASTFAILED} 70 加入多播组失败。
* {@link ErrorNumber#NET_DVR_CREATEDIR_ERROR} 71 建立日志文件目录失败。
* {@link ErrorNumber#NET_DVR_BINDSOCKET_ERROR} 72 绑定套接字失败。
* {@link ErrorNumber#NET_DVR_SOCKETCLOSE_ERROR} 73 socket连接中断,此错误通常是由于连接中断或目的地不可达。
* {@link ErrorNumber#NET_DVR_USERID_ISUSING} 74 注销时用户ID正在进行某操作。
* {@link ErrorNumber#NET_DVR_SOCKETLISTEN_ERROR} 75 监听失败。
* {@link ErrorNumber#NET_DVR_PROGRAM_EXCEPTION} 76 程序异常。
* {@link ErrorNumber#NET_DVR_WRITEFILE_FAILED} 77 写文件失败。本地录像、远程下载录像、下载图片等操作时写文件失败。
* {@link ErrorNumber#NET_DVR_FORMAT_READONLY} 78 禁止格式化只读硬盘。
* {@link ErrorNumber#NET_DVR_WITHSAMEUSERNAME} 79 远程用户配置结构中存在相同的用户名。
* {@link ErrorNumber#NET_DVR_DEVICETYPE_ERROR} 80 导入参数时设备型号不匹配。
* {@link ErrorNumber#NET_DVR_LANGUAGE_ERROR} 81 导入参数时语言不匹配。
* {@link ErrorNumber#NET_DVR_PARAVERSION_ERROR} 82 导入参数时软件版本不匹配。
* {@link ErrorNumber#NET_DVR_IPCHAN_NOTALIVE} 83 预览时外接IP通道不在线。
* {@link ErrorNumber#NET_DVR_RTSP_SDK_ERROR} 84 加载标准协议通讯库StreamTransClient失败。
* {@link ErrorNumber#NET_DVR_CONVERT_SDK_ERROR} 85 加载转封装库失败。
* {@link ErrorNumber#NET_DVR_IPC_COUNT_OVERFLOW} 86 超出最大的IP接入通道数。
* {@link ErrorNumber#NET_DVR_MAX_ADD_NUM} 87 添加录像标签或者其他操作超出最多支持的个数。
* {@link ErrorNumber#NET_DVR_PARAMMODE_ERROR} 88 图像增强仪,参数模式错误(用于硬件设置时,客户端进行软件设置时错误值)。
* {@link ErrorNumber#NET_DVR_CODESPITTER_OFFLINE} 89 码分器不在线。
* {@link ErrorNumber#NET_DVR_BACKUP_COPYING} 90 设备正在备份。
* {@link ErrorNumber#NET_DVR_CHAN_NOTSUPPORT} 91 通道不支持该操作。
* {@link ErrorNumber#NET_DVR_CALLINEINVALID} 92 高度线位置太集中或长度线不够倾斜。
* {@link ErrorNumber#NET_DVR_CALCANCELCONFLICT} 93 取消标定冲突,如果设置了规则及全局的实际大小尺寸过滤。
* {@link ErrorNumber#NET_DVR_CALPOINTOUTRANGE} 94 标定点超出范围。
* {@link ErrorNumber#NET_DVR_FILTERRECTINVALID} 95 尺寸过滤器不符合要求。
* {@link ErrorNumber#NET_DVR_DDNS_DEVOFFLINE} 96 设备没有注册到ddns上。
* {@link ErrorNumber#NET_DVR_DDNS_INTER_ERROR} 97 DDNS 服务器内部错误。
* {@link ErrorNumber#NET_DVR_ALIAS_DUPLICATE} 150 别名重复(EasyDDNS的配置)
* {@link ErrorNumber#NET_DVR_DEV_NET_OVERFLOW} 800 网络流量超过设备能力上限
* {@link ErrorNumber#NET_DVR_STATUS_RECORDFILE_WRITING_NOT_LOCK} 801 录像文件在录像,无法被锁定
* {@link ErrorNumber#NET_DVR_STATUS_CANT_FORMAT_LITTLE_DISK} 802 由于硬盘太小无法格式化
*
* RTSP通讯库错误码
*
*
* 错误类型 错误值 错误信息
*
*
* {@link ErrorNumber#NET_DVR_RTSP_ERROR_NOENOUGHPRI} 401 无权限:服务器返回401时,转成这个错误码
* {@link ErrorNumber#NET_DVR_RTSP_ERROR_ALLOC_RESOURCE} 402 分配资源失败
* {@link ErrorNumber#NET_DVR_RTSP_ERROR_PARAMETER} 403 参数错误
* {@link ErrorNumber#NET_DVR_RTSP_ERROR_FORCE_STOP} 406 用户中途强行退出
* {@link ErrorNumber#NET_DVR_RTSP_GETPORTFAILED} 407 获取RTSP端口错误
* {@link ErrorNumber#NET_DVR_RTSP_DESCRIBERROR} 410 RTSP DECRIBE交互错误
* {@link ErrorNumber#NET_DVR_RTSP_DESCRIBESENDTIMEOUT} 411 RTSP DECRIBE发送超时
* {@link ErrorNumber#NET_DVR_RTSP_DESCRIBESENDERROR} 412 RTSP DECRIBE发送失败
* {@link ErrorNumber#NET_DVR_RTSP_DESCRIBERECVTIMEOUT} 413 RTSP DECRIBE接收超时
* {@link ErrorNumber#NET_DVR_RTSP_DESCRIBERECVDATALOST} 414 RTSP DECRIBE接收数据错误
* {@link ErrorNumber#NET_DVR_RTSP_DESCRIBERECVERROR} 415 RTSP DECRIBE接收失败
* {@link ErrorNumber#NET_DVR_RTSP_DESCRIBESERVERERR} 416 RTSP DECRIBE服务器返回401,501等错误
* {@link ErrorNumber#NET_DVR_RTSP_SETUPSENDTIMEOUT} 421 RTSP SETUP发送超时
* {@link ErrorNumber#NET_DVR_RTSP_SETUPSENDERROR} 422 RTSP SETUP发送错误
* {@link ErrorNumber#NET_DVR_RTSP_SETUPRECVTIMEOUT} 423 RTSP SETUP接收超时
* {@link ErrorNumber#NET_DVR_RTSP_SETUPRECVDATALOST} 424 RTSP SETUP接收数据错误
* {@link ErrorNumber#NET_DVR_RTSP_SETUPRECVERROR} 425 RTSP SETUP接收失败
* {@link ErrorNumber#NET_DVR_RTSP_OVER_MAX_CHAN} 426 设备超过最大连接数
* {@link ErrorNumber#NET_DVR_RTSP_PLAYSENDTIMEOUT} 431 RTSP PLAY发送超时
* {@link ErrorNumber#NET_DVR_RTSP_PLAYSENDERROR} 432 RTSP PLAY发送错误
* {@link ErrorNumber#NET_DVR_RTSP_PLAYRECVTIMEOUT} 433 RTSP PLAT接收超时
* {@link ErrorNumber#NET_DVR_RTSP_PLAYRECVDATALOST} 434 RTSP PLAY接收数据错误
* {@link ErrorNumber#NET_DVR_RTSP_PLAYRECVERROR} 435 RTSP PLAY接收失败
* {@link ErrorNumber#NET_DVR_RTSP_PLAYSERVERERR} 436 RTSP PLAY设备返回错误状态
* {@link ErrorNumber#NET_DVR_RTSP_TEARDOWNSENDTIMEOUT} 441 RTSP TEARDOWN发送超时
* {@link ErrorNumber#NET_DVR_RTSP_TEARDOWNSENDERROR} 442 RTSP TEARDOWN发送错误
* {@link ErrorNumber#NET_DVR_RTSP_TEARDOWNRECVTIMEOUT} 443 RTSP TEARDOWN接收超时
* {@link ErrorNumber#NET_DVR_RTSP_TEARDOWNRECVDATALOST} 444 RTSP TEARDOWN接收数据错误
* {@link ErrorNumber#NET_DVR_RTSP_TEARDOWNRECVERROR} 445 RTSP TEARDOWN接收失败
* {@link ErrorNumber#NET_DVR_RTSP_TEARDOWNSERVERERR} 446 RTSP TEARDOWN设备返回错误状态
*
*
*/
int NET_DVR_GetLastError();
/**
* 返回最后操作的错误码信息。
* 通过{@link #NET_DVR_GetLastError}函数可获取错误号值。
*
* @param pErrorNo 错误码数值的指针
* @return 返回值为错误码信息的指针。错误码主要分为网络通讯库错误码、RTSP通讯库错误码和软硬解库错误码。
* @see #NET_DVR_GetLastError
*/
String NET_DVR_GetErrorMsg(IntByReference pErrorNo);
/**
* 初始化SDK,调用其他SDK函数的前提。
*
* @return {@link #TRUE}表示成功,{@link #FALSE}表示失败。
* 获取错误码调用{@link #NET_DVR_GetLastError}
* 以下是该接口可能返回的错误值
*
*
* 错误类型 错误值 错误信息
*
*
* {@link ErrorNumber#NET_DVR_NOERROR} 0 没有错误。
* {@link ErrorNumber#NET_DVR_ALLOC_RESOURCE_ERROR} 41 SDK资源分配错误。
* {@link ErrorNumber#NET_DVR_GETLOCALIPANDMACFAIL} 53 获得本地PC的IP地址或物理地址失败。
*
*
* @see #NET_DVR_Cleanup
*/
int NET_DVR_Init();
/**
* 释放SDK资源,在程序结束之前调用。
*
* @return {@link #TRUE}表示成功,{@link #FALSE}表示失败。
* 获取错误码调用{@link #NET_DVR_GetLastError}
* @see #NET_DVR_Init
*/
int NET_DVR_Cleanup();
/**
* 设置重连功能。
* 该接口可以同时控制预览、透明通道和布防的重连功能。
* 不调用该接口时,SDK默认启动预览、透明通道和布防的重连功能,重连时间间隔为5秒。
*
* @param dwInterval 重连间隔,单位:毫秒
* @param bEnableRecon 是否重连,0-不重连,1-重连,参数默认值为1
* @return {@link #TRUE}表示成功,{@link #FALSE}表示失败。
* 获取错误码调用{@link #NET_DVR_GetLastError}
* 以下是该接口可能返回的错误值
*
*
* 错误类型 错误值 错误信息
*
*
* {@link ErrorNumber#NET_DVR_NOERROR} 0 没有错误。
* {@link ErrorNumber#NET_DVR_NOINIT} 3 SDK未初始化。
*
*
*/
int NET_DVR_SetReconnect(int dwInterval, int bEnableRecon);
/**
* 注册接收异常、重连等消息的窗口句柄或回调函数。
*
* @param reserved1 Linux下该参数保留
* @param reserved2 Linux下该参数保留
* @param fExceptionCallBack 接收异常消息的回调函数,回调当前异常的相关信息
* @param pUser 用户数据
* @return {@link #TRUE}表示成功,{@link #FALSE}表示失败。
* 获取错误码调用{@link #NET_DVR_GetLastError}
*/
int NET_DVR_SetExceptionCallBack_V30(int reserved1, Pointer reserved2, ExceptionCallBack fExceptionCallBack, Pointer pUser);
/**
* 用户注册设备。
* 如DS-7116、DS-81xx、DS-90xx、DS-91xx等系列设备允许有32个注册用户名,且同时最多允许128个用户注册;
* 如DS-80xx等设备允许有16个注册用户名,且同时最多允许128个用户注册。
* SDK支持512个注册,返回UserID逐一递增,从0到511之后又返回0,注销以及NET_DVR_Cleanup均没有初始化为0。
* 客户端发生异常离线时,设备端保留用户ID的有效时间是5分钟。
*
* @param sDVRIP 设备IP地址
* @param wDVRPort 设备端口号
* @param sUserName 登录的用户名
* @param sPassword 用户密码
* @param lpDeviceInfo [out] 设备信息
* @return -1表示失败,其他值表示返回的用户ID值。
* 该用户ID具有唯一性,后续对设备的操作都需要通过此ID实现。
* 获取错误码调用{@link #NET_DVR_GetLastError}
* 以下是该接口可能返回的错误值
*
*
* 错误类型 错误值 错误信息
*
*
* {@link ErrorNumber#NET_DVR_NOERROR} 0 没有错误。
* {@link ErrorNumber#NET_DVR_PASSWORD_ERROR} 1 用户名密码错误。注册时输入的用户名或者密码错误。
* {@link ErrorNumber#NET_DVR_NOINIT} 3 SDK未初始化。
* {@link ErrorNumber#NET_DVR_NETWORK_FAIL_CONNECT} 7 连接设备失败。设备不在线或网络原因引起的连接超时等。
* {@link ErrorNumber#NET_DVR_NETWORK_SEND_ERROR} 8 向设备发送失败。
* {@link ErrorNumber#NET_DVR_NETWORK_RECV_ERROR} 9 从设备接收数据失败。
* {@link ErrorNumber#NET_DVR_NETWORK_RECV_TIMEOUT} 10 从设备接收数据超时。
* {@link ErrorNumber#NET_DVR_COMMANDTIMEOUT} 14 设备命令执行超时。
* {@link ErrorNumber#NET_DVR_PARAMETER_ERROR} 17 参数错误。SDK接口中给入的输入或输出参数为空。
* {@link ErrorNumber#NET_DVR_ALLOC_RESOURCE_ERROR} 41 SDK资源分配错误。
* {@link ErrorNumber#NET_DVR_NOENOUGH_BUF} 43 缓冲区太小。接收设备数据的缓冲区或存放图片缓冲区不足。
* {@link ErrorNumber#NET_DVR_CREATESOCKET_ERROR} 44 创建SOCKET出错。
* {@link ErrorNumber#NET_DVR_MAX_NUM} 46 个数达到最大。分配的注册连接数、预览连接数超过SDK支持的最大数。
* {@link ErrorNumber#NET_DVR_MAX_USERNUM} 52 登录设备的用户数达到最大。
* {@link ErrorNumber#NET_DVR_BINDSOCKET_ERROR} 72 绑定套接字失败。
* {@link ErrorNumber#NET_DVR_SOCKETCLOSE_ERROR} 73 socket连接中断,此错误通常是由于连接中断或目的地不可达。
*
*
* @see #NET_DVR_Logout_V30
*/
int NET_DVR_Login_V30(String sDVRIP, short wDVRPort, String sUserName, String sPassword, NET_DVR_DEVICEINFO_V30.ByReference lpDeviceInfo);
/**
* 用户注销。
* 该接口强制停止该用户的所有操作和释放所有的资源,确保该ID对应的线程都安全退出,资源得到释放。
* 建议使用NET_DVR_Logout接口实现注销功能。
*
* @param lUserID 用户ID号,{@link #NET_DVR_Login_V30}的返回值
* @return {@link #TRUE}表示成功,{@link #FALSE}表示失败。
* 获取错误码调用{@link #NET_DVR_GetLastError}
* 以下是该接口可能返回的错误值
*
*
* 错误类型 错误值 错误信息
*
*
* {@link ErrorNumber#NET_DVR_NOERROR} 0 没有错误。
* {@link ErrorNumber#NET_DVR_NOINIT} 3 SDK未初始化。
* {@link ErrorNumber#NET_DVR_NETWORK_FAIL_CONNECT} 7 连接设备失败。设备不在线或网络原因引起的连接超时等。
* {@link ErrorNumber#NET_DVR_NETWORK_SEND_ERROR} 8 向设备发送失败。
* {@link ErrorNumber#NET_DVR_NETWORK_RECV_ERROR} 9 从设备接收数据失败。
* {@link ErrorNumber#NET_DVR_NETWORK_RECV_TIMEOUT} 10 从设备接收数据超时。
* {@link ErrorNumber#NET_DVR_COMMANDTIMEOUT} 14 设备命令执行超时。
* {@link ErrorNumber#NET_DVR_PARAMETER_ERROR} 17 参数错误。SDK接口中给入的输入或输出参数为空。
* {@link ErrorNumber#NET_DVR_ALLOC_RESOURCE_ERROR} 41 SDK资源分配错误。
* {@link ErrorNumber#NET_DVR_CREATESOCKET_ERROR} 44 创建SOCKET出错。
* {@link ErrorNumber#NET_DVR_USERNOTEXIST} 47 用户不存在。注册的用户ID已注销或不可用。
* {@link ErrorNumber#NET_DVR_BINDSOCKET_ERROR} 72 绑定套接字失败。
* {@link ErrorNumber#NET_DVR_SOCKETCLOSE_ERROR} 73 socket连接中断,此错误通常是由于连接中断或目的地不可达。
*
*
* @see #NET_DVR_Login_V30
*/
int NET_DVR_Logout_V30(int lUserID);
/**
* 用户注销。
* 建议使用此接口实现注销功能。
*
* @param lUserID 用户ID号,{@link #NET_DVR_Login_V30}的返回值
* @return {@link #TRUE}表示成功,{@link #FALSE}表示失败。
* 获取错误码调用{@link #NET_DVR_GetLastError}
* 以下是该接口可能返回的错误值
*
*
* 错误类型 错误值 错误信息
*
*
* {@link ErrorNumber#NET_DVR_NOERROR} 0 没有错误。
* {@link ErrorNumber#NET_DVR_NOINIT} 3 SDK未初始化。
* {@link ErrorNumber#NET_DVR_NETWORK_FAIL_CONNECT} 7 连接设备失败。设备不在线或网络原因引起的连接超时等。
* {@link ErrorNumber#NET_DVR_NETWORK_SEND_ERROR} 8 向设备发送失败。
* {@link ErrorNumber#NET_DVR_NETWORK_RECV_ERROR} 9 从设备接收数据失败。
* {@link ErrorNumber#NET_DVR_NETWORK_RECV_TIMEOUT} 10 从设备接收数据超时。
* {@link ErrorNumber#NET_DVR_COMMANDTIMEOUT} 14 设备命令执行超时。
* {@link ErrorNumber#NET_DVR_PARAMETER_ERROR} 17 参数错误。SDK接口中给入的输入或输出参数为空。
* {@link ErrorNumber#NET_DVR_ALLOC_RESOURCE_ERROR} 41 SDK资源分配错误。
* {@link ErrorNumber#NET_DVR_CREATESOCKET_ERROR} 44 创建SOCKET出错。
* {@link ErrorNumber#NET_DVR_USERNOTEXIST} 47 用户不存在。注册的用户ID已注销或不可用。
* {@link ErrorNumber#NET_DVR_BINDSOCKET_ERROR} 72 绑定套接字失败。
* {@link ErrorNumber#NET_DVR_SOCKETCLOSE_ERROR} 73 socket连接中断,此错误通常是由于连接中断或目的地不可达。
*
*
* @see #NET_DVR_Login_V30
*/
int NET_DVR_Logout(int lUserID);
/**
* 实时预览。
* 该接口中可以设置当前预览操作是否阻塞(通过bBlocked参数设置)。
* 若设为不阻塞,表示发起与设备的连接就认为连接成功,如果发生码流接收失败、播放失败等情况以预览异常的方式通知上层。
* 在循环播放的时候可以减短停顿的时间,与NET_DVR_RealPlay处理一致。 若设为阻塞,表示直到播放操作完成才返回成功与否。
* 该接口中的回调函数可以置为空,这样该函数将不回调码流数据给用户,不过用户仍可以通过接口{@link #NET_DVR_SetRealDataCallBack}
* 或{@link #NET_DVR_SetStandardDataCallBack}注册捕获码流数据的回调函数以捕获码流数据。
* 客户端异常离线时,设备端对取流连接的保持时间为10秒。
*
* @param lUserID NET_DVR_Login_V30的返回值
* @param lpClientInfo 预览参数
* @param cbRealDataCallBack 码流数据回调函数
* @param pUser 用户数据
* @param bBlocked 请求码流过程是否阻塞:0-否;1-是
* @return -1表示失败,其他值作为{@link #NET_DVR_StopRealPlay}等函数的句柄参数。
* 获取错误码调用{@link #NET_DVR_GetLastError}
* 以下是该接口可能返回的错误值
*
*
* 错误类型 错误值 错误信息
*
*
* {@link ErrorNumber#NET_DVR_NOERROR} 0 没有错误。
* {@link ErrorNumber#NET_DVR_PASSWORD_ERROR} 1 用户名密码错误。注册时输入的用户名或者密码错误。
* {@link ErrorNumber#NET_DVR_NOINIT} 3 SDK未初始化。
* {@link ErrorNumber#NET_DVR_OVER_MAXLINK} 5 连接到设备的用户个数超过最大。
* {@link ErrorNumber#NET_DVR_NETWORK_FAIL_CONNECT} 7 连接设备失败。设备不在线或网络原因引起的连接超时等。
* {@link ErrorNumber#NET_DVR_NETWORK_SEND_ERROR} 8 向设备发送失败。
* {@link ErrorNumber#NET_DVR_NETWORK_RECV_ERROR} 9 从设备接收数据失败。
* {@link ErrorNumber#NET_DVR_NETWORK_RECV_TIMEOUT} 10 从设备接收数据超时。
* {@link ErrorNumber#NET_DVR_COMMANDTIMEOUT} 14 设备命令执行超时。
* {@link ErrorNumber#NET_DVR_PARAMETER_ERROR} 17 参数错误。SDK接口中给入的输入或输出参数为空。
* {@link ErrorNumber#NET_DVR_ALLOC_RESOURCE_ERROR} 41 SDK资源分配错误。
* {@link ErrorNumber#NET_DVR_NOENOUGH_BUF} 43 缓冲区太小。接收设备数据的缓冲区或存放图片缓冲区不足。
* {@link ErrorNumber#NET_DVR_CREATESOCKET_ERROR} 44 创建SOCKET出错。
* {@link ErrorNumber#NET_DVR_USERNOTEXIST} 47 用户不存在。注册的用户ID已注销或不可用。
* {@link ErrorNumber#NET_DVR_LOADPLAYERSDKFAILED} 64 载入当前目录下Player Sdk出错。
* {@link ErrorNumber#NET_DVR_LOADPLAYERSDKPROC_ERROR} 65 找不到Player Sdk中某个函数入口。
* {@link ErrorNumber#NET_DVR_LOADDSSDKFAILED} 66 载入当前目录下DSsdk出错。
* {@link ErrorNumber#NET_DVR_BINDSOCKET_ERROR} 72 绑定套接字失败。
* {@link ErrorNumber#NET_DVR_SOCKETCLOSE_ERROR} 73 socket连接中断,此错误通常是由于连接中断或目的地不可达。
* {@link ErrorNumber#NET_DVR_IPCHAN_NOTALIVE} 83 预览时外接IP通道不在线。
* {@link ErrorNumber#NET_DVR_RTSP_SDK_ERROR} 84 加载标准协议通讯库StreamTransClient失败。
* {@link ErrorNumber#NET_DVR_CONVERT_SDK_ERROR} 85 加载转封装库失败。
*
*
* @see #NET_DVR_StopRealPlay
*/
int NET_DVR_RealPlay_V30(int lUserID, NET_DVR_CLIENTINFO.ByReference lpClientInfo, RealDataCallBack_V30 cbRealDataCallBack, Pointer pUser, int bBlocked);
/**
* 停止预览。
*
* @param lRealHandle 预览句柄,{@link #NET_DVR_RealPlay_V30}的返回值
* 推模式:预览句柄lStreamHandle,由NET_DVR_SetPreviewResponseCallBack注册的回调函数返回。
* @return {@link #TRUE}表示成功,{@link #FALSE}表示失败。
* 获取错误码调用{@link #NET_DVR_GetLastError}
* 以下是该接口可能返回的错误值
*
*
* 错误类型 错误值 错误信息
*
*
* {@link ErrorNumber#NET_DVR_NOERROR} 0 没有错误。
* {@link ErrorNumber#NET_DVR_NOINIT} 3 SDK未初始化。
* {@link ErrorNumber#NET_DVR_ORDER_ERROR} 12 调用次序错误。
* {@link ErrorNumber#NET_DVR_PARAMETER_ERROR} 17 参数错误。SDK接口中给入的输入或输出参数为空。
* {@link ErrorNumber#NET_DVR_ALLOC_RESOURCE_ERROR} 41 SDK资源分配错误。
* {@link ErrorNumber#NET_DVR_LOADDSSDKPROC_ERROR} 67 找不到DsSdk中某个函数入口。
* {@link ErrorNumber#NET_DVR_DSSDK_ERROR} 68 调用硬解码库DsSdk中某个函数失败。
* {@link ErrorNumber#NET_DVR_LOADPLAYERSDKPROC_ERROR} 65 找不到Player Sdk中某个函数入口。
*
*
* @see #NET_DVR_RealPlay_V30
*/
int NET_DVR_StopRealPlay(int lRealHandle);
/**
* 注册回调函数,捕获实时码流数据。
* 此函数包括开始和停止用户处理SDK捕获的数据,当回调函数cbRealDataCallBack设为非NULL值时,表示回调和处理数据;
* 当设为NULL时表示停止回调和处理数据。回调的第一个包是40个字节的文件头,供后续解码使用,之后回调的是压缩的码流。
* 回调数据最大为256K字节。
*
* @param lRealHandle {@link #NET_DVR_RealPlay_V30}的返回值
* @param cbRealDataCallBack 码流数据回调函数
* @param dwUser 用户数据
* @return {@link #TRUE}表示成功,{@link #FALSE}表示失败。
* 获取错误码调用{@link #NET_DVR_GetLastError}
* @see #NET_DVR_RealPlay_V30
*/
int NET_DVR_SetRealDataCallBack(int lRealHandle, RealDataCallBack cbRealDataCallBack, int dwUser);
/**
* 注册回调函数,捕获实时码流数据(标准码流)。
* 此函数包括开始和停止用户处理SDK捕获的数据,当回调函数cbStdDataCallBack设为非NULL值时,表示回调和处理数据;
* 当设为NULL时表示停止回调和处理数据。回调的第一个包是40个字节的文件头,供后续解码使用,
* 之后回调的是标准码流(含12字节的RTP头)。
* 此函数目前仅支持对于支持RTSP协议取流的设备的标准码流回调。
*
* @param lRealHandle {@link #NET_DVR_RealPlay_V30}的返回值
* @param cbStdDataCallBack 标准码流回调函数
* @param dwUser 用户数据
* @return {@link #TRUE}表示成功,{@link #FALSE}表示失败。
* 获取错误码调用{@link #NET_DVR_GetLastError}
* @see #NET_DVR_RealPlay_V30
*/
int NET_DVR_SetStandardDataCallBack(int lRealHandle, RealDataCallBack cbStdDataCallBack, int dwUser);
/**
* 重启设备。
*
* @param lUserID 用户ID号,{@link #NET_DVR_Login_V30}的返回值
* @return {@link #TRUE}表示成功,{@link #FALSE}表示失败。
* 获取错误码调用{@link #NET_DVR_GetLastError}
*/
int NET_DVR_RebootDVR(int lUserID);
/**
* 关闭设备。
*
* @param lUserID 用户ID号,{@link #NET_DVR_Login_V30}的返回值
* @return {@link #TRUE}表示成功,{@link #FALSE}表示失败。
* 获取错误码调用{@link #NET_DVR_GetLastError}
*/
int NET_DVR_ShutDownDVR(int lUserID);
}