DM365 H.264 encoder 2.10.00.06 codec-specific error flags

Hi,

We're testing an in house encoder application that uses TI's H.264 Platinum encoder (v. 2.10.00.06) on a DM365 eval board.  The example application that comes bundled with the encoder works, so I know the right pieces are in place in Linux. 

When we try to run our encoder application, though, VIDENC1_control with a command of XDM_SETPARAMS fails.  The extendedError field in the returned VIDENC1_Status is 0x00000004, which according to the documentation for XDM_ErrorBit, is codec specific.  Wonderful, except the documentation (dm365_h264enc_02_10_00_06_production\packages\ti\sdo\codecs\h264enc\docs\h264_encoder_dm365_userguide.pdf) that comes with the encoder doesn't document any codec specific error bits.

Setting CE_DEBUG to any level over 1 results in a program crash at the VIDENC1_control() call, so is of no use.

Could somebody please explain to me what that bit signifies, or better yet point me to the documentation that has the error fields listed?

I'm passing in NULL for the dynamic parameters to this call, by the way, which should tell the codec to use default values, correct?  It didn't like what we tried to pass in before (extendedError=0x0000a00e ... has three undocumented bits set!).  Strangely, CE_DEBUG over a level of 1 in this case does not cause a program crash, but doesn't turn up anything odd... VIDENC_control() just returns with 0xffffffff for no apparent reason.

Thanks in advance for any help,

Ryan

  • Frank,

    We also provide debug library along with the package. Can you please rename the encoder debug library with the normal library and rebuild yur app. Having done that, pls let us know the log.

    Also, the encoder version which you are using is old, you may like to get to a new version. http://software-dl.ti.com/dsps/dsps_public_sw/codecs/DM36x/index_FDS.html

    regards

    Yashwant

  • Frank Talbot
    I'm passing in NULL for the dynamic parameters to this call, by the way, which should tell the codec to use default values, correct?  It didn't like what we tried to pass in before (extendedError=0x0000a00e ... has three undocumented bits set!).  Strangely, CE_DEBUG over a level of 1 in this case does not cause a program crash, but doesn't turn up anything odd... VIDENC_control() just returns with 0xffffffff for no apparent reason.

    dynamicParams is a required argument to VIDENC1_control(), you can't pass NULL.

    Chris

  • In reply to Chris Ring:

    Thanks for the reply, Chris, that at least clears that problem up.  Somebody might want to add that as a precondition to the documentation, as at least this version doesn't indicate that: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/ce/2_26_01_09/exports/codec_engine_2_26_01_09/docs/html/group__ti__sdo__ce__video1___v_i_d_e_n_c1.html#gaf24ed59a2cf8589af04868d2c3a3ea09

    That still leaves me with the problem of deciphering what bits 0-2 signify, though, since I still get an extendedError of 0x0000a00e

  • In reply to Yashwant Dutt:

    Yaswhant,


    Thanks, I will try the new version soon, after I get this one working.

    I have renamed the debug library so that it takes the place of the release library.  Here is the pertinent output:

    CODEC_DEBUG_ENABLE: HDVICP resoruce alloted
    CODEC_DEBUG_ENABLE: Inside Encoder Handle Structure Activate Call -> H264VENC_TI_activate
    CODEC_DEBUG_ENABLE: Inside IRES Call to Activate All Resources -> H264VENC_TI_activateAllResources
    CODEC_DEBUG_ENABLE: Control Call With SETPARAM Command
    CODEC_DEBUG_ENABLE: Error Check Target Framerate
    CODEC_DEBUG_ENABLE: Inside IRES Call to Deactivate All Resources -> H264VENC_TI_deactivateAllResources
    CODEC_DEBUG_ENABLE: Inside Encoder Handle Structure Deactivate Call -> H264VENC_TI_deactivate
    ceapp_init-> ERROR: can't control XDM_SETPARAMS for h264enc status = -1
            ext=0x0000a00e

    So, it looks like my target framerate is bad?

  • In reply to Frank Talbot:

    Yes target frame rate going wrong. What value you are setting for targetFrameRate and MaxFrameRate?.

    below is the text from  User guide

    This fatal error is returned invidencStatus.extendedError during XDM_SETPARAMS control call if targetFrameRate in dynamic params exceeds maxFrameRate or is less than 0 or not a multiple of 500. Control call returns IVIDENC1_EFAIL

  • In reply to Veeranna Hanchinal:

    Sorry for the delay in my response.

    I was setting the targetFrameRate and maxFrameRate to the NTSC color standard of 29.97.  Setting it to 30 fixed the problem.

    I see that line now in the documentation; it would be nice if it had also been enumerated with the rest of the extendedError definitions... they also don't give you the actual numerical values that correspond to each symbol.  I had to look those up in ti/sdo/codecs/h264enc/ih264venc.h  Not a huge deal, but it would be nice if the codec documentation had spelled that out along with the standard extendedError values.