summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/grabbers/me4.c4
-rw-r--r--src/uca-cam.c5
-rw-r--r--src/uca-grabber.h2
3 files changed, 7 insertions, 4 deletions
diff --git a/src/grabbers/me4.c b/src/grabbers/me4.c
index a833c07..647c5be 100644
--- a/src/grabbers/me4.c
+++ b/src/grabbers/me4.c
@@ -34,7 +34,7 @@ uint32_t uca_me4_get_property(struct uca_grabber_t *grabber, enum uca_property_i
return Fg_getParameter(GET_FG(grabber), property, data, PORT_A) == FG_OK ? UCA_NO_ERROR : UCA_ERR_PROP_GENERAL;
}
-uint32_t uca_me4_alloc(struct uca_grabber_t *grabber, uint32_t n_buffers)
+uint32_t uca_me4_alloc(struct uca_grabber_t *grabber, uint32_t pixel_size, uint32_t n_buffers)
{
if (GET_MEM(grabber) != NULL)
/* FIXME: invent better error code */
@@ -45,7 +45,7 @@ uint32_t uca_me4_alloc(struct uca_grabber_t *grabber, uint32_t n_buffers)
uca_me4_get_property(grabber, FG_HEIGHT, &height);
/* FIXME: get size of pixel */
- dma_mem *mem = Fg_AllocMemEx(GET_FG(grabber), n_buffers*width*height*sizeof(uint16_t), n_buffers);
+ dma_mem *mem = Fg_AllocMemEx(GET_FG(grabber), n_buffers*width*height*pixel_size, n_buffers);
if (mem != NULL) {
((struct uca_me4_grabber_t *) grabber->user)->mem = mem;
return UCA_NO_ERROR;
diff --git a/src/uca-cam.c b/src/uca-cam.c
index b77d62b..31ad416 100644
--- a/src/uca-cam.c
+++ b/src/uca-cam.c
@@ -6,7 +6,10 @@
uint32_t uca_cam_alloc(struct uca_camera_t *cam, uint32_t n_buffers)
{
- cam->grabber->alloc(cam->grabber, n_buffers);
+ uint32_t bitdepth;
+ cam->get_property(cam, UCA_PROP_BITDEPTH, &bitdepth);
+ const int pixel_size = bitdepth == 8 ? 1 : 2;
+ cam->grabber->alloc(cam->grabber, pixel_size, n_buffers);
}
enum uca_cam_state uca_cam_get_state(struct uca_camera_t *cam)
diff --git a/src/uca-grabber.h b/src/uca-grabber.h
index 4485b07..6ae7e8e 100644
--- a/src/uca-grabber.h
+++ b/src/uca-grabber.h
@@ -37,7 +37,7 @@ typedef uint32_t (*uca_grabber_get_property) (struct uca_grabber_t *grabber, enu
* \brief Allocate buffers with current width, height and bitdepth
* \note Subsequent changes of width and height might corrupt memory
*/
-typedef uint32_t (*uca_grabber_alloc) (struct uca_grabber_t *grabber, uint32_t n_buffers);
+typedef uint32_t (*uca_grabber_alloc) (struct uca_grabber_t *grabber, uint32_t pixel_size, uint32_t n_buffers);
/**
* \brief Begin acquiring frames