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.

[参考译文] processor-SDK-J721E:app_display_module 中的 tivxNodeSendCommand

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1073175/processor-sdk-j721e-tivxnodesendcommand-in-app_display_module

部件号:processor-SDK-J721E

你(们)好。

我正在处理 处理器-SDK-J721E。

在 app_display_module 中,我想使用 tivxNodeSendCommand 函数来更改显示节点的裁剪。 但这似乎行不通。

在 app_init 中,给出了作物参数的默认值。

displayObj->disp_right_params.enableCroping= 1
displayObj->disp_right_params.cropPrms.startx = 160
displayObj->disp_right_params.cropPrms.startY =160;
displayObj->disp_right_params.cropPrms.width = 400
displayObj->disp_right_params.cropPrms.height =225
可以显示正确的图像。

我创建了一个新函数。 (下方)

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
vx_status app_display_modify(vx_context context , vx_node node, tivx_display_params_t params)
{
vx_status status = VX_SUCCESS;
vx_reference refs[1];
vx_user_data_object crop_obj = NULL;
crop_obj =vxCreateUserDataObject(context, "tivx_display_crop_params_t", sizeof(tivx_display_crop_params_t), &params.cropPrms);
vxCopyUserDataObject(crop_obj, 0,
sizeof(tivx_display_crop_params_t),
&params.cropPrms, VX_WRITE_ONLY, VX_MEMORY_TYPE_HOST);
refs[0] = (vx_reference)crop_obj;
status = VX_FAILURE;
while (status == VX_FAILURE)
{
status = tivxNodeSendCommand(node, 0, TIVX_DISPLAY_SET_CROP_PARAMS,
refs, 1u);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

并在 交互任务中调用它。(如下所示)

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
case 'x':
obj->stop_task = 1;
done = 1;
break;
case 'r':
obj->displayObj.disp_right_params.enableCropping = 1;
obj->displayObj.disp_right_params.cropPrms.width += 100;
app_display_modify(obj->context, obj->displayObj.disp_right_node, obj->displayObj.disp_right_params);
printf("obj->displayObj.disp_right_params.cropPrms.width value is %d\n", obj->displayObj.disp_right_params.cropPrms.width);
break;
case 'l':
obj->displayObj.disp_right_params.enableCropping = 1;
obj->displayObj.disp_right_params.cropPrms.height += 100;
app_display_modify(obj->context, obj->displayObj.disp_right_node, obj->displayObj.disp_right_params);
printf("obj->displayObj.disp_right_params.cropPrms.height value is %d\n", obj->displayObj.disp_right_params.cropPrms.height);
break;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

应用程序都运行良好,但不能正常运行。 显示的图像保留了 app_init 中给出的默认值。

但作物参数已通过键盘更改。  

祝你一切顺利。

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

    您好,

    您是否在显示屏中启用了裁剪创建参数?

    请点击以下链接吗?

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1009550/faq-processor-sdk-j721e-support-for-pan-and-zoom-in-display-node-in-openvx

    此致,

    布里耶什

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

    是。

    正如我以前所说:

    在 app_init 中,以下参数已给出。

    displayObj->disp_right_params.enableCroping= 1

    displayObj->disp_right_params.cropPrms.startx = 160
    displayObj->disp_right_params.cropPrms.startY =160;
    displayObj->disp_right_params.cropPrms.width = 400
    displayObj->disp_right_params.cropPrms.height =225
    可以显示正确的图像。
    唯一的问题是输出图像将默认参数与 app_init 中给出的参数保持一致。  

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

    嗨,布里耶什

    我已经解决了这个问题。
    参数“displayObj->disp_right_params.opMode”应设置为“TIVX_kernel_display_zero_buffer_copy_mode”,而不是“TIVX_kernel_display_buffer_copy_mode”。
    Fullscreen
    1
    displayObj->disp_right_params.opMode = TIVX_KERNEL_DISPLAY_ZERO_BUFFER_COPY_MODE; // TIVX_KERNEL_DISPLAY_BUFFER_COPY_MODE;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    非常感谢!
x 出现错误。请重试或与管理员联系。