From 490f1c0132a02d0db547e7e19d913c517f8a9470 Mon Sep 17 00:00:00 2001 From: Thomas Vander Stichele Date: Wed, 5 Apr 2006 12:41:14 +0000 Subject: ext/raw1394/gstdv1394src.c: distinguish between device not found and could not open for reading Original commit message from CVS: * ext/raw1394/gstdv1394src.c: distinguish between device not found and could not open for reading --- ext/raw1394/gstdv1394src.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'ext/raw1394') diff --git a/ext/raw1394/gstdv1394src.c b/ext/raw1394/gstdv1394src.c index 4e1e2e58..d3942d6c 100644 --- a/ext/raw1394/gstdv1394src.c +++ b/ext/raw1394/gstdv1394src.c @@ -667,8 +667,14 @@ gst_dv1394src_start (GstBaseSrc * bsrc) src->handle = raw1394_new_handle (); - if (!src->handle) - goto no_handle; + if (!src->handle) { + if (errno == EACCES) + goto permission_denied; + else if (errno == ENOENT) + goto not_found; + else + goto no_handle; + } raw1394_set_userdata (src->handle, src); @@ -708,10 +714,20 @@ socket_pair: GST_ERROR_SYSTEM); return FALSE; } +permission_denied: + { + GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ, (NULL), GST_ERROR_SYSTEM); + return FALSE; + } +not_found: + { + GST_ELEMENT_ERROR (src, RESOURCE, NOT_FOUND, (NULL), GST_ERROR_SYSTEM); + return FALSE; + } no_handle: { - GST_ELEMENT_ERROR (src, RESOURCE, NOT_FOUND, (NULL), - ("can't get raw1394 handle")); + GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ, (NULL), + ("can't get raw1394 handle (%s)", g_strerror (errno))); return FALSE; } no_ports: -- cgit