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.

Howto enable slog to debug an OMX_ErrorUndefined from omx lib



I'm having an error when I call OMX_UseBuffer to link capture output buffers to encoder input buffers. Since it fails with OMX_ErrorUndefined, I thought I could activate system logging to find out where the error is generated. I tried to follow this documents :

http://processors.wiki.ti.com/index.php/Using_slog_in_EZSDK

When trying to set "USE_SLOG_PRINT=1" I found the folowing comment in domx makefile:

#Note: USE_SLOG_PRINT=0 is forced. No other value should be used.
ifeq ($(CORE),a8host)
  CFLAGS_LOCAL_a8host += -D_LOCAL_CORE_a8host_ -DUSE_SLOG_PRINT=0 -DSLOG_DOMX_Module__MID=0x8001
  CFLAGS_LOCAL_a8host += -DSLOG_DOMXDH_Module__MID=0x8002 -DSLOG_DOMXRPC_Module__MID=0x8003
  CFLAGS_LOCAL_a8host += -DSLOG_DOMXIPC_Module__MID=0x8004
endif

I'm I on the right path ? How would you diagnose this kind of error ?

P-O

  • Good, I'll try that right away, thanks. By the way, I don't know if it is a new feature but I it could eventially be part of the wiki page "Using slog in EZSDK"...

    Regards,

    Pierre-Olivier

  • Using the log output I have been able to pinpoint more precisely what is happening. The error OmxRpc_errorDmmBufferMapFailed is generated by a call to OmxRpc_PDmm_mapBuffer() in OmxRpcStub.c#1554.

    What I'm trying to do is calling usebuffer to map encoder input buffers to preallocated capture output buffers. I don't see why it should not be possible... Should I use the DEI in between even if no buffer conversion is required ?

    Regards,

    P-O

    FIY the failing log looks like this:

    Entered function :omxproxy_use_buffer
    OmxProxy.c:1332::OmxRpc_stubUseBuffer failed.ErrorId: 12

  • Hi,

    This is definitely possibe. Output buffers allocated for VFCC can be passed to VENC input port via OMX_UseBuffer. From the error, it looks like invalid pointers have been passed to OMX_UseBuffer for VENC. Can you review whether valid pointers (highlighted below) have been passed to VENC in OMX_UseBuffer?

        outPortParamsPtr = pAppData->capILComp->outPortParams;

        eError = OMX_UseBuffer (pAppData->pEncHandle,
                                &pAppData->encILComp->inPortParams->pInBuff[i],
                                OMX_VIDENC_INPUT_PORT,
                                pAppData->encILComp,
                                outPortParamsPtr->nBufferSize,
                                outPortParamsPtr->pOutBuff[i]->pBuffer);

    Regards,

    Anirban