Until now, each incoming buffer is copied into the decoder internal circular buffer, and the frame boundaries are (re-)detected afterwards by the decoder itself. This prevents it from keeping a true 1-to-1 relationship between the input buffer and decoded output frame. An application can try to retrieve the 1-to-1 relationship based on the decoding order but this is not reliable in case of error concealment. This new feature consists of bypassing the circular buffer stage for use cases where the incoming buffers are frame (or slice) aligned. In this case, the decoder can directly work on the input buffer (assuming DMA input buffer) and any associated metadata can be retrieved on the output callback.
Decoder config setting bSplitInput is added to enable and disable this feature at control-sw. gst-omx decoder supports also this new parameter. When split-input is enabled, the decoder has a 1-to-1 mapping for input and output buffers. When disabled, the decoder copies all input buffers to internal circular buffer and processes them.
Constraints: When split-input mode is enabled for decoder, input to decoder should be aligned with the frame (AU) or slice (NAL unit) boundary. Part of AU or NAL is not allowed.