v4l2bufferpool: Only resurrect the right amount of buffers 58/252158/1 accepted/tizen/unified/20210127.024855 submit/tizen/20210125.065536 submit/tizen/20210126.070903
authorNicolas Dufresne <nicolas.dufresne@collabora.com>
Fri, 26 Jun 2020 18:48:14 +0000 (14:48 -0400)
committerJeongmo Yang <jm80.yang@samsung.com>
Mon, 25 Jan 2021 04:30:31 +0000 (13:30 +0900)
commitfd65ebb9745d2ba91772e96e6dac80e117d0cc85
treefd3fe4018a0f2ab1dcf94276e5c8944520e4c7d3
parenta9ea40efb522a2f013d853e08dbaf703610c8027
v4l2bufferpool: Only resurrect the right amount of buffers

On streamon, we need to resurrect (queue back) some buffers, as during
flushign seek we'd endup with an empty queued. We initially started with
resurrecting as many as we could without blocking, but that miss-behaved with
dynamic CREATE_BUFS, causing the pool to grow dramatically. This was limited
by the number of allocated buffers, but this still tried to resurrect too many
buffers for the first run, as activating the pool will queued buffers.

In this patch, we calculte the missing detal in the queue and only try and
resurrect that amount of buffers.

Change-Id: I3257c66f4049c55fa714ed639eeb56053b805277
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/651>
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
packaging/gst-plugins-good.spec
sys/v4l2/gstv4l2bufferpool.c