mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-28 19:20:35 +00:00
v4l2: only to STREAMOFF when streaming
Only call STREAMOFF when we previously called STREAMON
This commit is contained in:
parent
83bc5e0765
commit
b98bc75f47
1 changed files with 17 additions and 16 deletions
|
@ -398,24 +398,25 @@ gst_v4l2_buffer_pool_stop (GstBufferPool * bpool)
|
|||
|
||||
GST_DEBUG_OBJECT (pool, "stopping pool");
|
||||
|
||||
switch (obj->mode) {
|
||||
case GST_V4L2_IO_RW:
|
||||
break;
|
||||
case GST_V4L2_IO_MMAP:
|
||||
case GST_V4L2_IO_USERPTR:
|
||||
/* we actually need to sync on all queued buffers but not
|
||||
* on the non-queued ones */
|
||||
GST_DEBUG_OBJECT (pool, "STREAMOFF");
|
||||
if (v4l2_ioctl (pool->video_fd, VIDIOC_STREAMOFF, &obj->type) < 0)
|
||||
goto stop_failed;
|
||||
break;
|
||||
default:
|
||||
g_assert_not_reached ();
|
||||
break;
|
||||
if (pool->streaming) {
|
||||
switch (obj->mode) {
|
||||
case GST_V4L2_IO_RW:
|
||||
break;
|
||||
case GST_V4L2_IO_MMAP:
|
||||
case GST_V4L2_IO_USERPTR:
|
||||
/* we actually need to sync on all queued buffers but not
|
||||
* on the non-queued ones */
|
||||
GST_DEBUG_OBJECT (pool, "STREAMOFF");
|
||||
if (v4l2_ioctl (pool->video_fd, VIDIOC_STREAMOFF, &obj->type) < 0)
|
||||
goto stop_failed;
|
||||
break;
|
||||
default:
|
||||
g_assert_not_reached ();
|
||||
break;
|
||||
}
|
||||
pool->streaming = FALSE;
|
||||
}
|
||||
|
||||
pool->streaming = FALSE;
|
||||
|
||||
/* first free the buffers in the queue */
|
||||
ret = GST_BUFFER_POOL_CLASS (parent_class)->stop (bpool);
|
||||
|
||||
|
|
Loading…
Reference in a new issue