Advertisement
Guest User

Untitled

a guest
Feb 21st, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.33 KB | None | 0 0
  1. /* NullSrc Link */
  2. void demo_nullsrc(UInt32 linkId, NullSrcLink_CreateParams *nullsrcPrmPtr, UInt32 nextLink, UInt32 dataFormat)
  3. {
  4.     nullsrcPrmPtr->outQueParams.nextLink = nextLink;
  5.  
  6.     nullsrcPrmPtr->tilerEnable = FALSE;
  7.     nullsrcPrmPtr->timerPeriod = 40*4;
  8.     nullsrcPrmPtr->inputInfo.numCh = 2;
  9.  
  10.     int i;
  11.     for(i=0;i<nullsrcPrmPtr->inputInfo.numCh;i++){
  12.  
  13.         nullsrcPrmPtr->inputInfo.chInfo[i].bufType = SYSTEM_BUF_TYPE_VIDFRAME;
  14.         nullsrcPrmPtr->inputInfo.chInfo[i].memType = SYSTEM_MT_NONTILEDMEM;
  15.         nullsrcPrmPtr->inputInfo.chInfo[i].codingformat = 0;
  16.         nullsrcPrmPtr->inputInfo.chInfo[i].dataFormat = dataFormat;//SYSTEM_DF_YUV420SP_UV;//SYSTEM_DF_YUV422I_YUYV;
  17.         nullsrcPrmPtr->inputInfo.chInfo[i].scanFormat = i==0 ? SYSTEM_SF_PROGRESSIVE : SYSTEM_SF_INTERLACED; //SYSTEM_SF_INTERLACED
  18.         nullsrcPrmPtr->inputInfo.chInfo[i].width = i==0 ? 640 : 720;
  19.         nullsrcPrmPtr->inputInfo.chInfo[i].height = 480;
  20.         nullsrcPrmPtr->inputInfo.chInfo[i].startX = 0;
  21.         nullsrcPrmPtr->inputInfo.chInfo[i].startY = 0;
  22.         nullsrcPrmPtr->inputInfo.chInfo[i].pitch[0] = 2 * SystemUtils_align(nullsrcPrmPtr->inputInfo.chInfo[i].width+nullsrcPrmPtr->inputInfo.chInfo[i].startX, SYSTEM_BUFFER_ALIGNMENT);
  23.         nullsrcPrmPtr->inputInfo.chInfo[i].pitch[1] = nullsrcPrmPtr->inputInfo.chInfo[i].pitch[0];
  24.         nullsrcPrmPtr->inputInfo.chInfo[i].pitch[2] = 0;
  25.     }
  26.  
  27.     OSA_printf("---->  NullSrcLink[0x%08x] \n", linkId);
  28.     OSA_waitMsecs(100);
  29.     System_linkCreate(linkId, nullsrcPrmPtr, sizeof(NullSrcLink_CreateParams));
  30. }
  31.  
  32. /* Dei Module */
  33. void demo_dei(UInt32 linkId, DeiLink_CreateParams *deiPrmPtr, UInt32 outQueId, UInt32 prevLink, UInt32 queId, UInt32 nextLink)
  34. {
  35.     /* dei link parameters*/
  36.     DeiLink_CreateParams_Init(deiPrmPtr);
  37.  
  38.     deiPrmPtr->inQueParams.prevLinkId = prevLink;
  39.     deiPrmPtr->inQueParams.prevLinkQueId  = queId;
  40.  
  41.     /* Set Output Scaling at DEI based on ratio */
  42.     deiPrmPtr->outScaleFactor[outQueId][0].scaleMode = DEI_SCALE_MODE_RATIO;
  43.     deiPrmPtr->outScaleFactor[outQueId][0].ratio.widthRatio.numerator = 1;
  44.     deiPrmPtr->outScaleFactor[outQueId][0].ratio.widthRatio.denominator = 1;
  45.     deiPrmPtr->outScaleFactor[outQueId][0].ratio.heightRatio.numerator = 1;
  46.     deiPrmPtr->outScaleFactor[outQueId][0].ratio.heightRatio.denominator = 1;
  47.  
  48.     /*deiPrmPtr->outScaleFactor[outQueId][0].scaleMode = DEI_SCALE_MODE_ABSOLUTE;
  49.     deiPrmPtr->outScaleFactor[outQueId][0].absoluteResolution.outWidth = 640 ; // the same as nullSrc's;
  50.     deiPrmPtr->outScaleFactor[outQueId][0].absoluteResolution.outHeight = 480;*/
  51.  
  52.     int i;
  53.     for (i=1; i < DEI_LINK_MAX_CH; i++)
  54.         deiPrmPtr->outScaleFactor[outQueId][i] = deiPrmPtr->outScaleFactor[outQueId][0];
  55.  
  56.  
  57.     deiPrmPtr->enableOut[DEI_LINK_OUT_QUE_DEI_SC]                = FALSE;
  58.     deiPrmPtr->enableOut[DEI_LINK_OUT_QUE_VIP_SC]                = FALSE;
  59.     deiPrmPtr->enableOut[DEI_LINK_OUT_QUE_VIP_SC_SECONDARY_OUT]  = FALSE;
  60.     deiPrmPtr->enableOut[DEI_LINK_OUT_QUE_DEI_SC_SECONDARY_OUT]  = FALSE;
  61.     deiPrmPtr->enableOut[DEI_LINK_OUT_QUE_DEI_SC_TERTIARY_OUT]   = FALSE;
  62.  
  63.     deiPrmPtr->enableOut[outQueId]                               = TRUE;
  64.     deiPrmPtr->outQueParams[outQueId].nextLink                   = nextLink;
  65.  
  66.     //deiPrmPtr->enableForceInterlacedInput         = TRUE;
  67.     deiPrmPtr->enableDeiForceBypass                 = FALSE;
  68.     deiPrmPtr->interlacedBypassMode                 = FALSE;
  69.     //deiPrmPtr->tilerEnable[outQueId]              = TRUE;
  70.     //deiPrmPtr->comprEnable                        = FALSE;
  71.     deiPrmPtr->setVipScYuv422Format                 = FALSE;
  72.     deiPrmPtr->inputDeiFrameRate                    = 60u;
  73.     deiPrmPtr->outputDeiFrameRate                   = 30u;
  74.  
  75.  
  76.     OSA_printf("---->  DeiLink[0x%08x] \n", linkId);
  77.     OSA_waitMsecs(100);
  78.     System_linkCreate(linkId, deiPrmPtr, sizeof(DeiLink_CreateParams));
  79. }
  80.  
  81.  DeiLink_CreateParams           deiPrm;
  82.  
  83.         NullSrcLink_CreateParams        nullSrcPrm[NULLSRC_IDX_MAX];
  84.  
  85.  gVcapModuleContext.deiId[0]     = SYSTEM_LINK_ID_DEI_HQ_0;
  86.  gVcapModuleContext.deiId[1]     = SYSTEM_LINK_ID_DEI_HQ_1;
  87.  gVcapModuleContext.deiId[2]     = SYSTEM_LINK_ID_DEI_0;
  88.  gVcapModuleContext.deiId[3]     = SYSTEM_LINK_ID_DEI_1;
  89.  gVcapModuleContext.nullSrcId   = SYSTEM_VPSS_LINK_ID_NULL_SRC_0;
  90.  
  91. demo_nullsrc(gVcapModuleContext.nullSrcId, &nullSrcPrm[NULLSRC_IDX_CH0], gVcapModuleContext.deiId[0], SYSTEM_DF_YUV422I_YUYV);
  92.  
  93.         demo_dei(gVcapModuleContext.deiId[0], &deiPrm, DEI_LINK_OUT_QUE_DEI_SC, gVcapModuleContext.nullSrcId, 0, mergeId[MERGE_IDX_CH0]);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement