6/20/2011 8:53:14 AM
来源:互联网 发布:windows手机应用市场 编辑:程序博客网 时间:2024/05/02 04:39
还没有将报警处理加入到SDK中
板子报警触发后
有关采集的问题
次数根本对不上
把编码注释掉 只是简单的采集看看
不管哪个系统硬件资源是一致的
vfat 在mss/blk0p3中
在第一个系统中挂在/dev/mmca3上
修改前端
ci_set_clock(1, 1, 2400);
模拟输入采集的最大帧率为25帧
在vedio_record中将编码注释掉,计算read_a_frame和return_a_frame的总时间为40ms上下
前端输入在修改ov2655时钟前,为63ms,但比较均匀
修改后采样一帧图像的数据不均匀
现在看一下界面的问题
自动滚到最后一行
#define INFO_APPEND(view, str)/
{/
GtkTextBuffer *buffer;/
GtkTextMark *mark;/
GtkTextIter iter;/
buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view));/
gtk_text_buffer_get_end_iter(buffer, &iter);/
gtk_text_buffer_insert(buffer, &iter, str, -1);/
buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view));/
mark = gtk_text_buffer_get_insert(buffer);/
gtk_text_view_scroll_mark_onscreen(GTK_TEXT_VIEW(view), mark);/
}
textview textbuffer textmark
在屏幕上滚动看看
PAL 制只能到25帧
现在就是还是报警信号
AMP_ALERT_ON
收到消息后走了回调
现在看一下这个报警走的什么?
收到这个报警触发后怎么调用图像?
模拟设备树的通道被点击
现在就是说在找到对应的播放句柄出来
如果有就表示这一路图像已经在播放了
能不能找到一个空闲的播放窗口出来
首先创建了4个对象 COutDlg
每个对象关联到一个窗口
将这些窗口都重新进行布局
要做个选中框出来
设备树有一个输出窗口
设备树上的点击事件
检查点击点的位置,如果这个点击点的位置是在这棵树的某个节点上
将这个节点的状态设置为选中状态
有了选中状态后在执行
首先会判断当前选中的窗口是否已经有了图像播放
如果没有播放,找到对应的父节点dvs节点,然后通道这个节点找到对应的DVS设备
获取通道所在的seq
如果这个通道已经在开始播放了,就把已经播放的窗口移动到当前的这个窗口
如果没有播放就开始播放
如果报警了就找到第一个没有使用的窗口
怎么找,逐一遍历找
回调也找到主窗体类中
已知设备ip,从设备树中找到对应的设备对象
找到这个设备对象后调用启动预览的方法
加个方法就能找到对应的DVS对象
查询摄像头的制式
在亚洲,一般使用PAL(720X576)制式的摄像头,而欧洲一般使用NTSC(720X480),使用VIDIOC_QUERYSTD来检测:
v4l2_std_id std;do { ret = ioctl(fd, VIDIOC_QUERYSTD, &std);} while (ret == -1 && errno == EAGAIN);
switch (std) { case V4L2_STD_NTSC: //…… case V4L2_STD_PAL: //……}
设置视频捕获的格式
struct v4l2_format fmt;
memset ( &fmt, 0, sizeof(fmt) );
fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
fmt.fmt.pix.width = 720;
fmt.fmt.pix.height = 576;
fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV;
fmt.fmt.pix.field = V4L2_FIELD_INTERLACED;
if (ioctl(fd, VIDIOC_S_FMT, &fmt) == -1) { return -1;}
v4l2_format结构如下:
struct v4l2_format{
enum v4l2_buf_type type;
// 数据流类型,必须永远是V4L2_BUF_TYPE_VIDEO_CAPTURE
union { struct v4l2_pix_format pix;
struct v4l2_window win;
struct v4l2_vbi_format vbi;
__u8 raw_data[200];
} fmt;
}
;struct v4l2_pix_format{ __u32 width;
// 宽,必须是16的倍数 __u32 height;
// 高,必须是16的倍数 __u32 pixelformat;
// 视频数据存储类型,例如是YUV4:2:2还是RGB enum v4l2_field field;
__u32 bytesperline; __u32 sizeimage;
enum v4l2_colorspace colorspace; __u32 priv; };
分配内存
接下来可以为视频捕获分配内存:
struct v4l2_requestbuffers req;if (ioctl(fd, VIDIOC_REQBUFS, &req) == -1) { return -1;}v4l2_requestbuffers 结构如下:struct v4l2_requestbuffers{ __u32 count; // 缓存数量,也就是说在缓存队列里保持多少张照片 enum v4l2_buf_type type; // 数据流类型,必须永远是V4L2_BUF_TYPE_VIDEO_CAPTURE enum v4l2_memory memory; // V4L2_MEMORY_MMAP 或 V4L2_MEMORY_USERPTR __u32 reserved[2];};
- 6/20/2011 8:53:14 AM
- 8/18/2011 9:39:53 AM
- 8/27/2011 2:53:01 AM
- 6/22/2011 8:57:06 AM
- 8/19/2011 10:40:41 AM
- 8/27/2011 3:02:21 AM
- 8/27/2011 3:28:33 AM
- 8/27/2011 3:37:16 AM
- 8/27/2011 3:41:56 AM
- 8/27/2011 3:44:57 AM
- 8/27/2011 3:49:00 AM
- 8/27/2011 4:00:02 AM
- 8/31/2011 10:51:45 AM
- 6/17/2011 9:22:03 AM
- 6/21/2011 9:11:39 AM
- 6/24/2011 9:28:52 AM
- 6/27/2011 9:12:22 AM
- 6/29/2011 9:50:55 AM
- Bloom Filter 原理与应用
- zz C++中的set
- 货币金额转换问题
- HTTP 状态码
- android 自定义adapter extends BaseAdapter,做有自己布局的listView
- 6/20/2011 8:53:14 AM
- Windows 8让程序员们忧心忡忡
- 云中之城(七)
- 预定义数组
- 云中之城(八)
- 云中之城(九)
- 云中之城(十)
- 浅谈java中的代理
- vs2010错误解决