简体   繁体   中英

How to synchronize threads to capture same number of frames?

I am developing a Kinect application. I have two threads, one for reading joint's values (contains x,y,z coordination of 20 joints) and the other for reading Depth values (76800 short values each frame). I am recording these values starting from pushing my start button until pushing the end button. I expect to write the same number of frames of joints and depth but i always end up with much joint frame. I capture 150 depth frame but 180 joint frame, I thought that it is because of the amount of data that depth is writing into buffer. joint just write 60 floats in each frame but depth 76800 shorts.

How can i capture equal amount of frames from each? (Kinect capture depth and coordinate with 25 to 30 FPS)

This log also shows the number of each thread called which are not equal:

112/11/9 4:19:58: SKELETON

112/11/9 4:19:58: DEPTH

112/11/9 4:19:58: SKELETON

112/11/9 4:19:58: SKELETON

112/11/9 4:19:58: DEPTH

112/11/9 4:19:58: SKELETON

112/11/9 4:19:59: DEPTH

112/11/9 4:19:59: DEPTH

112/11/9 4:19:59: SKELETON

112/11/9 4:19:59: SKELETON

112/11/9 4:19:59: SKELETON

112/11/9 4:19:59: DEPTH

112/11/9 4:19:59: DEPTH

112/11/9 4:19:59: SKELETON

112/11/9 4:19:59: SKELETON

112/11/9 4:19:59: DEPTH

112/11/9 4:19:59: SKELETON


112/11/9 4:19:59: SKELETON

112/11/9 4:19:59: SKELETON


112/11/9 4:19:59: SKELETON

112/11/9 4:19:59: DEPTH

112/11/9 4:19:59: SKELETON

112/11/9 4:19:59: DEPTH

112/11/9 4:19:59: SKELETON

112/11/9 4:19:59: SKELETON

112/11/9 4:19:59: DEPTH


112/11/9 4:19:59: SKELETON

112/11/9 4:19:59: DEPTH

112/11/9 4:19:59: DEPTH

112/11/9 4:19:59: SKELETON

112/11/9 4:19:59: SKELETON


112/11/9 4:19:59: DEPTH

112/11/9 4:20:0: SKELETON

112/11/9 4:20:0: SKELETON

112/11/9 4:20:0: SKELETON

112/11/9 4:20:0: DEPTH

112/11/9 4:20:0: SKELETON

112/11/9 4:20:0: DEPTH

112/11/9 4:20:0: DEPTH

112/11/9 4:20:0: SKELETON

112/11/9 4:20:0: SKELETON

112/11/9 4:20:0: DEPTH

112/11/9 4:20:0: SKELETON

112/11/9 4:20:0: DEPTH

112/11/9 4:20:0: SKELETON

112/11/9 4:20:0: DEPTH

112/11/9 4:20:0: SKELETON

112/11/9 4:20:0: DEPTH

112/11/9 4:20:0: SKELETON

112/11/9 4:20:0: SKELETON

112/11/9 4:20:0: SKELETON

112/11/9 4:20:0: SKELETON

112/11/9 4:20:0: DEPTH

112/11/9 4:20:0: SKELETON

112/11/9 4:20:0: DEPTH

112/11/9 4:20:0: SKELETON

112/11/9 4:20:0: SKELETON

112/11/9 4:20:0: SKELETON

112/11/9 4:20:1: SKELETON

112/11/9 4:20:1: DEPTH

112/11/9 4:20:1: DEPTH

112/11/9 4:20:1: SKELETON

112/11/9 4:20:1: SKELETON

112/11/9 4:20:1: DEPTH

112/11/9 4:20:1: SKELETON

112/11/9 4:20:1: DEPTH

112/11/9 4:20:1: SKELETON

112/11/9 4:20:1: DEPTH

112/11/9 4:20:1: DEPTH

112/11/9 4:20:1: SKELETON

112/11/9 4:20:1: SKELETON

112/11/9 4:20:1: SKELETON

112/11/9 4:20:1: DEPTH

112/11/9 4:20:1: DEPTH

112/11/9 4:20:1: DEPTH

112/11/9 4:20:1: SKELETON

112/11/9 4:20:1: DEPTH

112/11/9 4:20:1: DEPTH

112/11/9 4:20:1: SKELETON

112/11/9 4:20:1: SKELETON

112/11/9 4:20:1: SKELETON

112/11/9 4:20:1: SKELETON

112/11/9 4:20:1: DEPTH

112/11/9 4:20:1: SKELETON

112/11/9 4:20:1: DEPTH

112/11/9 4:20:1: SKELETON

112/11/9 4:20:1: DEPTH

112/11/9 4:20:1: SKELETON

112/11/9 4:20:1: DEPTH

112/11/9 4:20:1: SKELETON

112/11/9 4:20:2: DEPTH

112/11/9 4:20:2: SKELETON

112/11/9 4:20:2: SKELETON

112/11/9 4:20:2: SKELETON

112/11/9 4:20:2: SKELETON

112/11/9 4:20:2: SKELETON

112/11/9 4:20:2: DEPTH

112/11/9 4:20:2: DEPTH

112/11/9 4:20:2: DEPTH

112/11/9 4:20:2: DEPTH

112/11/9 4:20:2: SKELETON

112/11/9 4:20:2: SKELETON

112/11/9 4:20:2: SKELETON

112/11/9 4:20:2: SKELETON

112/11/9 4:20:2: SKELETON

112/11/9 4:20:2: SKELETON

112/11/9 4:20:2: SKELETON

112/11/9 4:20:2: SKELETON

112/11/9 4:20:2: DEPTH

112/11/9 4:20:2: SKELETON

112/11/9 4:20:2: SKELETON

112/11/9 4:20:2: DEPTH

112/11/9 4:20:2: SKELETON

112/11/9 4:20:2: SKELETON

112/11/9 4:20:2: DEPTH

112/11/9 4:20:2: SKELETON

112/11/9 4:20:2: SKELETON

112/11/9 4:20:2: SKELETON

112/11/9 4:20:2: DEPTH

112/11/9 4:20:3: DEPTH

112/11/9 4:20:3: SKELETON

112/11/9 4:20:3: SKELETON

112/11/9 4:20:3: DEPTH

112/11/9 4:20:3: DEPTH

112/11/9 4:20:3: SKELETON

112/11/9 4:20:3: DEPTH

112/11/9 4:20:3: SKELETON

112/11/9 4:20:3: DEPTH

112/11/9 4:20:3: SKELETON

112/11/9 4:20:3: SKELETON

112/11/9 4:20:3: SKELETON

112/11/9 4:20:3: SKELETON

112/11/9 4:20:3: SKELETON


112/11/9 4:20:3: SKELETON

112/11/9 4:20:3: DEPTH

112/11/9 4:20:3: DEPTH


112/11/9 4:20:3: DEPTH

112/11/9 4:20:3: SKELETON

112/11/9 4:20:3: SKELETON

112/11/9 4:20:3: DEPTH

112/11/9 4:20:3: SKELETON

112/11/9 4:20:3: DEPTH

112/11/9 4:20:4: SKELETON

112/11/9 4:20:4: DEPTH

112/11/9 4:20:4: DEPTH

112/11/9 4:20:4: SKELETON

112/11/9 4:20:4: SKELETON

112/11/9 4:20:4: DEPTH

112/11/9 4:20:4: DEPTH

112/11/9 4:20:4: DEPTH

112/11/9 4:20:4: SKELETON

112/11/9 4:20:4: SKELETON

112/11/9 4:20:4: DEPTH

112/11/9 4:20:4: DEPTH

112/11/9 4:20:4: SKELETON

112/11/9 4:20:4: SKELETON

112/11/9 4:20:4: DEPTH

112/11/9 4:20:4: DEPTH

112/11/9 4:20:4: DEPTH

112/11/9 4:20:4: SKELETON

112/11/9 4:20:4: SKELETON

112/11/9 4:20:5: DEPTH

112/11/9 4:20:5: SKELETON

112/11/9 4:20:5: DEPTH

112/11/9 4:20:5: SKELETON

112/11/9 4:20:5: SKELETON

112/11/9 4:20:5: DEPTH

112/11/9 4:20:5: DEPTH

112/11/9 4:20:5: SKELETON

112/11/9 4:20:5: DEPTH

112/11/9 4:20:5: SKELETON

112/11/9 4:20:5: DEPTH

112/11/9 4:20:5: SKELETON

112/11/9 4:20:5: SKELETON

112/11/9 4:20:5: DEPTH

112/11/9 4:20:5: SKELETON

112/11/9 4:20:5: DEPTH


112/11/9 4:20:5: SKELETON

112/11/9 4:20:5: DEPTH


112/11/9 4:20:5: SKELETON

112/11/9 4:20:5: DEPTH

112/11/9 4:20:5: DEPTH

112/11/9 4:20:5: SKELETON


112/11/9 4:20:5: SKELETON

112/11/9 4:20:5: DEPTH

112/11/9 4:20:5: DEPTH

112/11/9 4:20:6: SKELETON

112/11/9 4:20:6: DEPTH

112/11/9 4:20:6: DEPTH

112/11/9 4:20:6: SKELETON

112/11/9 4:20:6: SKELETON

112/11/9 4:20:6: DEPTH

112/11/9 4:20:6: SKELETON

112/11/9 4:20:6: SKELETON


112/11/9 4:20:6: SKELETON

112/11/9 4:20:6: SKELETON

112/11/9 4:20:6: SKELETON

112/11/9 4:20:6: DEPTH

112/11/9 4:20:6: SKELETON

112/11/9 4:20:6: DEPTH

112/11/9 4:20:6: SKELETON

112/11/9 4:20:6: SKELETON

112/11/9 4:20:6: SKELETON

112/11/9 4:20:6: SKELETON

112/11/9 4:20:6: DEPTH

112/11/9 4:20:6: SKELETON

112/11/9 4:20:6: SKELETON

112/11/9 4:20:6: SKELETON

112/11/9 4:20:6: DEPTH

112/11/9 4:20:6: DEPTH
N
112/11/9 4:20:7: SKELETON

112/11/9 4:20:7: DEPTH

112/11/9 4:20:7: DEPTH

112/11/9 4:20:7: SKELETON

112/11/9 4:20:7: SKELETON

112/11/9 4:20:7: DEPTH

112/11/9 4:20:8: SKELETON

112/11/9 4:20:8: DEPTH

112/11/9 4:20:8: SKELETON

112/11/9 4:20:8: SKELETON

112/11/9 4:20:8: DEPTH

112/11/9 4:20:8: DEPTH

112/11/9 4:20:8: SKELETON

112/11/9 4:20:8: SKELETON

112/11/9 4:20:8: SKELETON

112/11/9 4:20:8: SKELETON

112/11/9 4:20:8: DEPTH

112/11/9 4:20:8: SKELETON

112/11/9 4:20:8: SKELETON

112/11/9 4:20:8: DEPTH

112/11/9 4:20:8: DEPTH

112/11/9 4:20:8: SKELETON

112/11/9 4:20:8: DEPTH

112/11/9 4:20:8: SKELETON

112/11/9 4:20:8: SKELETON

112/11/9 4:20:8: DEPTH

112/11/9 4:20:8: DEPTH

112/11/9 4:20:8: SKELETON

112/11/9 4:20:8: SKELETON

112/11/9 4:20:8: SKELETON

112/11/9 4:20:8: DEPTH

112/11/9 4:20:8: SKELETON

112/11/9 4:20:8: SKELETON

112/11/9 4:20:8: SKELETON

112/11/9 4:20:8: DEPTH

112/11/9 4:20:8: SKELETON

112/11/9 4:20:8: SKELETON

112/11/9 4:20:8: DEPTH

112/11/9 4:20:9: SKELETON

112/11/9 4:20:9: DEPTH

112/11/9 4:20:9: SKELETON

112/11/9 4:20:9: SKELETON

112/11/9 4:20:9: DEPTH

112/11/9 4:20:9: SKELETON

112/11/9 4:20:9: DEPTH

112/11/9 4:20:9: SKELETON

112/11/9 4:20:9: DEPTH

112/11/9 4:20:9: SKELETON

112/11/9 4:20:9: DEPTH

112/11/9 4:20:9: SKELETON

112/11/9 4:20:9: SKELETON

112/11/9 4:20:9: DEPTH

112/11/9 4:20:9: SKELETON

112/11/9 4:20:9: DEPTH

112/11/9 4:20:9: DEPTH

112/11/9 4:20:9: SKELETON

112/11/9 4:20:9: SKELETON

112/11/9 4:20:9: SKELETON

112/11/9 4:20:9: DEPTH

112/11/9 4:20:9: SKELETON

112/11/9 4:20:9: SKELETON

112/11/9 4:20:9: SKELETON

112/11/9 4:20:9: DEPTH

112/11/9 4:20:9: SKELETON

112/11/9 4:20:9: SKELETON

112/11/9 4:20:9: SKELETON

112/11/9 4:20:10: DEPTH

112/11/9 4:20:10: SKELETON

112/11/9 4:20:10: SKELETON

112/11/9 4:20:10: SKELETON

112/11/9 4:20:10: DEPTH

112/11/9 4:20:10: SKELETON

112/11/9 4:20:10: SKELETON

112/11/9 4:20:10: DEPTH

112/11/9 4:20:10: SKELETON

112/11/9 4:20:10: SKELETON

112/11/9 4:20:10: SKELETON

112/11/9 4:20:10: DEPTH

112/11/9 4:20:10: SKELETON

112/11/9 4:20:10: SKELETON


112/11/9 4:20:10: DEPTH

112/11/9 4:20:10: SKELETON

112/11/9 4:20:10: SKELETON

112/11/9 4:20:10: DEPTH

112/11/9 4:20:10: SKELETON

112/11/9 4:20:10: DEPTH

112/11/9 4:20:10: SKELETON

112/11/9 4:20:10: DEPTH

112/11/9 4:20:10: SKELETON

112/11/9 4:20:10: SKELETON

112/11/9 4:20:10: DEPTH

112/11/9 4:20:10: SKELETON

112/11/9 4:20:10: DEPTH

112/11/9 4:20:10: SKELETON

112/11/9 4:20:11: SKELETON

112/11/9 4:20:11: DEPTH

112/11/9 4:20:11: SKELETON

112/11/9 4:20:11: DEPTH

112/11/9 4:20:11: SKELETON

112/11/9 4:20:11: DEPTH

112/11/9 4:20:11: SKELETON

112/11/9 4:20:11: DEPTH

112/11/9 4:20:11: SKELETON

112/11/9 4:20:11: SKELETON

112/11/9 4:20:11: DEPTH

112/11/9 4:20:11: SKELETON

112/11/9 4:20:11: DEPTH

112/11/9 4:20:11: SKELETON

112/11/9 4:20:11: DEPTH

112/11/9 4:20:11: SKELETON

112/11/9 4:20:11: SKELETON

112/11/9 4:20:11: DEPTH

112/11/9 4:20:11: SKELETON

112/11/9 4:20:11: DEPTH

112/11/9 4:20:11: SKELETON

112/11/9 4:20:11: SKELETON

112/11/9 4:20:11: DEPTH

112/11/9 4:20:11: DEPTH

112/11/9 4:20:11: SKELETON

112/11/9 4:20:11: DEPTH
N
112/11/9 4:20:12: DEPTH

112/11/9 4:20:12: SKELETON

112/11/9 4:20:12: DEPTH

112/11/9 4:20:12: SKELETON

112/11/9 4:20:12: DEPTH

112/11/9 4:20:12: SKELETON

112/11/9 4:20:12: SKELETON

112/11/9 4:20:12: DEPTH

112/11/9 4:20:12: SKELETON

112/11/9 4:20:12: DEPTH

112/11/9 4:20:12: SKELETON

112/11/9 4:20:12: DEPTH

112/11/9 4:20:12: SKELETON

112/11/9 4:20:12: DEPTH

112/11/9 4:20:12: SKELETON

112/11/9 4:20:12: DEPTH

112/11/9 4:20:12: SKELETON

112/11/9 4:20:12: DEPTH

112/11/9 4:20:12: SKELETON

112/11/9 4:20:12: SKELETON

112/11/9 4:20:12: DEPTH

112/11/9 4:20:12: DEPTH

112/11/9 4:20:12: SKELETON

112/11/9 4:20:12: SKELETON

112/11/9 4:20:12: DEPTH

112/11/9 4:20:13: SKELETON

112/11/9 4:20:13: DEPTH

112/11/9 4:20:13: SKELETON

112/11/9 4:20:13: SKELETON

112/11/9 4:20:13: DEPTH

112/11/9 4:20:13: SKELETON

112/11/9 4:20:13: DEPTH

112/11/9 4:20:13: DEPTH

112/11/9 4:20:13: SKELETON

112/11/9 4:20:13: SKELETON

112/11/9 4:20:13: SKELETON

112/11/9 4:20:13: DEPTH

112/11/9 4:20:13: SKELETON

112/11/9 4:20:13: DEPTH

112/11/9 4:20:13: SKELETON

112/11/9 4:20:13: DEPTH

112/11/9 4:20:13: SKELETON

112/11/9 4:20:13: SKELETON

112/11/9 4:20:13: DEPTH

112/11/9 4:20:13: DEPTH

112/11/9 4:20:13: DEPTH

112/11/9 4:20:13: SKELETON

112/11/9 4:20:13: DEPTH

112/11/9 4:20:13: SKELETON

112/11/9 4:20:13: SKELETON

112/11/9 4:20:13: SKELETON

112/11/9 4:20:14: SKELETON

112/11/9 4:20:14: DEPTH

112/11/9 4:20:14: SKELETON

112/11/9 4:20:14: DEPTH

112/11/9 4:20:14: SKELETON

112/11/9 4:20:14: SKELETON

112/11/9 4:20:14: DEPTH

112/11/9 4:20:14: DEPTH

112/11/9 4:20:14: SKELETON

112/11/9 4:20:14: SKELETON

112/11/9 4:20:14: DEPTH

112/11/9 4:20:14: SKELETON

112/11/9 4:20:14: SKELETON

112/11/9 4:20:14: DEPTH

112/11/9 4:20:14: SKELETON

112/11/9 4:20:14: SKELETON

112/11/9 4:20:14: DEPTH

112/11/9 4:20:14: SKELETON

112/11/9 4:20:14: DEPTH

112/11/9 4:20:14: SKELETON

112/11/9 4:20:14: DEPTH

112/11/9 4:20:14: SKELETON

112/11/9 4:20:14: SKELETON

112/11/9 4:20:14: DEPTH

112/11/9 4:20:15: SKELETON

112/11/9 4:20:15: DEPTH

112/11/9 4:20:15: SKELETON

112/11/9 4:20:15: DEPTH

112/11/9 4:20:15: SKELETON

112/11/9 4:20:15: DEPTH

112/11/9 4:20:15: DEPTH

112/11/9 4:20:15: SKELETON

112/11/9 4:20:15: SKELETON

112/11/9 4:20:15: DEPTH

Have a shared table protected by a lock and condition variable that keeps a count of the number of frames of each type that have been captured. If either thread sees that it has captured more frames than the other, have it block on the condition variable. When either thread finishes acquiring a frame, it increments the count of its type and broadcasts the condition variable.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM