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.

Problem with OMAX SDK buffer allocation

Hi I'm running EZSDK version 5.03.01.15

I’ve been working on a program that basically configure the VFCC capture component followed by the VIDENC encoder component, encodes for a bit and then does the orderly shutdown to get the components back to loaded state (all buffers being freed) and then reconfigured and buffers re-allocated and so on in a loop.

The idea is to mimic real world use where the system doesn’t simply run a single configuration of input resolution and output encoder configs but can be modified at run time to do all sorts of things.

After running more than 6 iterations of getting the components to work from the loaded state and back, I get the following assert message from the open max sources:

omax_test: OmxProxy.c:1409: omxproxy_alloc_buffer: Assertion `(currentBuffer < pComponentPrivate->maxNumBuffers)' failed.

 So I went to checkout the OmxProxy.c file and noticed that the maxNumBuffers field of the component PROXY_COMPONENT_PRIVATE  struct doesn’t seem to get decremented anywhere in the code (the omxproxy_free_buffer function does not do it). It seems like a bug to me. Since the open max samples typically do one thing and then just exit it might have easily been overlooked.

Could you confirm this or maybe shed some light into what other possible issue might be causing the problem.

 

  • Hi,

    This is a bug in OMX. Unfortunately, it cannot be fixed by just decrementing the counter in omxproxy_free_buffer. We will fix this in the next release. For now, you can workaround this issue by disabling the assert (numOfBuffers < maxNumBuffers) in omxproxy_use_buffer and omxproxy_alloc_buffer functions.

    Regards,

    Anirban