我正在尝试使用v4l2_buffer的时间戳值(类型timeval)来将从UVC网络摄像头捕获的图像同步到外部事件.
但是时间戳与系统时间或运行时间等不同:
printf("image captured at %ld, %ld\n",
buffer->timestamp.tv_sec,
buffer->timestamp.tv_usec);
struct timeval tv;
gettimeofday(&tv, 0);
printf("current time %ld, %ld\n", tv.tv_sec, tv.tv_usec);
Run Code Online (Sandbox Code Playgroud)
结果是
image captured at 367746, 476270
current time 1335083395, 11225
Run Code Online (Sandbox Code Playgroud)
我的正常运行时间是10天.
根据http://comments.gmane.org/gmane.linux.drivers.video-input-infrastructure/39892,一些v4l2驱动程序(包括UVC驱动程序)不使用实时时钟(挂起时间)而是使用单调时钟从未指定的时间点开始计算.在Linux上,这是启动时间(即正常运行时间),但是(我怀疑这是导致您不匹配的原因)仅计算机实际运行的时间(即计算机暂停时此时钟不运行).
| 归档时间: |
|
| 查看次数: |
4310 次 |
| 最近记录: |