视频监控项目
qq_37659294
这个作者很懒,什么都没留下…
展开
-
条件变量实现线程同步
(1) 什么是条件变量实现线程同步? 假如我们的程序中有两个线程,一个是生产者线程,另一个是消费者线程,生产者线程每隔一段时间把数据写入到缓冲区buffer中,而消费者线程则每隔一段时间从buffer中取出数据,为了避免两个线程读写混乱,我们让生产线线程写完后再通知消费者来读数据,那么则可以用条件变量来实现线程的同步。 (2) 条件变量的两个动作 条件不满足: 阻塞线程 条件满足: ...原创 2020-02-12 10:49:17 · 574 阅读 · 0 评论 -
USB摄像头视频监控项目学习笔记
一个摄像头监控应用程序的系统调用如下所示: /* open * VIDIOC_QUERYCAP 确定它是否视频捕捉设备,支持哪种接口(streaming/read,write) * VIDIOC_ENUM_FMT 查询支持哪种格式 * VIDIOC_S_FMT 设置摄像头使用哪种格式 * VIDIOC_REQBUFS 申请buffer 对于 streaming: * VIDI...原创 2020-02-15 22:52:55 · 1131 阅读 · 0 评论 -
V4L2框架分析
V4L2是Video for linux2的简称,为linux中关于视频设备的内核驱动。v4L2是针对uvc(USB Video Class)免驱usb设备的编程框架,主要用于采集usb摄像头等。 下图是V4L2的框架,首先系统核心层分配设置注册一个名为cdev结构体变量(cdev结构体是video_device结构体里的一部分),并设置cdev->ops = v...原创 2020-02-02 10:19:50 · 742 阅读 · 0 评论 -
mjpg-streamer框架分析
1、输入---仓库-----输出(mjpg-streamer.h) (1)global结构体 stop为停止标志位,置1时程序停止运行; db和db_update分别为互斥锁和条件变量,两者用于线程同步,当输入通道把数据放入仓库后,通知输出通道来取数据 仓库对应的是buf指针,仓库的大小是size. 输出对应的是output结构体(输出插件) outcnt表示当前输出通道中有几种方式 ...原创 2020-02-12 17:12:34 · 782 阅读 · 0 评论