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.

the capability of VP port

Hi, we use DM8168EVM, RDK4.0.
VP0 and VP1 all have portA and portB.
PortA and portB can individually capture one different channel data with 1080P30-8Bit.
It's that to say portA can capture one channel 1080P30-8Bit, and portB is also at the same time.
Does it support?
Thanks.

  • Yes that is correct. You can capture total of 4 ch 1080P30 8 bit simultaneously

  • Hi, Badri.
    I'm very glad to hear your confirmation. It's a good news. Thanks.
    But there is any restriction for the data format?
    what data format should I set for the four ports?

    I test all the videoCaptureMode formats , and it's failed.

  • In addition to capturemode, you will require to set interface, are you setting it correctly?

     

    Regards,

    Brijesh

  • Hi, Brijesh.

    I set the capture as following:
    for(vipInstId = 0; vipInstId < capturePrm->numVipInst; vipInstId++)
        {
           pCaptureInstPrm                     = &capturePrm->vipInst[vipInstId];
           pCaptureInstPrm->vipInstId          = SYSTEM_CAPTURE_INST_VIP0_PORTA + vipInstId;
           pCaptureInstPrm->videoCaptureMode   = SYSTEM_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_EMBEDDED_SYNC;
           pCaptureInstPrm->videoIfMode        = SYSTEM_CAPT_VIDEO_IF_MODE_8BIT;
           pCaptureInstPrm->inScanFormat       = SYSTEM_SF_PROGRESSIVE;
           pCaptureInstPrm->videoDecoderId     = 0;
           pCaptureInstPrm->inDataFormat       = SYSTEM_DF_YUV422P;
           pCaptureInstPrm->standard           = SYSTEM_STD_1080P_60;
           pCaptureInstPrm->numOutput          = 1;

           pCaptureOutPrm                      = &pCaptureInstPrm->outParams[0];
           pCaptureOutPrm->dataFormat          = SYSTEM_DF_YUV420SP_UV;
           pCaptureOutPrm->scEnable            = FALSE;
           pCaptureOutPrm->scOutWidth          = 0;
           pCaptureOutPrm->scOutHeight         = 0;
           pCaptureOutPrm->outQueId            = 0;
     }

  • Apply attached patch on HDVPSS driver, rebuild full dvr_rdk and share the console logs showing capture driver create failure. Pls test with pCaptureOutPrm->dataFormat  as SYSTEM_DF_YUV422I_YUYV when you collect the logs.

    Along with logs pls indicate numVipInst you are using in your app.

    1638.dvr_rdk_hdvpss_error_print.patch.txt
    diff --git a/packages/ti/psp/vps/common/src/remote_debug_server.c b/packages/ti/psp/vps/common/src/remote_debug_server.c
    index 7b0f3ba..6329d9e 100755
    --- a/packages/ti/psp/vps/common/src/remote_debug_server.c
    +++ b/packages/ti/psp/vps/common/src/remote_debug_server.c
    @@ -159,7 +159,7 @@ int Vps_printf(char * format, ... )
     
         Hwi_restore ( cookie );
     
    -    System_printf(buf);
    +    System_flush();
     
         return (retVal);
     }
    diff --git a/packages/ti/psp/vps/common/src/trace.c b/packages/ti/psp/vps/common/src/trace.c
    index e82ffb8..5b77743 100755
    --- a/packages/ti/psp/vps/common/src/trace.c
    +++ b/packages/ti/psp/vps/common/src/trace.c
    @@ -54,7 +54,7 @@ Int curTrace = 0;
      *  @param      The debug string.
      */
     Void
    -_GT_0trace (UInt32         mask,
    +_Vps_GT_0trace (UInt32         mask,
                 GT_TraceClass  classtype,
                 Char *         fileName,
                 UInt32         lineNo,
    @@ -97,7 +97,7 @@ _GT_0trace (UInt32         mask,
      *  @param      param The additional parameter which needs to be logged.
      */
     Void
    -_GT_1trace (UInt32         mask,
    +_Vps_GT_1trace (UInt32         mask,
                 GT_TraceClass  classtype,
                 Char *         fileName,
                 UInt32         lineNo,
    @@ -142,7 +142,7 @@ _GT_1trace (UInt32         mask,
      *  @param      param1 The second parameter which needs to be logged.
      */
     Void
    -_GT_2trace (UInt32         mask,
    +_Vps_GT_2trace (UInt32         mask,
                 GT_TraceClass  classtype,
                 Char *         fileName,
                 UInt32         lineNo,
    @@ -189,7 +189,7 @@ _GT_2trace (UInt32         mask,
      *  @param      param2 The third parameter which needs to be logged.
      */
     Void
    -_GT_3trace (UInt32         mask,
    +_Vps_GT_3trace (UInt32         mask,
                 GT_TraceClass  classtype,
                 Char *         fileName,
                 UInt32         lineNo,
    @@ -238,7 +238,7 @@ _GT_3trace (UInt32         mask,
      *  @param      param3 The fourth parameter which needs to be logged.
      */
     Void
    -_GT_4trace (UInt32         mask,
    +_Vps_GT_4trace (UInt32         mask,
                 GT_TraceClass  classtype,
                 Char *         fileName,
                 UInt32         lineNo,
    @@ -289,7 +289,7 @@ _GT_4trace (UInt32         mask,
      *  @param      param4 The fifth parameter which needs to be logged.
      */
     Void
    -_GT_5trace (UInt32         mask,
    +_Vps_GT_5trace (UInt32         mask,
                 GT_TraceClass  classtype,
                 Char *         fileName,
                 UInt32         lineNo,
    @@ -348,7 +348,7 @@ _GT_5trace (UInt32         mask,
      *  @param      msg         Any additional information which can be useful for
      *                          deciphering the error condition.
      */
    -Void _GT_setFailureReason (Int    mask,
    +Void _Vps_GT_setFailureReason (Int    mask,
                                Char * func,
                                Char * fileName,
                                UInt32 lineNo,
    diff --git a/packages/ti/psp/vps/common/trace.h b/packages/ti/psp/vps/common/trace.h
    index cab2dbc..b509904 100755
    --- a/packages/ti/psp/vps/common/trace.h
    +++ b/packages/ti/psp/vps/common/trace.h
    @@ -205,8 +205,9 @@ do {                                                                   \
         if ((x)) {                                                         \
         }                                                                  \
         if (!(y)) {                                                        \
    -        Osal_printf (" %d: Assertion @ Line: %d in %s: %s : failed !!!\n", \
    +        System_printf (" %d: Assertion @ Line: %d in %s: %s : failed !!!\n", \
                     Clock_getTicks(), __LINE__, __FILE__, #y);             \
    +        System_flush();                                                \
             while(1)                                                       \
             {                                                              \
                 Task_sleep(10);                                            \
    @@ -223,8 +224,9 @@ do {                                                                    \
         if ((x)) {                                                          \
         }                                                                   \
         if (!(y)) {                                                         \
    -        Osal_printf (" %d: Assertion @ Line: %d in %s: %s : failed !!!\n", \
    +        System_printf (" %d: Assertion @ Line: %d in %s: %s : failed !!!\n", \
                          Clock_getTicks(), __LINE__, __FILE__, #y);         \
    +        System_flush();                                                 \
         }                                                                   \
     } while (0)
     #endif  /* #if defined(VPS_USE_STD_ASSERT) */
    @@ -244,19 +246,19 @@ do {                                                                    \
     
     #if defined (VPS_TRACE_ENABLE)
     /* Function to report the vps failure and log the trace. */
    -Void _GT_setFailureReason (Int enableMask,
    +Void _Vps_GT_setFailureReason (Int enableMask,
                                Char * func,
                                Char * fileName,
                                UInt32 lineNo,
                                UInt32 status,
                                Char * msg);
     #define GT_setFailureReason(mask, classId, func, status, msg)           \
    -       _GT_setFailureReason(mask, func,                                 \
    +       _Vps_GT_setFailureReason(mask, func,                                 \
                                 __FILE__, __LINE__, status, (Char*) (msg"\n"))
     
     
     /* Log the trace with zero parameters and information string. */
    -Void _GT_0trace (UInt32         maskType,
    +Void _Vps_GT_0trace (UInt32         maskType,
                      GT_TraceClass  classtype,
                      Char *         fileName,
                      UInt32         lineNo,
    @@ -264,22 +266,22 @@ Void _GT_0trace (UInt32         maskType,
     #define GT_0trace(mask, classId, format) \
     do {                                                            \
         if (classId == GT_ENTER) {                                  \
    -       _GT_0trace(mask, classId, __FILE__, __LINE__,            \
    +       _Vps_GT_0trace(mask, classId, __FILE__, __LINE__,            \
                       "Entered "format"\n");                        \
         }                                                           \
         else if (classId == GT_LEAVE) {                             \
    -       _GT_0trace(mask, classId, __FILE__, __LINE__,            \
    +       _Vps_GT_0trace(mask, classId, __FILE__, __LINE__,            \
                       "Leaving "format"\n");                        \
         }                                                           \
         else {                                                      \
    -       _GT_0trace(mask, classId, __FILE__, __LINE__,            \
    +       _Vps_GT_0trace(mask, classId, __FILE__, __LINE__,            \
                       format);                                      \
         }                                                           \
     } while (0)
     
     
     /* Function to log the trace with one additional parameter */
    -Void _GT_1trace (UInt32         maskType,
    +Void _Vps_GT_1trace (UInt32         maskType,
                      GT_TraceClass  classtype,
                      Char *         fileName,
                      UInt32         lineNo,
    @@ -288,17 +290,17 @@ Void _GT_1trace (UInt32         maskType,
     #define GT_1trace(mask, classId, format, a)                     \
     do {                                                            \
         if (classId == GT_ENTER) {                                  \
    -       _GT_1trace(mask, classId, __FILE__, __LINE__,            \
    +       _Vps_GT_1trace(mask, classId, __FILE__, __LINE__,            \
                       "Entered "format"\n\t"#a"\t[0x%x]\n",         \
                       (UInt32) (a));                                \
         }                                                           \
         else if (classId == GT_LEAVE) {                             \
    -       _GT_1trace(mask, classId, __FILE__, __LINE__,            \
    +       _Vps_GT_1trace(mask, classId, __FILE__, __LINE__,            \
                       "Leaving "format"\n\t"#a"\t[0x%x]\n",         \
                       (UInt32) (a));                                \
         }                                                           \
         else {                                                      \
    -       _GT_1trace(mask, classId, __FILE__, __LINE__,            \
    +       _Vps_GT_1trace(mask, classId, __FILE__, __LINE__,            \
                       format,                                       \
                       (UInt32) (a));                                \
         }                                                           \
    @@ -306,7 +308,7 @@ do {                                                            \
     
     
     /* Function to log the trace with two additional parameters */
    -Void _GT_2trace (UInt32         maskType,
    +Void _Vps_GT_2trace (UInt32         maskType,
                      GT_TraceClass  classtype,
                      Char *         fileName,
                      UInt32         lineNo,
    @@ -316,21 +318,21 @@ Void _GT_2trace (UInt32         maskType,
     #define GT_2trace(mask, classId, format, a, b)                  \
     do {                                                            \
         if (classId == GT_ENTER) {                                  \
    -       _GT_2trace(mask, classId, __FILE__, __LINE__,            \
    +       _Vps_GT_2trace(mask, classId, __FILE__, __LINE__,            \
                       "Entered "format"\n\t"#a"\t[0x%x]\n"          \
                       "\t"#b"\t[0x%x]\n",                           \
                       (UInt32) (a),                                 \
                       (UInt32) (b));                                \
         }                                                           \
         else if (classId == GT_LEAVE) {                             \
    -       _GT_2trace(mask, classId, __FILE__, __LINE__,            \
    +       _Vps_GT_2trace(mask, classId, __FILE__, __LINE__,            \
                       "Leaving "format"\n\t"#a"\t[0x%x]\n"          \
                       "\t"#b"\t[0x%x]\n",                           \
                       (UInt32) (a),                                 \
                       (UInt32) (b));                                \
         }                                                           \
         else {                                                      \
    -       _GT_2trace(mask, classId, __FILE__, __LINE__,            \
    +       _Vps_GT_2trace(mask, classId, __FILE__, __LINE__,            \
                       format,                                       \
                       (UInt32) (a),                                 \
                       (UInt32) (b));                                \
    @@ -339,7 +341,7 @@ do {                                                            \
     
     
     /* Function to log the trace with three parameters. */
    -Void _GT_3trace (UInt32         maskType,
    +Void _Vps_GT_3trace (UInt32         maskType,
                      GT_TraceClass  classtype,
                      Char *         fileName,
                      UInt32         lineNo,
    @@ -350,7 +352,7 @@ Void _GT_3trace (UInt32         maskType,
     #define GT_3trace(mask, classId, format, a, b, c)               \
     do {                                                            \
         if (classId == GT_ENTER) {                                  \
    -       _GT_3trace(mask, classId, __FILE__, __LINE__,            \
    +       _Vps_GT_3trace(mask, classId, __FILE__, __LINE__,            \
                       "Entered "format"\n\t"#a"\t[0x%x]\n"          \
                       "\t"#b"\t[0x%x]\n"                            \
                       "\t"#c"\t[0x%x]\n",                           \
    @@ -359,7 +361,7 @@ do {                                                            \
                       (UInt32) (c));                                \
         }                                                           \
         else if (classId == GT_LEAVE) {                             \
    -       _GT_3trace(mask, classId, __FILE__, __LINE__,            \
    +       _Vps_GT_3trace(mask, classId, __FILE__, __LINE__,            \
                       "Leaving "format"\n\t"#a"\t[0x%x]\n"          \
                       "\t"#b"\t[0x%x]\n"                            \
                       "\t"#c"\t[0x%x]\n",                           \
    @@ -368,7 +370,7 @@ do {                                                            \
                       (UInt32) (c));                                \
         }                                                           \
         else {                                                      \
    -       _GT_3trace(mask, classId, __FILE__, __LINE__,            \
    +       _Vps_GT_3trace(mask, classId, __FILE__, __LINE__,            \
                       format,                                       \
                       (UInt32) (a),                                 \
                       (UInt32) (b),                                 \
    @@ -378,7 +380,7 @@ do {                                                            \
     
     
     /* Function to log the trace with four parameters. */
    -Void _GT_4trace (UInt32         maskType,
    +Void _Vps_GT_4trace (UInt32         maskType,
                      GT_TraceClass  classtype,
                      Char *         fileName,
                      UInt32         lineNo,
    @@ -390,7 +392,7 @@ Void _GT_4trace (UInt32         maskType,
     #define GT_4trace(mask, classId, format, a, b, c, d) \
     do {                                                            \
         if (classId == GT_ENTER) {                                  \
    -       _GT_4trace(mask, classId, __FILE__, __LINE__,            \
    +       _Vps_GT_4trace(mask, classId, __FILE__, __LINE__,            \
                       "Entered "format"\n\t"#a"\t[0x%x]\n"          \
                       "\t"#b"\t[0x%x]\n"                            \
                       "\t"#c"\t[0x%x]\n"                            \
    @@ -401,7 +403,7 @@ do {                                                            \
                       (UInt32) (d));                                \
         }                                                           \
         else if (classId == GT_LEAVE) {                             \
    -       _GT_4trace(mask, classId, __FILE__, __LINE__,            \
    +       _Vps_GT_4trace(mask, classId, __FILE__, __LINE__,            \
                       "Leaving "format"\n\t"#a"\t[0x%x]\n"          \
                       "\t"#b"\t[0x%x]\n"                            \
                       "\t"#c"\t[0x%x]\n"                            \
    @@ -412,7 +414,7 @@ do {                                                            \
                       (UInt32) (d));                                \
         }                                                           \
         else {                                                      \
    -       _GT_4trace(mask, classId, __FILE__, __LINE__,            \
    +       _Vps_GT_4trace(mask, classId, __FILE__, __LINE__,            \
                       format,                                       \
                       (UInt32) (a),                                 \
                       (UInt32) (b),                                 \
    @@ -423,7 +425,7 @@ do {                                                            \
     
     
     /* Function to log the trace with five parameters. */
    -Void _GT_5trace (UInt32         maskType,
    +Void _Vps_GT_5trace (UInt32         maskType,
                      GT_TraceClass  classtype,
                      Char *         fileName,
                      UInt32         lineNo,
    @@ -436,7 +438,7 @@ Void _GT_5trace (UInt32         maskType,
     #define GT_5trace(mask, classId, format, a, b, c, d, e) \
     do {                                                            \
         if (classId == GT_ENTER) {                                  \
    -       _GT_5trace(mask, classId, __FILE__, __LINE__,            \
    +       _Vps_GT_5trace(mask, classId, __FILE__, __LINE__,            \
                       "Entered "format"\n\t"#a"\t[0x%x]\n"          \
                       "\t"#b"\t[0x%x]\n"                            \
                       "\t"#c"\t[0x%x]\n"                            \
    @@ -449,7 +451,7 @@ do {                                                            \
                       (UInt32) (e));                                \
         }                                                           \
         else if (classId == GT_LEAVE) {                             \
    -       _GT_5trace(mask, classId, __FILE__, __LINE__,            \
    +       _Vps_GT_5trace(mask, classId, __FILE__, __LINE__,            \
                       "Leaving "format"\n\t"#a"\t[0x%x]\n"          \
                       "\t"#b"\t[0x%x]\n"                            \
                       "\t"#c"\t[0x%x]\n"                            \
    @@ -462,7 +464,7 @@ do {                                                            \
                       (UInt32) (e));                                \
         }                                                           \
         else {                                                      \
    -       _GT_5trace(mask, classId, __FILE__, __LINE__,            \
    +       _Vps_GT_5trace(mask, classId, __FILE__, __LINE__,            \
                       format,                                       \
                       (UInt32) (a),                                 \
                       (UInt32) (b),                                 \
    diff --git a/packages/ti/psp/vps/core/src/vpscore_vip.c b/packages/ti/psp/vps/core/src/vpscore_vip.c
    index e3af156..62b2a96 100755
    --- a/packages/ti/psp/vps/core/src/vpscore_vip.c
    +++ b/packages/ti/psp/vps/core/src/vpscore_vip.c
    @@ -17,6 +17,7 @@
     /* ========================================================================== */
     /*                             Include Files                                  */
     /* ========================================================================== */
    +#define VPS_CAPT_422SP_SUPPORT (TRUE)
     
     #include <ti/sysbios/BIOS.h>
     #include <ti/sysbios/knl/Semaphore.h>
    @@ -2875,6 +2876,7 @@ static Int32 vcoreVipAllocPath(Vcore_VipHandleObj *hObj,
                 case FVID2_DF_YUV422SP_UV:
                     hObj->resAllocParams.outParams[streamCnt].format
                         = VCORE_VIP_OUT_FORMAT_YUV422SP_UV;
    +                break;
     #endif
     
                 default:
    diff --git a/packages/ti/psp/vps/drivers/m2m/src/vpsdrv_m2mDeiReq.c b/packages/ti/psp/vps/drivers/m2m/src/vpsdrv_m2mDeiReq.c
    index 3f2663e..4723248 100755
    --- a/packages/ti/psp/vps/drivers/m2m/src/vpsdrv_m2mDeiReq.c
    +++ b/packages/ti/psp/vps/drivers/m2m/src/vpsdrv_m2mDeiReq.c
    @@ -943,9 +943,11 @@ static Int32 vpsMdrvDeiUpdateChDesc(VpsMdrv_DeiHandleObj *hObj,
                     /* In bypass mode FID should be 0 */
                     if ((1u == fid) && (FALSE == chObj->deiCoreCtxInfo.isDeinterlacing))
                     {
    +                    #if 0
                         GT_0trace(VpsMdrvDeiTrace, GT_ERR,
                             "FID should be 0 for DEI bypass mode!!\n");
                         /* Override and continue processing */
    +                    #endif
                         fid = 0u;
                     }
     
    diff --git a/packages/ti/psp/vps/hal/src/vpshal_sc.c b/packages/ti/psp/vps/hal/src/vpshal_sc.c
    index ed01aaf..3498f63 100755
    --- a/packages/ti/psp/vps/hal/src/vpshal_sc.c
    +++ b/packages/ti/psp/vps/hal/src/vpshal_sc.c
    @@ -2573,9 +2573,9 @@ static inline Void scCalVertPolyphaseParams(const VpsHal_ScConfig *config,
             {
                 if (VPS_SF_INTERLACED == config->outFrameMode)
                 {
    -                    *rowAccInc = (((config->cropHeight << 2u) - 1u) <<
    +                    *rowAccInc = (((config->cropHeight * 2u) - 1u) <<
                                        SC_ROW_ACC_INC_SHIFT) /
    -                                   ((config->tarHeight << 2u) - 1u);
    +                                   ((config->tarHeight * 2u) - 1u);
                         *offsetB = (((config->cropHeight - 1u) <<
                                         (SC_ROW_ACC_INC_SHIFT - 1u)) /
                                         (config->tarHeight - 1u)) - 1u;
    

  • the numVipInst is 4.

    1220.session_VP.log
    Vdis_setDefaultConfig >> ----------- Device: 0 
    
    CHANNEL | WINDOW | ENABLE(1)/DISABLE(0)
          0 |      0 |      1
          1 |    255 |      1
    Vdis_setDefaultConfig >> ----------- Device: 1 
    
    CHANNEL | WINDOW | ENABLE(1)/DISABLE(0)
          0 |    255 |      1
          1 |      0 |      1
    Vdis_setDefaultConfig >> ----------- Device: 2 
    
    CHANNEL | WINDOW | ENABLE(1)/DISABLE(0)
          0 |    255 |      1
          1 |      0 |      1
    Vdis_setDefaultConfig >> ----------- Device: 3 
    
    CHANNEL | WINDOW | ENABLE(1)/DISABLE(0)
          0 |    255 |      1
          1 |      0 |      1
     0: SYSTEM: System Common Init in progress !!!
     0: SYSTEM: IPC init in progress !!!
     18: SYSTEM: CPU [DSP] syslink proc ID is [0] !!!
     18: SYSTEM: CPU [VIDEO-M3] syslink proc ID is [1] !!!
     18: SYSTEM: CPU [VPSS-M3] syslink proc ID is [2] !!!
     18: SYSTEM: CPU [HOST] syslink proc ID is [3] !!!
     18: SYSTEM: Creating MsgQ Heap [IPC_MSGQ_MSG_HEAP_3] ...
     21: SYSTEM: Creating MsgQ [HOST_MSGQ] ...
     22: SYSTEM: Creating MsgQ [HOST_ACK_MSGQ] ...
     23: SYSTEM: Opening MsgQ [DSP_MSGQ] ...
     24: SYSTEM: Opening MsgQ [VIDEO-M3_MSGQ] ...
     24: SYSTEM: Opening MsgQ [VPSS-M3_MSGQ] ...
     25: SYSTEM: Notify register to [DSP] line 0, event 15 ... 
     26: SYSTEM: Notify register to [VIDEO-M3] line 0, event 15 ... 
     26: SYSTEM: Notify register to [VPSS-M3] line 0, event 15 ... 
     27: SYSTEM: IPC init DONE !!!
     28: SYSTEM: Creating ListMP [HOST_IPC_OUT_24] in region 0 ...
     30: SYSTEM: Creating ListMP [HOST_IPC_IN_24] in region 0 ...
     31: SYSTEM: ListElem Shared Addr = 0x429cb880
     32: SYSTEM: Creating ListMP [HOST_IPC_OUT_25] in region 0 ...
     34: SYSTEM: Creating ListMP [HOST_IPC_IN_25] in region 0 ...
     35: SYSTEM: ListElem Shared Addr = 0x42a00a80
     37: SYSTEM: Creating ListMP [HOST_IPC_OUT_19] in region 0 ...
     39: SYSTEM: Creating ListMP [HOST_IPC_IN_19] in region 0 ...
     40: SYSTEM: ListElem Shared Addr = 0x42a35c80
     42: SYSTEM: Creating ListMP [HOST_IPC_OUT_20] in region 0 ...
     43: SYSTEM: Creating ListMP [HOST_IPC_IN_20] in region 0 ...
     45: SYSTEM: ListElem Shared Addr = 0x42a78f80
     46: SYSTEM: Creating ListMP [HOST_IPC_OUT_21] in region 0 ...
     48: SYSTEM: Creating ListMP [HOST_IPC_IN_21] in region 0 ...
     49: SYSTEM: ListElem Shared Addr = 0x42abc280
     66: SYSTEM: System Common Init Done !!!
     
     [m3vpss ]  43648: CAPTURE: Create in progress !!!
     [m3vpss ] [links_m3vpss/capture/captureLink_drv.c:808]Capture Inst 0: inWidth=1920, inHeight=1080, maxWidth=1920, maxHeight=1080
     [m3vpss ] [links_m3vpss/capture/captureLink_drv.c:998]DVI Capture Inst 0 output width=1920, height=1080, startx=0, starty=0,pitch=3840, maxOut={7,7}
     [m3vpss ]  43679: CAPTURE: VIP0 PortA capture mode is [ 8-bit, Non-mux Embedded Sync] !!! 
     [m3vpss ] [links_m3vpss/capture/captureLink_drv.c:808]Capture Inst 1: inWidth=1920, inHeight=1080, maxWidth=1920, maxHeight=1080
     [m3vpss ] [links_m3vpss/capture/captureLink_drv.c:998]DVI Capture Inst 1 output width=1920, height=1080, startx=0, starty=0,pitch=3840, maxOut={7,7}
     [m3vpss ]  43853: CAPTURE: VIP0 PortB capture mode is [ 8-bit, Non-mux Embedded Sync] !!! 
     [m3vpss ] [links_m3vpss/capture/captureLink_drv.c:808]Capture Inst 2: inWidth=1920, inHeight=1080, maxWidth=1920, maxHeight=1080
     [m3vpss ] [links_m3vpss/capture/captureLink_drv.c:998]DVI Capture Inst 2 output width=1920, height=1080, startx=0, starty=0,pitch=3840, maxOut={7,7}
     [m3vpss ]  44027: CAPTURE: VIP1 PortA capture mode is [ 8-bit, Non-mux Embedded Sync] !!! 
     [m3vpss ] [links_m3vpss/capture/captureLink_drv.c:808]Capture Inst 3: inWidth=1920, inHeight=1080, maxWidth=1920, maxHeight=1080
     [m3vpss ] [links_m3vpss/capture/captureLink_drv.c:998]DVI Capture Inst 3 output width=1920, height=1080, startx=0, starty=0,pitch=3840, maxOut={7,7}
     [m3vpss ]  44201: CAPTURE: VIP1 PortB capture mode is [ 8-bit, Non-mux Embedded Sync] !!! 
     [m3vpss ]  44491: CAPTURE: 0: 0x9f6e3480, 1920 x 1080, 003f4800 B --> Extra Frames 
     [m3vpss ]  44491: CAPTURE: 1: 0x9fad7c80, 1920 x 1080, 003f4800 B --> Extra Frames 
     [m3vpss ]  44491: CAPTURE: 2: 0x9fecc480, 1920 x 1080, 003f4800 B --> Extra Frames 
     [m3vpss ]  44491: CAPTURE: 3: 0xa02c0c80, 1920 x 1080, 003f4800 B --> Extra Frames 
     [m3vpss ]  44491: CAPTURE: 4: 0xa06b5480, 1920 x 1080, 003f4800 B --> Extra Frames 
     [m3vpss ]  44491: CAPTURE: 5: 0xa0aa9c80, 1920 x 1080, 003f4800 B --> Extra Frames 
     [m3vpss ]  UTILS: DMA: Allocated CH (TCC) = 58 (58)
     [m3vpss ]  UTILS: DMA: 0 of 4: Allocated PaRAM = 58 (0x49004740)
     [m3vpss ]  UTILS: DMA: 1 of 4: Allocated PaRAM = 64 (0x49004800)
     [m3vpss ]  UTILS: DMA: 2 of 4: Allocated PaRAM = 65 (0x49004820)
     [m3vpss ]  UTILS: DMA: 3 of 4: Allocated PaRAM = 66 (0x49004840)
     [m3vpss ] 
     [m3vpss ] CAPTURE::HEAPID:0    USED:904
     [m3vpss ] CAPTURE::HEAPID:4    USED:178790400
     [m3vpss ]  44492: CAPTURE: Create Done !!!
     [m3vpss ]  44492: NSF: Create in progress !!!
     [c6xdsp ]  43139: IPC_FRAMES_IN   : Create in progress !!!
     [m3vpss ] 
     [c6xdsp ]  43139: SYSTEM: Opening ListMP [VPSS-M3_IPC_OUT_19] ...
     [m3vpss ] NSF::HEAPID:0        USED:128
     [c6xdsp ]  43139: SYSTEM: Opening ListMP [VPSS-M3_IPC_IN_19] ...
     [m3vpss ] NSF::HEAPID:1        USED:9152
     [c6xdsp ]  43140: SYSTEM: Opening MsgQ [VPSS-M3_MSGQ] ...
     [m3vpss ] NSF::HEAPID:4        USED:37601280
     [c6xdsp ] 
     [m3vpss ]  44670: NSF: Create Done !!!
     [c6xdsp ] IPC_FRAMES_IN:HEAPID:0       USED:304
     [m3vpss ]  44671: IPC_FRAMES_OUT   : Create in progress !!!
     [c6xdsp ]  43141: IPC_FRAMES_IN   : Create Done !!!
     [m3vpss ] 
     [c6xdsp ]  43141: ALG : Create in progress !!!
     [m3vpss ]  44672: IPC_FRAMES_OUT   : Create Done !!!
     [c6xdsp ] 
     [m3video]  44686: IPC_IN_M3   : Create in progress !!!
     [m3vpss ]  44685: IPC_OUT_M3   : Create in progress !!!
     [c6xdsp ] ALGLINK:HEAPID:0     USED:2616
     [m3video]  44686: SYSTEM: Opening ListMP [VPSS-M3_IPC_OUT_0] ...
     [m3vpss ]  44685: IPC_OUT_M3   : Create Done !!!
     [c6xdsp ] ALGLINK:HEAPID:1     USED:31512
     [m3video]  44686: SYSTEM: Opening ListMP [VPSS-M3_IPC_IN_0] ...
     [c6xdsp ]  43149: ALG : Create Done !!!
     [m3video]  44688: IPC_IN_M3   : Create Done !!!
     [m3video]  44689: ENCODE: Create in progress ... !!!
     [m3video]  44806: ENCODE: Creating CH0 of 1920 x 1080, pitch = (1920, 1920) [PROGRESSIVE] [NON-TILED  ], bitrate = 2000 Kbps ... 
     [m3video] 
     [m3video] ENCLINK_H264:HEAPID:0        USED:13808
     [m3video] ENCLINK_H264:HEAPID:3        USED:7176192
     [m3video]  44841: ENCODE: Creating CH1 of 1920 x 1080, pitch = (1920, 1920) [PROGRESSIVE] [NON-TILED  ], bitrate = 8000 Kbps ... 
     [m3video] 
     [m3video] ENCLINK_H264:HEAPID:0        USED:11912
     [m3video] ENCLINK_H264:HEAPID:3        USED:7176192
     [m3video]  44876: ENCODE: Creating CH2 of 1920 x 1080, pitch = (1920, 1920) [PROGRESSIVE] [NON-TILED  ], bitrate = 2000 Kbps ... 
     [m3video] 
     [m3video] ENCLINK_H264:HEAPID:0        USED:11912
     [m3video] ENCLINK_H264:HEAPID:3        USED:7176192
     [m3video]  44910: ENCODE: Creating CH3 of 1920 x 1080, pitch = (1920, 1920) [PROGRESSIVE] [NON-TILED  ], bitrate = 2000 Kbps ... 
    2013/01/25 04:51:02.593898 INFO  [ipcBitsInLink_tsk.c:357]  
     [host] IpcBitsInLink_tskMain:Entered2013/01/25 04:51:02.594059 INFO  [ipcBitsInLink_tsk.c:90]  
     [host]  1379: IPC_BITS_IN   : Create in progress !!!
    2013/01/25 04:51:02.594115 INFO  [ipcBitsInLink_tsk.c:95]  
     [host]  1379: IPC_BITS_IN   : ListMPOpen start !!!
    2013/01/25 04:51:02.594162 INFO  [system_ipc_listMP.c:109]  
     [host]  1379: SYSTEM: Opening ListMP [VIDEO-M3_IPC_OUT_24] ...
     1380: SYSTEM: Opening ListMP [VIDEO-M3_IPC_IN_24] ...
    2013/01/25 04:51:02.597253 INFO  [ipcBitsInLink_tsk.c:104]  
     [host]  1382: IPC_BITS_IN   : ListMPOpen done !!!
     [m3video] 
     [m3video] ENCLINK_H264:HEAPID:0        USED:11912
     [m3video] ENCLINK_H264:HEAPID:3        USED:7176192
     [m3video]  44945: ENCODE: All CH Create ... DONE !!!
     [m3video] 
     [m3video] ENCLINK:HEAPID:0     USED:49664
     [m3video] ENCLINK:HEAPID:2     USED:24883200
     [m3video] ENCLINK:HEAPID:3     USED:28704768
     [m3video]  44946: ENCODE: Create ... DONE !!!
     [m3video]  44946: IPC_BITS_OUT   : Create in progress !!!
     [m3video] 
    2013/01/25 04:51:02.598652 INFO  [ipcBitsInLink_tsk.c:127]  
     [host]  1383: IPC_BITS_IN   : System_linkGetInfo done !!!
    2013/01/25 04:51:02.598899 INFO  [ipcBitsInLink_tsk.c:137]  
     [host]  1383: IPC_BITS_IN   : Create Done !!!
     [m3video]  44948: IPC_BITS_OUT   : Create Done !!!
    2013/01/25 04:51:02.599968 INFO  [ipcBitsInLink_tsk.c:357]  
     [host] IpcBitsInLink_tskMain:Entered [m3vpss ]  44956: CAPTURE: Start in progress !!!
     [m3vpss ]  45055: CAPTURE: Enabled Time Stamping !!!
     [m3vpss ]  45063: CAPTURE: Enabled Time Stamping !!!
     [m3vpss ]  45071: CAPTURE: Enabled Time Stamping !!!
     [m3vpss ]  45079: CAPTURE: Enabled Time Stamping !!!
     [m3vpss ]  45087: CAPTURE: Start Done !!!
    
    
    
    

  • The log doesn't show any issue. What is the problem ?  Also looks like you have not applied the HDVPSS patch .If there is a failure apply the patch and collect the logs.

  • there has no failure. But I write all the encode channel to file.

    There should be 4 channel data, but in fact there have 2 channel data. I guess there are vpo_portA and vp1_portA.

  • Then it is not configuration issue. It is issue with your board connection. Share logs of Vsys_printDetailedStatistics. 2 ports would not be receiving any frames from capture source,

  • Hi,

     

    Your frame size is varying a lot, also it is capturing only on two ports..

    Please check decoder settings and connection between decoder and vip.

     

    Regards,

    Brijesh

  • Hi, Brijesh.

    If I want to capture 4 channel 1080P30 with the fouth port, can I need to change the capture driver?

  • Our clk connection is as following:

  • Hi,

     

    No change required in the driver, driver supports capture from all four ports.

    Plese note that when you are using 8bit embedded sync mode, sync codes should be in bt656 style, ie 0xff 0x00 0x00 0xab.

    VIP ports does not support BT1120 style of sync codes over 8bit.

     

    Regards,

    Brijesh

  • Hi, Brijesh.

    When test, the capture setting is as above.

    And the front decoder timing is as following:

    And the portA can capture the data, so it's sure the sync code is OK. the tow sync code is same.

  • Hi, Brijesh.

    the BT656 can transform 1080P30?

  • the register value is as following:

     0x48105500: 00000002
     0x48105504: 0000A100
     0x48105508: 00000000
     0x4810550c: 0000A100
     0x48105510: 00000000
     0x48105514: 003FFC03
     0x48105518: 00000000
     0x4810551c: 00000000
     0x48105520: FFFFFFFC
     0x48105524: FFFFFFFC

  • I found a problem.

    In 8bit mode, the register value indicates the pin is also data.

     
     0x48140830: 00000001
     0x48140834: 00000001
     0x48140838: 00000001

    These values should be 2 for vin0_fld1,vin0_vsync1, vin0_hsync1.

    I change the value to 2 in Vps_platformTI816xSetPinMux, but it is not in effect.

    what's the problem?