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.

GST-OpenMax and GST-Ducati differences.

Other Parts Discussed in Thread: 4430

hello I check the wiki webpages, it is said, http://www.omappedia.com/wiki/Gstreamer_overview

In omap, both GST-OpenMax and GST-Ducati provide elements that interface with omap hardware.

I found gst-openmax is hard to run on ICS, but stagefight still OpenMax, may i know if GST-Ducati could work well on ICS ?

any ideas?

Br,

Ning.

  • Hi,

    gst-ducati is for GLP releases and not for ICS. For ICS we use only OpenMax components for multimedia.

    Regards, Satheesh

  • hello Dear, Satheesh:

    Thanks for reply.

     In stagefright,  graphicbuffer (inherited from NativeWindowBuffer is used for for OpenMax output port,

    OMXNodeInstance::useGraphicBuffer2_l   

    err = OMX_UseBuffer(
                mHandle,
                &header,
                portIndex,
                bufferMeta, ===> is this field must be graphicbuffer type?
                def.nBufferSize,
                bufferHandle);

    In my project ( Gstreamer , ICS on OMAP 4430 ), we want to use gst-openmax, GstBuffer is set here, but OMX blocked when received "OMX_EventPortSettingsChanged"

    Do you have some comments?

    Thanks in advance.

    Br,

    Ning.

  • Hi,

    It is not required to be graphic buffer type. This field is meant for application specific private data.

    Can you provide us more findings where exactly the OpenMax/GStreamer hangs when it received OMX_EventPortSettingsChanged? The current information not enough to provide any comment as such.

    Regards,

    Chintan

  • Hello Chintan:

    Thanks for reply.

     in gst-openmax, following steps are performed:

           1) OMX_IndexParamVideoPortFormat, Get/Set both Input port and output port; 

            2) OMX_IndexParamPortDefinition, 

                for Input port, correct nFrameWidth, nFrameHeight, eCompressionFormat, eColorFormat, and nBufferSize=64K

                for output port, correct nFrameWidth, nFrameHeight,xFramerate

             3) native_window_set_crop/ native_window_set_buffer_layout

              4) enableGraphic buffer

              5) Allocate buffer:

                 Input port, OMX_AllocateBuffer

                 Output port,  Set up the native window(scaling mode, geometry, usage...),  

                                    nativewindow->dequeueBuffer, then OMX_UseBuffer

              6) EmptyBuffer/FillBuffer

              7) OMX_EventPortSettingsChanged, received and send port disable command blocked...

                  >>>>  1) - 6) configurations return no error, and buffer data is also correct compared with stagefright... 

                  >>>> It is strange that first frame decoded, once event OMX_EventPortSettingsChanged, all A9 and ducati communications fails including getparam...

                  ducati trace and gstreamer traces are uploaded here.

                 http://www.ziddu.com/download/19599291/ducati_gstreamer.zip.html

                  Dynamic port reconfiguration triggered since small o/p buffer size provided in first frame decode

  • Hello Dear Chintan:

    The block reason is found, OMX_EventPortSettingsChanged should be processed asynchronous, but gst-openmax do it sync. so blocked.

    Thank you very much.

  • Ning,

    Thanks for sharing the feedback. It is really useful.

    Regards,

    Chintan