缓存补录小路问题记录


要是录像计划结构体中的NeedCache为FALSE,那么要预前录像吗?好像不放到MEM中了,但是取数据写SD卡还是从MEM中取?

录像分为改关建开文件、和写入数据两方面

录像数据的每一帧数据他自己的时间撮很重要,一直保持纪录下来
组MEM时,MEM中有个时间撮字段
MEM.buf中还在媒体头中又填了时间撮
大文件的时间撮是否也是此?
关键帧数据结构中的时间撮为大文件的时间撮

大文件大小ullRecordFileSize这个量每一帧存好后加当前帧大小ulCurrFrameSize?那么建开一个文件时是否重置0?
若不重置为0是否表示所有录像保存在一个大文件中


大文件的3个时间,是用于改关建开文件,,,写数据:每一帧都写
索引文件的1个时间,是用于控制30秒才写入一次数据,改关建开文件和大文件同步,不需再占用时间,,,写数据:每一帧都解,解到就存,30秒才写
所以可能造成当前帧的大文件和索引文件文件名不一致,,另外,录像控制块.索引文件控制块.buf要不要清空?


录像控制块的几个文件路径
szDirectory 路径,初始化为“”
szBigFileName打开的大文件指向,带后缀,改也在此基础改,改好后关了存szUpdatedFileName(不带后缀)-> 建文件打开,打开后存szFileName(不带后缀)
szIndexFileName 打开的索引文件指向,一般为szFileName + 后缀
szFileName 当前打开,无后缀
szUpdatedFileName 上一次改关,无后缀


录像控制块.索引文件控制块.buf结构:
索引文件头 + 大文件(段(簇(帧

大文件写数据buf结构:
扩展头 + 媒体头 + (H264头) + 从帧中取出的数据

簇在大文件中的偏移,帧在大文件中的偏移


切换时间到了,未完成的簇,不要写入?
szUpdatedFileName 上一次改关,无后缀?
若不要缓存预警录像取数据源去哪里取?
线程资源锁?
unlink?


//4.5
初始化录像策略时,只初始化了4个通道的结构体数组,还有4个通道的录像方法没初始化吗?

录像计划压入向量时,当总数不等于下标差就重新从主控获取录像计划来压入,但是前面不符合的也压入了?

录像计划轮询检测时,通道有优先级,压入的录像计划向量也有优先级

从主控获取消息,收主控时不判断是从主控发过来的消息,也可能是别的设备发过来的消息,但我们已经拿着用了

告警策略、联动、DI是什么意思?

//4.16
录像init时,每个通道从主控得到信息,但是若返回的enResultType不为成功,则跳出此通道,那么其实此通道已经初始
化了一些了,要把初始化好的擦去吗?

//4.20
帧获取时间的问题,获取函数调用放到哪个位置合适?

reset函数调用过程中要把切换文件的关键帧索引写入老文件?

警前录像和MEM的关系

回调函数是先视频帧检测,后音频帧检测,那么放入MEM中的第一帧一定是视频I帧,为什么?如果不是I帧必需
又是什么情况?

什么时候调用回调函数?为什么异常了都返回SUCCESS?

原文地址:https://www.cnblogs.com/xuejianhui/p/2773660.html