CPU is DM368, software is ApproIPNC SDK 4.x
We are looking at our imaging settings, input is BT.1120 YUV16 from an external LVDS chip, format is 1080p30.
Reading the registers we see that IPIPEIF->PPLN (Pixels Per Line) is getting set to 1936 pixels, but we can't see anywhere in the code that adds the 16 pixels, as the settings all come out to 1920 pixels.
I have chased the chain of settings through the code and can't see any place where the value is modified:
Register at 0x01C71208 = 0x00000790; // = 1936 // Set by: hndl->regs->PPLN = data->pixelsPerLine; // Expands to: gDRV_ipipeObj.ipipeifDdrInConfig.clkConfig.pixelsPerLine; // from gDRV_ipipeObj.ipipeifClk.pixelsPerLine = gDRV_ipipeObj.ipipeInFrameConfig.inWidth; // from gDRV_ipipeObj.ipipeInFrameConfig.inWidth = gDRV_ipipeObj.imgsModeInfo.validWidth; // from gDRV_imgsObj.curModeConfig.validWidth = gDRV_imgsObj.curModeConfig.sensorDataWidth; // from pModeCfg->sensorDataWidth = pFrame->W; // Where pFrame = &gDRV_imgsObj.curFrameTime pModeCfg->sensorDataHeight = pFrame->H/2; // And pModeCfg = &gDRV_imgsObj.curModeConfig; // from pFrame->W = 2*OSA_ceil(dataW/2, 2); // from (dataW) int DRV_imgsCalcFrameTime(Uint32 fps, Uint32 dataW, Uint32 dataH, Bool binEnable) // from av_capture/framework/drv/usermod/src/imgs_TVP7002/drv_imgs_TVP7002.c DRV_imgsCalcFrameTime(config->fps, width, height, config->binEnable); // from (width) drv.c#157 DRV_imgGetWidthHeight(config->sensorMode, &width, &height); // From case DRV_IMGS_SENSOR_MODE_1920x1080: *width = 1920; *height = 1080;
What have I missed?