diff options
author | Matthias Vogelgesang <matthias.vogelgesang@gmail.com> | 2012-06-29 09:56:26 +0200 |
---|---|---|
committer | Matthias Vogelgesang <matthias.vogelgesang@gmail.com> | 2012-06-29 10:09:06 +0200 |
commit | 9551b293504f772cbcbd0e67714a30149738118b (patch) | |
tree | 531faae7b7c22e5353c36a63a055a66d347a3bca /test/grab.c | |
parent | a94f1c1a38673a37093f6e3bae7e470807046cbd (diff) | |
download | libuca-9551b293504f772cbcbd0e67714a30149738118b.tar.gz libuca-9551b293504f772cbcbd0e67714a30149738118b.tar.bz2 libuca-9551b293504f772cbcbd0e67714a30149738118b.tar.xz libuca-9551b293504f772cbcbd0e67714a30149738118b.zip |
Fix LU-15: Broken ROI image
This fix contains two changes: 1. We check that passed ROI requests are
multiples of possible ROI steps as provided by the camera. If this is not the
case, the request is ignored and a warning issued. 2. We added two new base
properties ROI_WIDTH_MULTIPLIER and ROI_HEIGHT_MULTIPLIER that expose this
information to client programs.
Diffstat (limited to 'test/grab.c')
-rw-r--r-- | test/grab.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/test/grab.c b/test/grab.c index c4b3f3c..a5f1cf5 100644 --- a/test/grab.c +++ b/test/grab.c @@ -36,7 +36,7 @@ int main(int argc, char *argv[]) GError *error = NULL; (void) signal(SIGINT, sigint_handler); guint sensor_width, sensor_height, sensor_width_extended, sensor_height_extended; - guint roi_width, roi_height, roi_x, roi_y; + guint roi_width, roi_height, roi_x, roi_y, roi_width_multiplier, roi_height_multiplier; guint bits, sensor_rate; gchar *name; @@ -62,13 +62,15 @@ int main(int argc, char *argv[]) "roi-x0", 0, "roi-y0", 0, "sensor-extended", FALSE, - "roi-width", sensor_width, + "roi-width", 1000, "roi-height", sensor_height, NULL); g_object_get(G_OBJECT(camera), "roi-width", &roi_width, "roi-height", &roi_height, + "roi-width-multiplier", &roi_width_multiplier, + "roi-height-multiplier", &roi_height_multiplier, "roi-x0", &roi_x, "roi-y0", &roi_y, "sensor-bitdepth", &bits, @@ -78,10 +80,13 @@ int main(int argc, char *argv[]) g_print("Camera: %s\n", name); g_free(name); - g_print("Sensor: %ix%i px (extended: %ix%i), ROI %ix%i @ (%i, %i) and %i Hz\n", + g_print("Sensor: %ix%i px (extended: %ix%i) @ %i Hz\n", sensor_width, sensor_height, sensor_width_extended, sensor_height_extended, - roi_width, roi_height, roi_x, roi_y, sensor_rate); + sensor_rate); + + g_print("ROI: %ix%i @ (%i, %i), steps: %i, %i\n", + roi_width, roi_height, roi_x, roi_y, roi_width_multiplier, roi_height_multiplier); const int pixel_size = bits == 8 ? 1 : 2; gpointer buffer = g_malloc0(roi_width * roi_height * pixel_size); |