videodog0.31.tar.gz

  • d0_382298
    了解作者
  • 135.7KB
    文件大小
  • gz
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-05-23 07:55
    上传日期
ideodog is a command line tool, just based on a stock linux distro, with no need of special libraries, or graphic enviroment ( as xlib, imlib). The only special lib is jpeglib, present in most of systems, but you can work without it (see INSTALL). I've running it in an embedded uClinux+busybox installation, with native jpeglib ( compiled for uClibc), and its working fine ! NOTE: Check out MOTION and ALPHABLEND You can use a simple config file, suited for the most common needs, or use the command line options. To change the path, just edit the makefile. The default path is /etc/vd.conf. In the folder called "extra" you will find the gtkpnm, xputjpeg, gtk_cam and a small swap asm function, bgr2rgb. There is a man page. Just check it with man ./videodog.man or move to a proper location. Its not complete yet, so, I didn`t put it in the Makefile. *In a short:* Just grabs a frame from v4l device or set its picture defaults. Useful for scripts, webcam scripts. No dependencies of any external libs. Read LICENSE for more details in copying and distribution. Read INSTALL for details on how to compile/install it. Read CHANGELOG for whats new There is a vd.conf as example configuration, for those who would like to use this feature. Compiling the effects causes no overhead or great executable size increase. Possible outputs: RAW frame (RGB) PNM frame JPEG frame TARGA24 (tga) frame. Double buffer loop capture or single frame with any format. Tested with: CPiA driver (webcam II parport) Bttv driver ( bt 848 & 878 ) ov511 ( webcam III usb ) DLINK cam Notes: - 2.4.x kernel`s CPIA parport driver seems strange for me. Each capture is consuming almost 100% cpu ! - OV511 users: I`ve been receiving reports of VIDIOCMCAPTURE: invalid argument. Don`t know why is it giving this errors, but I can`t test more, because I dont onw such device. Please send reports, if possible. Thanks to : I`ve removed all names from here due to the extreme numer of folks who have been helpful to send bug reports, enhancements, patches, suggestions, or even dropping a line to let me know how videodog was useful to them. Thank you all, and I hope that even with the not-so-constant releases, I can provide not the best, but a solid tool to, hopefully, solve your problems with video capture. Many emails later, and almost 2 years, I`ve been informed that videodog has been running on StrongARM w/o any further mods, that it is the basis of some scientif work, and even being used as webcam capture program. You folks have been very supportive, and this is what keeps me wanting to develop not only videodog, but more open solutions. It is not the best capture tool around, but I think this is why so many people have been using it: its a tool, not a program trying to show it is better than the user, or a ANSI C skill contest. Best regards and thank you again.
videodog0.31.tar.gz
  • videodog-0.31
  • extra
  • .xvpics
  • logo.pnm
    2.5KB
  • jpeg
  • jdec.c
    2.7KB
  • jpeg-decomp.c
    2.6KB
  • jcom.c
    2.4KB
  • README
    605B
  • jdec-lines.c
    2.9KB
  • sdlcap-v4l.c
    10KB
  • sdlcap
    19.1KB
  • alphablend.o
    1.2KB
  • bgr2rgb.c
    668B
  • gtk_cam.c-orig
    14.4KB
  • logo.pnm
    7.3KB
  • gtk_cam.c
    16.6KB
  • gtkpnm.c
    2KB
  • Makefile
    778B
  • alphablend.c
    1.9KB
  • README
    915B
  • xputjpeg.c
    7.9KB
  • EFFECTS
    2.4KB
  • utils.c
    8.8KB
  • mask.pnm
    75KB
  • _motion.h
    219B
  • ALPHABLEND
    437B
  • motion.h
    974B
  • video.c
    10.2KB
  • stamp.c
    1.9KB
  • INSTALL
    920B
  • loadset.h
    896B
  • effects.c
    10.4KB
  • Programmin-v4l.pdf
    82.3KB
  • loadset.c
    11.1KB
  • MOTION
    601B
  • vd.conf
    509B
  • font_8x8.h
    49.6KB
  • USAGE
    3.8KB
  • videodog.man
    3.7KB
  • motion.c
    8.6KB
  • LICENSE
    24.7KB
  • Makefile
    1.3KB
  • alphablend.c
    1.9KB
  • CONFIG_FILE
    1.5KB
  • TODO
    331B
  • main.h
    1.3KB
  • README
    3KB
  • global.h
    1.9KB
  • CHANGELOG
    4.7KB
  • effects.h
    627B
  • main.c
    1.6KB
内容介绍
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8"> <meta name="generator" content="pdf2htmlEX"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <link rel="stylesheet" href="https://static.pudn.com/base/css/base.min.css"> <link rel="stylesheet" href="https://static.pudn.com/base/css/fancy.min.css"> <link rel="stylesheet" href="https://static.pudn.com/prod/directory_preview_static/628acd54b305d84a4febd8df/raw.css"> <script src="https://static.pudn.com/base/js/compatibility.min.js"></script> <script src="https://static.pudn.com/base/js/pdf2htmlEX.min.js"></script> <script> try{ pdf2htmlEX.defaultViewer = new pdf2htmlEX.Viewer({}); }catch(e){} </script> <title></title> </head> <body> <div id="sidebar" style="display: none"> <div id="outline"> </div> </div> <div id="pf1" class="pf w0 h0" data-page-no="1"><div class="pc pc1 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/628acd54b305d84a4febd8df/bg1.jpg"><div class="t m0 x1 h2 y1 ff1 fs0 fc0 sc0 ls0 ws0">Video4Linux programming introduction</div><div class="t m0 x1 h2 y2 ff1 fs0 fc0 sc0 ls0 ws0">Introduction</div><div class="t m0 x2 h3 y3 ff2 fs0 fc0 sc0 ls0 ws0">Video4Linux is <span class="_ _0"> </span>the <span class="_ _0"> </span>name <span class="_ _0"> </span>of <span class="_ _0"> </span>the <span class="_ _0"> </span>linux&#8216;s <span class="_ _0"> </span>video <span class="_ _0"> </span>capture <span class="_ _0"> </span>software <span class="_ _0"> </span>interface. <span class="_ _0"> </span>Webcameras, </div><div class="t m0 x1 h3 y4 ff2 fs0 fc0 sc0 ls0 ws0">capture cards, <span class="_ _0"></span>tv <span class="_ _1"></span>cards, <span class="_ _1"></span>and <span class="_ _0"> </span>this <span class="_ _0"></span>kind <span class="_ _1"></span>of <span class="_ _0"></span>devices <span class="_ _1"></span>were <span class="_ _0"></span>grouped <span class="_ _1"></span>into <span class="_ _0"></span>the <span class="_ _1"></span>video <span class="_ _0"></span>capture <span class="_ _1"></span>category, </div><div class="t m0 x1 h3 y5 ff2 fs0 fc0 sc0 ls0 ws0">and a API ( application programming interface ) was developed to deal with it.</div><div class="t m0 x2 h3 y6 ff2 fs0 fc0 sc0 ls0 ws0">Due to <span class="_ _2"> </span>these <span class="_ _2"> </span>device&#8216;s <span class="_ _2"> </span>nature, <span class="_ _2"> </span>the <span class="_ _2"> </span>usual <span class="_ _2"> </span>Unix <span class="_ _2"> </span>device <span class="_ _2"> </span>abstraction <span class="_ _2"> </span>had <span class="_ _2"> </span>to <span class="_ _2"> </span>be <span class="_ _2"> </span>a <span class="_ _2"> </span>little <span class="_ _2"> </span>bit </div><div class="t m0 x1 h3 y7 ff2 fs0 fc0 sc0 ls0 ws0">extended. Usually, <span class="_ _3"> </span>you <span class="_ _3"> </span>can <span class="_ _3"> </span>access <span class="_ _3"> </span>every <span class="_ _3"> </span>device, <span class="_ _3"> </span>just <span class="_ _3"> </span>doing <span class="_ _4"> </span>an <span class="_ _3"> </span>open() <span class="_ _3"> </span>in <span class="_ _3"> </span>a <span class="_ _3"> </span>/dev/file, <span class="_ _3"> </span>and </div><div class="t m0 x1 h3 y8 ff2 fs0 fc0 sc0 ls0 ws0">reading/writing some bytes. </div><div class="t m0 x2 h3 y9 ff2 fs0 fc0 sc0 ls0 ws0">Video devices <span class="_ _5"></span>work <span class="_ _5"></span>this <span class="_ _5"></span>way, <span class="_ _5"></span>except <span class="_ _5"></span>that <span class="_ _5"></span>you <span class="_ _5"></span>will <span class="_ _5"></span>find <span class="_ _1"></span>a <span class="_ _5"></span>lot <span class="_ _5"></span>more <span class="_ _5"></span>of <span class="_ _5"></span>ioctl()s <span class="_ _5"></span>to <span class="_ _5"></span>deal <span class="_ _5"></span>with </div><div class="t m0 x1 h3 ya ff2 fs0 fc0 sc0 ls0 ws0">some options, <span class="_ _6"> </span>and <span class="_ _6"> </span>a <span class="_ _6"> </span>more <span class="_ _6"> </span>developed <span class="_ _6"> </span>mmap() <span class="_ _6"> </span>interface <span class="_ _6"> </span>to <span class="_ _6"> </span>deal <span class="_"> </span>with <span class="_ _2"> </span>frame <span class="_ _6"> </span>copy, <span class="_"> </span>instead <span class="_ _2"> </span>of </div><div class="t m0 x1 h3 yb ff2 fs0 fc0 sc0 ls0 ws0">read()ing each byte. This is very important to those who need to do a very fast capture sequence.</div><div class="t m0 x2 h3 yc ff2 fs0 fc0 sc0 ls0 ws0">This workflow initially is <span class="_ _5"></span>a kinda hard <span class="_ _5"></span>to understand, but after <span class="_ _5"></span>that, you will find <span class="_ _5"></span>yourself </div><div class="t m0 x1 h3 yd ff2 fs0 fc0 sc0 ls0 ws0">worrying about <span class="_ _7"> </span>how <span class="_ _7"> </span>to <span class="_ _7"> </span>implement <span class="_ _7"> </span>a <span class="_ _7"> </span>faster <span class="_ _7"> </span>capture <span class="_ _7"> </span>scheme <span class="_ _7"> </span>than <span class="_ _7"> </span>which <span class="_ _7"> </span>ioctl <span class="_ _7"> </span>to <span class="_ _7"> </span>use. <span class="_ _7"> </span>It&#8216;s <span class="_ _7"> </span>really </div><div class="t m0 x1 h3 ye ff2 fs0 fc0 sc0 ls0 ws0">interesting. BTW, <span class="_ _0"></span>there <span class="_ _1"></span>is <span class="_ _0"> </span>a <span class="_ _0"> </span>video4windows <span class="_ _0"></span>API, <span class="_ _1"></span>but <span class="_ _0"> </span>its <span class="_ _0"> </span>not <span class="_ _0"></span>compatible, <span class="_ _1"></span>sometimes <span class="_ _0"> </span>refered <span class="_ _0"></span>as </div><div class="t m0 x1 h3 yf ff2 fs0 fc0 sc0 ls0 ws0">v4w or vfw. </div><div class="t m0 x1 h2 y10 ff1 fs0 fc0 sc0 ls0 ws0">Motivation</div><div class="t m0 x2 h3 y11 ff2 fs0 fc0 sc0 ls0 ws0">I&#8216;ve been <span class="_ _5"></span>developing <span class="_ _1"></span>videodog, <span class="_ _5"></span>since <span class="_ _5"></span>may/2000 <span class="_ _1"></span>and <span class="_ _5"></span>one <span class="_ _1"></span>year <span class="_ _5"></span>later, <span class="_ _5"></span>decided <span class="_ _1"></span>to <span class="_ _5"></span>open <span class="_ _5"></span>it <span class="_ _1"></span>to </div><div class="t m0 x1 h3 y12 ff2 fs0 fc0 sc0 ls0 ws0">the community. My main <span class="_ _8"></span>goal was a <span class="_ _8"></span>simple capture utility, <span class="_ _8"></span>with none or <span class="_ _8"></span>a little dependencies. <span class="_ _8"></span>All </div><div class="t m0 x1 h3 y13 ff2 fs0 fc0 sc0 ls0 ws0">other applications <span class="_ _1"></span>were <span class="_ _5"></span>based <span class="_ _1"></span>in <span class="_ _1"></span>imlib, <span class="_ _1"></span>gtk, <span class="_ _5"></span>or <span class="_ _1"></span>other <span class="_ _1"></span>libraries, <span class="_ _1"></span>what <span class="_ _1"></span>makes <span class="_ _5"></span>cool <span class="_ _1"></span>screenshots, <span class="_ _1"></span>but </div><div class="t m0 x1 h3 y14 ff2 fs0 fc0 sc0 ls0 ws0">for a real working situation can be a pain, due to the need of all dependencies being installed.</div><div class="t m0 x2 h3 y15 ff2 fs0 fc0 sc0 ls0 ws0">So, I started <span class="_ _5"></span>using only jpeglib, <span class="_ _5"></span>but its <span class="_ _5"></span>not mandatory, you <span class="_ _5"></span>can use other <span class="_ _5"></span>formats and do <span class="_ _5"></span>a </div><div class="t m0 x1 h3 y16 ff2 fs0 fc0 sc0 ls0 ws0">external jpeg <span class="_ _1"></span>or <span class="_ _0"></span>png <span class="_ _1"></span>conversion <span class="_ _0"></span>with <span class="_ _1"></span>any <span class="_ _0"></span>other <span class="_ _1"></span>tool. <span class="_ _0"></span>Thats <span class="_ _1"></span>how <span class="_ _0"></span>unix <span class="_ _1"></span>works, <span class="_ _0"></span>small <span class="_ _1"></span>components </div><div class="t m0 x1 h3 y17 ff2 fs0 fc0 sc0 ls0 ws0">working togheter. VideoDog <span class="_ _5"></span>can be <span class="_ _5"></span>work <span class="_ _5"></span>in small <span class="_ _5"></span>computers, like a <span class="_ _5"></span>video surveillance <span class="_ _5"></span>system, a </div><div class="t m0 x1 h3 y18 ff2 fs0 fc0 sc0 ls0 ws0">testbed for image processing algorithms, or the videocapture interface for your script/program.</div><div class="t m0 x2 h3 y19 ff2 fs0 fc0 sc0 ls0 ws0">Since the <span class="_ _7"> </span>begginin <span class="_ _7"> </span>it <span class="_ _9"> </span>has <span class="_ _7"> </span>wvolved <span class="_ _9"> </span>due <span class="_ _7"> </span>to <span class="_ _7"> </span>my <span class="_ _9"> </span>demands <span class="_ _7"> </span>and <span class="_ _7"> </span>suggestions <span class="_ _7"> </span>from <span class="_ _9"> </span>users <span class="_ _7"> </span>all </div><div class="t m0 x1 h3 y1a ff2 fs0 fc0 sc0 ls0 ws0">around the <span class="_ _1"></span>world. <span class="_ _1"></span>After <span class="_ _1"></span>jpeg <span class="_ _1"></span>encoding, <span class="_ _5"></span>I&#8216;ve <span class="_ _1"></span>implemented <span class="_ _1"></span>time <span class="_ _1"></span>stamp, <span class="_ _1"></span>using <span class="_ _1"></span>a <span class="_ _1"></span>small <span class="_ _1"></span>and <span class="_ _1"></span>simple </div><div class="t m0 x1 h3 y1b ff2 fs0 fc0 sc0 ls0 ws0">charset. There <span class="_ _1"></span>was <span class="_ _1"></span>no <span class="_ _0"></span>need <span class="_ _1"></span>to <span class="_ _1"></span>different <span class="_ _1"></span>fonts, <span class="_ _0"></span>so, <span class="_ _1"></span>no <span class="_ _1"></span>need <span class="_ _0"></span>to <span class="_ _1"></span>depend <span class="_ _1"></span>on <span class="_ _1"></span>external <span class="_ _0"></span>libraries, <span class="_ _1"></span>such </div><div class="t m0 x1 h3 y1c ff2 fs0 fc0 sc0 ls0 ws0">libttf. </div><div class="t m0 x2 h3 y1d ff2 fs0 fc0 sc0 ls0 ws0">Design decisions <span class="_ _0"></span>like <span class="_ _0"> </span>that <span class="_ _0"> </span>are <span class="_ _0"> </span>meant <span class="_ _0"> </span>to <span class="_ _0"> </span>keep <span class="_ _0"> </span>it <span class="_ _0"> </span>simple <span class="_ _0"> </span>yet <span class="_ _0"> </span>useful. <span class="_ _0"> </span>The <span class="_ _0"> </span>main <span class="_ _0"> </span>feedback <span class="_ _0"> </span>I </div><div class="t m0 x1 h3 y1e ff2 fs0 fc0 sc0 ls0 ws0">receive about <span class="_ _7"> </span>VideoDog <span class="_ _7"> </span>is <span class="_ _9"> </span>that <span class="_ _7"> </span>it <span class="_ _7"> </span>is <span class="_ _7"> </span>almost <span class="_ _9"> </span>plug <span class="_ _7"> </span>and <span class="_ _7"> </span>play, <span class="_ _7"> </span>and <span class="_ _9"> </span>production <span class="_ _7"> </span>ready. <span class="_ _7"> </span>Umtil <span class="_ _7"> </span>now, </div><div class="t m0 x1 h3 y1f ff2 fs0 fc0 sc0 ls0 ws0">http://webcam.mit.edu has been using <span class="_ _5"></span>it to power their webcam <span class="_ _5"></span>site. This is only <span class="_ _5"></span>one application, </div><div class="t m0 x1 h3 y20 ff2 fs0 fc0 sc0 ls0 ws0">I&#8216;ve got reports about scientific <span class="_ _5"></span>work being done using VideoDog <span class="_ _5"></span>as testbed and plataform, since </div><div class="t m0 x1 h3 y21 ff2 fs0 fc0 sc0 ls0 ws0">medical applications <span class="_ _1"></span>to <span class="_ _0"> </span>computer <span class="_ _0"> </span>vision <span class="_ _0"></span>testes. <span class="_ _1"></span>Most <span class="_ _0"> </span>users <span class="_ _0"></span>dont <span class="_ _1"></span>want <span class="_ _0"> </span>to <span class="_ _0"></span>deal <span class="_ _1"></span>with <span class="_ _0"> </span>complicated </div><div class="t m0 x1 h3 y22 ff2 fs0 fc0 sc0 ls0 ws0">code, which <span class="_ _5"></span>many <span class="_ _5"></span>times <span class="_ _5"></span>are <span class="_ _5"></span>result <span class="_ _1"></span>more <span class="_ _5"></span>of <span class="_ _5"></span>developer&#8216;s <span class="_ _5"></span>ego <span class="_ _5"></span>to <span class="_ _5"></span>show <span class="_ _5"></span>C <span class="_ _5"></span>or <span class="_ _1"></span>C++ <span class="_ _5"></span>skills <span class="_ _5"></span>than <span class="_ _5"></span>design </div><div class="t m0 x1 h3 y23 ff2 fs0 fc0 sc0 ls0 ws0">decisions.</div><div class="t m0 x2 h3 y24 ff2 fs0 fc0 sc0 ls0 ws0">Anyway, I will be using VideoDog in its current version to show living examples <span class="_ _8"></span>of code, </div><div class="t m0 x1 h3 y25 ff2 fs0 fc0 sc0 ls0 ws0">a ancient <span class="_ _5"></span>release, <span class="_ _5"></span>to <span class="_ _5"></span>show <span class="_ _1"></span>a <span class="_ _5"></span>simple <span class="_ _5"></span>capture <span class="_ _5"></span>program <span class="_ _5"></span>and <span class="_ _1"></span>a <span class="_ _5"></span>small <span class="_ _5"></span>but <span class="_ _5"></span>complete <span class="_ _5"></span>full <span class="_ _5"></span>speed <span class="_ _1"></span>capture </div><div class="t m0 x1 h3 y26 ff2 fs0 fc0 sc0 ls0 ws0">code.</div><div class="t m0 x1 h2 y27 ff1 fs0 fc0 sc0 ls0 ws0">Simple capture block diagram<span class="ff2"> </span></div><div class="t m0 x2 h3 y28 ff2 fs0 fc0 sc0 ls0 ws0">As everything in <span class="_ _5"></span>programming, <span class="_ _5"></span>can be <span class="_ _5"></span>done in <span class="_ _5"></span>many <span class="_ _5"></span>ways. This <span class="_ _5"></span>is how <span class="_ _5"></span>VideoDog <span class="_ _5"></span>works</div></div><div class="pi" data-data='{"ctm":[1.568627,0.000000,0.000000,1.568627,0.000000,0.000000]}'></div></div> </body> </html>
评论
    相关推荐
    • arm9学习代码
      arm9的裸机代码,包括了时钟初始化配置,串口驱动,timer驱动,中断驱动,spi驱动,i2c驱动,gpio驱动,i2s驱动,sd驱动,pwm驱动,rtc驱动等,编译环境emIDE,适合初学ARM的人。
    • ARM2103在TKStduio IDE下的程序
      ARM2103在TKStduio IDE下的一些程序 对初学者起到很大作用
    • IAR for ARM 8506修复工具
      可以用了, 虽然不完美,在IDE的第一次启动后, 打勾“启动时不要为此产品运行向导。”, 以后IDE在启动时便不会出现讨厌的弹出框
    • Arm Cortex M4权威指南
      The Definitive Guide to ARM Cortex -M3 and Cortex-M4 Processors Third Edition
    • RobotArm
      机器人手臂 快速链接 - 注意:缺少示例。 提供灵感。 看投石机南瓜夹头和其他机械臂 项目计划 创建您的问题: a) What’s the problem ... We will have constructed a working robot arm that is capable of throwing
    • ARM-cortex.rar
      The definitive guide to the ARM CORTEX-M3, second edition he Boulevard, Langford Lane Kidlington, Oxford, OX5 1GB, UK © 2010 Elsevier Inc. All rights reserved.
    • ARM ADTIDE
      这是ADS的一个调试工具,网上资料比较少,特过来给大家下载学习。
    • ARM汇编资料
      挺全的arm汇编资料. ADS_ASSEMBLERGUIDE_B.PDF 主要可以看这个
    • ADS IDE user manul
      Used for TQ2440, which is a develop board with ARM CPU
    • IAR 公司做的 IAR ARM IDE使用说明手册用H-JTAG调试(中文版)
      IAR 公司做的 IAR ARM IDE使用说明手册用H-JTAG调试(中文版)PPT,讲的比较详细,有参考价值。