Hello,
We are trying to generate video with nullSrc and feed into Dei before encode. If scanFormat of nullSrc is progressive, the corresponding Dei's enableDeiForceBypass is set to TRUE.
[ nullSrc 2CH ] -> [ select ] -+-> [ Dei0 1CH ] -> + -> [ merge 2CH ] -> [ NSF ] -> [ IPC VPSS ] -> [ IPC Video ] -> [ Encode ] ...
+-> [ Dei1 1CH ] -> +
We notice that if channel 0 is progressive and channel 1 is lnterlaced, the output fps of channel 0 is around 16 (30 is expected). It is normal (fps 30) in other cases.
Is there any performance issue when two Dei links works on progressive and lnterlaced modes? Any idea to avoid the problem.
Thank you very much.
The experimental result as below:
ch0: progressive ch1: interlaced => fps: 16, 30 FAILED
ch0: progressive ch1: progressive => fps: 30, 30
ch0: interlaced ch1: interlaced => fps: 30, 30
ch0: interlaced ch1: progressive => fps: 30, 30
// Source code
deiId0 = SYSTEM_LINK_ID_DEI_HQ_0 ;
deiId1 = SYSTEM_LINK_ID_DEI_HQ_1 ;
// nullSrc
nullSrcPrm.outQueParams.nextLink = selectId ;
nullSrcPrm.timerPeriod = 16 ; // fps: 60
nullSrcPrm.inputInfo.numCh = 2 ;
for( i = 0; i < nullSrcPrm.inputInfo.numCh; i++ )
{
System_LinkChInfo *pChInfo;
pChInfo = &nullSrcPrm.inputInfo.chInfo[i];
pChInfo->dataFormat = SYSTEM_DF_YUV422I_YUYV ;
pChInfo->memType = SYSTEM_MT_NONTILEDMEM;
pChInfo->startX = 0;
pChInfo->startY = 0;
pChInfo->width = 640 ;
pChInfo->height = 480 ;
pChInfo->pitch[0] = 2 * SystemUtils_align(pChInfo->width+pChInfo->startX, SYSTEM_BUFFER_ALIGNMENT);
pChInfo->pitch[1] = pChInfo->pitch[0];
pChInfo->pitch[2] = 0;
if( i == 0 )
{
pChInfo->scanFormat = SYSTEM_SF_PROGRESSIVE ; // if set ch0:interlaced, ch1:progressive => FPS is correct.
} else
{
pChInfo->scanFormat = SYSTEM_SF_INTERLACED ;
}
} // for
// Dei0
DeiLink_CreateParams_Init( &deiPrm0 );
deiPrm0.inQueParams.prevLinkId = selectId ;
deiPrm0.inQueParams.prevLinkQueId = 0 ;
deiPrm0.outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC][0].scaleMode = DEI_SCALE_MODE_ABSOLUTE ;
deiPrm0.outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC][0].absoluteResolution.outWidth = 640 ; // the same as nullSrc's
deiPrm0.outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC][0].absoluteResolution.outHeight = 480 ; // the same as nullSrc's
for (chId=1; chId < DEI_LINK_MAX_CH; chId++)
deiPrm0.outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC][chId] = deiPrm0.outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC][0];
deiPrm0.enableOut[DEI_LINK_OUT_QUE_DEI_SC] = TRUE;
deiPrm0.outQueParams[DEI_LINK_OUT_QUE_DEI_SC].nextLink = mergeId ;
deiPrm0.inputFrameRate[DEI_LINK_OUT_QUE_DEI_SC] = 60 ;
deiPrm0.outputFrameRate[DEI_LINK_OUT_QUE_DEI_SC] = 30 ;
deiPrm0.comprEnable = FALSE;
deiPrm0.setVipScYuv422Format = FALSE;
deiPrm0.enableDeiForceBypass = TRUE ; // match to nullSrc's scanFormat setting
// Dei1
DeiLink_CreateParams_Init( &deiPrm1 );
deiPrm1.inQueParams.prevLinkId = selectId ;
deiPrm1.inQueParams.prevLinkQueId = 1 ;
deiPrm1.outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC][0].scaleMode = DEI_SCALE_MODE_ABSOLUTE ;
deiPrm1.outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC][0].absoluteResolution.outWidth = 640 ; // the same as nullSrc's
deiPrm1.outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC][0].absoluteResolution.outHeight = 480 ; // the same as nullSrc's
for (chId=1; chId < DEI_LINK_MAX_CH; chId++)
deiPrm1.outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC][chId] = deiPrm1.outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC][0];
deiPrm1.enableOut[DEI_LINK_OUT_QUE_DEI_SC] = TRUE;
deiPrm1.outQueParams[DEI_LINK_OUT_QUE_DEI_SC].nextLink = mergeId ;
deiPrm1.inputFrameRate[DEI_LINK_OUT_QUE_DEI_SC] = 60 ;
deiPrm1.outputFrameRate[DEI_LINK_OUT_QUE_DEI_SC] = 30 ;
deiPrm1.comprEnable = FALSE;
deiPrm1.setVipScYuv422Format = FALSE;
deiPrm1.enableDeiForceBypass = FALSE ; // match to nullSrc's scanFormat setting
// log
[m3vpss ] *** [NSF1] NSF Statistics ***
[m3vpss ]
[m3vpss ] Elasped Time : 34 secs
[m3vpss ] Total Fields Processed : 7716
[m3vpss ] Total Fields FPS : 225 FPS
[m3vpss ]
[m3vpss ]
[m3vpss ] CH | In Recv In Reject In Process Out User Out Out
[m3vpss ] Num | FPS FPS FPS FPS Skip FPS Skip FPS
[m3vpss ] ------------------------------------------------
[m3vpss ] 0 | 16 0 16 16 0 0
[m3vpss ] 1 | 31 0 31 31 0 0
[m3vpss ]
[m3vpss ] *** [DEI0 ] DEI Statistics ***
[m3vpss ]
[m3vpss ] Elasped Time : 34 secs
[m3vpss ] Total Fields Processed : 3333
[m3vpss ] Total Fields FPS : 569 FPS
[m3vpss ]
[m3vpss ]
[m3vpss ] CH | In Recv In Reject In Process Out[0] Out[1] Out[2] Out[3] Out[4] Skip Out[0] Skip Out[1] Skip Out[2] S
[m3vpss ] Num | FPS FPS FPS FPS FPS FPS FPS FPS FPS FPS FPS
[m3vpss ] ------------------------------------------------------------------------------------------------------------
[m3vpss ] 0 | 62 29 33 16 0 0 0 0 0 33 0 7
[m3vpss ]
[m3vpss ]
[m3vpss ] *** [DEI1 ] DEI Statistics ***
[m3vpss ]
[m3vpss ] Elasped Time : 34 secs
[m3vpss ] Total Fields Processed : 6288
[m3vpss ] Total Fields FPS : 408 FPS
[m3vpss ]
[m3vpss ]
[m3vpss ] CH | In Recv In Reject In Process Out[0] Out[1] Out[2] Out[3] Out[4] Skip Out[0] Skip Out[1] Skip Out[2] S
[m3vpss ] Num | FPS FPS FPS FPS FPS FPS FPS FPS FPS FPS FPS
[m3vpss ] ------------------------------------------------------------------------------------------------------------
[m3vpss ] 0 | 62 0 62 31 0 0 0 0 0 62 0 0
[m3vpss ]
[m3vpss ]
[m3vpss ] 51936081: DISPLAY: HDDAC(BP0) : 59 fps, Latency (Min / Max) = ( 69 / 86 ), Callback Interval (Min / Max) =
[m3vpss ] 51936082: DISPLAY DRV: HDDAC(BP0) : Q:[3060] Display:[6080], Repeat:[3021], DQ:[3058]
[m3vpss ] 51936082: DISPLAY: UNDERFLOW COUNT: HDMI(BP0) 2049, HDDAC(BP0) 2049, DVO2(BP1) 2049, SDDAC(SEC1) 4170
[m3vpss ] 51936082: SYSTEM : FREE SPACE : System Heap = 66456 B, Mbx = 10239 msgs)
[m3vpss ] 51936082: SYSTEM : FREE SPACE : SR0 Heap = 8589312 B (8 MB)
[m3vpss ] 51936082: SYSTEM : FREE SPACE : Frame Buffer = 131012992 B (124 MB)
[m3vpss ] 51936082: SYSTEM : FREE SPACE : Bitstream Buffer = 200152448 B (190 MB)
[m3vpss ] 51936083: SYSTEM : FREE SPACE : Tiler Buffer = 224 B (0 MB) - TILER OFF
[m3vpss ] 51936083: DISPLAY: DVO2(BP1) : 59 fps, Latency (Min / Max) = ( 69 / 85 ), Callback Interval (Min / Max) =
[m3vpss ] 51936083: DISPLAY DRV: DVO2(BP1) : Q:[3060] Display:[6077], Repeat:[3018], DQ:[3058]
[m3video]
[m3video] *** ENCODE Statistics ***
[m3video]
[m3video] Elasped Time : 34 secs
[m3video]
[m3video]
[m3video] CH | In Recv In Skip In User Out Latency
[m3video] Num | FPS FPS Skip FPS FPS Min / Max
[m3video] --------------------------------------------
[m3video] 0 | 16 0 0 16 255 / 51938032
[m3video] 1 | 31 0 0 31 255 / 51938064