summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMatthias Vogelgesang <matthias.vogelgesang@ipe.fzk.de>2011-03-21 12:37:12 +0100
committerMatthias Vogelgesang <matthias.vogelgesang@ipe.fzk.de>2011-03-21 12:37:12 +0100
commit195ead4d9aa4f1ed244558d49cee348a5ae6e939 (patch)
treece8cb54595b89b8cc9adb683b453d0e0999454f0 /src
parentef5dfb7febd8881158e493451a27a2500ced14cb (diff)
downloaduca-195ead4d9aa4f1ed244558d49cee348a5ae6e939.tar.gz
uca-195ead4d9aa4f1ed244558d49cee348a5ae6e939.tar.bz2
uca-195ead4d9aa4f1ed244558d49cee348a5ae6e939.tar.xz
uca-195ead4d9aa4f1ed244558d49cee348a5ae6e939.zip
Fix grabber allocation and callback registration for me4 and pf
Diffstat (limited to 'src')
-rw-r--r--src/cameras/pf.c3
-rw-r--r--src/grabbers/me4.c10
2 files changed, 8 insertions, 5 deletions
diff --git a/src/cameras/pf.c b/src/cameras/pf.c
index 5ae35ab..a653b99 100644
--- a/src/cameras/pf.c
+++ b/src/cameras/pf.c
@@ -168,7 +168,7 @@ uint32_t uca_pf_start_recording(struct uca_camera *cam)
uint32_t uca_pf_stop_recording(struct uca_camera *cam)
{
- return UCA_NO_ERROR;
+ return cam->grabber->stop_acquire(cam->grabber);
}
uint32_t uca_pf_grab(struct uca_camera *cam, char *buffer, void *metadata)
@@ -219,6 +219,7 @@ uint32_t uca_pf_init(struct uca_camera **cam, struct uca_grabber *grabber)
uca->start_recording = &uca_pf_start_recording;
uca->stop_recording = &uca_pf_stop_recording;
uca->grab = &uca_pf_grab;
+ uca->register_callback = &uca_pf_register_callback;
/* Prepare frame grabber for recording */
int val = UCA_CL_8BIT_FULL_8;
diff --git a/src/grabbers/me4.c b/src/grabbers/me4.c
index 8868deb..42632af 100644
--- a/src/grabbers/me4.c
+++ b/src/grabbers/me4.c
@@ -75,8 +75,9 @@ uint32_t uca_me4_set_property(struct uca_grabber *grabber, enum uca_grabber_cons
return UCA_ERR_PROP_INVALID;
if (fg_prop->interpret_data) {
- /* Data is not a value but a constant that we need to translate to
- * Silicon Software speak. Therefore, we try to find it in the map also. */
+ /* Data is not a value but a SiSo specific constant that we need to
+ * translate to Silicon Software speak. Therefore, we try to find it in
+ * the map. */
struct uca_sisofg_map_t *constant = uca_me4_find_property(*((uint32_t *) data));
if (constant != NULL)
return Fg_setParameter(GET_FG(grabber), fg_prop->fg_id, &constant->fg_id, PORT_A) == FG_OK ? UCA_NO_ERROR : UCA_ERR_PROP_INVALID;
@@ -103,8 +104,8 @@ uint32_t uca_me4_alloc(struct uca_grabber *grabber, uint32_t pixel_size, uint32_
return UCA_ERR_PROP_GENERAL;
uint32_t width, height;
- uca_me4_get_property(grabber, FG_WIDTH, &width);
- uca_me4_get_property(grabber, FG_HEIGHT, &height);
+ uca_me4_get_property(grabber, UCA_GRABBER_WIDTH, &width);
+ uca_me4_get_property(grabber, UCA_GRABBER_HEIGHT, &height);
dma_mem *mem = Fg_AllocMemEx(GET_FG(grabber), n_buffers*width*height*pixel_size, n_buffers);
if (mem != NULL) {
@@ -206,6 +207,7 @@ uint32_t uca_me4_init(struct uca_grabber **grabber)
uca->acquire = &uca_me4_acquire;
uca->stop_acquire = &uca_me4_stop_acquire;
uca->grab = &uca_me4_grab;
+ uca->register_callback = &uca_me4_register_callback;
uca->callback = NULL;
*grabber = uca;