How to make v4l2src reload buffer in PAUSED state

dlw dlwalter at
Thu Aug 13 19:53:14 UTC 2020

I'm a bit of a gstreamer noob, so please bear with me...

I am trying to capture single images in a pipeline with that looks like the

v4l2src num-buffers=1 ! jpegenc quality=100 ! multifilesink

In my code I create the pipeline elements, link them and then set the
pipeline to GST_STATE_PAUSED.

When I receive a "capture_image" command I then set the GST_STATE_PLAYING.

This works fantastic and I get an EOS and image written.  I then set the
pipeline to GST_STATE_PAUSED waiting for the next "capture_image" command.

/The problem is that now the v4l2src buffer is empty and nothing will get
written to the multifilesink on subsequent "capture_image" commands./

*Is there a way to make v4l2src send another image to its buffer and send it
down to multifilesink?*  I can only get this to work if I set the pipeline
to GST_STATE_READY, but timing is critical - it takes 600ms to capture the
images from GST_STATE_READY, but only 300ms to capture from GST_STATE_PAUSED
(multiple cameras and other processing happening that I've excluded for

Sent from:

More information about the gstreamer-devel mailing list