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.

Cann't display resolution of 2048*1536

Dear All,

I am working on dm8168, with the DVRRDK3.5

The step is below:

1. Iinitialized 16 decode channels of 1080P at decLink create time,then delete all channels with dec_deleteChn().

2. Create 3 decode channels of 1080P(the display window ID of created channels are 1,2,3),The decoder and display run sucessfully.

3.Delete the created channels(1,2,3), then created other 3 decode channels of 2048*1536(the display window ID of created channels are 4,5,6), Only one or two of them can display!

4.Delete the created channels(1,2,3), then created other 3 decode channels of 2048*1536(the display window ID of created channels are 1,2,3), The decoder and display run sucessfully.

PS: the is 1->2->3 and 1->2->4

My question is below:

1.Comparison of step 3 and step 4, simply change the form ID, why would result in no display?

  • What is your swms layout ? Are you setting correct window to channel map in swms to display channels 4,5,6 ? Share the console logs and logs of Vsys_printDetailedStatistics when you see the issue

  • Badri, Thank you very much!

     

    What is your swms layout ?

    swms layout is 4/6/9/16

     Are you setting correct window to channel map in swms to display channels 4,5,6 ?

    Yes!

    Share the console logs and logs of Vsys_printDetailedStatistics when you see the issue

    the console logs maybe useful are below:

     [m3video] 122455:DECLINK::links_m3video/iva_dec/decLink_h264.c:[383]::INTERNAL ERROR:-1

     [m3video] ALGPROCESS FAILED:STATUS  [m3video] outArgs->viddec3OutArgs.extendedError for channel 2  Error: 0x401

     [m3video] 122807:DECLINK::links_m3video/iva_dec/decLink_h264.c:[383]::INTERNAL ERROR:-1

     [m3video] ALGPROCESS FAILED:STATUS  [m3video] outArgs->viddec3OutArgs.extendedError for channel 1 Error: 0x401

  • Log shows you are not setting correct channel map .Losg shows windows 3,4,5 don't have any channel mapped.

    0 |   0 |    0,    0 |  1920 x   1080 |  2048 /  2048 | NON-TILED   |    0,  136 |  1280 x    448 |  3840 /      0 | NON-TILED   |      OFF |    0 |  420SP |    ON | 
        1 |   1 |    0,    0 |  1920 x    540 |  4096 /  4096 | NON-TILED   | 1360,    0 |   480 x    360 |  3840 /      0 | NON-TILED   |       ON |    0 |  420SP |    ON | 
        2 |   2 |    0,    0 |  1920 x    540 |  4096 /  4096 | NON-TILED   | 1280,  428 |   640 x    224 |  3840 /      0 | NON-TILED   |       ON |    0 |  420SP |    ON | 
        3 | 255 |    0,    0 |   352 x    264 |   704 /   704 | NON-TILED   |    0,  720 |   640 x    360 |  3840 /      0 | NON-TILED   |       ON |    0 |  422I  |    ON | 
        4 | 255 |    0,    0 |   352 x    264 |   704 /   704 | NON-TILED   |  640,  720 |   640 x    360 |  3840 /      0 | NON-TILED   |       ON |    1 |  422I  |    ON | 
        5 | 255 |    0,    0 |   352 x    264 |   704 /   704 | NON-TILED   | 1280,  720 |   640 x    360 |  3840 /      0 | NON-TILED   |       ON |    1 |  422I  |    ON |   

  • So sorry, I didn't explain clearly.

    The logs of action steps are below:

    1. Iinitialized 16 decode channels of 1080P at decLink create time,then delete all channels with dec_deleteChn().

    2. Create 3 decode channels of 2048*1536(the display window ID of created channels are 4,5,6),The decoder and display run sucessfully.

    3. Delete the created channels(4,5,6), then created other 3 decode channels of 2048*1536(the display window ID of created channels are 1,2,3), Only one can display!

    Form 4,5,6, no map is correct.

     

    Error message looks like this:

     [m3video] 122455:DECLINK::links_m3video/iva_dec/decLink_h264.c:[383]::INTERNAL ERROR:-1

     [m3video] ALGPROCESS FAILED:STATUS  [m3video] outArgs->viddec3OutArgs.extendedError for channel 2  Error: 0x401

     [m3video] 122807:DECLINK::links_m3video/iva_dec/decLink_h264.c:[383]::INTERNAL ERROR:-1

     [m3video] ALGPROCESS FAILED:STATUS  [m3video] outArgs->viddec3OutArgs.extendedError for channel 1 Error: 0x401

  • hi Badri

    The below is delete channel information of step 2:

    Close Channel: 0

    IPCBITS Close Channel: 0

     [m3video] DEC : Delete CH0 Got the Dummy Object queued !!!
     [m3video]  30370: DECODE: CH0: Decoder flush needed (0)!!!
     [m3video]  30370: DECODE: CH0: Decoder Flushing !!!
     [m3video] DEC : Delete CH0, Dummy Object queued !!!
     
     
     Close Channel: 1
     
      [m3video] DEC : Delete CH1 Got the Dummy Object queued !!!
     [m3video]  30372: DECODE: CH1: Decoder flush needed (0)!!!
     [m3video]  30372: DECODE: CH1: Decoder Flushing !!!
     [m3video] DEC : Delete CH1, Dummy Object queued !!! 
     
     IPCBITS Close Channel: 1

    The below is delete channel information of step 3:

     Close Channel: 0
     [m3video] DEC : Delete CH0, Dummy Object queued !!!
     [m3video] DEC : Delete CH0 Got the Dummy Object queued !!!
     [m3video]  164499: DECODE: CH0: Decoder flush needed (0)!!!
     [m3video]  164499: DECODE: CH0: Decoder Flushing !!!
     [m3video]  164500: DECODE: CH0: Decoder Flushing !!!

    IPCBITS Close Channel: 0

    Close Channel: 1
     [m3video] DEC : Delete CH1, Dummy Object queued !!!
     IPCBITS Close Channel: 1
      [m3video] DEC : Delete CH1 Got the Dummy Object queued !!!
     [m3video]  164594: DECODE: CH1: Decoder flush needed (0)!!!
     [m3video]  164594: DECODE: CH1: Decoder Flushing !!!
     [m3video]  164595: DECODE: CH1: Decoder Flushing !!!
     
     
     Close Channel: 2

    IPCBITS Close Channel: 2

     [m3video] DEC : Delete CH2 Got the Dummy Object queued !!!
     [m3video]  164649: DECODE: CH2: Decoder flush needed (0)!!!
     [m3video]  164650: DECODE: CH2: Decoder Flushing !!!
     [m3video]  164650: DECODE: CH2: Decoder Flushing !!!
     [m3video] DEC : Delete CH2, Dummy Object queued !!!

     

  • The number of MpSclr channels are limited to 4. You can try changing

    /dvr_rdk/mcfw/interfaces/link_api/mpSclrLink.h

    #define MP_SCLR_LINK_MAX_CH                     (4)

    to

     

    #define MP_SCLR_LINK_MAX_CH                     (16)

  • Badri Narayanan said:

    The number of MpSclr channels are limited to 4. You can try changing

    /dvr_rdk/mcfw/interfaces/link_api/mpSclrLink.h

    #define MP_SCLR_LINK_MAX_CH                     (4)

    to

     

    #define MP_SCLR_LINK_MAX_CH                     (16)

    Badri,Thank you!  

    I used another way to circumvent this problem.
     
    I tried your method and it won't work, only preview 4. Any other values need to change?
  • The change should have worked. Make sure you rebuild full dvr_rdk using make dvr_rdk and use rebuilt firmware.

    Also add debug print in following fule and share the log after making MAXCH 16

    /dvr_rdk/mcfw/src_bios6/links_m3vpss/mpSclr/mpSclrLink_drv.c

     

    mpSclrLinkMapChanAllocMem

     

            status = FVID2_EFAIL;
            *mappedCh = -1;
            Vps_printf("MPSCLR:No free channels.Total Ch:%d",i);

  • Badri Narayanan said:
    The change should have worked. Make sure you rebuild full dvr_rdk using make dvr_rdk and use rebuilt firmware.

    Also add debug print in following fule and share the log after making MAXCH 16

    /dvr_rdk/mcfw/src_bios6/links_m3vpss/mpSclr/mpSclrLink_drv.c

     

    mpSclrLinkMapChanAllocMem

     

            status = FVID2_EFAIL;
            *mappedCh = -1;
            Vps_printf("MPSCLR:No free channels.Total Ch:%d",i);

    hi,Badri

    Modifications may be valid, but only 4 channels can preview. If increase the preview,System becomes slow mouse slow.(All resolutions greater than or equal to 2k).

    the debug information:

     [m3vpss ] AVSYNC:AVSYNC_LINK_CMD_SET_FIRST_VIDPTS successConfig:DisplayID[0],ChID[2],FirstPTS[0]
     [m3vpss ] AVSYNC:AVSYNC_LINK_CMD_SET_FIRST_VIDPTS successConfig:DisplayID[1],ChID[2],FirstPTS[0]
     [m3vpss ]  89233: MP_SCLR: - Input Resolution Changed, updating...
     [m3vpss ]  89233: MP_SCLR: ERROR could not update channel info!!!
     [m3vpss ]  89233: Assertion @ Line: 770 in links_m3vpss/mpSclr/mpSclrLink_drv.c: status == FVID2_SOK : failed !!!

  • What is the input resolution for the MpSclr channels ? Are all channels same resolution or are they different resolutions.

  • they are different resolutions.

    2018*1536 or 2560*896

    Thanks!

  • The issue doesnt seem to be realted to increasing number of MpSclr channels.Can you print the resolution for the channel where MpSclr updateIpFrameCfg fails.

    Modify

    /dvr_rdk/mcfw/src_bios6/links_m3vpss/mpSclr/mpSclrLink_drv.c

     

    static Int32 updateIpFrameCfg(MpSclrLink_Obj *pObj, UInt32 chId)
    {
        UInt32 decCnt, reTry;
        Vps_M2mScChParams *pDrvChPrm;
        Int32 status;
    
        pDrvChPrm = &pObj->drvChArgs[chId];
        Vps_printf("MPSCLR:ChID[%d]Res[%d]",
    chId,pDrvChPrm->subFrameParams->numPixelsPerLine);

    Also share the .h264 bitstream for the failing stream

  • hi Badri, thanks for your answer.

    Now, I have RDK upgrade to 4.1, But the result is still the same.

    Tests are as follows:

    1)Preview 5 channels: When decoded for the first time, 5 channels can preview.

    the resolution:1920*1080,2560*896,2560*896,2048*1536,2048*1536

    2)delete all channels, and then turn them back on. error message is below:

    [m3vpss ]  312471: MP_SCLR: - Input Resolution Changed, updating...
     [m3vpss ]  MP_SCLR: chID[4]Res[0]
     [m3vpss ]  MP_SCLR: chID[4]Res[-16]reTry[0]
     [m3vpss ]  MP_SCLR: chID[4]Res[-32]reTry[1]
     [m3vpss ]  MP_SCLR: chID[4]Res[-48]reTry[2]
     [m3vpss ]  MP_SCLR: chID[4]Res[-64]reTry[3]
     [m3vpss ]  312472: MP_SCLR: ERROR could not update channel info!!!
     [m3vpss ]  312472: Assertion @ Line: 773 in links_m3vpss/mpSclr/mpSclrLink_drv.c: status == FVID2_SOK : failed !!!

  • The ChID[4] is getting wrong value for numPixelsPerLine.

    Can you add debug print in function

    mpSclrLinkDrvUpdateIpResChange

     

    pDrvChArgs->subFrameParams->numPixelsPerLine

    pDrvChArgs->inFmt.width

    pDrvChArgs->outFmt.width

    before call to updateIpFrameCfg

  • the debug is below:

     [m3vpss ]  498296: MP_SCLR: - Input Resolution Changed, updating...
     [m3vpss ] MP_SCLR: numPixelsPerLine[0],inFmt.width[2048],outFmt.width[0]
     [m3vpss ]  MP_SCLR: chID[4]Res[0]
     [m3vpss ]  MP_SCLR: chID[4]Res[-16]reTry[0]
     [m3vpss ]  MP_SCLR: chID[4]Res[-32]reTry[1]
     [m3vpss ]  MP_SCLR: chID[4]Res[-48]reTry[2]
     [m3vpss ]  MP_SCLR: chID[4]Res[-64]reTry[3]
     [m3vpss ]  498297: MP_SCLR: ERROR could not update channel info!!!
     [m3vpss ]  498297: Assertion @ Line: 774 in links_m3vpss/mpSclr/mpSclrLink_drv.c: status == FVID2_SOK : failed !!!

  • Confirm you are setting MpSclrLink_CreateParams.numCh to correct value for your usecase. If you require 8 MpSclr channels this should be set to 8

  • Badri:

    Thank you for your answer, under your guidance, the problem is resolved.