[Bug 737427] v4l2src ! ... ! appsink capture hangs after 2 samples

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Sep 29 17:40:17 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=737427
  GStreamer | gst-plugins-good | 1.4.1

--- Comment #3 from Nicolas Dufresne (stormer) <nicolas.dufresne at collabora.co.uk> 2014-09-30 00:40:14 UTC ---
I need to think a little more about this one. Adding enable-last-sample=0 to
appsink makes it work again. Though, it should still work (ineffectively) with
this option set:

If I understand well, appsink as a queue of 1 buffer by default,
enable-last-sample is true by default, hence another buffer will be stored.
This mean appsink can effectively start v4l2src which allocates 2 buffers.

v4l2src: DQ and push buffer 1
appsink: queue buffer 1
v4l2src: DQ and push buffer 2 (blocks)
app: pull buffer 1 and unref
appsink: keeps buffers 1 as the last sample
appsink: queue buffer 2 (unblock v4l2src)
v4l2src: blocks, no more capture buffer
app: pull buffer 2 and unref
appsink: replace last-sample, releasing buffer 1
v4l2src: unblock, Q buffer 1, capture buffer 1 and push
etc.

But buffer never get released for some reason I don't understand yet. So just
saying appsink should request more buffers does not seems fully right.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- 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