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.

dm8168 分辨率



你好,我先在做dm8168拼接,是这样的我采集四路视频同时创建以NULLSRC,我将拼接视频放在NULLSRC中并显示流程如下

Capture (YUV422I) 16CH D1 60fps
|
|

NULL SRC (YUV420SP)
|
| |
+------------+ |
| |
| |
MERGE
|
|
STITCH
|
|
|
|
|
SW Mosaic
SC5 YUV422I)
|
OSD
GRPX0 |
| |
On-Chip HDMI
1080p60

,部分代码如下

for(i=0; i<nullSrcPrm.inputInfo.numCh; i++)
{
System_LinkChInfo *pChInfo;

pChInfo = &nullSrcPrm.inputInfo.chInfo[i];

pChInfo->dataFormat = SYSTEM_DF_YUV420SP_UV;//SYSTEM_DF_YUV420P;//SYSTEM_DF_YUV422P;
pChInfo->memType = SYSTEM_MT_NONTILEDMEM;
pChInfo->startX = 0;//48;
pChInfo->startY = 0;//32;
pChInfo->width = 1920;//stitchSrcWide;
pChInfo->height = 1080;//stitchSrcHeight;
pChInfo->pitch[0] = SystemUtils_align(pChInfo->width+pChInfo->startX, SYSTEM_BUFFER_ALIGNMENT);
pChInfo->pitch[1] = pChInfo->pitch[0];
pChInfo->pitch[2] = 0;
pChInfo->scanFormat = SYSTEM_SF_PROGRESSIVE;
}

当我存放两幅图像时正常,

但是我拼接的图像分辨率大于1920 ,大约是3680*720,所以修改如下时

for(i=0; i<nullSrcPrm.inputInfo.numCh; i++)
{
System_LinkChInfo *pChInfo;

pChInfo = &nullSrcPrm.inputInfo.chInfo[i];

pChInfo->dataFormat = SYSTEM_DF_YUV420SP_UV;//SYSTEM_DF_YUV420P;//SYSTEM_DF_YUV422P;
pChInfo->memType = SYSTEM_MT_NONTILEDMEM;
pChInfo->startX = 0;//48;
pChInfo->startY = 0;//32;
pChInfo->width = 3920;//stitchSrcWide;
pChInfo->height = 1080;//stitchSrcHeight;
pChInfo->pitch[0] = SystemUtils_align(pChInfo->width+pChInfo->startX, SYSTEM_BUFFER_ALIGNMENT);
pChInfo->pitch[1] = pChInfo->pitch[0];
pChInfo->pitch[2] = 0;
pChInfo->scanFormat = SYSTEM_SF_PROGRESSIVE; 
}

当代码初始化失败,这时还没有开始拼接,请NULLSRC创建空视频分辨率有限制吗,还是其他原因导致?

谢谢

  • 你好,

    SWMS输入不支持大于1080p的图像。你可以先使用MPscalar把大于1080p的图像缩小到1080p后在输入SWMS.
  • 你好

         我添加了mpscalar,视频出现色差问题。 代码如下

    nullSrcPrm.outQueParams.nextLink = mergeId;
    nullSrcPrm.timerPeriod = 1;
    nullSrcPrm.inputInfo.numCh = 1;//16

    for(i=0; i<nullSrcPrm.inputInfo.numCh; i++)
    {
    System_LinkChInfo *pChInfo;

    pChInfo = &nullSrcPrm.inputInfo.chInfo[i];

    pChInfo->dataFormat = SYSTEM_DF_YUV420SP_UV;//SYSTEM_DF_YUV420P;//SYSTEM_DF_YUV422P;
    pChInfo->memType = SYSTEM_MT_NONTILEDMEM;
    pChInfo->startX = 0;//48;
    pChInfo->startY = 0;//32;
    pChInfo->width = 3840;//1920;//stitchSrcWide;
    pChInfo->height = 1080*3/4;//stitchSrcHeight;
    pChInfo->pitch[0] = SystemUtils_align(pChInfo->width+pChInfo->startX, SYSTEM_BUFFER_ALIGNMENT);
    pChInfo->pitch[1] = pChInfo->pitch[0];
    pChInfo->pitch[2] = 0;
    pChInfo->scanFormat = SYSTEM_SF_PROGRESSIVE;
    }

    .........

    mpSclrPrm.inQueParams.prevLinkId = gVcapModuleContext.ipcFramesOutVpssId[1];//gMultiCh_VdecVdisObj.mergeId;
    mpSclrPrm.pathId = MP_SCLR_LINK_SC5;//P_SCLR_LINK_SEC1_SC4_VIP1;
    mpSclrPrm.numCh = 1;
    mpSclrPrm.enableLineSkip = FALSE;

    mpSclrPrm.outQueParams.nextLink = gVdisModuleContext.swMsId[0];;

    具体流程如下,我获取4个摄像头视频,同时申请一个3840*1080空视频,将拼接视频放入mpscalar,我发现控视频经过MPscalar处理后变绿色,无论我是否将拼接视频放入,下面是拼接视频放入后照片

  • 上图是没执行拼接照片,请问为什么大分辨率视频经过mpscalar处理后出现绿色

  • 你好,

    DVR RDK 4.01如果解码大于1080p的video,显示的时候就会使用mpscalar。同样大小的video解码显示也有问题么?

    如果是,你可以尝试调整 slice size,看是否有帮助?

    另,新问题建议新起一个帖子。谢谢!