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.

OMX Deiscaler internal memory limits

Hi all,

I has been doing some tests in order to find out the maximum capacity of OMX Deiscaler component. For example, the following pipeline works without any problem:

 gst-launch videotestsrc num-buffers=10 ! 'video/x-raw-yuv,format=(fourcc)NV12,width=1920,height=2042,framerate=(fraction)60/1' ! omx_hdeiscaler output-buffers=4 name=d d.src_01 ! 'video/x-raw-yuv,width=1920,height=1080' ! gstperf ! fakesink

But if I feed omx_hdeiscaler input with 1920x2043 frames instead of 1920x2042 frames, I get the following error:

 Setting pipeline to PAUSED ...
 Pipeline is PREROLLING ...
 unrecoverable error: There were insufficient resources to perform the requested operation (0x80001000)
 ERROR: from element /GstPipeline:pipeline0/GstOmxHDeiScaler:d: GStreamer encountered a general stream error.
 Additional debug info:
 ../../src/omx/gstomx_base_filter2.c(719): pad_chain (): /GstPipeline:pipeline0/GstOmxHDeiScaler:d:
 Error from OpenMAX component
 ERROR: pipeline doesn't want to preroll.
 Setting pipeline to NULL ...
 Freeing pipeline ...

This pipeline generates the error:

 gst-launch videotestsrc num-buffers=10 ! 'video/x-raw-yuv,format=(fourcc)NV12,width=1920,height=2043,framerate=(fraction)60/1' ! omx_hdeiscaler output-buffers=4 name=d d.src_01 ! 'video/x-raw-yuv,width=1920,height=1080' ! gstperf ! fakesink

It seems that while creating the OMX component, there is an internal memory allocation that is failing because of insufficient resources. I think that if there's a way to just increase the memory segment that deiscaler component uses for its internal buffers we can get this error solved and get deiscaler working with bigger resolutions than 1920x2042.

Is there anyone that has done something similar that can help me with this issue?

Thanks,

CarlosG

  • Hello,

    Error 0x80001000 means OMX_ErrorInsufficientResources that can indicate several error conditions like unable to allocate memory, error in creating event, error allocating pAppData, error in allocating resources in main, error in event retrieve.

     You could try with lower fps.

    Probably you should make changes in MemSegmentDefinition.xs as well:

    /ti-ezsdk/component-sources/omx_xx_xx/src/ti/omx/build/MemSegmentDefinition.xs

    I will check what is the limitation on the DEI input(the resolution).

    BR
    Margarita

  • Hi Margarita,

    Thanks for your answer,

    I tried with lower framerates until 1fps and the result is exactly the same.

    It would be great if you could check what is the limitation on the DEI. I'm still trying to identify if the error is because of an allocation failure and what memory segment is the one that we should increase.

    Let me know,
    Thanks,

    Carlos
  • Hello,

    You could check the OMX user guide about the DEI, limits etc.

    Keep in mind that in EZSDK the scaler, display, control component support up to 1920x1080@60. For display/capture component the pixel clock should be < 165MHz.

    If you want to support the 1920x1200 you should make some changes in the M3 firmware which is under NDA.

    BR
    Margarita