[Bug 754042] v4l2src: Asserts on renegotiation with USERPTR

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Mon Aug 24 14:24:24 PDT 2015


https://bugzilla.gnome.org/show_bug.cgi?id=754042

--- Comment #1 from Nicolas Dufresne (stormer) <nicolas.dufresne at collabora.co.uk> ---
Ok, basically, we deactivate the internal pool only if the caps have change,
that is, to avoid reallocating buffers. But we still execute the decide
allocation query, which in userptr and dmabuf-import expects the internal pool
to be stopped.

What the assertion endup doing (keeping the old downstream pool) works well of
course, and avoid re-allocation. I'm tempted to simply change that into a
check/return.

The side effect though, is that if the renegotiation was triggered because the
element offering the pool was replaced, we'll keep using this pool and the
pipeline might not be optimal. Also, if the buffer requirement have change, it
won't be updated either.

Replacing the other_pool is difficult, as the new pool is not yet configured,
or activated. Allocating buffer from it will fail (flusing), which fails
_qbuf() which unfortunately lead to ->release_buffer(), which finally endup
causing an infinit recursive loop.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list