1、功能说明
多路录像同步远程回放
2、对接说明
2.1 设备sdk版本要求
"V6.1.50 20190322" (含)之后的版本
2.2 录像搜索返回,客户端查找文件时,设备返回的允许多路回放标志及可以多路回放的通道信息
virtual void FindRecFile(int nYear, int nMonth, int nDay, int nBeginTime, int nEndTime, int nRecType, int nChannel
, TTXPfnRecFindCB pfnRecFindCB, void* pFindUsr, TTXPfnGetExitCB pfnGetExitCB, void* pExitUsr);
typedef struct _tagTTXRecFile
{
unsigned char Year; //年,11 = 2011年
unsigned char Month; //日,从1开始,1 - 12
unsigned char Day; //天,从1开始,1 - 31
unsigned char Hour; //小时,从0开始,0 - 23
unsigned char Minute; //分钟,从0开始,0 - 59
unsigned char Second; //秒,从0开始,0 - 59
unsigned char Type; //文件类型 TTX_RECTYPE_NORMAL, TTX_RECTYPE_ALARM, TTX_RECTYPE_ALL
unsigned char Channel; //通道号,从0开始
unsigned int uiFileTime; //文件时长,秒为单位
unsigned int uiFileLen; //文件长度
char szFileName[240];
unsigned short usMulChn; //可以多路回放的通道 ,按位表示
char bMulPlay; //是否支持多路同时回放
char cReserve; //保留参数
char cYJWNewFlag; //新文件使用,请填0
char cCoointNewFlag; //新文件使用,请填0
char bRecording; //是否正在录像,0表示没有,1表示正在录像
char bStream; //是否为流式文件,当为流式文件时,客户端会使用回放的方式进行文件下载
unsigned int ChnMask; //通道掩码,当一个文件存在多个通道的录像时,使用些参数
int nAlarmInfo; //一个文件允许有多个报警,当文件是报警文件时有效
}TTXRecFile_S, *LPTTXRecFile_S;
返回文件内容的 bMulPlay 配置为true表示支持多路同时回放
usMulChn 返回可以回放的通道信息,按位表示,第0位为1表示通道1可以回放
2.3 回放时,在录像文件解析时,ReadFrame返回多个通道的视频数据
class LIBDVRNET_API CTTXRecFile
{
.......
//读取一帧数据
//对视频和音频而言返回码流信息
//有的视频帧内容还会包括GPS信息,请将需要将GPS信息当成信息帧返回
virtual bool ReadFrame( TTXFILEFrame_S *pFrame1, TTXFILEFrame_S *pFrame2 ) = 0;
protected:
........
unsigned short m_usChnMask;
};
示例
bool ReadFrame( TTXFILEFrame_S *pFrame1, TTXFILEFrame_S *pFrame2 )
{
bool ret = false;
int frmChn = 0;
while (true)
{
//读一帧的数据
if (readoneframe(&frmChn))
{
//判断通道是否要返回
if ( (m_usChnMask>>frmChn)&0x1 )
{
//此通道的数据为客户端要回放的数据
pFrame1->nChannel = frmChn;
//填充帧数据
ret = true;
break;
}
else
{
//重新读帧数据
continue;
}
}
else
{
break;
}
}
return ret;
}