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.

OpenMax in SDK 5.02: How to get the tEncoderPreset.eEncodingModePreset PROPERLY set to User_Defined?

Hello,

I'm trying to set the H264 encoder OpenMax component to use OMX_Video_Enc_User_Defined instead

of OMX_Video_Enc_Med_Speed_High_Quality so that I can get new NALU settings actually used by the encoder.

It was mentioned in this thread [ http://e2e.ti.com/support/embedded/f/356/p/144244/521510.aspx#521510 ] that

I needed to set this so that my NALU settings will actually be used.

The settings for NALU and the EncoderPreset are available via OpenMax in  EZSDK 5.02 for the TI8168 and

I've modified the capture_encode demo application to set it with no problem but it complains at run time

(after the OMX_SetParameter() calls have successfully run) that something is wrong but with no indication

as to what it is. Here's a short snippet of my capture_encode trace.

 encoder compoenent is created
*** Setting EncoderModePreset to OMX_Video_Enc_User_Defined
***before***: tNaluMasks.nStartofSequence: 0x01A0
***before***: tNaluMasks.nIDR:             0x01A0
***before***: tNaluMasks.nIntraPicture:    0x0182
***before***: tNaluMasks.nNonIntraPicture: 0x0182
***before***: tNaluMasks.nEndofSequence:   0x0180

***after***: tNaluMasks.nStartofSequence: 0x01A0
***after***: tNaluMasks.nIDR:             0x01A0
***after***: tNaluMasks.nIntraPicture:    0x0182
***after***: tNaluMasks.nNonIntraPicture: 0x0182
***after***: tNaluMasks.nEndofSequence:   0x0180

***fetch***: tNaluMasks.nStartofSequence: 0x01A0
***fetch***: tNaluMasks.nIDR:             0x01A0
***fetch***: tNaluMasks.nIntraPicture:    0x0182
***fetch***: tNaluMasks.nNonIntraPicture: 0x0182
***fetch***: tNaluMasks.nEndofSequence:   0x0180

found handle 0x111090 for component OMX.TI.VPSSM3.VFDC
 got display handle
found handle 0x114b98 for component OMX.TI.VPSSM3.CTRL.DC
Buffer Size computed: 4147200
set input port params (width = 1920, height = 1080)setting input and output memory type to defau
ltenable input port
got eventEnable/Disable Event
 connect call for capture-Dei
  connect call for dei- encoder
  connect call for dei-display
 got eventState changed to: OMX_StateIdle
 Capture outport buffers allocated
 got eventState changed to: OMX_StateIdle
 Capture is in IDLE state
 Dei input port use buffer done
  DEI outport buffers allocated
 got eventState changed to: OMX_StateIdle
 DEI is in IDLE state
 encoder input port use buffer done
 got event*** unrecoverable error: OMX_ErrorBadParameter (0x80001005)
Press a key to proceed

Any thoughts on how I can get this set properly so I can see my NALU changes take effect.

Thanks.

Juan Solis

  • Your NALU related settings look correct and it should work. Can you confirm that there is no other change in setting. Or in other words the onlty difference b/w your working setup and non-working setup is the additional call to the set method OMX_TI_IndexParamVideoNALUsettings?

    If answer to above question is yes then can you please share other parameters? - you can perfrom a get call.

    Thanks,
    With Regards,
    Pramod

  • Pramod Kumar Swami said:

    Your NALU related settings look correct and it should work. Can you confirm that there is no other change in setting. Or in other words the onlty difference b/w your working setup and non-working setup is the additional call to the set method OMX_TI_IndexParamVideoNALUsettings?

    If answer to above question is yes then can you please share other parameters? - you can perfrom a get call.

    Thanks,
    With Regards,
    Pramod

     

    Hello Pramod,

    Do you mean trying trying the EncoderPreset change without the NALU change?

    When I first attempted the NALU change only *without* the EncoderPreset change to User_Defined

    the application ran without errors but did not produce the extra SPS/PPS.

    On the other thread mentioned earlier in this discussion I was informed that if the Encoder Preset wasn't

    also changed then the NALU changes may not be actually used. That's when I added the Encoder Preset

    in addition to the NALU changes and that's when I get the runtime error.

    I have not tried the User Defined changes only (without NALU changes) since I wouldn't expect it to produce

    the extra SPS/PPS and the case would be moot.

    Question: Can you clarify the case you'd like me to try?

    Also, here's a snippet of the CortexA8 app that is using OpenMax to set these parameters:

    /****** Encoder Preset settings ***************/

    OMX_INIT_PARAM (&tEncoderPreset);

    tEncoderPreset.nPortIndex = OMX_VIDENC_OUTPUT_PORT;

    eError = OMX_GetParameter (pHandle, OMX_TI_IndexParamVideoEncoderPreset, &tEncoderPreset);

    #if 0

    tEncoderPreset.eEncodingModePreset = OMX_Video_Enc_Med_Speed_High_Quality; // TI

    tEncoderPreset.eRateControlPreset = OMX_Video_RC_Low_Delay; // TI

    #else

    tEncoderPreset.eEncodingModePreset = OMX_Video_Enc_User_Defined; // JAS

    tEncoderPreset.eRateControlPreset = OMX_Video_RC_Low_Delay;

    printf("*** Setting EncoderModePreset to OMX_Video_Enc_User_Defined\n"); // JAS

    #endif

    eError = OMX_SetParameter (pHandle, OMX_TI_IndexParamVideoEncoderPreset, &tEncoderPreset);

    if (eError != OMX_ErrorNone)

    {

    ERROR ("failed to Encoder Preset \n");

    }

    /* ****************************************** */

     

    /****** Encoder NALU settings (JAS) **********/

    OMX_INIT_PARAM (&tNaluMasks);

    tNaluMasks.nPortIndex = OMX_VIDENC_OUTPUT_PORT;

    eError = OMX_GetParameter (pHandle, OMX_TI_IndexParamVideoNALUsettings, &tNaluMasks);

    printf("***before***: tNaluMasks.nStartofSequence: 0x%04X\n", tNaluMasks.nStartofSequence);

    printf("***before***: tNaluMasks.nIDR: 0x%04X\n", tNaluMasks.nIDR);

    printf("***before***: tNaluMasks.nIntraPicture: 0x%04X\n", tNaluMasks.nIntraPicture);

    printf("***before***: tNaluMasks.nNonIntraPicture: 0x%04X\n", tNaluMasks.nNonIntraPicture);

    printf("***before***: tNaluMasks.nEndofSequence: 0x%04X\n\n", tNaluMasks.nEndofSequence);

    tNaluMasks.nIntraPicture |= SPSnPPS;

    tNaluMasks.nNonIntraPicture |= SPSnPPS;

    tNaluMasks.nEndofSequence |= SPSnPPS;

    printf("***after***: tNaluMasks.nStartofSequence: 0x%04X\n", tNaluMasks.nStartofSequence);

    printf("***after***: tNaluMasks.nIDR: 0x%04X\n", tNaluMasks.nIDR);

    printf("***after***: tNaluMasks.nIntraPicture: 0x%04X\n", tNaluMasks.nIntraPicture);

    printf("***after***: tNaluMasks.nNonIntraPicture: 0x%04X\n", tNaluMasks.nNonIntraPicture);

    printf("***after***: tNaluMasks.nEndofSequence: 0x%04X\n\n", tNaluMasks.nEndofSequence);

    eError = OMX_SetParameter (pHandle, OMX_TI_IndexParamVideoNALUsettings, &tNaluMasks);

    if (eError != OMX_ErrorNone)

    {

    ERROR ("failed to set Encoder NALU masks \n");

    }

    /*** fetch to see if it really set ***/

    OMX_INIT_PARAM (&tNaluMasks);

    tNaluMasks.nPortIndex = OMX_VIDENC_OUTPUT_PORT;

    eError = OMX_GetParameter (pHandle, OMX_TI_IndexParamVideoNALUsettings, &tNaluMasks);

    printf("***fetch***: tNaluMasks.nStartofSequence: 0x%04X\n", tNaluMasks.nStartofSequence);

    printf("***fetch***: tNaluMasks.nIDR: 0x%04X\n", tNaluMasks.nIDR);

    printf("***fetch***: tNaluMasks.nIntraPicture: 0x%04X\n", tNaluMasks.nIntraPicture);

    printf("***fetch***: tNaluMasks.nNonIntraPicture: 0x%04X\n", tNaluMasks.nNonIntraPicture);

    printf("***fetch***: tNaluMasks.nEndofSequence: 0x%04X\n\n", tNaluMasks.nEndofSequence);

    /********************************************/

    Thanks in advance for any clarifications/suggestions you may have.

    Juan Solis

     

  • Juan,

    Are you doing these setting post OMX_IndexParamPortDefinition parameters setting, if not please try setting above NALU params post this index is done. This might overwrite all other settings.

    Regards

    Vimal

  •  

    Vimal Jain said:

    Juan,

    Are you doing these setting post OMX_IndexParamPortDefinition parameters setting, if not please try setting above NALU params post this index is done. This might overwrite all other settings.

    Regards

    Vimal

     

    Hello Vimal,

     I just finished trying to set the NALU params POST the OMX_IndexParamPortDefinition parameters when we setup the H264 encoder.

    It was a good thought but it made no difference. For your reference here's the function we use to set our encoder POST your suggestion:

    OMX_ERRORTYPE IL_ClientSetEncodeParams (IL_Client *pAppData)

    {

    OMX_ERRORTYPE eError = OMX_ErrorUndefined;

    OMX_HANDLETYPE pHandle = NULL;

    OMX_VIDEO_PARAM_PROFILELEVELTYPE tProfileLevel;

    OMX_VIDEO_PARAM_ENCODER_PRESETTYPE tEncoderPreset;

    OMX_VIDEO_PARAM_AVCNALUCONTROLTYPE tNaluMasks;

    OMX_VIDEO_PARAM_BITRATETYPE tVidEncBitRate;

    OMX_VIDEO_PARAM_PORTFORMATTYPE tVideoParams;

    OMX_PARAM_PORTDEFINITIONTYPE tPortDef;

    unsigned short int SPSnPPS = 0x0180; // SPS is B7 and PPS is B8 ...

    pHandle = pAppData->pEncHandle;

    /* Number of frames to be encoded */

    pAppData->encILComp->numFrames = pAppData->nEncodedFrms;

    /* Set the profile and level for H264 */

    OMX_INIT_PARAM (&tProfileLevel);

    tProfileLevel.nPortIndex = OMX_VIDENC_OUTPUT_PORT;

    eError = OMX_GetParameter (pHandle, OMX_IndexParamVideoProfileLevelCurrent, &tProfileLevel);

    /* set as baseline 4.2 level */

    tProfileLevel.eProfile = OMX_VIDEO_AVCProfileBaseline;

    tProfileLevel.eLevel = OMX_VIDEO_AVCLevel42;

    eError = OMX_SetParameter (pHandle, OMX_IndexParamVideoProfileLevelCurrent, &tProfileLevel);

    if (eError != OMX_ErrorNone) ERROR ("failed to set encoder pfofile \n");

    /****** Encoder Preset settings ***************/

    OMX_INIT_PARAM (&tEncoderPreset);

    tEncoderPreset.nPortIndex = OMX_VIDENC_OUTPUT_PORT;

    eError = OMX_GetParameter (pHandle, OMX_TI_IndexParamVideoEncoderPreset, &tEncoderPreset);

    #if 1

    tEncoderPreset.eEncodingModePreset = OMX_Video_Enc_Med_Speed_High_Quality; // ti

    tEncoderPreset.eRateControlPreset = OMX_Video_RC_Low_Delay; // ti

    #else

    tEncoderPreset.eEncodingModePreset = OMX_Video_Enc_User_Defined; // JAS

    tEncoderPreset.eRateControlPreset = OMX_Video_RC_Low_Delay; // OMX_Video_RC_User_Defined; // JAS

    printf("*** Setting EncoderModePreset to OMX_Video_Enc_User_Defined\n"); // JAS

    //printf("*** Setting RateControlPreset to OMX_Video_RC_User_Defined\n"); // JAS

    #endif

    eError = OMX_SetParameter (pHandle, OMX_TI_IndexParamVideoEncoderPreset, &tEncoderPreset);

    if (eError != OMX_ErrorNone)

    {

    ERROR ("failed to Encoder Preset \n");

    }

    /* ****************************************** */

    /* Get the Number of Ports */

    OMX_INIT_PARAM (&tPortDef);

    tPortDef.nPortIndex = OMX_VIDENC_INPUT_PORT;

    eError = OMX_GetParameter (pHandle, OMX_IndexParamPortDefinition, &tPortDef);

    /* set the actual number of buffers required */

    tPortDef.nBufferCountActual = IL_CLIENT_ENC_INPUT_BUFFER_COUNT;

    /* set the video format settings */

    tPortDef.format.video.nFrameWidth = pAppData->nWidth;

    tPortDef.format.video.nStride = pAppData->nWidth;

    tPortDef.format.video.nFrameHeight = pAppData->nHeight;

    tPortDef.format.video.eColorFormat = OMX_COLOR_FormatYUV420SemiPlanar;

    /* settings for OMX_IndexParamVideoPortFormat */

    tPortDef.nBufferSize = (pAppData->nWidth * pAppData->nHeight * 3) >> 1;

    eError = OMX_SetParameter (pHandle, OMX_IndexParamPortDefinition, &tPortDef);

    if (eError != OMX_ErrorNone)

    {

    ERROR ("failed to set Encode OMX_IndexParamPortDefinition for input \n");

    }

    OMX_INIT_PARAM (&tPortDef);

    tPortDef.nPortIndex = OMX_VIDENC_OUTPUT_PORT;

    eError = OMX_GetParameter (pHandle, OMX_IndexParamPortDefinition, &tPortDef);

    /* settings for OMX_IndexParamPortDefinition */

    /* set the actual number of buffers required */

    tPortDef.nBufferCountActual = IL_CLIENT_ENC_OUTPUT_BUFFER_COUNT;

    tPortDef.format.video.nFrameWidth = pAppData->nWidth;

    tPortDef.format.video.nFrameHeight = pAppData->nHeight;

    tPortDef.format.video.eCompressionFormat = OMX_VIDEO_CodingAVC;

    tPortDef.format.video.xFramerate = (pAppData->nFrameRate << 16);

    tVideoParams.xFramerate = (pAppData->nFrameRate << 16);

    tPortDef.format.video.nBitrate = pAppData->nBitRate;

    /* settings for OMX_IndexParamVideoPortFormat */

    eError = OMX_SetParameter (pHandle, OMX_IndexParamPortDefinition, &tPortDef);

    if (eError != OMX_ErrorNone)

    {

    ERROR ("failed to set Encode OMX_IndexParamPortDefinition for output \n");

    }

    /* For changing bit rate following index can be used */

    OMX_INIT_PARAM (&tVidEncBitRate);

    tVidEncBitRate.nPortIndex = OMX_DirOutput;

    eError = OMX_GetParameter (pHandle, OMX_IndexParamVideoBitrate,

    &tVidEncBitRate);

    tVidEncBitRate.eControlRate = OMX_Video_ControlRateDisable;

    tVidEncBitRate.nTargetBitrate = pAppData->nBitRate;

    eError = OMX_SetParameter (pHandle, OMX_IndexParamVideoBitrate,

    &tVidEncBitRate);

    if (eError != OMX_ErrorNone)

    {

    ERROR ("failed to set Encode bitrate \n");

    }

    /****** Encoder NALU settings (JAS) **********/

    OMX_INIT_PARAM (&tNaluMasks);

    tNaluMasks.nPortIndex = OMX_VIDENC_OUTPUT_PORT;

    eError = OMX_GetParameter (pHandle, OMX_TI_IndexParamVideoNALUsettings, &tNaluMasks);

    printf("***before***: tNaluMasks.nStartofSequence: 0x%04X\n", tNaluMasks.nStartofSequence);

    printf("***before***: tNaluMasks.nIDR: 0x%04X\n", tNaluMasks.nIDR);

    printf("***before***: tNaluMasks.nIntraPicture: 0x%04X\n", tNaluMasks.nIntraPicture);

    printf("***before***: tNaluMasks.nNonIntraPicture: 0x%04X\n", tNaluMasks.nNonIntraPicture);

    printf("***before***: tNaluMasks.nEndofSequence: 0x%04X\n\n", tNaluMasks.nEndofSequence);

    tNaluMasks.nIntraPicture |= SPSnPPS;

    tNaluMasks.nNonIntraPicture |= SPSnPPS;

    tNaluMasks.nEndofSequence |= SPSnPPS;

    printf("***after***: tNaluMasks.nStartofSequence: 0x%04X\n", tNaluMasks.nStartofSequence);

    printf("***after***: tNaluMasks.nIDR: 0x%04X\n", tNaluMasks.nIDR);

    printf("***after***: tNaluMasks.nIntraPicture: 0x%04X\n", tNaluMasks.nIntraPicture);

    printf("***after***: tNaluMasks.nNonIntraPicture: 0x%04X\n", tNaluMasks.nNonIntraPicture);

    printf("***after***: tNaluMasks.nEndofSequence: 0x%04X\n\n", tNaluMasks.nEndofSequence);

    eError = OMX_SetParameter (pHandle, OMX_TI_IndexParamVideoNALUsettings, &tNaluMasks);

    if (eError != OMX_ErrorNone)

    {

    ERROR ("failed to set Encoder NALU masks \n");

    }

    /*** fetch to see if it's really set ***/

    OMX_INIT_PARAM (&tNaluMasks);

    tNaluMasks.nPortIndex = OMX_VIDENC_OUTPUT_PORT;

    eError = OMX_GetParameter (pHandle, OMX_TI_IndexParamVideoNALUsettings, &tNaluMasks);

    printf("***fetch***: tNaluMasks.nStartofSequence: 0x%04X\n", tNaluMasks.nStartofSequence);

    printf("***fetch***: tNaluMasks.nIDR: 0x%04X\n", tNaluMasks.nIDR);

    printf("***fetch***: tNaluMasks.nIntraPicture: 0x%04X\n", tNaluMasks.nIntraPicture);

    printf("***fetch***: tNaluMasks.nNonIntraPicture: 0x%04X\n", tNaluMasks.nNonIntraPicture);

    printf("***fetch***: tNaluMasks.nEndofSequence: 0x%04X\n\n", tNaluMasks.nEndofSequence);

    /********************************************/

    return eError;

    }

    QUESTION: Is this incorrect or out of sequence somehow?

    Thanks.

    Juan

  • Juan,

    What is value of SPSnPPS ??

    I see even before setting the values, they are same !! so If you do't put new values, it won't reflect !before and after prints are same. then fetch print also would be same..

    Regards

    Vimal

  • Vimal Jain said:

    Juan,

    What is value of SPSnPPS ??

    I see even before setting the values, they are same !! so If you do't put new values, it won't reflect !before and after prints are same. then fetch print also would be same..

    Regards

    Vimal

    Hello Vimal,

    The reason the values are the same is because I grabbed a newer run of the program where I attempted to compensate for

    not being able to change the NALU dynamically. I then went and hunted through the code and found where the default settings

    were being created and changed those to see if I had better luck doing it that way.  That's why they are all now the same, that is,

    the before/after/fetch are basically all now the same. The value of SPSnPPS was pasted into the forum on my last reply, though

    it doesn't stand out from the rest of the function. Here it is:

    unsigned short int SPSnPPS = 0x0180; // SPS is B7 and PPS is B8 ...

    I computed this value for the NALU masks based on a document we have that documents the bitmask semantics.

    NOTE: We're under NDA with TI so we have access to it.

    So far the problem is that the settings/changes don't seem to take effect when we generate the H264 stream though the

    APIs seem to all be there. We're working under the assumption that some other setting is missing but we really

    don't know yet why this isn't triggering.

    Juan Solis,

    P.S.: Came across another setting that seems to be related: OMX_Video_BitStreamFormatNAL. I've changed

              this one too but it doesn't seem to make a difference either.

  • Juan,

    Do you have codec header file ? (It appears you may have it).

    If yes, Can you try with dynamic parameter index ? This way all codec parameters can be accessed.

    example code ---

    OMX_VIDEO_CONFIG_DYNAMICPARAMS tDynParams;
    OMX_INIT_PARAM (&tDynParams);

    tDynParams.nPortIndex = OMX_VIDENC_OUTPUT_PORT;

    eError = OMX_GetParameter (pHandle, OMX_TI_IndexParamVideoDynamicParams,
    &tDynParams);

    /* setting I frame interval */
    tDynParams.videoDynamicParams.h264EncDynamicParams.videnc2DynamicParams.intraFrameInterval = 90;

    eError = OMX_SetParameter (pHandle, OMX_TI_IndexParamVideoDynamicParams,
    &tDynParams);

    please note you will have to compile IL client with in the makefile

    CFLAGS_LOCAL_a8host = -DGlobal_GrpxDssMsgHeapId=6 -DGlobal_TilerHeapId=7 -D_VIDEO_M3_DYNAMIC_CONFIG

    and have the codec header file in path defined by OMX_TI_Video.h ( you can change path and keep the file elsewhere as well).

    Regards

    Vimal

  • Vimal,

    I was able to compile and run with the latest changes you suggested for OMX_Video_BitStreamFormatNAL via Dynamic Parameters

    but it didn't change anything at runtime. I went back to the 'H.264 Encoder on HDVICP2 and Media Controller Based Platform User's Guide'

    [SPRUGN2, July 2011] and I noticed that on Page 4-63 [Section 4.2.2.6, IH264ENC_SliceCodingParams] there's a note that:

      streamFormat parameter is ignored during runtime.

    That might explain at least why this strategy didn't work.

    There were no DynamicParams variants of the NALU masks that I could find. The only ones I see are for STATIC/Creation-Time parameters

    which are the ones I'm attempting to change.

    I'm kind of running out of things to try from our end.

    Any other thoughts or suggestions?

    Thanks.

    Juan

     

  • Juan,

    Instead of static params, I pasted dynamic param code.

    I tried following in my setup

      OMX_VIDEO_PARAM_STATICPARAMS   tStaticParam;
      OMX_INIT_PARAM (&tStaticParam);

      tStaticParam.nPortIndex = OMX_VIDENC_OUTPUT_PORT;
     
      eError = OMX_GetParameter (pHandle, OMX_TI_IndexParamVideoStaticParams,
                                 &tStaticParam);

      tStaticParam.videoStaticParams.h264EncStaticParams.videnc2Params.encodingPreset = XDM_USER_DEFINED;
     
     //  tStaticParam.videoStaticParams.h264EncStaticParams.numTemporalLayer = IH264_TEMPORAL_LAYERS_1;


      /* for base profile only*/
      tStaticParam.videoStaticParams.h264EncStaticParams.transformBlockSize = IH264_TRANSFORM_4x4;
      tStaticParam.videoStaticParams.h264EncStaticParams.entropyCodingMode = IH264_ENTROPYCODING_CAVLC;
      /* for base profile end */
     
      tStaticParam.videoStaticParams.h264EncStaticParams.nalUnitControlParams.naluControlPreset = IH264_NALU_CONTROL_USERDEFINED;
      tStaticParam.videoStaticParams.h264EncStaticParams.nalUnitControlParams.naluPresentMaskStartOfSequence |= 0x0180;
      tStaticParam.videoStaticParams.h264EncStaticParams.nalUnitControlParams.naluPresentMaskIDRPicture |= 0x0180;
      tStaticParam.videoStaticParams.h264EncStaticParams.nalUnitControlParams.naluPresentMaskIntraPicture |= 0x0180;
      tStaticParam.videoStaticParams.h264EncStaticParams.nalUnitControlParams.naluPresentMaskNonIntraPicture |= 0x180;
       tStaticParam.videoStaticParams.h264EncStaticParams.nalUnitControlParams.naluPresentMaskEndOfSequence |= 0x0180;
                            
      eError = OMX_SetParameter (pHandle, OMX_TI_IndexParamVideoStaticParams,
                                 &tStaticParam);

    With this I was able to get the SPS/PSS in every frame ! Please let me know if this works for you.

    Regards

    Vimal

     

  • WOW !!!

    Now we're getting somewhere!  :-)

    I still need to do some more testing but it looks like I'm finally getting my SPS/PPS params in the stream!

    I guess the version of the SDK I've got is not mapping the OMX_PARAM structs data fields across all the

    needed data structures?!

    I've been pounding my head against a brick wall using OMX_TI_IndexParamVideoNALUsettings (and a variety of

    other mis-adventures as you're aware).

    Please let me know if there's any updated documentation that we may be missing regarding issues like this, i.e.,

    using certain PARAMs (such as the StaticParam) instead of other PARAMs (such as the NALsettings). I don't know

    that I would have ever expected to find the same data in more than one place.

    I don't think I'm the only one out there having these issues so this might merit some mention in your documentation

    if it's not already there somewhere. I'm concerned there may be more gremlins such as this that we may trip into but

    for now I can breath a sigh of relief.  :-)

    Is there a Wiki out there I should add to my reading list?

    Thanks again Vimal for your help and patience with this.

    Juan Solis

    P.S.: Not knowing which part of the globe your helping us from, here's my  list for thanks:

    Thanks !  

    Gracias ! (Spanish)

    Merci ! (French)

    Danke ! (German)

    Grazie ! (Italian)

    Shukriya ! (Hindi)

     

     

  • Hi Juan,

    Apologies for the inconvinience caused..Since in 5.02, we did not support parameter settings, it was not documented well. We have following  wiki page for OMX.

    http://processors.wiki.ti.com/index.php/Category:OMX

    Regards

    Vimal