omxvideodec: CODECCONFIG flag on au alignment buffers (h264)
commit 503db0f1 adds the OMX_BUFFERFLAG_CODECCONFIG flag to all buffers that have the gstreamer GST_BUFFER_FLAG_HEADER flag set. This should work fine when decoding H.264 that streams with 1 NAL / buffer, but may not work for streams with AU alignment.
This is because of difference between the definitions of the gstreamer and OMX flags (below)
GST_BUFFER_FLAG_HEADER: the buffer contains header information that is needed to decode the following data.
OMX_BUFFERFLAG_CODECCONFIG: is an optional flag that is set by an output port when all bytes in the buffer form part or all of a set of codec specific configuration data
By my interpretation of these specifications, when an SPS, PPS, and IDR NAL unit are all packed in the same buffer, the OMX_BUFFERFLAG_CODECCONFIG should not be set, but it is ok for GST_BUFFER_FLAG_HEADER to be set (which is what h264parse does).
It seems like this new behaviour is a violation of the OMX specification and is causing the OMX decoder on my system to drop the non-configuration NAL units (eg. IDR NALs) that are contained in buffers with the OMX_BUFFERFLAG_CODECCONFIG set.
Are there any thoughts on this?