diff options
author | Víctor Manuel Jáquez Leal <vjaquez@igalia.com> | 2016-11-30 19:53:30 +0100 |
---|---|---|
committer | Víctor Manuel Jáquez Leal <vjaquez@igalia.com> | 2016-11-30 20:13:55 +0100 |
commit | 4b3baab40a3baa2042985a0fce6421661cbffca2 (patch) | |
tree | e3f3debe03dcc1acd065a72fe2bd70d4c85c9c6d /sys | |
parent | 649364b923905ac4dcf904854c03cc8317a8f1f7 (diff) | |
download | gstreamer-plugins-bad-4b3baab40a3baa2042985a0fce6421661cbffca2.tar.gz |
kmssink: post error message if start() fails
It is expected to post an error message in the bus if the device cannot
be started.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/kms/gstkmssink.c | 37 |
1 files changed, 26 insertions, 11 deletions
diff --git a/sys/kms/gstkmssink.c b/sys/kms/gstkmssink.c index 835f02c61..2f05c633d 100644 --- a/sys/kms/gstkmssink.c +++ b/sys/kms/gstkmssink.c @@ -555,7 +555,7 @@ retry_find_plane: goto plane_failed; if (!ensure_allowed_caps (self, conn, plane, res)) - goto bail; + goto allowed_caps_failed; self->conn_id = conn->connector_id; self->crtc_id = crtc->crtc_id; @@ -602,53 +602,68 @@ bail: /* ERRORS */ open_failed: { - GST_ERROR_OBJECT (self, "Could not open DRM module %s: %s", - GST_STR_NULL (self->devname), strerror (errno)); + GST_ELEMENT_ERROR (self, RESOURCE, OPEN_READ_WRITE, + ("Could not open DRM module %s", GST_STR_NULL (self->devname)), + ("reason: %s (%d)", strerror (errno), errno)); return FALSE; } resources_failed: { - GST_ERROR_OBJECT (self, "drmModeGetResources failed: %s (%d)", - strerror (errno), errno); + GST_ELEMENT_ERROR (self, RESOURCE, SETTINGS, + ("drmModeGetResources failed"), + ("reason: %s (%d)", strerror (errno), errno)); goto bail; } connector_failed: { - GST_ERROR_OBJECT (self, "Could not find a valid monitor connector"); + GST_ELEMENT_ERROR (self, RESOURCE, SETTINGS, + ("Could not find a valid monitor connector"), (NULL)); goto bail; } crtc_failed: { - GST_ERROR_OBJECT (self, "Could not find a crtc for connector"); + GST_ELEMENT_ERROR (self, RESOURCE, SETTINGS, + ("Could not find a crtc for connector"), (NULL)); goto bail; } set_cap_failed: { - GST_ERROR_OBJECT (self, "Could not set universal planes capability bit"); + GST_ELEMENT_ERROR (self, RESOURCE, SETTINGS, + ("Could not set universal planes capability bit"), (NULL)); goto bail; } plane_resources_failed: { - GST_ERROR_OBJECT (self, "drmModeGetPlaneResources failed: %s (%d)", - strerror (errno), errno); + GST_ELEMENT_ERROR (self, RESOURCE, SETTINGS, + ("drmModeGetPlaneResources failed"), + ("reason: %s (%d)", strerror (errno), errno)); goto bail; } plane_failed: { if (universal_planes) { - GST_ERROR_OBJECT (self, "Could not find a plane for crtc"); + GST_ELEMENT_ERROR (self, RESOURCE, SETTINGS, + ("Could not find a plane for crtc"), (NULL)); goto bail; } else { universal_planes = TRUE; goto retry_find_plane; } } + +allowed_caps_failed: + { + GST_ELEMENT_ERROR (self, RESOURCE, SETTINGS, + ("Could not get allowed GstCaps of device"), + ("driver does not provide mode settings configuration")); + goto bail; + } } static gboolean |