GNOME Bugzilla – Bug 501546
Buffer usage issue in gstreamer plugins for OpenMAX
Last modified: 2008-01-25 09:43:36 UTC
Using the 0.10.0.2 of gst-omx there is a problem with the buffer allocation. In OpenMAX all the buffers are allocated during the setup with either an OMX_UseBuffer or an OMX_AllocateBuffer call. These calls also create a buffer header, which is a structure whose pBuffer member points to the actual memory buffer. This member is read-only and should not be modified. During the processing inside gst-openmax plugins pBuffer is overwritten (see gstomx_base_filter.c line 500 of the latest release 0.10.0.2). These buffers have different addresses and size compared to what has been declared with OMX_UseBuffer(). This behavior is against the OpenMAX spec, and can cause errors. In any case the OpenMAX components should check for the correctness of the buffers received. Also the IL client is not allowed to overwrite the pBuffer pointer.
This is fixed in CVS. Now the default behavior is to copy the memory pointers.