Some drivers will push an buffer flagged LAST but empty. In decoder
case, this results in an "producing too many buffer" warning, even
though the result is entirely correct. Detect this case in order to
signal EOS earlier and avoid this warning.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5319>
group->buffer.index);
}
+ if (group->buffer.flags & V4L2_BUF_FLAG_LAST &&
+ group->planes[0].bytesused == 0) {
+ GST_DEBUG_OBJECT (pool, "Empty last buffer, signalling eos.");
+ goto eos;
+ }
+
outbuf = pool->buffers[group->buffer.index];
if (outbuf == NULL)
goto no_buffer;