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.

DVR-RDK 3.0 GUI dvrmain do not support 1080P decode & display

Hi, 

      I am using Udworks DVR RDK 3.0, and the PCB board is also comes from Udworks. And I want to develop Network Video Recorder (NVR) which records rtsp streams from IPNCs.

     There are two major apps within the DVR RDK 3.0, i.e. dvr_rdk_demo_mcfw_api.out, the other one is dvrmain.

     The dvr_rdk_demo_mcfw_api.out decodes & display 1080P streams well, however, the dvrmain just decode & displayD1 data, it seems not support 1080P stream.

      We stored the 1080P stream into the basket file in dvrmain app., when we try to playback the video, following messages are output:

     Note: (1) it seems that the dvrmain app. defined a fixed video resolution (D1), could you tell me how can I change dvrmain default resolution to 1080P.

               (2) We are sure the 1080P stream was stored into the basket file, since we read the frame data out using the basket functions, and did the data comparison.

[m3vpss ]  436141: SWMS1    : Loading Vertical Co-effs (UPSCALE)x ...

 [m3vpss ]  436141: SWMS1    : Loading Horizontal Co-effs (UPSCALE)x ...

 [m3vpss ]  436141: SWMS    : Co-effs Loading ... DONE !!!

 [m3vpss ]

 [m3vpss ]  *** [SWMS1] Mosaic Parameters ***

 [m3vpss ]

 [m3vpss ]  Output FPS: 30

 [m3vpss ]

 [m3vpss ]  Win | Ch  | Input      | Input          | Input         | Input       | Output     |  Output         | Output        | Output      | Low Cost | SWMS | Data  | Blank |

 [m3vpss ]  Num | Num | Start X, Y | Width x Height | Pitch Y / C   | Memory Type | Start X, Y |  Width x Height | Pitch Y / C   | Memory Type | ON / OFF | Inst | Format| Frame |

 [m3vpss ]  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------

 [m3vpss ]    0 | 255 |    0,    0 |   352 x    264 |   704 /   704 | NON-TILED   |    0,    0 |   960 x    540 |  3840 /      0 | NON-TILED   |      OFF |    0 |  422I  |   OFF |

 [m3vpss ]    1 | 255 |    0,    0 |   352 x    264 |   704 /   704 | NON-TILED   |  960,    0 |   960 x    540 |  3840 /      0 | NON-TILED   |      OFF |    0 |  422I  |   OFF |

 [m3vpss ]    2 | 255 |    0,    0 |   352 x    264 |   704 /   704 | NON-TILED   |    0,  540 |   960 x    540 |  3840 /      0 | NON-TILED   |      OFF |    0 |  422I  |   OFF |

 [m3vpss ]    3 | 255 |    0,    0 |   352 x    264 |   704 /   704 | NON-TILED   |  960,  540 |   960 x    540 |  3840 /      0 | NON-TILED   |      OFF |    0 |  422I  |   OFF |

 [m3vpss ]

[BKTMD] - close basket decoding. CH:0, BID:5

app_pb: player state ... (2) !!!!!!!!!!!

app_pb: app_playback_stop ... done rv(0)

plughw:0,1: underrun !!!

 

 [host] MCFW_IPCBITS: Callback function:WRITER_videoEncCbFxn

 [host] MCFW_IPCBITS:WRITER_videoProcessFullBufs:INFO: periodic print..

 [host] APP_WRITER:WRITER_videoRecvFxn:INFO: periodic print..app_pb: app_playback_start() ... start_time:1364807185

app_pb: app_playback_start() ... state PB_CHANGE

[BKTMD] - set multi playback target disk path :/media/sda1

[BKTMD] - close basket decoding. CH:0, BID:0

[BKTMD] - BKTMD_Open(67):Enter 1364807185

[BKTMD] - found start rec time. [09:06], CH:00, BID:5, idx_fpos:185468

[BKTMD] - Read Resolution first CH:00, 704 X 576, withAudio:1, capMode:0

[BKTMD] - open basket decoding -- CH:0, w:704, h:576, BID:5, B-POS:315502094, I-POS:185468, curiframe:4209, totIFrame:4433

app_pb: player state ... (1) !!!!!!!!!!!

app_pb: app_playback_start()... done rv(0)

app_pb: app_playback_ctrl ... cmd(31) value(1)

app_pb: player state ... (1) !!!!!!!!!!!

 [m3video] 442800:DECLINK::links_m3video/iva_dec/decLink_h264.c:[376]::INTERNAL ERROR:-1

 [m3video] ALGPROCESS FAILED:STATUS

 [m3video] outArgs->viddec3OutArgs.extendedError for channel 0 Error: 0x1421

 [m3video] Sequence called number 429

 [m3video] 442816:DECLINK::links_m3video/iva_dec/decLink_h264.c:[376]::INTERNAL ERROR:-1

 [m3video] ALGPROCESS FAILED:STATUS

 [m3video] outArgs->viddec3OutArgs.extendedError for channel 0 Error: 0x1421

 [m3video] Sequence called number 430

 [m3video] 442895:DECLINK::links_m3video/iva_dec/decLink_h264.c:[376]::INTERNAL ERROR:-1

 [m3video] ALGPROCESS FAILED:STATUS

 [m3video] outArgs->viddec3OutArgs.extendedError for channel 0 Error: 0x208001

 [m3video] Sequence called number 431

 [m3video]  442895: DECODE: CH0: Decoder flush needed (2129921)!!!

 [m3video]  442895: DECODE: CH0: Decoder Flushing !!!

 [m3video] 442912:DECLINK::links_m3video/iva_dec/decLink_h264.c:[376]::INTERNAL ERROR:-1

 [m3video] ALGPROCESS FAILED:STATUS

 [m3video] outArgs->viddec3OutArgs.extendedError for channel 0 Error: 0x1421

 [m3video] Sequence called number 432

 [m3video] 442944:DECLINK::links_m3video/iva_dec/decLink_h264.c:[376]::INTERNAL ERROR:-1

 [m3video] ALGPROCESS FAILED:STATUS

 [m3video] outArgs->viddec3OutArgs.extendedError for channel 0 Error: 0x1421

 [m3video] Sequence called number 433

 

 

  • Please check with UD works on latest release for NVR. Intermediate drops that they have given to TI for validation seem to have fixed this.

  • There is no NVR product release from UDworks on 816x. It looks like you are modifying the dvrapp code. DVRAPP uses a DVR uecase and not a NVR usecase.The dvrapp by default creates the decode channels for D1 resolution. To be able to support decoding of HD resolution you have to modify the usecase.

    The usecase file is

    /dvr_rdk/mcfw/src_linux/mcfw_api/usecases/ti816x/multich_progressive_vcap_venc_vdec_vdis.c

    To configure for HD resolution set:

       gVdecModuleContext.vdecConfig.forceUseDecChannelParams = TRUE;  //Override default resolution

        if(gVdecModuleContext.vdecConfig.forceUseDecChannelParams)
        {
            /* use channel info provided by user instead of from encoder */
            System_LinkChInfo *pChInfo;

            ipcBitsOutHostPrm.inQueInfo.numCh = gVdecModuleContext.vdecConfig.numChn;

            for(chId=0; chId<ipcBitsOutHostPrm.inQueInfo.numCh; chId++)
            {
                pChInfo = &ipcBitsOutHostPrm.inQueInfo.chInfo[chId];

                pChInfo->bufType        = 0; // NOT USED
                pChInfo->codingformat   = 0; // NOT USED
                pChInfo->dataFormat     = 0; // NOT USED
                pChInfo->memType        = 0; // NOT USED
                pChInfo->startX         = 0; // NOT USED
                pChInfo->startY         = 0; // NOT USED
                pChInfo->width          = 1920;
                pChInfo->height         = 1080;
                pChInfo->pitch[0]       = 0; // NOT USED
                pChInfo->pitch[1]       = 0; // NOT USED
                pChInfo->pitch[2]       = 0; // NOT USED
                pChInfo->scanFormat     = SYSTEM_SF_PROGRESSIVE;
            }
        }

     You will not be able to create decoder channels in tiled space if you create HD resolution. So disable tiler by modifying the decoder create params as

    decPrm.chCreateParams[i].tilerEnable = TRUE;

     

    Note that this will cause a significant performance impact.If you are only going to do playback of upto 61080P channels then you will be able to get realtime performance.

  • hi badri,

    just double confirm, is your description correct?

    So disable tiler by modifying the decoder create params as

    decPrm.chCreateParams[i].tilerEnable = TRUE;

  • Sorry its a mistake .To disableTile set

     

    decPrm.chCreateParams[i].tilerEnable = FALSE;

     

  • Hi all ,

          Thanks for your help, I can playback the 1080P h264 files stored in basket, according to the instrucions from Badri.

          However, the dvrapp still can not decode & display the rtsp1080P h264 in live mode (i.e. the display containing Qt GUI elements still do not support 1080P h264).

          By my analysis, it seems that the current live mode of dvrapp uses a different usecase (something like Capture + Display). But now, I want the live mode captures rtsp 1080P h264 from network (such as via live555), then decode the h264 stream, and then display it on the live mode.

         Could you give some advices on how to make the live mode of dvrapp to do this:  live555 rtsp h264 1080P  ---->  decode 1080P  ---->  display 1080P on Qt GUI main interface.

         BTW: for now,  the data path "live555 rtsp h264 1080P  ---->  decode 1080P  ---->  display 1080P " is Ok for me in mcfw demo (we did some modifications on it).

        Thanks

      

  • The NVR and DVR are completely different products from UDworks.Modifying the dvrapp to support NVR functionality requires a lot of changes . UDwroks is planning a separate NVR product release. Pls contact UDworks thru the sales channel for details on when NVR release will be available from UDworks.

  • Hi Badri,

           I asked the Udworks sales, they told me will sell the NVR-RDK in 3Q this year. During this time, maybe we will modify the DVR-RDK into a NVR at first.

           Could you tell me are there any other companies where I can buy one NVR-RDK?

  • I don't have info on this. Maybe you can try contacting your local TI FAE who might be able to provide this info

  • hi

    @live555 rtsp h264 1080P  ---->  decode 1080P  ---->  display 1080P on Qt GUI main interface.

    i just work on it,i just can not track the codes how live555 relate with decode,i know the framework ,i just can not find in the codes ,how gui call the live555,or other forms.

    thanks