From 8c48a8ad1c6153770c24ae2e8a9b0f9efedfc4af Mon Sep 17 00:00:00 2001 From: Matthias Vogelgesang Date: Wed, 23 Mar 2011 09:36:41 +0100 Subject: Some very important person at SiSo decided to have 64-bit frame numbers on 64- bit systems and 32-bit frame numbers on 32-bit systems. This commit changes the API to the former, which means it now takes 1.44x10^10 years to have an overflow at a very slow frame rate of 1000 frames per second. --- src/grabbers/me4.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/grabbers') diff --git a/src/grabbers/me4.c b/src/grabbers/me4.c index cc7af2c..f1073ff 100644 --- a/src/grabbers/me4.c +++ b/src/grabbers/me4.c @@ -138,9 +138,10 @@ uint32_t uca_me4_stop_acquire(struct uca_grabber *grabber) return UCA_NO_ERROR; } -uint32_t uca_me4_grab(struct uca_grabber *grabber, void **buffer, uint32_t *frame_number) +uint32_t uca_me4_grab(struct uca_grabber *grabber, void **buffer, uint64_t *frame_number) { - static int32_t last_frame = 0; + static frameindex_t last_frame = 0; + if (grabber->asynchronous) last_frame = Fg_getLastPicNumberEx(GET_FG(grabber), PORT_A, GET_MEM(grabber)); else @@ -149,7 +150,7 @@ uint32_t uca_me4_grab(struct uca_grabber *grabber, void **buffer, uint32_t *fram if (last_frame <= 0) return UCA_ERR_PROP_GENERAL; - *frame_number = last_frame; + *frame_number = (uint64_t) last_frame; *buffer = Fg_getImagePtrEx(GET_FG(grabber), last_frame, PORT_A, GET_MEM(grabber)); return UCA_NO_ERROR; } -- cgit v1.2.3