decodebin3: Limiting buffer size to the interleave is too strict for streams with frame reordering
decodebin3 tries (very successfully) to keep the amount of buffering as minimal as possible, and as close to the interleave as possible. This however has problems with frame reordering: the decoder would need more frames than the container interleave before it can output something. Not having enough buffering would cause the pipeline to never pre-roll then.
In theory this could be gotten from the decoders if they report the latency correctly, but latency reporting is optional in non-live pipelines so that also can't be relied upon.
The same problem would also happen if a decoder decides to not output frames for other reasons (e.g. they're too corrupted). With ffmpeg we get that information quite reliable, with other decoders not so much (OMX