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.

[参考译文] Linux/TMS320DM8148:如何显示 YUV422I_UYVY 数据?

Guru**** 2543780 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/599921/linux-tms320dm8148-how-do-i-display-yuv422i_uyvy-data

器件型号:TMS320DM8148

工具/软件:Linux

您好!

我正在使用 DVR RDK 4.01。  如果我使用 YUV422I_YUYV、但显示的图像为粉色/绿色、则 SWMS 创建完成。   我将 通道信息数据格式切换为 YUV422I_UYVY、但 SWMS 创建挂起。  以下是日志:

SWMS:正在创建!!!
utils:DMA:分配的 CH (TCC)= 59 (59)
utils:DMA:0 of 1:已分配参数= 59 (0x49004760)
SWMS:实例0、SC id 5、START WIN 0 END WIN 17

SWMS/显示屏是否支持 YUV422I_YUV?

法拉

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

    有关 DVRRDK 支持、请查看此链接:
    e2e.ti.com/.../426680

    您可以在 e2e 中搜索类似的问题。

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

    请分享您的用例中使用的 swms 链接参数、包括工作用例和非工作用例。

    此致、
    Anuj
    Pathpartner Technology Pvt Ltd
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在工作案例(YUV422I_YUYV)中、ipcFramesOutHostPrm 队列信息为:


    inQueInfo.numCh = 5;
    对于(i=0;i < inQueInfo.numCh;i++)

    inQueInfo.chInfo[i].bufType = SYSTEM_BUF_TYPE_VIDFRAME;
    inQueInfo.chInfo[i].dataForamt = SYSTEM_DF_YUV422I_YUYV;
    inQueInfo.chInfo[i].memType = SYSTEM_MT_NONTILEDMEM;
    inQueInfo.chInfo[i].scanFormat = system_sf_progressive;
    inQueInfo.chInfo[i].startX = 0;
    inQueInfo.chInfo[i].startY = 0;
    inQueInfo.chInfo[i].width = i ==0? 1024:640;
    inQueInfo.chInfo[i].height = i ==0? 768:512;
    inQueInfo.chInfo[i].pitch[0]= i ==0? (1024*2):(640*2);
    inQueInfo.chInfo[i].pitch[1]= 0;
    inQueInfo.chInfo[i].pitch[2]= 0;


    swMsPrm 为:

    swMsPrm.includeVipScInDrvPath = false;
    swMsPrm.inQueParams.prevLinkId = ipcFramesInVpssFromHostId;
    swMsPrm.inqueParams.prevLinkQueId = 0;
    swMsPrm.outQueParams.nextLink = gVdisModuleContext.displayId[0];
    swMsPrm.maxInputQuenLen = 4;
    swMsPrm.maxOutRes = VSYS_STD_1080p_60;
    swMsPrm.initOutRes = VSYS_STD_1080p_60;
    swMsPrm.numOutBuf = 4;
    swMsPrm.enableProcessTieWithDisplay = true;

    在非工作情况(YUV422I_UYVY)中、除以下行外、一切都是相同的:

    inQueInfo.chInfo[i].dataForamt = SYSTEM_DF_YUV422I_UYVY;
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    请分享用例代码。
    SwMsLink 参数未完成。 需要设置更多参数。

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

    gVdisModuleContext.ipcFramesOutHostId = system_host_link_ID_IPC_FRAS_OUT_0;
    gVdisModuleContext.ipcFramesInVpssFromHostId = SYSTEM_VPSS_LINK_ID_IPC_FRAS_IN_0;
    gVdisModuleContext.swMsId[0]= system_host_link_ID_IPC_FRAes_out_0;
    gVdisModuleContext.swMsId[1]= system_link_ID_invalid;
    swMsPrm.numSwMsInst = 1;
    swMsPrm.swMsInstId[0]= system_sw_ms_sc_INST_SC5;
    gVdisModuleContext.displayId[0]= system_link_ID_display_0;

    ipcFramesOutHostPrm.baseCreateParams.noNotifyMode = true;
    ipcFramesOutHostPrm.baseCreateParams.notifyNextLink = false;
    ipcFramesOutHostPrm.baseCreateParams.notifyPrevLink = false;
    ipcFramesOutHostPrm.baseCreateParams.inQueParams.prevLinkId = system_link_ID_invalid;
    ipcFramesOutHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
    ipcFramesOutHostPrm.baseCreateParams.outQueueParams[0].nextLink = gVdisModuleContext.ipcFramesInVpssFromHostId;
    MultiCh_setIpcFramesOutInQueInfo (ipcFramesOutHostPrm.inQueInfo);)

    ipcFramesInVpssFromHostPrm.baseCreateParams.noNotifyMode = true;
    ipcFramesInVpssFromHostPrm.baseCreateParams.notifyNextLink = true;
    ipcFramesInVpssFromHostPrm.baseCreateParams.notifyPrevLink = false;
    ipcFramesInVpssFromHostPrm.baseCreateParams.inQueParams.prevLinkId = gVdisModuleContext.ipcFramesOutHostId;
    ipcFramesInVpssFromHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
    ipcFramesInVpssFromHostPrm.baseCreateParams.outQueuParams[0].nextLinkId = gVdisModuleContext.swMsId[0];

    swMsPrm.includeVipScInDrvPath = false;
    swMsPrm.inQueParams.prevLinkId = ipcFramesInVpssFromHostId;
    swMsPrm.inqueParams.prevLinkQueId = 0;
    swMsPrm.outQueParams.nextLink = gVdisModuleContext.displayId[0];
    swMsPrm.maxInputQuenLen = 4;
    swMsPrm.maxOutRes = VSYS_STD_1080p_60;
    swMsPrm.initOutRes = VSYS_STD_1080p_60;
    swMsPrm.numOutBuf = 4;
    swMsPrm.enableProcessTieWithDisplay = true;

    swMsPrm.lineSkipMode = false;
    swMsPrm.enableLayoutGridDraw = gVdisModuleContext.vdisConfig.enableLayoutGridDraw;
    MultiCh_swMsGetDefaultLayoutPrm (VDIS_DEV_HDMI、&swMsPrm、false);

    displayPrm.numInputQueues = 1;
    displayPrm.activeQueue = 0;
    displayPrm.queueInISRFlag = true;
    displayPrm.inqueParams[0].prevLinkId = gVdisModuleContext.swMsId[0];
    displayPrm.inqueParams[0].prevLinkQueId = 0;
    displayPrm.displayRes = VSYS_STD_1080p_60;

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

    Anuj、有什么建议吗?

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

    您好!

    请将 swms 链接的链接 ID 更改为 system_link_ID_sw_ms_multi_INST_0。

    您是否在内部对 MultiCh_swMsGetDefaultLayoutPrm 函数进行了任何更改?

    请分享您的用例 c 文件。

    此致、

    Anuj

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

    e2e.ti.com/.../multich_5F00_progressive_5F00_4d1_5F00_vcap_5F00_vdis.cThat是我使用的链接 ID。  我已附加用例文件。