- gst_v4l2_buffer_pool_streamoff (pool);
-
- /* Reset our state */
- switch (obj->mode) {
- case GST_V4L2_IO_RW:
- break;
- case GST_V4L2_IO_MMAP:
- case GST_V4L2_IO_USERPTR:
- case GST_V4L2_IO_DMABUF:
- case GST_V4L2_IO_DMABUF_IMPORT:
- {
- for (i = 0; i < VIDEO_MAX_FRAME; i++) {
- /* Re-enqueue buffers */
- if (pool->buffers[i]) {
- GstBufferPool *bpool = (GstBufferPool *) pool;
- GstBuffer *buffer = pool->buffers[i];
-
- pool->buffers[i] = NULL;
-
- /* Remove qdata, this will unmap any map data in
- * userptr/dmabuf-import */
- gst_mini_object_set_qdata (GST_MINI_OBJECT (buffer),
- GST_V4L2_IMPORT_QUARK, NULL, NULL);
-
- if (buffer->pool == NULL)
- gst_v4l2_buffer_pool_release_buffer (bpool, buffer);
-
- g_atomic_int_add (&pool->num_queued, -1);
- }
- }
-
- break;
- }
- default:
- g_assert_not_reached ();
- break;
- }
-
-streamon:
- /* Start streaming on capture device only */
- if (!V4L2_TYPE_IS_OUTPUT (obj->type))
- gst_v4l2_buffer_pool_streamon (pool);
-