Page 5 of 5

Re: 【SDK】aov卡录问题求助

Posted: 2025年 Apr 3日 11:24
by Passat

在同样的场景下,使用附件中的库测试,并收集日志。

TuyaOS_0403.zip
(4.69 MiB) Downloaded 32 times

Re: 【SDK】aov卡录问题求助

Posted: 2025年 Apr 3日 14:05
by XM.Quan
Passat 2025年 Apr 3日 11:24

在同样的场景下,使用附件中的库测试,并收集日志。
TuyaOS_0403.zip

[01-01 00:08:54 ty E][7c94][tuya_ipc_ss_aov.c:467] start aov storage
[01-01 00:09:19 ty D][7c94][tuya_ipc_ss_aov.c:520] tuya_ipc_ss_get_aov_storage_status:1,0x52e990
仅更新库在相同环境下测试,日志已添加至附件,帮忙分析一下。


Re: 【SDK】aov卡录问题求助

Posted: 2025年 Apr 3日 17:54
by Passat

目前原因已明确,AOV buf 中写入帧较多,校准线程耗时较久,导致开始存储的时间过晚。

附件中新的库,以下接口

Code: Select all

OPERATE_RET tuya_ipc_aov_buffer_init(INT_T device, INT_T channel, IPC_STREAM_E stream, AOV_BUFFER_INIT_PARAM_T *pparam);

初始化参数 AOV_BUFFER_INIT_PARAM_T 中新增校准策略的开关 correct_last_frame_enable,默认可填 FALSE。
置为 FALSE 后,需要自行确保 AOV 录像的最后一帧时间与下一段录像的起始时间相同,回放录像的时间片才可以正常拼接;否则时间不连续。


Re: 【SDK】aov卡录问题求助

Posted: 2025年 Apr 7日 09:57
by XM.Quan
Passat 2025年 Apr 3日 17:54

目前原因已明确,AOV buf 中写入帧较多,校准线程耗时较久,导致开始存储的时间过晚。

附件中新的库,以下接口

Code: Select all

OPERATE_RET tuya_ipc_aov_buffer_init(INT_T device, INT_T channel, IPC_STREAM_E stream, AOV_BUFFER_INIT_PARAM_T *pparam);

初始化参数 AOV_BUFFER_INIT_PARAM_T 中新增校准策略的开关 correct_last_frame_enable,默认可填 FALSE。
置为 FALSE 后,需要自行确保 AOV 录像的最后一帧时间与下一段录像的起始时间相同,回放录像的时间片才可以正常拼接;否则时间不连续。

目前测下来开debug日志的大概从开始aov存储到获取到结果5需要4秒左右
[01-01 00:01:21 ty E][7c74][tuya_ipc_ss_aov.c:467] start aov storage
[01-01 00:01:25 ty D][7c74][tuya_ipc_ss_aov.c:520] tuya_ipc_ss_get_aov_storage_status:5,0x52e990

关闭debug日志大概也是3秒多
[2025/4/7 9:42:12 993] [01-01 00:01:24 ty E][8044][tuya_ipc_ss_aov.c:467] start aov storage
[2025/4/7 9:42:16 305] tuya_ipc_ss_get_aov_storage_status ret = [1]

这个时间比之前快多了,是否算正常了?


Re: 【SDK】aov卡录问题求助

Posted: 2025年 Apr 7日 10:06
by Passat
  1. 现象正常。
  2. 测试库,仅供调试用,不能用于正常产品发布。测试库的改动会在新的OS版本中发布

Re: 【SDK】aov卡录问题求助

Posted: 2025年 Apr 7日 10:08
by XM.Quan
Passat 2025年 Apr 7日 10:06
  1. 现象正常。
  2. 测试库,仅供调试用,不能用于正常产品发布。测试库的改动会在新的OS版本中发布

好的,新版本发布了麻烦通知一下。


Re: 【SDK】aov卡录问题求助

Posted: 2025年 Apr 15日 20:28
by XM.Quan
Passat 2025年 Apr 3日 17:54

目前原因已明确,AOV buf 中写入帧较多,校准线程耗时较久,导致开始存储的时间过晚。

附件中新的库,以下接口

Code: Select all

OPERATE_RET tuya_ipc_aov_buffer_init(INT_T device, INT_T channel, IPC_STREAM_E stream, AOV_BUFFER_INIT_PARAM_T *pparam);

初始化参数 AOV_BUFFER_INIT_PARAM_T 中新增校准策略的开关 correct_last_frame_enable,默认可填 FALSE。
置为 FALSE 后,需要自行确保 AOV 录像的最后一帧时间与下一段录像的起始时间相同,回放录像的时间片才可以正常拼接;否则时间不连续。

再请教一下
1.tuya_ipc_ss_stop_aov_local_storage接口,我这边测了一下推完5400帧后立刻调用该接口停止卡录并下电会出现只录制了部分数据的情况,是否有停止卡录接口会等全部数据写完后再退出?
2.aovbuf是否是与常规ringbuf一样是环形的可以覆盖数据,我这边申请了4M的aovbuf然后推3M数据后延时1秒等待录像取走数据后再推3M数据,出现了如附件中的错误打印,[2025/4/15 20:35:46 160] [01-01 00:01:30 ty E][7984][tuya_ipc_aov_buffer.c:244] fail to get 371 size from aov pool(4194304), tail(4194296) dev0ch0str0 帮忙看下。


Re: 【SDK】aov卡录问题求助

Posted: 2025年 Apr 21日 11:18
by Passat
  1. 因无法感知是否存在最后一帧的情况,所以没有等待写完最后一帧再停止的接口
  2. aovbuf 没有常规ringbuf的循环覆盖逻辑,超过AOV buf申请的大小后会直接返回报错