工具与软件:
尊敬的 TI:
我们需要以尽可能多的 FPS 持续记录 viss/LDC 输出图像。 我想访问 VIS 和 LDC 输出缓冲器。 问题:
1.是否可以访问由设置的缓冲区 tivxSetNodeParameterNumBufByIndex() TI API 呢? 我已经阅读了 tiovx 图形流水线文档、其中提到应用只能访问 图形参数缓冲区。 这只是想确认。
2.在我的图形中、捕获节点输出是图形参数。 我尝试将 vis 节点输出图像(params idx = 6)也设置为图形参数、但我获得的输出如下( 附加了录音 )我也收到了一些错误。(附加的终端 ss)
我已经阅读了有关如何创建 vis 节点输出作为图形参数的常见问题解答、我正在执行与我的应用中的单凸轮贴片中提到的完全相同的步骤。
捕获和 VIS 输出的缓冲器队列深度为4。
排队出队的代码片段如下所示:
/*!
* CMS Graph pipeline enqueue references : pipe up + execute first reference
* Pipe up -> Enqueue input references (NUM_BUFS - 1) times but do not trigger graph execution
* Execute first reference -> after pipe up, now enqueue a buffer to trigger graph scheduling
*/
for (buf_id = 0; buf_id < NUM_BUFS; buf_id++)
{
status = vxGraphParameterEnqueueReadyRef(class_ii_iv_graph_obj_ptr->graph,
class_ii_iv_graph_obj_ptr->captureObj.graph_parameter_index,
(vx_reference *)&class_ii_iv_graph_obj_ptr->captureObj.raw_image_out_arr[buf_id],
1);
if (status != VX_SUCCESS)
{
GEN3_DBG_PRINTF_ERR("ERROR: graph enqueue failed for capt cl2 cl4 out arr[%d], status = %d\n", buf_id, status);
}
status = vxGraphParameterEnqueueReadyRef(class_ii_iv_graph_obj_ptr->graph,
class_ii_iv_graph_obj_ptr->vissObj.graph_parameter_index,
(vx_reference *)&class_ii_iv_graph_obj_ptr->vissObj.out_arr[buf_id],
1);
if (status != VX_SUCCESS)
{
GEN3_DBG_PRINTF_ERR("ERROR: graph enqueue failed for capt cl2 cl4 out arr[%d], status = %d\n", buf_id, status);
}
}
/* dequeue first and then after alternate executed reference from graph parameter.
* check TIVX_OBJ_DESC_QUEUE_MAX_DEPTH if do not want to use dequeue.
* enqueue back first or alternate reference into graph parameter after dequeue.
*/
while (!class_ii_iv_graph_obj_ptr->stop_task_graph)
{
for (buf_id = 0; buf_id < NUM_BUFS; buf_id++)
{
/* Dequeue one image buffer */
status = vxGraphParameterDequeueDoneRef(class_ii_iv_graph_obj_ptr->graph,
class_ii_iv_graph_obj_ptr->captureObj.graph_parameter_index,
(vx_reference *)&raw_image_temp,
1,
&num_refs);
if (status != VX_SUCCESS)
{
GEN3_DBG_PRINTF_ERR("ERROR: graph dequeue failed for capt cl2 cl4 out arr[%d], status = %d\n", buf_id, status);
}
/* Dequeue one image buffer */
status = vxGraphParameterDequeueDoneRef(class_ii_iv_graph_obj_ptr->graph,
class_ii_iv_graph_obj_ptr->vissObj.graph_parameter_index,
(vx_reference *)&viss_out_temp,
1,
&num_refs);
if (status != VX_SUCCESS)
{
GEN3_DBG_PRINTF_ERR("ERROR: graph dequeue failed for viss cl2 cl4 out arr[%d], status = %d\n", buf_id, status);
}
status = vxGraphParameterEnqueueReadyRef(class_ii_iv_graph_obj_ptr->graph,
class_ii_iv_graph_obj_ptr->captureObj.graph_parameter_index,
(vx_reference *)&class_ii_iv_graph_obj_ptr->captureObj.raw_image_out_arr[buf_id],
1);
if (status != VX_SUCCESS)
{
GEN3_DBG_PRINTF_ERR("ERROR: graph enqueue failed for capt cl2 cl4 out arr[%d], status = %d\n", buf_id, status);
}
status = vxGraphParameterEnqueueReadyRef(class_ii_iv_graph_obj_ptr->graph,
class_ii_iv_graph_obj_ptr->vissObj.graph_parameter_index,
(vx_reference *)&class_ii_iv_graph_obj_ptr->vissObj.out_arr[buf_id],
1);
if (status != VX_SUCCESS)
{
GEN3_DBG_PRINTF_ERR("ERROR: graph enqueue failed for viss cl2 cl4 out arr[%d], status = %d\n", buf_id, status);
}
}
}
e2e.ti.com/.../WIN_5F00_20250305_5F00_04_5F00_58_5F00_20_5F00_Pro.mp4

此致、
Lalit
