v4l2: use GST_RESOURCE_ERROR_BUSY if v4l2_ioctl fails with EBUSY

https://bugzilla.gnome.org/show_bug.cgi?id=658543
This commit is contained in:
Guillaume Desmottes 2011-09-08 13:28:24 +02:00 committed by Sebastian Dröge
parent ed3adece77
commit 06c65418d7

View file

@ -2175,11 +2175,20 @@ get_fmt_failed:
}
set_fmt_failed:
{
GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, SETTINGS,
(_("Device '%s' cannot capture at %dx%d"),
v4l2object->videodev, width, height),
("Call to S_FMT failed for %" GST_FOURCC_FORMAT " @ %dx%d: %s",
GST_FOURCC_ARGS (pixelformat), width, height, g_strerror (errno)));
if (errno == EBUSY) {
GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, BUSY,
(_("Device '%s' is busy"), v4l2object->videodev),
("Call to S_FMT failed for %" GST_FOURCC_FORMAT " @ %dx%d: %s",
GST_FOURCC_ARGS (pixelformat), width, height,
g_strerror (errno)));
} else {
GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, SETTINGS,
(_("Device '%s' cannot capture at %dx%d"),
v4l2object->videodev, width, height),
("Call to S_FMT failed for %" GST_FOURCC_FORMAT " @ %dx%d: %s",
GST_FOURCC_ARGS (pixelformat), width, height,
g_strerror (errno)));
}
return FALSE;
}
invalid_dimensions: