qt使用线程捕获视频总结

在qt中,如果由于捕获视频导致ui主线程卡顿,则可以采用线程捕获视频数据的方式,

但是会导致内存管理崩溃,泄露等严重问题。因此视频捕获采用阻塞方式,及在ui主线程中执行。

原因:

V4L2编程中使用阻塞方式打开一个设备文件,除非你能开始采集数据时队列里的n块缓存已有数据存在。

倘若使用非阻塞,及线程方式,则会出现BUG

VIDIOC_DQBUF: Bad file number

可能是内核缓冲区(驱动缓冲区)没有这么大导致程序在VIDIOC_DEBUF时一直阻塞

也可能是驱动的问题

将耗时的工作放入线程线程中,会出现线程间任务来回切换完成、任务堆叠等情况,使用时需要充分考虑好。

 

posted @ 2022-06-05 11:21  durtime  阅读(142)  评论(0)    收藏  举报