diff options
author | Stefan Kost <ensonic@users.sourceforge.net> | 2006-08-28 14:59:05 +0000 |
---|---|---|
committer | Stefan Kost <ensonic@users.sourceforge.net> | 2006-08-28 14:59:05 +0000 |
commit | 23707c103211349dda6411edacbbed7880e650aa (patch) | |
tree | 9da468b89e69221778adba623d99cd3eac1a4b38 | |
parent | 93ccc87f1dc1a3f95b8fb90a57f2513ef4efa466 (diff) | |
download | gst-plugins-bad-23707c103211349dda6411edacbbed7880e650aa.tar.gz gst-plugins-bad-23707c103211349dda6411edacbbed7880e650aa.tar.bz2 gst-plugins-bad-23707c103211349dda6411edacbbed7880e650aa.zip |
sys/v4l2/v4l2_calls.c: add comments and more debug logging
Original commit message from CVS:
* sys/v4l2/v4l2_calls.c: (gst_v4l2_fill_lists):
add comments and more debug logging
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | sys/v4l2/v4l2_calls.c | 20 |
2 files changed, 21 insertions, 4 deletions
@@ -1,3 +1,8 @@ +2006-08-28 Stefan Kost,,, <ensonic@users.sf.net> + + * sys/v4l2/v4l2_calls.c: (gst_v4l2_fill_lists): + add comments and more debug logging + 2006-08-24 Tim-Philipp Müller <tim at centricular dot net> Patch by: Sebastian Dröge <slomo at circular-chaos.org> diff --git a/sys/v4l2/v4l2_calls.c b/sys/v4l2/v4l2_calls.c index b77389c6..c74e5be0 100644 --- a/sys/v4l2/v4l2_calls.c +++ b/sys/v4l2/v4l2_calls.c @@ -85,6 +85,7 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object) if (dir != GST_PAD_SINK) { #endif /* #if 0 - output not handled by now */ + GST_DEBUG_OBJECT (v4l2object->element, " inputs"); /* and now, the inputs */ for (n = 0;; n++) { struct v4l2_input input; @@ -180,6 +181,7 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object) } #endif /* #if 0 - output not handled by now */ + GST_DEBUG_OBJECT (v4l2object->element, " norms"); /* norms... */ for (n = 0;; n++) { struct v4l2_standard standard; @@ -208,20 +210,24 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object) v4l2object->stds = g_list_append (v4l2object->stds, (gpointer) norm); } + GST_DEBUG_OBJECT (v4l2object->element, " controls+menus"); /* and lastly, controls+menus (if appropriate) */ for (n = V4L2_CID_BASE;; n++) { struct v4l2_queryctrl control; GstV4l2ColorBalanceChannel *v4l2channel; GstColorBalanceChannel *channel; - /* hacky... */ - if (n == V4L2_CID_LASTP1) + /* when we reached the last official CID, continue with private CIDs */ + if (n == V4L2_CID_LASTP1) { + GST_DEBUG_OBJECT (v4l2object->element, "chhecking private CIDs"); n = V4L2_CID_PRIVATE_BASE; + } control.id = n; if (ioctl (v4l2object->video_fd, VIDIOC_QUERYCTRL, &control) < 0) { if (errno == EINVAL) { if (n < V4L2_CID_PRIVATE_BASE) + /* continue so that we also check private controls */ continue; else break; @@ -249,17 +255,19 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object) case V4L2_CID_EXPOSURE: case V4L2_CID_AUTOGAIN: case V4L2_CID_GAIN: - /* we only handle these for now */ + /* we only handle these for now (why?) */ break; default: GST_DEBUG_OBJECT (v4l2object->element, - "ControlID %s (%d) unhandled, FIXME", control.name, n); + "ControlID %s (%x) unhandled, FIXME", control.name, n); control.id++; break; } if (n != control.id) continue; + GST_DEBUG_OBJECT (v4l2object->element, + "Adding ControlID %s (%x)", control.name, n); v4l2channel = g_object_new (GST_TYPE_V4L2_COLOR_BALANCE_CHANNEL, NULL); channel = GST_COLOR_BALANCE_CHANNEL (v4l2channel); channel->label = g_strdup ((const gchar *) control.name); @@ -301,6 +309,9 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object) channel->max_value = TRUE; break; default: + GST_DEBUG_OBJECT (v4l2object->element, + "No range for ControlID %s (%x), type=%d", + control.name, n, control.type); channel->min_value = channel->max_value = 0; break; } @@ -308,6 +319,7 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object) v4l2object->colors = g_list_append (v4l2object->colors, (gpointer) channel); } + GST_DEBUG_OBJECT (v4l2object->element, "done"); return TRUE; } |