multiqueue: Improve interleave calculation at startup and EOS
authorEdward Hervey <edward@centricular.com>
Fri, 6 Aug 2021 06:30:39 +0000 (08:30 +0200)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Wed, 9 Mar 2022 18:49:51 +0000 (18:49 +0000)
commitb141324eae5e2360a25ea7a208b45a78ecfef75e
treec10785207ba20736fd87ad6a86b44883b56c46a8
parentb6ffad41cae204d1cb71de537d0ae71242429d91
multiqueue: Improve interleave calculation at startup and EOS

* When a stream receives EOS, it will no longer change, we shouldn't take that
  stream into account for interleave calculation.

* When streams (re)appear, we do not want to grow the initial interleave values
  to excessive values. Instead of setting it to a default of 5s, progressively
  grow it to that maximum.

* When the status of input streams change (i.e. going to/from "some haven't
received data yet" and "all have received data"), update the interleave
immediately instead of waiting for (potentially) 5s of data before updating
it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1892>
subprojects/gstreamer/plugins/elements/gstmultiqueue.c
subprojects/gstreamer/plugins/elements/gstmultiqueue.h