I've found at by looking at the code of the driver (and while looking into timing issues in the reception of messages in my code) that, in contrast to how navdata is published (where there is a navdata_reception_time in the receiver thread), the video thread in video.cpp does not store the reception time.
I've made this simple modification which should improve timestamp precision a bit.
On the other hand, it seems that the cinfo stamps were not matched against the image stamp in drone v1. I've made this modification also (lines 392-394).
One question: why is the video buffer copied (for both drone versions) before the if that checks which camera needs to be copied? In case the selected camera is the vertical one (for example), to me it looks like there will be two copies of the video buffer (were the second overrides the first).
video timestamp is now saved on reception, same as with navdata; also…
… fixed missing cinfo stamp update for dronev1
Thank you Matias. The video receiving thread needs some re-factoring and optimization. I will apply your proposed changes during the re-factoring process.
Use reception time for video streams (Fixes #89)