mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 20:21:24 +00:00
v4l2object: Fix try/s_fmt errors
According to the spec,TRY_FMT cannot return EBUSY, though it can return EINVAL if it was not possible to update the format to something supported. https://bugzilla.gnome.org/show_bug.cgi?id=785156
This commit is contained in:
parent
558e9f4e57
commit
c00d4cae3c
1 changed files with 19 additions and 6 deletions
|
@ -3552,9 +3552,16 @@ invalid_caps:
|
||||||
}
|
}
|
||||||
try_fmt_failed:
|
try_fmt_failed:
|
||||||
{
|
{
|
||||||
if (errno == EBUSY) {
|
if (errno == EINVAL) {
|
||||||
GST_V4L2_ERROR (error, RESOURCE, BUSY,
|
GST_V4L2_ERROR (error, RESOURCE, SETTINGS,
|
||||||
(_("Device '%s' is busy"), v4l2object->videodev),
|
(_("Device '%s' has no supported format"), v4l2object->videodev),
|
||||||
|
("Call to TRY_FMT failed for %" GST_FOURCC_FORMAT " @ %dx%d: %s",
|
||||||
|
GST_FOURCC_ARGS (pixelformat), width, height,
|
||||||
|
g_strerror (errno)));
|
||||||
|
} else {
|
||||||
|
GST_V4L2_ERROR (error, RESOURCE, FAILED,
|
||||||
|
(_("Device '%s' failed during initialization"),
|
||||||
|
v4l2object->videodev),
|
||||||
("Call to TRY_FMT failed for %" GST_FOURCC_FORMAT " @ %dx%d: %s",
|
("Call to TRY_FMT failed for %" GST_FOURCC_FORMAT " @ %dx%d: %s",
|
||||||
GST_FOURCC_ARGS (pixelformat), width, height,
|
GST_FOURCC_ARGS (pixelformat), width, height,
|
||||||
g_strerror (errno)));
|
g_strerror (errno)));
|
||||||
|
@ -3569,10 +3576,16 @@ set_fmt_failed:
|
||||||
("Call to S_FMT failed for %" GST_FOURCC_FORMAT " @ %dx%d: %s",
|
("Call to S_FMT failed for %" GST_FOURCC_FORMAT " @ %dx%d: %s",
|
||||||
GST_FOURCC_ARGS (pixelformat), width, height,
|
GST_FOURCC_ARGS (pixelformat), width, height,
|
||||||
g_strerror (errno)));
|
g_strerror (errno)));
|
||||||
} else {
|
} else if (errno == EINVAL) {
|
||||||
GST_V4L2_ERROR (error, RESOURCE, SETTINGS,
|
GST_V4L2_ERROR (error, RESOURCE, SETTINGS,
|
||||||
(_("Device '%s' cannot capture at %dx%d"),
|
(_("Device '%s' has no supported format"), v4l2object->videodev),
|
||||||
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)));
|
||||||
|
} else {
|
||||||
|
GST_V4L2_ERROR (error, RESOURCE, FAILED,
|
||||||
|
(_("Device '%s' failed during initialization"),
|
||||||
|
v4l2object->videodev),
|
||||||
("Call to S_FMT failed for %" GST_FOURCC_FORMAT " @ %dx%d: %s",
|
("Call to S_FMT failed for %" GST_FOURCC_FORMAT " @ %dx%d: %s",
|
||||||
GST_FOURCC_ARGS (pixelformat), width, height,
|
GST_FOURCC_ARGS (pixelformat), width, height,
|
||||||
g_strerror (errno)));
|
g_strerror (errno)));
|
||||||
|
|
Loading…
Reference in a new issue