你好:
我们有个项目需要用DM8127的HDMI输出480p-60, 但是DM8127 IPNC默认支持 720p-60, 1080p-60,1080p-30, 1080i-60, 目前我改了很多地方,视频还是无法显示出来.
开发包是DM8127 MT9J003- RDK 3.8. 我现在在Rules.make 配置的CAPTURE_DISPLAY_MODE_ON := YES ,选了 capture+display usecase 去编译的。
下面是我修改的地方: (1-5 是 Source\ipnc_rdk 目录下的修改; 6 是 Source\ti_tools\ipnc_psp_arago\kernel\drivers\video\ti81xx 目录下)
1. \home\dm8127\Source\ipnc_rdk\ipnc_mcfw\demos\mcfw_api_demos\multich_usecase 目录下ti_mcfw_ipnc_main.c 文件中
system("insmod ./kermod/vpss.ko mode=hdmi:1080p-60 sbufaddr=0xbfb00000"); 改成了 system("insmod ./kermod/vpss.ko mode=hdmi:480p-60 sbufaddr=0xbfb00000");
Void App_runDemo(Void) 函数中
vdisParams.deviceParams[VDIS_DEV_HDMI].resolution = VSYS_STD_480P; // VSYS_STD_1080P_60;
/* Override the context here as needed */
vdisParams.deviceParams[VDIS_DEV_HDMI].resolution = VSYS_STD_480P; // VSYS_STD_1080P_60;
2. \home\dm8127\Source\ipnc_rdk\ipnc_mcfw\mcfw\src_linux\mcfw_api\ti_vdis.c 中Void Vdis_params_init(VDIS_PARAMS_S * pContext)
里面的
pContext->deviceParams[i].resolution = VSYS_STD_480P; // VSYS_STD_1080P_60
width = 720; // 1920
height = 480; // 1080
3. \home\dm8127\Source\ipnc_rdk\ipnc_mcfw\mcfw\src_linux\mcfw_api\usecases\multich_capturedisplay.c 中
/* First stream */
pCameraOutPrm = &pCameraInstPrm->outParams[0];
pCameraOutPrm->dataFormat = SYSTEM_DF_YUV420SP_UV;
pCameraOutPrm->scEnable = FALSE;
pCameraOutPrm->scOutWidth = 720; //1920;
pCameraOutPrm->scOutHeight = 480; //1080;
pCameraOutPrm->outQueId = 0;
4. \home\dm8127\Source\ipnc_rdk\ipnc_mcfw\mcfw\src_bios6\links_m3vpss\system\system_dctrl_modeInfo.c 中
Int32 System_getVencMode(Int32 resolution) 函数里 添加
case VSYS_STD_480P: //steven 2016-1-21 添加480P 模式HDMI显示
vencMode = FVID2_STD_480P;
break;
5. \home\dm8127\Source\ipnc_rdk\ipnc_mcfw\mcfw\src_bios6\links_m3vpss\system\system_dctrl.c 中
Int32 System_getClk(UInt32 displayRes) 函数里 添加
case VSYS_STD_480P: //steven 2016-1-21 添加480P 模式HDMI显示
clkValue = 27000u;
break;
6. \home\dm8127\Source\ti_tools\ipnc_psp_arago\kernel\drivers\video\ti81xx\ti81xxhdmi\hdmi.c ,
我发现这个hmid.c 的 struct video_timings all_timings_direct[VIDEO_TIMINGS_NB] = { ×××××} 里面的 timing 和 vpss 目录里的 sysfs.h文件的
static const struct dc_vencmode_info vmode_info[] = { ×××} 很多不一致, 因此 我把 480p-60 standard 二边改统一
OK, 现在上面这6个主要地方改完, #make -s lsp; #make -s ipncapp 后, 再次上电发现 显示器上仍然没视频, 之前 用1080p-60, 720p-60 模式的时候, 显示上 还有 HDMI, 1080p-60 显示一下。
请问是否还有什么地方没有改呢? vpps fb 部分我也看了源码,没有发现要改啥啊
谢谢