TI中文支持网
TI专业的中文技术问题搜集分享网站

求助:有关DM368 DVSDK包的OSD疑问

大家好,

    我正在使用dvsdk-demos_4_02_00_01学习视频显示,有一个地方有个疑问:

在文件:ui.c

函数:UI_create

理解:对函数的理解大体如下注释描述。

疑问:如果在attrs->osd为1,到底是否使能了设备的osd功能呢?从代码看,只是将系统一些统计信息UI_update()到了管道里面。管道的另一端在哪里呢?

/******************************************************************************
 * UI_create
 ******************************************************************************/
UI_Handle UI_create(UI_Attrs *attrs)
{Display_AttrsaAttrs= Display_Attrs_DM365_ATTR_DEFAULT;UI_HandlehUI;hUI = calloc(1, sizeof(UI_Object));//此处为对象分配空间if (hUI == NULL) {ERR("Failed to allocate space for UI Object\n");return NULL;}hUI->osd = attrs->osd;hUI->videoStd = attrs->videoStd;if (!attrs->osd) {//如果osd不使能,则创建fb视频设备,并且将OSD清零。aAttrs.videoStd = hUI->videoStd;/* Create display device driver instance */if ( (aAttrs.videoStd == VideoStd_CIF) ||(aAttrs.videoStd == VideoStd_SIF_NTSC) ||(aAttrs.videoStd == VideoStd_SIF_PAL) ||(aAttrs.videoStd == VideoStd_VGA) ||(aAttrs.videoStd == VideoStd_D1_NTSC) ||(aAttrs.videoStd == VideoStd_D1_PAL) ) {aAttrs.videoOutput = Display_Output_COMPOSITE;}else {aAttrs.videoStd = VideoStd_576P;aAttrs.videoOutput = Display_Output_COMPONENT;}hUI->hAttr = Display_create(NULL, &aAttrs);if (hUI->hAttr == NULL) {ERR("Failed to create attribute window device\n");cleanupUI(hUI);return NULL;}/* Clear the OSD if using keyboard interface */setOsdTransparency(hUI, 0);}/* Create the FIFOs if it does not exist */if (attrs->osd) {umask(0);mknod(CMD_FIFO_FILE, S_IFIFO|0666, 0);mknod(CONFIG_FIFO_FILE, S_IFIFO|0666, 0);mknod(KB_CMD_FIFO_FILE, S_IFIFO|0666, 0);mknod(STATUS_FIFO_FILE, S_IFIFO|0666, 0);hUI->fpCmd = fopen(CMD_FIFO_FILE, "r");//这个代码有疑问,使用这个程序执行此处会挂在这里。修改为open非阻塞打开,则可以继续往后走。hUI->fpConfig = fopen(CONFIG_FIFO_FILE, "r");hUI->fpKbCmd = fopen(KB_CMD_FIFO_FILE, "w");hUI->fpStatus = fopen(STATUS_FIFO_FILE, "w");if ((hUI->fpCmd == NULL) || (hUI->fpConfig == NULL) ||(hUI->fpKbCmd == NULL) || (hUI->fpStatus == NULL)) {ERR("Failed to open pipes\n");cleanupUI(hUI);return NULL;}setvbuf(hUI->fpCmd, NULL, _IONBF, 0);//清FIFOsetvbuf(hUI->fpConfig, NULL, _IONBF, 0);setvbuf(hUI->fpKbCmd, NULL, _IONBF, 0);setvbuf(hUI->fpStatus, NULL, _IONBF, 0);}return hUI;
}
Chris Meng:

你好,

你能否在运行代码的过程中通过读取DM36x VPBE user guide的OSD相关章节的寄存器值来了解代码的具体作用?

feller shi:

回复 Chris Meng:

寄存器手册是读了,但是没有发现demo的代码在实现上与硬件的关系。

前几天调试通了视频播放显示,这几天开始调试视频采集了,暂时没有关注OSD的调试。

多谢:)

TaiDong AN:

你好,朋友。

我现在也遇到这个问题,这里面的display_create()和capture线程里的display_create()的功能有什么不同?

可以加个朋友,以后有问题可以交流一下。QQ:402097837

赞(0)
未经允许不得转载:TI中文支持网 » 求助:有关DM368 DVSDK包的OSD疑问
分享到: 更多 (0)