工具/软件:
您好、TI 专家、
在 SDK 11.0 上、使用本机 v4l2 框架。
我们使用之前的程序(SDK 9.1 是正常程序)来验证编码驱动程序、并发现输出数据存在问题。
输出数据的第一个帧的时间戳与第二个帧的时间戳相同。
我在驱动程序中打印了“Done_list",“,发现、发现有两个时间戳。 这不正确。
[ 1091.239279] videobuf2_common: [cap-000000006a6e4536] __vb2_get_done_vb: done_list type=9 tv_sec=1741327103 tv_usec=243226 [ 1091.250212] videobuf2_common: [cap-000000006a6e4536] __vb2_get_done_vb: done_list type=9 tv_sec=1741327103 tv_usec=243226 [ 1091.261145] videobuf2_common: [cap-000000006a6e4536] __vb2_get_done_vb: done_list type=9 tv_sec=1741327103 tv_usec=614500 [ 1091.272078] videobuf2_common: [cap-000000006a6e4536] __vb2_get_done_vb: done_list type=9 tv_sec=1741327103 tv_usec=614500
在此函数 (wave5_VPU_enc_finish_encode) 中、src 和 dst 将添加到 DONE_list。 但是、此函数将被调用两次。
第二次调用时、src 为 NULL、不会添加到 DONE_LIST 中。 但是、dst 再次添加到 DONE_LIST 中、最终导致 DONE_LIST 中出现以下情况:
我们的使用方法可能是对多个项目进行排队、然后一次性将它们全部排入队列、而不是逐一排入队列。
