diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c index 18b6246d478e7eb6b02b5ea2a4055b53a190aa7e..169fdc376e8d33402aaa309deabbc4f80b41fbda 100644 --- a/sys/v4l2/gstv4l2bufferpool.c +++ b/sys/v4l2/gstv4l2bufferpool.c @@ -595,6 +595,8 @@ start_streaming (GstV4l2BufferPool * pool) { GstV4l2Object *obj = pool->obj; + GST_DEBUG_OBJECT (pool, "start streaming"); + if (pool->streaming) return TRUE; @@ -632,10 +634,11 @@ start_streaming (GstV4l2BufferPool * pool) goto requeue_failed; } - GST_DEBUG_OBJECT (pool, "STREAMON"); - if (v4l2_ioctl (pool->video_fd, VIDIOC_STREAMON, &obj->type) < 0) goto start_failed; + + GST_DEBUG_OBJECT (pool, "STREAMON"); + break; } default: @@ -880,10 +883,11 @@ stop_streaming (GstV4l2BufferPool * pool) case GST_V4L2_IO_USERPTR: case GST_V4L2_IO_DMABUF: case GST_V4L2_IO_DMABUF_IMPORT: - GST_DEBUG_OBJECT (pool, "STREAMOFF"); if (v4l2_ioctl (pool->video_fd, VIDIOC_STREAMOFF, &obj->type) < 0) goto stop_failed; + GST_DEBUG_OBJECT (pool, "STREAMOFF"); + gst_v4l2_allocator_flush (pool->vallocator); for (i = 0; i < pool->num_allocated; i++) {