天嵌 ARM开发社区

 找回密码
 注册
查看: 13097|回复: 29

关于最新的AV摄像头和usb摄像头源码的使用

[复制链接]
Rick.w 发表于 2012-3-24 21:40:31 | 显示全部楼层 |阅读模式
版主最新共享了最新的AV摄像头和usb摄像头源码
不过看得不是很懂
源码包里有图片,还有几个文件夹
说明里面写的是:
图片路径:/opt/PDA/app/images/
配置文件路径:/opt/PDA/configs/
这个路径是放在文件系统里面么?
还有usb摄像头怎么判断采集到的是yuyv格式或jpeg格式图片
http://www.armbbs.net/forum.php?mod=viewthread&tid=11136&page=1#pid79985
版主提到的要发的源码是这个么?
TQ-lkp 发表于 2012-3-26 13:19:24 | 显示全部楼层
源码是这个:http://bbs.embedsky.net/forum.ph ... =%C9%E3%CF%E0%CD%B7
路径是文件系统中的路径
usb摄相头的判断在文件uUsbCamera.cpp里面有一段取摄相头支持的数据流格式的代码,
  1. struct v4l2_fmtdesc fmtdesc; //获取摄像头
  2.         memset(&fmtdesc, 0, sizeof(fmtdesc));
  3.         struct v4l2_format fmt; //设置获取视频的格式
  4.         memset(&fmt, 0, sizeof(fmt));
  5.         fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; //视频数据流类型,永远都是V4L2_BUF_TYPE_VIDEO_CAPTURE
  6.         //        fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_MJPEG;                        //视频源的格式为JPEG或YUN4:2:2或RGB
  7.         fmt.fmt.pix.width = m_iWidth; //设置视频宽度
  8.         fmt.fmt.pix.height = m_iHeight; //设置视频高度
  9.         fmtdesc.index = 0;
  10.         fmtdesc.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
  11.         if (-1 == ioctl(m_iFd, VIDIOC_ENUM_FMT, &fmtdesc))
  12.                 return false;
  13.         printf("VIDIOC_ENUM_FMT(%s, VIDEO_CAPTURE)\n",fmtdesc.description);
  14.         if (strcmp((const char*) fmtdesc.description, "MJPEG") == 0) //视频源的格式为JPEG或YUN4:2:2或RGB
  15.         {
  16.                 fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_MJPEG; //视频源的格式为MJPEG
  17.                 pixelformat = V4L2_PIX_FMT_MJPEG;
  18.         }
  19.         else if (strcmp((const char*) fmtdesc.description, "JPEG") == 0)
  20.         {
  21.                 fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_MJPEG; //视频源的格式为MJPEG
  22.                 pixelformat = V4L2_PIX_FMT_MJPEG;
  23.         }
  24.         else if (strcmp((const char*) fmtdesc.description, "YUV 4:2:2 (YUYV)") == 0)
  25.         {
  26.                 fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV; //视频源的格式为YUYV
  27.                 pixelformat = V4L2_PIX_FMT_YUYV;
  28.         }
  29.         else
  30.         {
  31.                 fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUV420; //视频源的格式为JPEG或YUN4:2:2或RGB
  32.                 pixelformat = V4L2_PIX_FMT_YUV420;
  33.         }
  34.         if (ioctl(m_iFd, VIDIOC_S_FMT, &fmt) < 0) //使配置生效
  35.         {
  36.                 printf("set format failed\n");
  37.                 return false;
  38.         }
复制代码
 楼主| Rick.w 发表于 2012-3-26 14:26:21 | 显示全部楼层
TQ-lkp 发表于 2012-3-26 13:19
源码是这个:http://bbs.embedsky.net/forum.php?mod=viewthread&tid=11245&highlight=%C9%E3%CF%E0%CD%B7
...

谢谢斑竹
搞定了
:):)
weiweiwsk 发表于 2012-4-10 09:36:55 | 显示全部楼层
正在学习这个,发现按移植文档里来做不行,楼主帮忙,说详细点啊!
 楼主| Rick.w 发表于 2012-4-10 22:06:19 | 显示全部楼层
weiweiwsk 发表于 2012-4-10 09:36
正在学习这个,发现按移植文档里来做不行,楼主帮忙,说详细点啊!

要我说什么
weiweiwsk 发表于 2012-4-11 09:59:19 | 显示全部楼层
是这样的,我在做USB摄像头驱动移植的时候,一步一步按照移植文档里来,在网上下载了gspcav1-20071224.tar这个驱动包,结果编译时出错,然后下载了论坛里的TQCameraSrc驱动包,但不知道具体怎么移植过去,看到楼主说搞定了,所以过来讨教具体怎么做了!有劳楼主指导一下!
 楼主| Rick.w 发表于 2012-4-11 17:54:58 | 显示全部楼层
weiweiwsk 发表于 2012-4-11 09:59
是这样的,我在做USB摄像头驱动移植的时候,一步一步按照移植文档里来,在网上下载了gspcav1-20071224.tar这个 ...

首先如果你的内核是2.30.6.4
不需要gspcav1-20071224.tar
其次TQCameraSrc你用QtCreator打开
rebuild一下
把生成的TQCameraTest放在/opt/qt-4.5/bin里面
然后那个.ini文件和png的图片
分别放在/opt/PDA/config里面
和/opt/PDA/app/image里面
上面说的路径都是文件系统的
如果这些你不明白的话  就看手册上关于Qt的移植吧
无聊~~~~ 发表于 2012-4-11 21:52:41 | 显示全部楼层
这个是采集和显示都在ARM板上的摄像头程序?
还是采集由ARM板做,显示在PC机上的程序?
 楼主| Rick.w 发表于 2012-4-11 21:59:45 | 显示全部楼层
无聊~~~~ 发表于 2012-4-11 21:52
这个是采集和显示都在ARM板上的摄像头程序?
还是采集由ARM板做,显示在PC机上的程序?

:)是前者 :)
weiweiwsk 发表于 2012-4-12 15:02:47 | 显示全部楼层
好的,非常感谢楼主,我试试
无聊 发表于 2012-4-13 14:35:44 | 显示全部楼层
这段程序对QT的版本的没限制吧?
使用老版本的qtiopia应该也是没问题的吧?
 楼主| Rick.w 发表于 2012-4-14 08:34:22 | 显示全部楼层
无聊 发表于 2012-4-13 14:35
这段程序对QT的版本的没限制吧?
使用老版本的qtiopia应该也是没问题的吧?

应该不行的
是Qt4的版本
婷子 发表于 2012-7-25 13:43:00 | 显示全部楼层
我点build出现错误:
running build steps for project TQCamera...
Configuration unchanged, skipping QMake step.
Starting: /usr/bin/make release -w
make: Entering directory `/opt/TQCameraTest1'
/usr/bin/qmake-qt4 -spec /usr/lib/qt4/mkspecs/linux-g++ -unix CONFIG+=debug_and_release -o Makefile TQCamera.pro
Project MESSAGE: Warning: unknown QT: tcpserver
Project MESSAGE: Warning: unknown QT: tcpserver
Project MESSAGE: Warning: unknown QT: tcpserver
make: Leaving directory `/opt/TQCameraTest1'
make: Entering directory `/opt/TQCameraTest1'
/usr/bin/make -f Makefile.Release
make[1]: Entering directory `/opt/TQCameraTest1'
g++ -c -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/qt4/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtGui -I/usr/include -I. -Isrc -Irelease -I. -o release/main.o main.cpp
In file included from main.cpp:1:
tqcamera.h:15:22: error: QTcpServer: No such file or directory
In file included from tqcamera.h:20,
from main.cpp:1:
TQInputMethod.h:6:26: error: QWSInputMethod: No such file or directory
In file included from tqcamera.h:20,
from main.cpp:1:
TQInputMethod.h:8: error: expected class-name before ‘{’ token
In file included from main.cpp:1:
tqcamera.h:60: error: ISO C++ forbids declaration of ‘QWSInputMethod’ with no type
tqcamera.h:60: error: expected ‘;’ before ‘*’ token
make[1]: Leaving directory `/opt/TQCameraTest1'
make: Leaving directory `/opt/TQCameraTest1'
make[1]: *** [release/main.o] Error 1
make: *** [release] Error 2
Exited with code 2.
Error while building project TQCamera
When executing build step 'Make'
婷子 发表于 2012-7-25 14:09:09 | 显示全部楼层
发现是找不到QTcpServer和QWSInputMethod这两个类的文件,请问一下是怎么回事啊?谢谢 !
 楼主| Rick.w 发表于 2012-7-25 18:21:14 | 显示全部楼层
婷子 发表于 2012-7-25 14:09
发现是找不到QTcpServer和QWSInputMethod这两个类的文件,请问一下是怎么回事啊?谢谢 !

rebuild 一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-6-24 19:53 , Processed in 1.078125 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表