工具与软件:
对于 DISPLAY_TYPE_EDP 的显示设置驱动程序:
DSS_initParamsInit (&dssInitParams);
dssInitParams.socParams.rmInfo.isCommRegAvailable[0U]= true;
dssInitParams.socParams.rmInfo.isCommRegAvailable[1U]= false;
dssInitParams.socParams.rmInfo.isCommRegAvailable[2U]= false;
dssInitParams.socParams.rmInfo.isCommRegAvailable[3U]= false;
dssInitParams.socParams.rmInfo.isPipeAvailable[0U]= true;
dssInitParams.socParams.rmInfo.isPipeAvailable[1U]= true;
dssInitParams.socParams.rmInfo.isPipeAvailable[2U]= true;
dssInitParams.socParams.rmInfo.isPipeAvailable[3U]= false;
dssInitParams.socParams.rmInfo.isOverlayAvailable[0U]= false;
dssInitParams.socParams.rmInfo.isOverlayAvailable[1U]= false;
dssInitParams.socParams.rmInfo.isOverlayAvailable[2U]= false;
dssInitParams.socParams.rmInfo.isOverlayAvailable[3U]= false;
dssInitParams.socParams.rmInfo.isPortAvailable[0U]= false;
dssInitParams.socParams.rmInfo.isPortAvailable[1U]= false;
dssInitParams.socParams.rmInfo.isPortAvailable[2U]= false;
dssInitParams.socParams.rmInfo.isPortAvailable[3U]= false;
dssInitParams.socParams.dpInitParams.isavailable = false;
dssInitParams.socParams.dpInitParams.isHpdSupported = false;
dssInitParams.socParams.dsiInitParams.isavailable = false;
dssInitParams.socParams.rmInfo.isOverlayAvailable[0U]= true;
dssInitParams.socParams.rmInfo.isPortAvailable[0U]= true;
dssInitParams.socParams.dpInitParams.isavailable = true;
dssInitParams.socParams.dpInitParams.isHpdSupported = false;// DSS 在示例应用中将其设置为 false
retVal = dss_init (&dsInsInitParams);
================================================================================================
对于 DSS 颜色转换驱动程序设置:
DSS_initParamsInit (&appObj->initParams);
appObj->initParams.socParams.irqParams.dssCommonRegionId = CSL_dss_COMM_REG_ID_1;
appObj->initParams.socParams.irqParams.numValidIrq = DSS_EVT_MGR_INST_ID_MAX;
appObj->initParams.socParams.irqParams.irqNum[DSS_EVT_MGR_INST_ID_FUNC]= 53u;
appObj->initParams.socParams.irqParams.irqNum[DSS_EVT_MGR_INST_ID_SAFETY]= 55u;
appObj->initParams.socParams.irqParams.irqNum[DSS_EVT_MGR_INST_ID_SECURITY]= 57u;
appObj->initParams.socParams.dpInitParams.isHpdSupported = UFALSE;
appObj->initParams.socParams.dpInitParams.isavailable = false;//已添加
appObj->initParams.socParams.dsiInitParams.isavailable = false;//已添加
DSS_init (&appObj->initParams);
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
如果我们为显示或 DSS 颜色转换使用单独的设置、则它可以正常工作。
但是,如果我们尝试同时使用这两个设置来运行显示和颜色转换,那么 DSS_init ()将永远挂起。
如下所示:
DSS_initParamsInit (&dssInitParams);
MON_PRINT_STR (DSS_initParamsInit ##\r\n"之后的"[DSS]);
dssInitParams.socParams.rmInfo.isCommRegAvailable[0U]= true;
dssInitParams.socParams.rmInfo.isCommRegAvailable[1U]= false;
dssInitParams.socParams.rmInfo.isCommRegAvailable[2U]= false;
dssInitParams.socParams.rmInfo.isCommRegAvailable[3U]= false;
dssInitParams.socParams.rmInfo.isPipeAvailable[0U]= true;
dssInitParams.socParams.rmInfo.isPipeAvailable[1U]= true;
dssInitParams.socParams.rmInfo.isPipeAvailable[2U]= true;
dssInitParams.socParams.rmInfo.isPipeAvailable[3U]= false;
dssInitParams.socParams.rmInfo.isOverlayAvailable[0U]= false;
dssInitParams.socParams.rmInfo.isOverlayAvailable[1U]= false;
dssInitParams.socParams.rmInfo.isOverlayAvailable[2U]= false;
dssInitParams.socParams.rmInfo.isOverlayAvailable[3U]= false;
dssInitParams.socParams.rmInfo.isPortAvailable[0U]= false;
dssInitParams.socParams.rmInfo.isPortAvailable[1U]= false;
dssInitParams.socParams.rmInfo.isPortAvailable[2U]= false;
dssInitParams.socParams.rmInfo.isPortAvailable[3U]= false;
dssInitParams.socParams.dpInitParams.isavailable = false;
dssInitParams.socParams.dpInitParams.isHpdSupported = false;
dssInitParams.socParams.dsiInitParams.isavailable = false;
//////// 用于 DSS 颜色转换的参数////
dssInitParams.socParams.irqParams.dssCommonRegionId = CSL_dss_COMM_REG_ID_1;
dssInitParams.socParams.irqParams.numValidIrq = DSS_EVT_MGR_INST_ID_MAX;
dssInitParams.socParams.irqParams.irqNum[DSS_EVT_MGR_INST_ID_FUNC]= 53u;
dssInitParams.socParams.irqParams.irqNum[DSS_EVT_MGR_INST_ID_SAFETY]= 55u;
dssInitParams.socParams.irqParams.irqNum[DSS_EVT_MGR_INST_ID_SECURITY]= 57u;
dssInitParams.socParams.dpInitParams.isHpdSupported = UFALSE;
dssInitParams.socParams.dpInitParams.isavailable = false;//添加了
dssInitParams.socParams.dsiInitParams.isavailable = false;//添加了
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
dssInitParams.socParams.rmInfo.isOverlayAvailable[0U]= true;
dssInitParams.socParams.rmInfo.isPortAvailable[0U]= true;
dssInitParams.socParams.dpInitParams.isavailable = true;
dssInitParams.socParams.dpInitParams.isHpdSupported = false;// DSS 在示例应用中将其设置为 false
retVal = dss_init (&dsInsInitParams); //进程在此处挂起
请指导我们如何同时运行这两个配置
要求是我们需要并行运行2个视频流水线
1. 捕获(NV12)→DSS ->显示器(显示器)
2. 捕获(NV12) →OpenGL (NV12到 RGB565)-> DDR →DSS 颜色转换(RGB565到 NV12)-> DDR ->编码器..........
注意:不希望在 Display Monitor 上显示 DSS 颜色转换输出