v4l2bufferpool: Disable create_buf with libv4l2

Libv4l2 does not work with CREATE_BUFS. Instead of failing on random
error caused by libv4l2, disable CREATE_BUFS when an emulated format is
detected.
This commit is contained in:
Nicolas Dufresne 2014-12-16 15:00:22 -05:00
parent 1fe4a19dc2
commit f6259e96c7

View file

@ -484,6 +484,14 @@ gst_v4l2_buffer_pool_set_config (GstBufferPool * bpool, GstStructure * config)
break; break;
} }
/* libv4l2 conversion code does not handle CREATE_BUFS, and may lead to
* instability and crash, disable it for now */
if (can_allocate && obj->fmtdesc->flags & V4L2_FMT_FLAG_EMULATED) {
GST_WARNING_OBJECT (pool,
"libv4l2 converter detected, disabling CREATE_BUFS");
can_allocate = FALSE;
}
if (min_buffers < GST_V4L2_MIN_BUFFERS) { if (min_buffers < GST_V4L2_MIN_BUFFERS) {
updated = TRUE; updated = TRUE;
min_buffers = GST_V4L2_MIN_BUFFERS; min_buffers = GST_V4L2_MIN_BUFFERS;