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.

IVA-HD h264 decode capability

hello TI,

    Is it possible to decode 720x1280 and 1080x1920 with codec package like REL.500.V.H264AVC.D.HP.IVAHD.02.00.xx.00 ?

  • Hi,

    1330hayacool7102 said:
    Is it possible to decode 720x1280 and 1080x1920 with codec package like REL.500.V.H264AVC.D.HP.IVAHD.02.00.xx.00 ?

    Yes, this is supported. It should be possible. Recommend you to use the latest codec release V REL.500.V.H264AVC.D.HP.IVAHD.02.00.21.00

  • hi,

        Many thanks for your response.

        I got below as using REL.500.V.H264AVC.D.HP.IVAHD.02.00.21.00

     [m3video] 647439:DECLINK::links_m3video/iva_dec/decLink_h264.c:[542]::INTERNAL ERROR:-1
     [m3video] ALGPROCESS FAILED:STATUS
     [m3video] outArgs->viddec3OutArgs.extendedError for channel 0 with Resolution chnage Error: 0x208001
     [m3video] 647462:DECLINK::links_m3video/iva_dec/decLink_h264.c:[422]::INTERNAL ERROR:-1
     [m3video] ALGPROCESS FAILED:STATUS
     [m3video] outArgs->viddec3OutArgs.extendedError for channel 0 Error: 0x208001

        About the extendedError 0x208001 (bit 0,15, 21), I referred to H264_Decoder_HDVICP2_UserGuide.pdf under REL.500.V.H264AVC.D.HP.IVAHD.02.00.21.00\500.V.H264AVC.D.HP.IVAHD.02.00\IVAHD_001\docs

        and got the following in page 59

    IH264VDEC_ERR_UNSUPPRESOLUTION
    Bit 21
     1 - Unsupported resolution by the decoder
     0 - ignore

          Would you mind to double confirm 720x1280 instead of 1280x720 ? Thanks in advance ~~y

         

  • Hi,

    1330hayacool7102 said:
    Would you mind to double confirm 720x1280 instead of 1280x720 ?


    I am able to decode 720x1280 & 1080x1920 successfully on my standalone setup. Can you please share your bitstream?

  • Hi,
    See the following for your requirement. Thanks....

    720x1280
    drive.google.com/open

    1080x1920
    drive.google.com/open
  • Hi,

    Thanks for the streams. I am able to decode both the files. Can you please check the maxWidth & maxHeight set by you. Make sure its set to maxWidth = maxHeight  = 2048. It should decode.

  • Hi,
    would you mind providing correct location for the setting? Thanks.
  • Hi,
    Which software do you use? viddec3Params.maxHeight & viddec3Params.maxWidth in your /iva_dec/decLink_h264.c file.
  • Hi,

    in  /iva_dec/decLink_h264.c

    yes, it's there.

    Another question

    Is the memory allocation dominated by maxHeight x maxWidth directly?? I need to know memory consuming ~

    Tthanks.

  • hi
    Would you mind to confirm the memory allocation??
    for multi user, as we set maxWidth = maxHeight = 1920, we'll see following
    [m3video] 9165: DECODE: Creating CH6 of 1920 x 1920 [PROGRESSIVE] [NON-TILED ],target bitrate = 4000 Kbps ...
    [m3video] ENCDECUTIL: ERROR! DECODER Creation: Insufficient Memory; Required = ..., Free Memory Available = ...
    ...
    [m3video] 9166: Assertion @ Line: 1634 in links_m3video/iva_dec/decLink_common.c: status == DEC_LINK_S_SUCCESS : failed !!!

  • Hi,

    Please refer GETBUFINFO in Source/ti_tools/codecs-dm81xx/REL.500.V.H264AVC.D.HP.IVAHD.xx.xx.xx.xx/500.V.H264AVC.D.HP.IVAHD.02.00/IVAHD_001/client/test/src/TestAppDecoder.c

    You need to do a control call, with GETBUFINFO  similarly to know the exact memory required. 

    For the first GETBUFINFO call, Exact resolutions are not known.  So, the requirements are based on worst case decoding i.e: maxHeight, maxWidth. For subsequent calls, the resolution is known,so allocation can be based on the actual buffer requirement.

  • hi,
    As I check the following , it looks like the allocation size is fixed. Why ??
    the frame allocation of 1080x1920 will be directed to UTILS_ENCDEC_RESOLUTION_CLASS_4MP which cause Insufficient Memory In our multi-ch application.
    Could I modify the fixed value to setting from maxWidth/maxHeight ? If not, why??

    static Int32 DecLink_codecPopulateOutFrmFormat(DecLink_Obj *pObj, UInt32 chId)
    {
    ...
    /* Modify this with formula to calculate the single buffer
    * size, if possible */
    ...
    case UTILS_ENCDEC_RESOLUTION_CLASS_1080P: // 1080p
    pFormat->width =
    UTILS_ENCDEC_GET_PADDED_WIDTH
    (UTILS_ENCDEC_RESOLUTION_CLASS_1080P_WIDTH); => why this is not maxWidth ?
    pFormat->height =
    UTILS_ENCDEC_GET_PADDED_HEIGHT
    (UTILS_ENCDEC_RESOLUTION_CLASS_1080P_HEIGHT); => why this is not maxHeight ?
    pFormat->pitch[0] =
    VpsUtils_align(pFormat->width, VPS_BUFFER_ALIGNMENT);
    break;
    case UTILS_ENCDEC_RESOLUTION_CLASS_4MP: // 4MP


    Thanks in advance...
  • Hi,

    I am not aware much about DVR-RDK. I am an codec engineer and have limited access to other components. I will try to answer you

     

    1330hayacool7102 said:
    UTILS_ENCDEC_GET_PADDED_WIDTH
    (UTILS_ENCDEC_RESOLUTION_CLASS_1080P_WIDTH); => why this is not maxWidth ?
    pFormat->height =
    UTILS_ENCDEC_GET_PADDED_HEIGHT
    (UTILS_ENCDEC_RESOLUTION_CLASS_1080P_HEIGHT); => why this is not maxHeight ?
    here these macros are for standard width & height, ir 1902x1080. but your use case is 1080x1920. So maxWidth & maxHeight will be 1920x1920 in your case and you might not use the standard macros. May be you can customised  as per your requirement.

    Please remember, maxWidth & maxheight should be > your actual input size. and the buffer will be allocated based on this.

    Can you open a different thread for this memory allocation issue? So that experts will have a look at it and can be answered efficiently.

    Since this thread is answered the actual question, can you please verify the answer and close this?