This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TDA4VM:VISION_APPS 中的 APP_srv_camera (SDK:08.06.00.12)

Guru**** 1963925 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1280542/tda4vm-app_srv_camera-in-vision_apps-sdk-08-06-00-12

器件型号:TDA4VM

您好!

我在调试"app_srv_camera"时遇到一些困惑。
我在代码中看到"app_run_graph"函数包含一个 for 循环和两个 while 循环。 我应该如何理解这里的环路? 这里实现了哪些循环?  

您能帮助我理解吗?  

非常感谢!

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
for(buf_id=0; buf_id<NUM_BUFS; buf_id++)
{
graph_parameter_num = 0;
printf("test_b3________________vxGraphParameterEnqueueReadyRef status = %d\n", status);
if(status == VX_SUCCESS)
{
status = vxGraphParameterEnqueueReadyRef(obj->graph, graph_parameter_num,
(vx_reference*)&obj->capt_frames[buf_id], 1);
}
graph_parameter_num++;
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
while(status == VX_SUCCESS)
{
vx_object_array out_capture_frames;
vx_image test_image;
graph_parameter_num = 0;
appPerfPointBegin(&obj->total_perf);
printf("test_b5________________vxGraphParameterDequeueDoneRef status = %d\n", status);
if(status == VX_SUCCESS)
{
printf("start Strange mistake ___________________EGL\n");
status = vxGraphParameterDequeueDoneRef(obj->graph, graph_parameter_num,
(vx_reference*)&out_capture_frames, 1, &num_refs);
printf("end Strange mistake ___________________EGL\n");
}
graph_parameter_num++;
printf("test_b6________________vxGraphParameterDequeueDoneRef status = %d\n", status);
printf("test_b7________________vxGraphParameterEnqueueReadyRef status = %d\n", status);
graph_parameter_num = 0;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

此致、

跃迁市

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Yueqian:

    第一个循环是图中的管道。 即、您必须将缓冲区排队以绘制图形来触发它。  
    因此、第一个循环根据缓冲区深度将初始数量的缓冲区排队。

    第二个循环是过程循环、在这个循环中、您可以从框架中进行排队、在应用程序中使用它(如果需要)、然后将它重新排队到框架中

    最后一个循环(即 :对于 pipe down、为 dequeue buf)用于图形完成后或用户请求停止图形时的 pipe down (即取消所有最初排队以顺利退出的剩余缓冲区的队列)。

    我希望这可以解答您的疑问。

    此致、

    尼基尔

x 出现错误。请重试或与管理员联系。