日志位置
camera_merge
王一鸣 5 years ago
parent 7774f5a15e
commit d202d80e77

@ -0,0 +1,81 @@
#!/bin/bash
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.x86_64
export JRE_HOME=/${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin:${JRE_HOME}/bin
#这里可替换为你自己的执行程序,其他代码无需更改
APP_NAME=duoji.jar
#使用说明,用来提示输入参数
usage() {
echo "Usage: sh ums.sh [start|stop|restart|status]"
exit 1
}
#检查程序是否在运行
is_exist(){
pid=`ps -ef|grep ${APP_NAME}|grep -v grep|awk '{print $2}'`
#如果不存在返回1存在返回0
if [[ -z "${pid}" ]]; then
return 1
else
return 0
fi
}
#启动方法
start(){
is_exist
if [[ $? -eq 0 ]]; then
echo "${APP_NAME} is already running. pid=${pid}"
else
nohup java -jar -Xms256m -Xmx256m /home/work/lia/duoji/${APP_NAME} --spring.profiles.active=prod >duoji.out 2>&1 &
# nohup java -jar ${APP_NAME}
fi
}
#停止方法
stop(){
is_exist
if [[ $? -eq "0" ]]; then
kill -9 ${pid}
else
echo "${APP_NAME} is not running"
fi
}
#输出运行状态
status(){
is_exist
if [[ $? -eq "0" ]]; then
echo "${APP_NAME} is running. Pid is ${pid}"
else
echo "${APP_NAME} is NOT running."
fi
}
#重启
restart(){
stop
sleep 5
start
}
#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac

Binary file not shown.

@ -1,204 +0,0 @@
#include "dhnetsdk.h"
#include "dhnetsdkEx.h"
#ifndef _AC_DLL_H_
#define _AC_DLL_H_
#if defined(WIN32) || defined(_WIN32) || defined(_WIN64)
#ifdef DLL_EXPORT
#define GENERAL_API __declspec(dllexport)
#elif defined(DLL_USE)
#define GENERAL_API __declspec(dllimport)
#else
#define GENERAL_API
#endif
#include "windows.h"
#define CALL_METHOD _cdecl//WINAPI
#define CALLBACK _stdcall
#else
#define GENERAL_API extern "C"
#define CALL_METHOD
#endif
#ifdef __cplusplus
extern "C"
{
#endif
#ifdef __OBJC__
#include "objc/objc.h"
#else
#define BOOL int
#endif
#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
// 登录回调
typedef void (CALLBACK *fConnectCallback)(const char* szOutParam, void* pUser);
// 门禁报警回调
typedef void (CALLBACK *fAlarmInfoCallback)(const char* szOutParam, void* pUser);
// 初始化SDK
GENERAL_API BOOL CALL_METHOD Init(fConnectCallback cb, void* pUser);
// 释放SDK资源
GENERAL_API void CALL_METHOD Cleanup();
// 登录接口
GENERAL_API BOOL CALL_METHOD Login(const char* szInParam, char* szOutParam, int nOutBufSize);
// 登出接口
GENERAL_API BOOL CALL_METHOD Logout(const char* szInParam, char* szOutParam, int nOutBufSize);
// 修改设备密码
GENERAL_API BOOL CALL_METHOD ModifyPassword(const char* szInParam, char* szOutParam, int nOutBufSize);
// 获取设备时间
GENERAL_API BOOL CALL_METHOD GetTime(const char* szInParam, char* szOutParam, int nOutBufSize);
// 设置设备时间
GENERAL_API BOOL CALL_METHOD SetTime(const char* szInParam, char* szOutParam, int nOutBufSize);
// 获取设备信息
GENERAL_API BOOL CALL_METHOD GetDeviceInfo(const char* szInParam, char* szOutParam, int nOutBufSize);
// 获取门禁配置
GENERAL_API BOOL CALL_METHOD GetDeviceDoorConfig(const char* szInParam, char* szOutParam, int nOutBufSize);
// 设置门禁配置
GENERAL_API BOOL CALL_METHOD SetDeviceDoorConfig(const char* szInParam, char* szOutParam, int nOutBufSize);
// 设置时间表配置
GENERAL_API BOOL CALL_METHOD SetTimeScheduleConfig(const char* szInParam, char* szOutParam, int nOutBufSize);
// 设置时间表配置
GENERAL_API BOOL CALL_METHOD GetTimeScheduleConfig(const char* szInParam, char* szOutParam, int nOutBufSize);
// 门禁人员信息操作
GENERAL_API BOOL CALL_METHOD OperateUserInfo(const char* szInParam, char* szOutParam, int nOutBufSize);
// 門禁指紋信息操作
GENERAL_API BOOL CALL_METHOD OperateFingerPrintInfo(const char* szInParam, char* szOutParam, int nOutBufSize);
// 门禁人脸信息操作
GENERAL_API BOOL CALL_METHOD OperateFaceInfo(const char* szInParam, char* szOutParam, int nOutBufSize);
//设置假日表
GENERAL_API BOOL CALL_METHOD SetHolidayScheduleConfig(const char* szInParam, char* szOutParam, int nOutBufSize);
// 获取假日表
GENERAL_API BOOL CALL_METHOD GetHolidayScheduleConfig(const char* szInParam, char* szOutParam, int nOutBufSize);
// 门禁卡信息操作
GENERAL_API BOOL CALL_METHOD OperateCardInfo(const char* szInParam, char* szOutParam, int nOutBufSize);
// 查询门状态
GENERAL_API BOOL CALL_METHOD QueryDoorStatus(const char* szInParam, char* szOutParam, int nOutBufSize);
//// 门为对象 设置周计划
//BOOL SetDoorWeekPlanConfig(String InParam, String OutParam);
//
//// 门为对象 获取周计划
//BOOL GetDoorWeekPlanConfig(String InParam, String OutParam);
// 人为对象的周计划 暂时未实现
////////////////////////////////////////
//
//// 设置假日组
//BOOL SetHolidayGroupConfig(String InParam, String OutParam);
//
//// 获取假日组
//BOOL GetHolidayGroupConfig(String InParam, String OutParam);
// 人为对象的假日计划 暂时未实现
////////////////////////////////////////
// 门为对象 设置假日计划
//BOOL SetDoorHolidayPlanConfig(String InParam, String OutParam);
//
//// 门为对象 获取假日计划
//BOOL GetDoorHolidayPlanConfig(String InParam, String OutParam);
//
//// 设置开门方式
//BOOL SetOpenDoorType(String InParam, String OutParam);
//
//// 获取开门方式
//BOOL GetOpenDoorType(String InParam, String OutParam);
//
//// 设置多人多卡开门
//BOOL SetOpenDoorGroupConfig(String InParam, String OutParam);
//
//// 获取多人多卡开门
//BOOL GetOpenDoorGroupConfig(String InParam, String OutParam);
//
//// 设置 互锁联动门首卡开门
//BOOL SetDoorInterlockFirstEnterConfig(String InParam, String OutParam);
//
//// 获取 互锁联动门首卡开门
//BOOL SetDoorInterlockFirstEnterConfig(String InParam, String OutParam);
//
//// 设置 普通门双门互锁
//BOOL SetInterLockConfig(String InParam, String OutParam);
//
//// 获取 普通门双门互锁
//BOOL GetInterLockConfig(String InParam, String OutParam);
//
//// 设置 金库开门配置
//BOOL SetFirstOpenVaultConfig(String InParam, String OutParam);
//
//// 获取 金库开门配置
//BOOL GetFirstOpenVaultConfig(String InParam, String OutParam);
//
//// 金库远程开门
//BOOL RemoteOpenDoor (String InParam, String OutParam);
//
//// 门禁卡操作
//BOOL OperateCardInfo(String InParam, String OutParam);
//
//
//// 门禁指纹操作
//BOOL OperateFingerprintInfo(String InParam, String OutParam);
//
//// 门禁人脸操作
//BOOL OperateFaceInfo(String InParam, String OutParam);
//
//// 门禁报警 设置回调函数,接收门禁设备报警消息
//BOOL SetMessageCallBack(fAlarmInfoCallback cbFun, void* pUser);
//
//// 门禁报警 开始订阅门禁设备消息
//BOOL StartSubscribeDeviceMessage(String InParam, String OutParam);
//
//// 门禁报警 停止订阅门禁设备消息
//BOOL StopSubscribeDeviceMessage (String InParam, String OutParam);
//
//// 开门信息查询
//BOOL QueryOpenDoorInfo(String InParam, String OutParam);
//
//// 门禁状态查询
//BOOL QueryDoorStatus(String InParam, String OutParam);
//
//
//// 设置 开门时间外的开门配置
//BOOL SetOutTimeDoorConfig(String InParam, String OutParam);
//
//// 获取 开门时间外的开门配置
//BOOL GetOutTimeDoorConfig(String InParam, String OutParam);
#ifdef __cplusplus
}; //extern "C"
#endif
#endif

Binary file not shown.

@ -1,68 +0,0 @@
#ifndef _HEATMAP_H__
#define _HEATMAP_H__
#ifdef WIN32
#if defined(HEATMAP_EXPORTS)
#define HEATMAP_API __declspec(dllexport)
#else
#define HEATMAP_API __declspec(dllimport)
#endif
#define CALLMETHOD __stdcall
#else
#define HEATMAP_API
#define CALLMETHOD
#endif
#ifndef HEATMAP_API
#define HEATMAP_API
#endif
#ifdef __cplusplus
extern "C" {
#endif
//Bmp位图信息
typedef struct bmpImageInfo
{
unsigned char *pBuffer; //Bmp图片数据指针
int nWidth; //图片宽度
int nHeight; //图片高度
int nBitCount; //图片位数,支持8位24位32位
int nDirection; //数据存储方向 0从上到下从左到右 1从下到上从左到右
}BMPIMAGE_INFO;
///输入数据信息
typedef struct heatMapInfoIn
{
BMPIMAGE_INFO stuGrayBmpInfo; //8位Bmp灰度热度图数据不包含图片头数据存储方向从上到下
BMPIMAGE_INFO stuBkBmpInfo; //背景图Bmp位图数据包含图片头存储方向从下到上
}HEATMAP_IMAGE_IN;
//输出数据信息
typedef struct heatMapInfoOut
{
unsigned char *pBuffer; //输出的彩色热度图数据(包含图片头),宽高、位数和背景图相同
int nPicSize; //图片内存大小(包含头) :宽*高*nBitCount/8 + 54
float fOpacity; //透明度,范围0-1
}HEATMAP_IMAGE_Out;
///\brief 生成热度图数据信息
/// param [in] stuBmpInfoIn Bmp位图数据输入
/// param [in] stuBmpInfoOut Bmp位图数据输出,包含图片头
/// param [out] true or false
HEATMAP_API bool CALLMETHOD CreateHeatMap(const HEATMAP_IMAGE_IN *stuBmpInfoIn, HEATMAP_IMAGE_Out *stuBmpInfoOut);
///\brief 将网络二进制数据转化成灰度数据
/// param [in] srcData 二进制数据
/// param [in] width 宽
/// param [in] height 高
/// param [in] resultOut 灰度数据
/// param [out] true or false
HEATMAP_API bool CALLMETHOD TransNetDataToGrayData(unsigned char * srcData, int width, int height, unsigned char * resultOut);;
#ifdef __cplusplus
}
#endif
#endif //_HEATMAP_H__

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -1,706 +0,0 @@
#ifndef IVS_DRAWER_H
#define IVS_DRAWER_H
#include <time.h>
#ifdef _WIN32
#define IVSDRAWER_API
#define CALLMETHOD __stdcall
#else
#define IVSDRAWER_API
#define CALLMETHOD
#endif
#ifdef _WIN32
#include <windows.h>
#define IVS_BOOL BOOL
#define IVS_WND_REF HWND
#define IVS_DC_REF HDC
#define IVS_COLOR COLORREF
#define IVS_RECT RECT
typedef POINT IVSPOINT;
#else
#define IVS_BOOL int
#define IVS_WND_REF void*
#define IVS_DC_REF void*
typedef struct __IVS_MAC_WND
{
int nWidth;
int nHeight;
}IVS_WND;
typedef struct __IVS_COLOR
{
float cgred;
float cggreen;
float cgblue;
}IVS_COLOR;
typedef struct __IVSPOINT
{
float x;
float y;
}IVSPOINT;
typedef struct __IVS_RECT
{
float left;
float bottom;
float right;
float top;
}IVS_RECT;
#endif
#ifdef _WIN32
#define INT64 __int64
#else
#define DWORD unsigned int
#define INT64 long long
#endif
typedef enum
{
SHOW_NONE = 0,
SHOW_RULE = (1 << 0),
SHOW_ALARM = (1 << 1),
SHOW_TRACK = (1 << 2),
SHOW_ALL = (SHOW_RULE | SHOW_ALARM | SHOW_TRACK),
}SHOW_TYPE;
typedef enum
{
DRAW_JSON = 0,
DRAW_TRACK,
DRAW_ALARM,
DRAW_RULE,
DRAW_ALARMRULE,
DRAW_ALARMEX,
DRAW_TRACKEX,
DRAW_MOVE_CHECK,
DRAW_TEST = 9,
DRAW_WEB_RULE = 11,
DRAW_WEB_ALARM,
DRAW_FLOW_INFO,
DRAW_TRACKEX2,
DRAW_WUXI235_TRACKEX2,
DRAW_TRACKEXA1,
DRAW_TRACKEX2_TYPE_HUMAN,
DRAW_TRACKEX2_TYPE_VEHICLE,
DRAW_TRACKEX2_TYPE_NONMOTOR,
DRAW_TRACKEX2_TYPE_SHOPPRESENCE,
DRAW_TRACKEX2_TYPE_FLOWBUSINESS,
DRAW_INTELFLOW,
DRAW_SMARTMOTION,
DRAW_END,
}DRAW_TYPE;
typedef enum
{
IVS_LINGER = 0,
IVS_TRACKTAIL, // 轨迹尾巴
IVS_GET_OBJECT,
IVS_DISABLE_VIDEO_TIME, // 禁止视频浓缩的时间,默认开启
IVS_DISABLE_VIDEO_OBJECT,
IVS_TRACK_OBJECT = 6,
IVS_SET_PEN_HEIGHT,
IVS_TRACK_OBJECT_EX = 8,
}IVS_CMD_TYPE;
typedef enum
{
DRAW_PEN_DEFAULT = -1,
DRAW_PEN_SOLID = 0,
DRAW_PEN_DASH,
DRAW_PEN_DOT,
DRAW_PEN_DASHDOT,
DRAW_PEN_DASHDOTDOT,
DRAW_PEN_NULL,
DRAW_PEN_INSIDEFRAME,
DRAW_PEN_USERSTYLE,
DRAW_PEN_ALTERNATE,
}DRAW_PEN_STYLE;
#define IVS_MAX_ACTION_NUM 4
#define IVS_MAX_EVENT_NUM 64
#define IVS_MAX_POLYLINE_NUM 32
#define IVS_MAX_OBJECT_NUM 64
#define IVS_NAME_NUM 128
// 二维空间点
typedef struct
{
short nx;
short ny;
} DH_IVS_SPOINT, *LPDH_IVS_SPOINT;
// 物体对应图片文件信息
typedef struct
{
DWORD dwOffSet; // 文件在二进制数据块中的偏移位置, 单位:字节
DWORD dwFileLenth; // 文件大小, 单位:字节
WORD wWidth; // 图片宽度, 单位:像素
WORD wHeight; // 图片高度, 单位:像素
char* pszFilePath; // 鉴于历史原因,该成员只在事件上报时有效
// 文件路径
// 用户使用该字段时需要自行申请空间进行拷贝保存
BYTE bIsDetected; // 图片是否算法检测出来的检测过的提交识别服务器时,
// 则不需要再时检测定位抠图,1:检测过的,0:没有检测过
BYTE bReserved[3]; // 预留字节数
int nFilePathLen; // 文件路径长度 既pszFilePath 用户申请的大小
DH_IVS_SPOINT stuPoint; // 小图左上角在大图的位置,使用绝对坐标系
}DH_IVS_PIC_INFO;
typedef struct tagDH_IVS_TIME_EX
{
DWORD dwYear; // 年
DWORD dwMonth; // 月
DWORD dwDay; // 日
DWORD dwHour; // 时
DWORD dwMinute; // 分
DWORD dwSecond; // 秒
DWORD dwMillisecond; // 毫秒
DWORD dwUTC; // utc时间(获取时0表示无效非0有效 下发无效)
DWORD dwReserved[1]; // 预留字段
} DH_IVS_TIME_EX,*LPDH_IVS_TIME_EX;
// 区域各边距按整长8192的比例
typedef struct
{
long left;
long top;
long right;
long bottom;
} DH_IVS_LRECT, *LPDH_IVS_LRECT;
#pragma pack(push)
#pragma pack(4)
// 视频分析物体信息结构体
typedef struct
{
int nObjectID; // 物体ID,每个ID表示一个唯一的物体
char szObjectType[128]; // 物体类型
int nConfidence; // 置信度(0~255),值越大表示置信度越高
int nAction; // 物体动作:1:Appear 2:Move 3:Stay 4:Remove 5:Disappear 6:Split 7:Merge 8:Rename
DH_IVS_LRECT BoundingBox; // 包围盒
DH_IVS_SPOINT Center; // 物体型心
int nPolygonNum; // 多边形顶点个数
DH_IVS_SPOINT Contour[16]; // 较精确的轮廓多边形
DWORD rgbaMainColor; // 表示车牌、车身等物体主要颜色;按字节表示,分别为红、绿、蓝和透明度,例如:RGB值为(0,255,0),透明度为0时, 其值为0x00ff0000.
char szText[128]; // 物体上相关的带0结束符文本,比如车牌,集装箱号等等
char szObjectSubType[62]; // 物体子类别,根据不同的物体类型,可以取以下子类型:
WORD wColorLogoIndex; // 车标索引
WORD wSubBrand; // 车辆子品牌 需要通过映射表得到真正的子品牌 映射表详见开发手册
BYTE byReserved1;
bool bPicEnble; // 是否有物体对应图片文件信息
DH_IVS_PIC_INFO stPicInfo; // 物体对应图片信息
bool bShotFrame; // 是否是抓拍张的识别结果
bool bColor; // 物体颜色(rgbaMainColor)是否可用
BYTE byReserved2;
BYTE byTimeType; // 时间表示类型,详见EM_TIME_TYPE说明
DH_IVS_TIME_EX stuCurrentTime; // 针对视频浓缩,当前时间戳(物体抓拍或识别时,会将此识别智能帧附在一个视频帧或jpeg图片中,此帧所在原始视频中的出现时间)
DH_IVS_TIME_EX stuStartTime; // 开始时间戳(物体开始出现时)
DH_IVS_TIME_EX stuEndTime; // 结束时间戳(物体最后出现时)
DH_IVS_LRECT stuOriginalBoundingBox; // 包围盒(绝对坐标)
DH_IVS_LRECT stuSignBoundingBox; // 车标坐标包围盒
DWORD dwCurrentSequence; // 当前帧序号(抓下这个物体时的帧)
DWORD dwBeginSequence; // 开始帧序号(物体开始出现时的帧序号)
DWORD dwEndSequence; // 结束帧序号(物体消逝时的帧序号)
INT64 nBeginFileOffset; // 开始时文件偏移, 单位: 字节(物体开始出现时,视频帧在原始视频文件中相对于文件起始处的偏移)
INT64 nEndFileOffset; // 结束时文件偏移, 单位: 字节(物体消逝时,视频帧在原始视频文件中相对于文件起始处的偏移)
BYTE byColorSimilar[8]; // 物体颜色相似度,取值范围0-100,数组下标值代表某种颜色,详见EM_COLOR_TYPE
BYTE byUpperBodyColorSimilar[8]; // 上半身物体颜色相似度(物体类型为人时有效)
BYTE byLowerBodyColorSimilar[8]; // 下半身物体颜色相似度(物体类型为人时有效)
int nRelativeID; // 相关物体ID
char szSubText[20]; // "ObjectType"为"Vehicle"或者"Logo"时,表示车标下的某一车系,比如奥迪A6L,由于车系较多,SDK实现时透传此字段,设备如实填写。
WORD wBrandYear; // 车辆品牌年款 需要通过映射表得到真正的年款 映射表详见开发手册
} DH_IVS_OBJECT_INFO;
#pragma pack(pop)
typedef struct IVS_CONFIG_EVENT
{
char szEventName[IVS_NAME_NUM]; // 事件名称,详见"事件类型列表"
char szRuleName[IVS_NAME_NUM]; // 规则名称,不同规则不能重名
DH_IVS_OBJECT_INFO stuObject;
char Context[28];
int alarmAction; // 与NetSDK定义一致
int alarmType;
}IVS_CONFIG_EVENT_INFO;
typedef struct IVS_CONFIG_EVENTEX
{
char szEventName[IVS_NAME_NUM]; // 事件名称,详见"事件类型列表"
char szRuleName[IVS_NAME_NUM]; // 规则名称,不同规则不能重名
char Context[28];
int alarmAction; // 与NetSDK定义一致
int alarmType;
int nObjectNum;
DH_IVS_OBJECT_INFO stuObject[IVS_MAX_OBJECT_NUM]; // 检测到的物体
int nContext; // 该字段未用,作为大类字段
void* pContext;
}IVS_CONFIG_EVENT_INFOEX;
typedef struct
{
int nEventsNum; // 视频分析规则数
IVS_CONFIG_EVENT_INFO stuEventInfo[IVS_MAX_EVENT_NUM]; // 事件信息
}IVS_CFG_ANALYSEVENTS_INFO;
typedef struct
{
int nEventsNum; // 视频分析规则数
IVS_CONFIG_EVENT_INFOEX stuEventInfo[IVS_MAX_EVENT_NUM]; // 事件信息
}IVS_CFG_ANALYSEVENTS_INFOEX;
typedef struct
{
int nX; // 8192坐标系
int nY;
}IVS_CFG_POLYLINE;
typedef struct __IVS_WEB_RULE
{
int size;
int nRuleType;
int nRuleEnable;
int ndirect1;
int ndirect2;
int nPoint1;
int nPoint2;
unsigned char bActionType[4];
DH_IVS_OBJECT_INFO objectMsg;
char szRuleName[IVS_NAME_NUM];
IVS_CFG_POLYLINE stuDetectLine1[IVS_MAX_POLYLINE_NUM]; //Line
IVS_CFG_POLYLINE stuDetectLine2[IVS_MAX_POLYLINE_NUM]; //Region
int nRuleID;
IVS_CFG_POLYLINE stuDirectionLine[2]; //Direction
char szRevered[236];
}IVS_WEB_RULE;
typedef struct __IVS_WEB_RULE_ARRAY
{
int size;
int nCount;
IVS_WEB_RULE* pRule;
}IVS_WEB_RULE_ARRAY;
typedef struct
{
int objectid;
struct tm startTime;
struct tm endTime;
INT64 nBeginFileOffset; // 开始时文件偏移字节数(物体开始出现时,视频帧在原始视频文件中相对于文件起始处的偏移)
INT64 nEndFileOffset; // 结束时文件偏移字节数(物体消逝时,视频帧在原始视频文件中相对于文件起始处的偏移)
int classid;
}IVSOBJECT;
typedef struct
{
IVS_BOOL trackex2objtype; // 是否显示物体类型0:否1:显示,默认不显示
IVS_BOOL trackex2attribute88; // 是否显示0x88属性包0:否1:显示,默认显示
IVS_BOOL trackex2objid; // 是否显示物体ID0:否1:显示,默认不显示
IVS_BOOL trackex2humanage; // 是否显示具体年龄0:显示年龄段1:显示年龄,默认显示年龄段
}TrackEx2Configure;
typedef union
{
IVSOBJECT object;
IVSPOINT xPt;
char szReverd[128];
}ObjectContex;
typedef struct _DH_IVS_POINT
{
/*************************************************
**
** X,YXSize,YSize
** (X-XSize, Y-YSize, X+XSize, Y+YSize)
**************************************************/
short x;
short y;
short xSize;
short ySize;
}DH_IVS_POINT;
typedef struct _RuleColor
{
int ruletype;
IVS_COLOR crColor;
}RuleColor;
#ifdef __cplusplus
extern "C" {
#endif
/**
* IVSDraw()IvsDrawerjson
*/
IVSDRAWER_API int CALLMETHOD DRAW_Startup();
/**
* 退IVSDraw
*/
IVSDRAWER_API void CALLMETHOD DRAW_Cleanup();
/**
*
*
* @param[in] nPort
* @return BOOLTRUEFALSE
*/
IVSDRAWER_API BOOL CALLMETHOD DRAW_Open(int nPort);
/**
*
*
* @param[in] nPort
*/
IVSDRAWER_API void CALLMETHOD DRAW_Close(int nPort);
/**
*
*
* @param[in] nPort
* @param[in] nType DRAW_TYPEDRAW_TRACK,DRAW_ALARM,DRAW_RULE
* @return BOOLTRUEFALSE
*/
IVSDRAWER_API BOOL CALLMETHOD DRAW_Reset(int nPort, int nType);
/**
* jason
*
* @param[in] nPort
* @param[in] pJsonData
* @param[in] nDataLen
* @param[in] nPort
* @param[in] nFrameSeq
* @return int0-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_InputJsonData(int nPort, unsigned char* pJsonData, int nDataLen, int nFrameSeq);
/**
*
*
* @param[in] nPort
* @param[in] nRuleColor
* @param[in] nRuleNum
* @return int0-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_SetRuleColor(int nPort,RuleColor* nRuleColor, int nRuleNum);
/**
* jason
*
* @param[in] nPort
* @param[in] nType
* @param[in] pRuleData
* @param[in] nframe
* @return int0-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_InputRuleData(int nPort, int nType, unsigned char* pRuleData, int nframe);
/**
* 0xF1()0x05()
*
* @param[in] nPort
* @param[in] nType
* @param[in] pTrackData
* @param[in] nDataLen
* @param[in] nFrameSeq
* @return int0-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_InputTrackData(int nPort, int nType, unsigned char* pTrackData, int nDataLen,int nFrameSeq);
/**
* 0xF1()0x0E()NVR
*
* @param[in] nPort
* @param[in] nType nType=7nType=19NVR
* @param[in] pTrackData
* @param[in] nDataLen
* @param[in] nFrameSeq
* @return int0-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_InputTrackDataEx2(int nPort, int nType, unsigned char* pTrackData, int nDataLen,int nFrameSeq);
/**
* jason
*
* @param[in] nPort
* @param[in] nType
* @param[in] pAlarmData
* @param[in] nDataLen
* @return int0-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_InputAlarmData(int nPort, int nType, unsigned char* pAlarmData, int nDataLen);
/**
* jasonDRAW_InputAlarmData
*
* @param[in] nPort
* @param[in] nType
* @param[in] pAlarmData
* @param[in] nDataLen
* @return int0-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_InputAlarmDataEx(int nPort, int nType, unsigned char* pAlarmData, int nDataLen);
/**
*
*
* @param[in] nPort
* @param[in] nType
* @param[in] pData
* @param[in] nDataLen
* @param[in] nFrameSeq
* @return int0-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_InputMoveCheckData(int nPort, int nType, unsigned char* pData, int nDataLen, int nFrameSeq);
/**
* \n
*
* @param[in] nPort
* @param[in] pTextData
* @param[in] nTextNumPos pTextData
* @return int0-1
*/
typedef struct
{
const char* pText; // 显示的字符串
IVSPOINT hPos; // 显示位置
int nFontsize; // 字体大小
int nRed; // 字体颜色
int nGreen; // 字体颜色
int nBlue; // 字体颜色
int nAlignMode; // 对齐方式0左对齐1居中对齐2右对齐
}TextData;
IVSDRAWER_API int CALLMETHOD DRAW_InputTextData(int nPort, TextData* pTextData, int nTextNumPos);
/**
*
*
* @param[in] nPort
* @param[in] hDC
* @param[in] hWnd
* @param[in] nFrameSeq
* @return int0-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_Draw(int nPort, IVS_DC_REF hDC, IVS_WND_REF hWnd, int nFrameSeq);
/**
*
*
* @param[in] nPort
* @param[in] nType DRAW_TYPE
* @param[in] nLifeCount
* @return int0-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_SetLifeCount(int nPort, int nType, int nLifeCount);
/**
* 使
*
* @param[in] nPort
* @param[in] type DRAW_TYPE
* @param[in] bEnable 使
* @return int0-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_SetEnable(int nPort, int nType, IVS_BOOL bEnable);
/**
*
*
* @param[in] nPort
* @param[in] nType
* @param[in] nPenStyle (线or线)DRAW_PEN_STYLE
* @param[in] nWidth
* @param[in] crColor
* @return int0-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_SetPen(int nPort, int nType, int nPenStyle, int nWidth, IVS_COLOR crColor);
/**
*
*
* @param[in] nPort
* @param[in] nCmdType IVS_CMD_TYPE
* @param[in] pContext nCmdTypeIVS_TRACK_OBJECT/IVS_TRACK_OBJECT_EXIVS_GET_OBJECTObjectContex
* int
* @param[in] nContextSize pContext
* @return int0-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_Ioctl(int nPort, int nCmdType, void* pContext, int nContextSize);
/**
*
*
* @param[in] nPort
* @param[in] nFrameSeq
* @return int0-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_Refresh(int nPort, int nFrameSeq);
/**
* (255)0
*
* @param[in] nPort
*/
IVSDRAWER_API void CALLMETHOD DRAW_Idle(int nPort);
/**
*
*
* @param[in] nPort
* @param[in] nReserved
*/
IVSDRAWER_API void CALLMETHOD DRAW_Clean(int nPort, int nReserved);
/**
*
*
* @param[in] nPort
* @param[in] nTime
* @param[in] nObjectId ID
* @return int0-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_SetTime(int nPort, int nTime, int nObjectId);
/**
* rulealarmtrack
*
* @param[in] nPort
* @param[in] nShowType SHOW_TYPE使
*/
IVSDRAWER_API void CALLMETHOD DRAW_SetShowType(int nPort, int nShowType);
/**
* track
*
* @param[in] nPort
* @param[in] pCallBack
* @param[in] pUserData
*/
typedef void (CALLMETHOD* OnDrawOneTrack)(int nClassID, int nObjID, DH_IVS_POINT* pPoints, int nPointNum, void* pUserData);
IVSDRAWER_API void CALLMETHOD DRAW_SetDrawOneTrackCallback(int nPort, OnDrawOneTrack pCallBack, void* pUserData);
/**
*
*
* @param[in] nPort
* @param[in] pTranslateCBFunc
* @param[in] pUserData
*/
typedef int (CALLMETHOD* fTranslateCallback)(unsigned char* strSrc,int nSrsLen, unsigned char* strDst, int* nDstLen, void* pUserData);
IVSDRAWER_API void CALLMETHOD DRAW_SetTranslateCallback(int nPort, fTranslateCallback pTranslateCBFunc, void* pUserData);
/**
* track
*
* @param[in] nPort
* @param[in] pRuleName
* @param[in] bEnable
*/
IVSDRAWER_API void CALLMETHOD DRAW_SetRuleTrackAlarm(int nPort, const char* pRuleName, bool bEnable);
/**
* track
*
* @param[in] nPort
* @param[in] nType: 0track1track
*/
IVSDRAWER_API void CALLMETHOD DRAW_SetShowTrackType(int nPort, int nType);
/**
*
*
* @param[in] nPort
* @param[in] nFrameSeq
*/
IVSDRAWER_API void CALLMETHOD DRAW_SetFrameNum(int nPort, int nFrameSeq);
/**
* {ID, ID},
*
* @param[in] nPort
* @param[in] nClassId ID
* @param[in] nObjectId ID
* @param[in] crColor
* @param[in] bSpecialShape 1:, 0:
* @param[in] bSpecialSingle 1: 0
* @return int0-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_SetTrackObjectColor(int nPort, int nClassId, int nObjectId, IVS_COLOR crColor, bool bSpecialShape, bool bSpecialSingle);
/**
* bSpecialShape
*
* @param[in] nPort
* @param[in] bSpecialShape 1:, 0:
* @return int0-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_SetTrackEX2Sharp(int nPort, bool bSpecialShape);
/**
* trackex2config
*
* @param[in] nPort
* @param[in] trackex2config
*/
IVSDRAWER_API void CALLMETHOD DRAW_SetTrackEx2Config(int nPort, TrackEx2Configure trackex2config);
/**
* bEnable
*
* @param[in] nPort
* @param[in] bEnable
*/
IVSDRAWER_API void CALLMETHOD DRAW_SetRuleNameConfig(int nPort, bool bEnable);
/**
*
*
* @param[in] nPort
* @param[in] nClearType IVS_CMD_TYPE
*/
IVSDRAWER_API void CALLMETHOD DRAW_ClearIVSConfigData(int nPort, int nClearType);
/**
* IVS
*
* @param[in] nPort
* @param[in] rectRegion
* @param[in] bEnable 使
*/
IVSDRAWER_API void CALLMETHOD DRAW_SetIVSDisplayRegion(int nPort, IVS_RECT *rectRegion, bool bEnable);
/**
* NACLIOS
*
* @param[in] nPort
* @param[in] nX X
* @param[in] nY Y
* @param[in] nWidth
* @param[in] nHeight
*/
IVSDRAWER_API void CALLMETHOD DRAW_SetDrawSurfaceParam(int nPort, int nX, int nY, int nWidth, int nHeight);
/**
* MAC
* Retina
* @param[in] nPort
* @param[in] scale
*/
IVSDRAWER_API void CALLMETHOD DRAW_SetDisplayScale(int nPort, float scale);
/**
*
*/
IVSDRAWER_API int CALLMETHOD DRAW_GetLastError(int nPort);
IVSDRAWER_API int CALLMETHOD DRAW_InputJpegData(int nPort, int nType, unsigned char* pJpegData, int nDataLen, int nFrameSeq);
#ifdef __cplusplus
}
#endif
#endif

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -1,225 +0,0 @@
// StreamPackage.h: interface for the StreamPackage class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_STREAMPACKAGE_H__014CF316_354F_47ED_B30D_D39912DD250D__INCLUDED_)
#define AFX_STREAMPACKAGE_H__014CF316_354F_47ED_B30D_D39912DD250D__INCLUDED_
#if (defined(WIN32) || defined(WIN64))
#define SG_PACKAGE_API __declspec(dllimport)
#define CALLMETHOD __stdcall
#define CALLBACK __stdcall
#else
#define CALLMETHOD
#define CALLBACK
#define SG_PACKAGE_API
#endif
#ifdef __cplusplus
extern "C" {
#endif
/*码流封装错误类型*/
typedef enum
{
SG_ERR_NOERR = 0, /*成功*/
SG_ERR_HANDLE_EMPTY, /*句柄无效*/
SG_ERR_INIT_FAIL, /*初始化失败*/
SG_ERR_PARAM_ERR, /*参数错误*/
}SG_ERR_TYPE;
/*码流封装类型*/
typedef enum
{
SG_STREAM_TYPE_DAV_STREAM = 19, /* 封装格式 DAV */
}SG_STREAM_TYPE;
/*帧类型*/
typedef enum
{
SG_FRAME_TYPE_VIDEO = 1, /* 视频帧 */
SG_FRAME_TYPE_AUDIO, /* 音频帧 */
SG_FRAME_TYPE_EXT /* 大华扩展帧 */
}SG_FRAME_TYPE;
/*视频帧子类型*/
typedef enum
{
SG_FRAME_SUB_TYPE_I, /* I帧 */
SG_FRAME_SUB_TYPE_P, /* P帧 */
SG_FRAME_SUB_TYPE_B, /* B帧 */
SG_FRAME_SUB_TYPE_JPEG_FRAME = 8, /*JPEG 帧*/
}SG_FRAME_SUB_TYPE;
/*编码类型*/
typedef enum
{
SG_ENCODE_VIDEO_UNKNOWN = 0, /*视频编码格式不可知*/
SG_ENCODE_VIDEO_MPEG4 = 1 , /*视频编码格式是MPEG4*/
SG_ENCODE_VIDEO_JPEG = 3, /*视频编码格式是标准JPEG*/
SG_ENCODE_VIDEO_H264 = 4, /*视频编码格式是大华码流H264*/
SG_ENCODE_AUDIO_PCM = 7, /*音频编码格式是PCM8*/
SG_ENCODE_AUDIO_G711A = 14, /*音频编码格式是G711A*/
SG_ENCODE_AUDIO_PCM16 = 16, /*音频编码格式是PCM16*/
SG_ENCODE_AUDIO_AAC = 26, /*音频编码格式是AAC*/
SG_ENCODE_AUDIO_MP2 = 31, /*音频编码格式是MP2*/
}SG_ENCODE_TYPE;
/*解交错标志*/
typedef enum
{
SG_DEINTERLACE_NONE = 2, /*无解交错*/
}SG_DEINTERLACE_TYPE;
/*加密类型*/
typedef enum
{
SG_ENCRYPT,
}SG_ENCRYPT_TYPE;
#pragma pack(1)
/*文件头信息*/
typedef struct
{
unsigned int struct_size;
}SGHeaderInfo;
/*文件尾信息*/
typedef struct
{
unsigned int struct_size;
}SGTailerInfo;
//帧数据信息
typedef struct
{
unsigned int struct_size;
unsigned char* frame_pointer; /*帧数据指针*/
unsigned int frame_size; /*帧数据长度*/
unsigned int frame_type; /*帧类型 SG_FRAME_TYPE*/
unsigned int frame_sub_type; /*帧子类型 SG_FRAME_SUB_TYPE*/
unsigned int frame_encode; /*编码类型 SG_ENCODE_TYPE*/
unsigned int frame_time; /*帧时间戳*/
unsigned int frame_data; /*日期时间UTC时间*/
unsigned int width; /*视频宽度*/
unsigned int heigth; /*视频高度*/
unsigned int frame_rate; /*视频帧率*/
unsigned int deinter_lace; /*解交错信息 SG_DEINTERLACE_TYPE*/
unsigned int sample_rate; /*音频采样率*/
unsigned int bit_per_sample; /*音频采样位数*/
unsigned int channels; /*音频通道数*/
unsigned int bit_rate; /*音频比特率*/
unsigned char rtp_channel; /*通道号*/
unsigned char reserved1[7];
unsigned int frame_seq; /*帧序号*/
unsigned char reserved[152]; /*保留字段*/
}SGFrameInfo;
//数据输出信息
typedef struct
{
unsigned int struct_size;
unsigned char* data_pointer; /*数据指针*/
int data_size; /*数据长度*/
int offset_type; /*数据偏移类型*/
unsigned int offset_pos; /*数据偏移位置*/
}SGOutputData;
typedef void* (*SGMalloc_t)(int memory_size); /*内存分配函数*/
typedef void (*SGFree_t)(void* memory_pointer, int memory_size); /*内存释放函数*/
typedef void (*SGDataCB_t)(SGOutputData* data, void* user); /*数据输出回调函数*/
//创建流封装器信息
typedef struct
{
unsigned int struct_size;
void* user; /*用户自定义数据*/
SGMalloc_t sg_malloc; /*用户自定义内存分配函数指针*/
SGFree_t sg_free; /*用户自定义内存释放函数指针*/
SGDataCB_t sg_datacb; /*用户自定义数据输出回调函数指针*/
}SGCreateParam;
#pragma pack()
/********************************************************************
* Funcname: SG_CreateHandle
* Purpose:
* InputParam: nType : SG_STREAM_TYPE
* pCreateParam :
* Return: void* : NULL
* Created: 2013.11.28
* Revision Record: Ver 1.0:z_junjie
*********************************************************************/
SG_PACKAGE_API void* CALLMETHOD SG_CreateHandle(unsigned int nType, SGCreateParam* pCreateParam);
/********************************************************************
* Funcname: SG_DestroyHandle
* Purpose:
* InputParam: handle :
* Return: SG_ERR_NOERR
* Created: 2013.11.28
* Revision Record: Ver 1.0:z_junjie
*********************************************************************/
SG_PACKAGE_API int CALLMETHOD SG_DestroyHandle(void* handle);
/********************************************************************
* Funcname: SG_CreateHeader
* Purpose:
* InputParam: handle :
* pHeader :
* Return: SG_ERR_NOERR
* Created: 2013.11.28
* Revision Record: Ver 1.0:z_junjie
*********************************************************************/
SG_PACKAGE_API int CALLMETHOD SG_CreateHeader(void* handle, SGHeaderInfo* pHeader);
/********************************************************************
* Funcname: StreamPacket_InputData
* Purpose:
* InputParam: handle :
* frame_info :
* Return: SG_ERR_NOERR
* Created: 2013.11.28
* Revision Record: Ver 1.0:z_junjie
*********************************************************************/
SG_PACKAGE_API int CALLMETHOD SG_InputFrame(void* handle, SGFrameInfo* pFrame);
/********************************************************************
* Funcname: StreamPacket_CreateTailer
* Purpose:
* InputParam: handle :
* Return: SG_ERR_NOERR
* Created: 2013.11.28
* Revision Record: Ver 1.0:z_junjie
*********************************************************************/
SG_PACKAGE_API int CALLMETHOD SG_CreateTailer(void* handle, SGTailerInfo* pTailer);
/********************************************************************
* Funcname: SG_SetEncryptType
* Purpose:
* InputParam: handle :
type: SG_ENCRYPT_TYPE
key:
keylen:
* Return: SG_ERR_NOERR
* Created: 2013.11.28
* Revision Record: Ver 1.0:z_junjie
*********************************************************************/
SG_PACKAGE_API int CALLMETHOD SG_SetEncryptType(void* handle, int type, unsigned char* key, int keylen);
#ifdef __cplusplus
}
#endif
#endif // !defined(AFX_STREAMPACKAGE_H__014CF316_354F_47ED_B30D_D39912DD250D__INCLUDED_)

Binary file not shown.

@ -1,235 +0,0 @@
/********************************************************************
* Copyright 1992-2008, ZheJiang Dahua Technology Stock Co.Ltd.
* All Rights Reserved
* File Name: StreamParser.h
* Description: interface for streamParser
*********************************************************************/
#ifndef __STREAM_PARSER_H_
#define __STREAM_PARSER_H_
#if (defined(WIN32) || defined(WIN64))
#define SP_API __declspec(dllimport)
#define CALLMETHOD __stdcall
#else /*linux or mac*/
#define SP_API
#define CALLMETHOD
#endif
#ifdef __cplusplus
extern "C" {
#endif
/*接口返回值*/
enum SP_RESULT
{
SP_SUCCESS = 0, /*成功*/
SP_ERROR_INVALID_HANDLE = 1, /*无效句柄*/
SP_ERROR_FILE_TYPE_NOSUPPORT = 2, /*文件类型不支持*/
SP_ERROR_STREAM_NOSUPPORT = 3, /*流类型不支持*/
SP_ERROR_PARAMETER = 6, /*参数有误*/
SP_ERROR_BAD_FORMATTED = 9, /*文件格式错误*/
SP_ERROR_BUFFER_OVERFLOW = 12, /*内部缓冲区溢出*/
SP_ERROR_SYSTEM_OUT_OF_MEMORY = 13, /*系统内存不够*/
SP_ERROR_LIST_EMPTY = 14, /*列表为空*/
};
/*帧类型*/
enum SP_FRAME_TYPE
{
SP_FRAME_TYPE_UNKNOWN = 0, /*帧类型不可知*/
SP_FRAME_TYPE_VIDEO, /*帧类型是视频帧*/
SP_FRAME_TYPE_AUDIO, /*帧类型是音频帧*/
SP_FRAME_TYPE_DATA /*帧类型是数据帧*/
};
/*帧子类型*/
enum SP_FRAME_SUB_TYPE
{
SP_FRAME_SUB_TYPE_DATA_INVALID = -1, /*数据无效*/
SP_FRAME_SUB_TYPE_VIDEO_I_FRAME = 0 , /*I帧*/
SP_FRAME_SUB_TYPE_VIDEO_P_FRAME, /*P帧*/
SP_FRAME_SUB_TYPE_VIDEO_B_FRAME, /*B帧*/
SP_FRAME_SUB_TYPE_VIDEO_JPEG_FRAME=8, /*JPEG帧*/
};
/*编码类型*/
enum SP_ENCODE_VIDEO_TYPE
{
SP_ENCODE_VIDEO_UNKNOWN = 0, /*视频编码格式不可知*/
SP_ENCODE_VIDEO_MPEG4 , /*视频编码格式是MPEG4*/
SP_ENCODE_VIDEO_HI_H264, /*视频编码格式是海思H264*/
SP_ENCODE_VIDEO_JPEG, /*视频编码格式是标准JPEG*/
SP_ENCODE_VIDEO_DH_H264, /*视频编码格式是大华码流H264*/
SP_ENCODE_VIDEO_MPEG2 = 9, /*视频编码格式是MPEG2*/
SP_ENCODE_VIDEO_DH_H265 = 12, /*视频编码格式是H265*/
SP_ENCODE_VIDEO_H263 = 35, /*视频编码格式是H263*/
};
enum SP_ENCODE_AUDIO_TYPE
{
SP_ENCODE_AUDIO_UNKNOWN = 0,
SP_ENCODE_AUDIO_PCM = 7, /*音频编码格式是PCM8*/
SP_ENCODE_AUDIO_G729, /*音频编码格式是G729*/
SP_ENCODE_AUDIO_IMA, /*音频编码格式是IMA*/
SP_ENCODE_PCM_MULAW, /*音频编码格式是PCM MULAW*/
SP_ENCODE_AUDIO_G721, /*音频编码格式是G721*/
SP_ENCODE_PCM8_VWIS, /*音频编码格式是PCM8_VWIS*/
SP_ENCODE_MS_ADPCM, /*音频编码格式是MS_ADPCM*/
SP_ENCODE_AUDIO_G711A, /*音频编码格式是G711A*/
SP_ENCODE_AUDIO_AMR, /*音频编码格式是AMR*/
SP_ENCODE_AUDIO_PCM16, /*音频编码格式是PCM16*/
SP_ENCODE_AUDIO_G711U = 22, /*音频编码格式是G711U*/
SP_ENCODE_AUDIO_G723, /*音频编码格式是G723*/
SP_ENCODE_AUDIO_AAC = 26, /*音频编码格式是AAC*/
SP_ENCODE_AUDIO_MP2 = 31, /*音频编码格式是mp2*/
SP_ENCODE_AUDIO_OGG, /*音频编码格式是ogg vorbis*/
SP_ENCODE_AUDIO_MP3, /*音频编码格式是mp3*/
SP_ENCODE_AUDIO_G722_1, /*音频编码格式是G722.1*/
SP_ENCODE_AUDIO_AC = 49, /*音频编码格式是AC3*/
};
/*加密类型*/
enum SP_ENCRYPT_TYPE
{
SP_ENCRYPT_UNKOWN = 0,
SP_ENCRYPT_AES,
};
/*时间信息*/
typedef struct
{
int nYear; /*年*/
int nMonth; /*月*/
int nDay; /*日*/
int nHour; /*小时*/
int nMinute; /*分钟*/
int nSecond; /*秒*/
int nMilliSecond; /*毫秒*/
} SP_TIME;
#pragma pack(1)
/*帧信息 256字节*/
typedef struct
{
/*类型*/
int frameType; /*帧类型*/
int frameSubType; /*帧子类型*/
int frameEncodeType; /*帧编码类型*/
unsigned char reserved[4];
/*数据*/
unsigned char* streamPointer; /*指向码流数据,NULL表示无效数据*/
int streamLen; /*码流长度*/
unsigned char* framePointer; /*指向帧头,NULL表示无效数据*/
int frameLen; /*帧长度(包括帧头、帧体、帧尾)*/
/*时间*/
SP_TIME frameTime; /*时间信息*/
int timeStamp; /*时间戳*/
/*序号*/
int frameSeq; /*帧序号*/
/*视频属性,关键帧才有*/
int frameRate; /*帧率*/
int width; /*宽*/
int height; /*高*/
unsigned char reserved2[8];
/*音频属性*/
int samplesPerSec; /*采样频率*/
int bitsPerSample; /*采样位数*/
int channels; /*声道数*/
/*错误标志*/
int isValid; /*0为有效非0表示帧错误*/
#if defined(_WIN64) || defined(__x86_64__)
/*扩展*/
unsigned char reserved3[432]; /*保留字节*/
#else
/*扩展*/
unsigned char reserved3[412]; /*保留字节*/
#endif
} SP_FRAME_INFO;
#pragma pack()
/********************************************************************
* Funcname: SP_CreateStreamParser
* Purpose:
* InputParam: nBufferSize: SP_PaseData
* OutputParam:
* Return: NULL:
*
*********************************************************************/
SP_API void* CALLMETHOD SP_CreateStreamParser(int nBufferSize);
/********************************************************************
* Funcname: SP_ParseData
* Purpose: ,
* InputParam: handle: SP_CreateStreamParser
* stream:
* length:
* OutputParam:
* Return: 0:
* SP_GetLastError
*********************************************************************/
SP_API SP_RESULT CALLMETHOD SP_ParseData(void* handle, unsigned char* stream, int length);
/********************************************************************
* Funcname: SP_GetOneFrame
* Purpose: ,
* InputParam: handle: SP_CreateStreamParser
* frameInfo: SP_FRAME_INFO
* OutputParam:
* Return: 0:
* SP_GetLastError
*********************************************************************/
SP_API SP_RESULT CALLMETHOD SP_GetOneFrame(void* handle, SP_FRAME_INFO* frameInfo);
/********************************************************************
* Funcname: SP_StreamEncryptKey
* Purpose:
* InputParam: handle: SP_CreateStreamParserSP_CreateFileParser
* type : SP_ENCRYPT
* key
* keylen
* OutputParam:
* Return: 0:
*
*********************************************************************/
SP_API SP_RESULT CALLMETHOD SP_StreamEncryptKey(void* handle, unsigned int type, unsigned char* key, int keylen);
/********************************************************************
* Funcname: SP_Destroy
* Purpose:
* InputParam: handle: SP_CreateStreamParser
* OutputParam:
* Return: 0:
* SP_GetLastError
*********************************************************************/
SP_API SP_RESULT CALLMETHOD SP_Destroy(void* handle);
/********************************************************************
* Funcname: SP_GetLastError
* Purpose:
* InputParam: handle: SP_CreateStreamParserSP_CreateFileParser
* OutputParam:
* Return: 0:
* SP_GetLastError
*********************************************************************/
SP_API SP_RESULT CALLMETHOD SP_GetLastError(void* handle);
#ifdef __cplusplus
}
#endif
#endif

Binary file not shown.

@ -1,28 +0,0 @@
#ifndef AVGLOBAL_H
#define AVGLOBAL_H
typedef int AV_int32;
typedef unsigned int AV_uint32;
#ifndef __OBJC__
typedef int AV_BOOL;
#else
typedef BOOL AV_BOOL;
#endif
typedef void* AV_HANDLE;
typedef unsigned char AV_BYTE;
typedef float AV_float;
#ifdef WIN32
typedef __int64 AV_int64;
typedef unsigned __int64 AV_uint64;
#else
typedef long long AV_int64;
typedef unsigned long long AV_uint64;
#endif
#endif

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -18,7 +18,7 @@
<groupId>com.zhehekeji</groupId>
<artifactId>springbootstart</artifactId>
<version>1.0.0</version>
<name>springbootstart</name>
<name>duoji</name>
<description>Demo project for Spring Boot</description>
<properties>

@ -13,6 +13,14 @@
### 4.详见SDK_ReadMe_请先读我.TXT
### InitService: 项目启动自动登录球机自动连接PLC
### 球机的连接句柄维护在CameraConnMap类里,key:球机IDvalue:登录句柄
# 部署 使用利珀一键部署服务
## windows(该服务一般都会放在win10系统上)
### start-jar.bat (注意目录和profile)
### stop-jar.bat (注意端口号)
## linux:
### sh app.sh start
### sh app.sh restart
### sh app.sh stop

@ -0,0 +1,2 @@
@echo off
start cmd /k "cd/d D:\workspace\duoji && javaw -jar duoji-1.0.0.jar --spring.profile.path=application-prod.yml"

@ -0,0 +1,24 @@
@echo off&setlocal EnableDelayedExpansion
set Port=
set Dstport=9091
for /F "usebackq skip=4 tokens=2,5" %%a in (`"netstat -ano -p tcp"`) do (
for /F "tokens=2 delims=:" %%k in ("%%a") do (
set Port=%%k
)
echo !Port! %%b >>portandpid.txt
)
for /F "tokens=2 delims=:" %%c in ("%1") do (
set Port=%%c
)
for /F "tokens=1,2 delims= " %%d in (portandpid.txt) do (
echo %%d
echo %Dstport%
if %%d == %Dstport% taskkill /f /pid %%e
)
del portandpid.txt
set Port=
set Dstport=
goto :eof
echo '结束了'

@ -8,7 +8,7 @@
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>springbootstart-web</artifactId>
<artifactId>duoji</artifactId>
<properties>
<java.version>1.8</java.version>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="LOG_HOME" value="/data/log/duoji"></property>
<property name="LOG_HOME" value=".log"></property>
<springProperty scope="context" name="logName" source="spring.application.name" defaultValue="localhost.log"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>

Loading…
Cancel
Save