summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--ext/raw1394/gstdv1394src.c24
2 files changed, 26 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index d2ab7d4e..89ea9e39 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-04-05 Thomas Vander Stichele <thomas at apestaart dot org>
+
+ * ext/raw1394/gstdv1394src.c:
+ distinguish between device not found and could not open for
+ reading
+
2006-04-03 Thomas Vander Stichele <thomas at apestaart dot org>
* Makefile.am:
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: