v4l2codecs: Fix holding of reference picture buffer

The picture buffer (V4L2 CAPTURE buffer) was being released immediatly
when the request was done. This was problematic since even after the
request is done, the picture buffer might still be used as a reference
and should not be reused for further decoding yet.

This change effectively bind the picture buffer lifetime to the request.
So that if the picture is never showned (decode only frame) or the request
queue is full before the buffer is displayed, the picture buffer will
remain alive.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2142>
This commit is contained in:
Nicolas Dufresne 2021-04-06 16:24:39 -04:00 committed by GStreamer Marge Bot
parent 81d4ccdc44
commit 24eda30bd7

View file

@ -1124,7 +1124,6 @@ gst_v4l2_request_set_done (GstV4l2Request * request)
}
}
g_clear_pointer (&pending_req->pic_buf, gst_buffer_unref);
pending_req->pending = FALSE;
gst_v4l2_request_unref (pending_req);