Hex Artifact Content
Not logged in

Artifact 893311c240f63b274c76f435f238270aa9a70c9f:

Wiki page [v4l2 command] by chw 2021-09-01 12:33:41.
0000: 44 20 32 30 32 31 2d 30 39 2d 30 31 54 31 32 3a  D 2021-09-01T12:
0010: 33 33 3a 34 31 2e 30 30 37 0a 4c 20 76 34 6c 32  33:41.007.L v4l2
0020: 5c 73 63 6f 6d 6d 61 6e 64 0a 50 20 30 35 33 62  \scommand.P 053b
0030: 30 65 37 64 34 36 66 34 37 61 37 31 37 39 38 30  0e7d46f47a717980
0040: 32 30 32 64 32 38 39 35 39 34 38 38 35 30 66 63  202d2895948850fc
0050: 35 34 32 64 0a 55 20 63 68 77 0a 57 20 31 30 31  542d.U chw.W 101
0060: 34 33 0a 3c 68 32 3e 76 34 6c 32 20 63 6f 6d 6d  43.<h2>v4l2 comm
0070: 61 6e 64 3c 2f 68 32 3e 0d 0a 0d 0a 3c 68 33 3e  and</h2>....<h3>
0080: 4e 61 6d 65 3c 2f 68 33 3e 0d 0a 0d 0a 3c 62 3e  Name</h3>....<b>
0090: 76 34 6c 32 3c 2f 62 3e 20 2d 20 56 69 64 65 6f  v4l2</b> - Video
00a0: 20 46 6f 72 20 4c 69 6e 75 78 20 54 77 6f 20 69   For Linux Two i
00b0: 6e 74 65 72 66 61 63 65 0d 0a 0d 0a 3c 68 33 3e  nterface....<h3>
00c0: 53 79 6e 6f 70 73 69 73 3c 2f 68 33 3e 0d 0a 0d  Synopsis</h3>...
00d0: 0a 3c 74 74 3e 70 61 63 6b 61 67 65 20 72 65 71  .<tt>package req
00e0: 75 69 72 65 20 76 34 6c 32 3c 2f 74 74 3e 3c 62  uire v4l2</tt><b
00f0: 72 3e 0d 0a 3c 74 74 3e 76 34 6c 32 20 3c 69 3e  r>..<tt>v4l2 <i>
0100: 6f 70 74 69 6f 6e 3c 2f 69 3e 20 3f 3c 69 3e 61  option</i> ?<i>a
0110: 72 67 20 2e 2e 2e 3c 2f 69 3e 3f 3c 2f 74 74 3e  rg ...</i>?</tt>
0120: 0d 0a 0d 0a 3c 68 33 3e 44 65 73 63 72 69 70 74  ....<h3>Descript
0130: 69 6f 6e 3c 2f 68 33 3e 0d 0a 0d 0a 54 68 69 73  ion</h3>....This
0140: 20 20 63 6f 6d 6d 61 6e 64 20 20 70 72 6f 76 69    command  provi
0150: 64 65 73 20 73 65 76 65 72 61 6c 20 6f 70 65 72  des several oper
0160: 61 74 69 6f 6e 73 20 74 6f 20 69 6e 74 65 72 66  ations to interf
0170: 61 63 65 20 56 69 64 65 6f 20 46 6f 72 20 4c 69  ace Video For Li
0180: 6e 75 78 0d 0a 54 77 6f 20 69 6e 20 6f 72 64 65  nux..Two in orde
0190: 72 20 74 6f 20 6f 70 65 72 61 74 65 20 63 61 6d  r to operate cam
01a0: 65 72 61 20 64 65 76 69 63 65 73 2e 20 3c 74 74  era devices. <tt
01b0: 3e 3c 69 3e 6f 70 74 69 6f 6e 3c 2f 69 3e 3c 2f  ><i>option</i></
01c0: 74 74 3e 20 69 6e 64 69 63 61 74 65 73 20 77 68  tt> indicates wh
01d0: 61 74 0d 0a 74 6f 20 63 61 72 72 79 20 6f 75 74  at..to carry out
01e0: 20 6f 6e 20 20 74 68 65 20 20 56 69 64 65 6f 20   on  the  Video 
01f0: 20 46 6f 72 20 20 4c 69 6e 75 78 20 20 54 77 6f   For  Linux  Two
0200: 20 20 73 75 62 73 79 73 74 65 6d 2e 20 41 6e 79    subsystem. Any
0210: 20 75 6e 69 71 75 65 0d 0a 61 62 62 72 65 76 69   unique..abbrevi
0220: 61 74 69 6f 6e 20 66 6f 72 20 3c 74 74 3e 3c 69  ation for <tt><i
0230: 3e 6f 70 74 69 6f 6e 3c 2f 69 3e 3c 2f 74 74 3e  >option</i></tt>
0240: 20 69 73 20 61 63 63 65 70 74 61 62 6c 65 2e 0d   is acceptable..
0250: 0a 54 68 65 20 76 61 6c 69 64 20 6f 70 74 69 6f  .The valid optio
0260: 6e 73 20 61 72 65 3a 0d 0a 0d 0a 3c 74 74 3e 76  ns are:....<tt>v
0270: 34 6c 32 20 63 6c 6f 73 65 20 3c 69 3e 64 65 76  4l2 close <i>dev
0280: 69 64 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20  id</i></tt>.... 
0290: 20 20 20 43 6c 6f 73 65 73 20 74 68 65 20 64 65     Closes the de
02a0: 76 69 63 65 20 69 64 65 6e 74 69 66 69 65 64 20  vice identified 
02b0: 62 79 20 3c 74 74 3e 3c 69 3e 64 65 76 69 64 3c  by <tt><i>devid<
02c0: 2f 69 3e 3c 2f 74 74 3e 20 77 68 69 63 68 20 68  /i></tt> which h
02d0: 61 73 20 62 65 65 6e 20 6f 70 65 6e 65 64 20 62  as been opened b
02e0: 65 66 6f 72 65 20 75 73 69 6e 67 20 3c 74 74 3e  efore using <tt>
02f0: 76 34 6c 32 20 6f 70 65 6e 3c 2f 74 74 3e 2e 0d  v4l2 open</tt>..
0300: 0a 0d 0a 3c 74 74 3e 76 34 6c 32 20 63 6f 75 6e  ...<tt>v4l2 coun
0310: 74 65 72 73 20 3c 69 3e 64 65 76 69 64 3c 2f 69  ters <i>devid</i
0320: 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 52 65  ></tt>....    Re
0330: 70 6f 72 74 73 20 61 20 74 77 6f 20 65 6c 65 6d  ports a two elem
0340: 65 6e 74 20 6c 69 73 74 20 6f 66 20 73 74 61 74  ent list of stat
0350: 69 73 74 69 63 20 63 6f 75 6e 74 65 72 73 20 6f  istic counters o
0360: 6e 20 74 68 65 20 64 65 76 69 63 65 20 69 64 65  n the device ide
0370: 6e 74 69 66 69 65 64 20 62 79 20 3c 74 74 3e 3c  ntified by <tt><
0380: 69 3e 64 65 76 69 64 3c 2f 69 3e 3c 2f 74 74 3e  i>devid</i></tt>
0390: 2e 20 54 68 65 20 66 69 72 73 74 20 65 6c 65 6d  . The first elem
03a0: 65 6e 74 20 69 73 20 74 68 65 20 6e 75 6d 62 65  ent is the numbe
03b0: 72 20 6f 66 20 76 69 64 65 6f 20 66 72 61 6d 65  r of video frame
03c0: 73 20 72 65 63 65 69 76 65 64 2c 20 74 68 65 20  s received, the 
03d0: 73 65 63 6f 6e 64 20 74 68 65 20 6e 75 6d 62 65  second the numbe
03e0: 72 20 6f 66 20 76 69 64 65 6f 20 66 72 61 6d 65  r of video frame
03f0: 73 20 70 72 6f 63 65 73 73 65 64 20 77 69 74 68  s processed with
0400: 20 3c 74 74 3e 76 34 6c 32 20 67 72 65 79 69 6d   <tt>v4l2 greyim
0410: 61 67 65 3c 2f 74 74 3e 20 61 6e 64 20 3c 74 74  age</tt> and <tt
0420: 3e 76 34 6c 32 20 69 6d 61 67 65 3c 2f 74 74 3e  >v4l2 image</tt>
0430: 2e 20 54 68 69 73 20 69 6e 66 6f 72 6d 61 74 69  . This informati
0440: 6f 6e 20 63 61 6e 20 62 65 20 75 73 65 64 20 74  on can be used t
0450: 6f 20 64 65 74 65 63 74 20 64 72 6f 70 70 65 64  o detect dropped
0460: 20 66 72 61 6d 65 73 2e 0d 0a 0d 0a 3c 74 74 3e   frames.....<tt>
0470: 76 34 6c 32 20 64 65 76 69 63 65 73 3c 2f 74 74  v4l2 devices</tt
0480: 3e 0d 0a 0d 0a 20 20 20 20 52 65 74 75 72 6e 73  >....    Returns
0490: 20 61 20 6c 69 73 74 20 6f 66 20 64 65 76 69 63   a list of devic
04a0: 65 20 6e 61 6d 65 73 20 77 68 69 63 68 20 63 61  e names which ca
04b0: 6e 20 62 65 20 75 73 65 64 20 66 6f 72 20 3c 74  n be used for <t
04c0: 74 3e 76 34 6c 32 20 6f 70 65 6e 3c 2f 74 74 3e  t>v4l2 open</tt>
04d0: 2e 20 49 66 20 3c 74 74 3e 75 64 65 76 3c 2f 74  . If <tt>udev</t
04e0: 74 3e 20 73 75 70 70 6f 72 74 20 69 73 20 61 76  t> support is av
04f0: 61 69 6c 61 62 6c 65 2c 20 74 68 69 73 20 6c 69  ailable, this li
0500: 73 74 20 69 73 20 72 65 66 72 65 73 68 65 64 20  st is refreshed 
0510: 6f 6e 20 70 6c 75 67 20 61 6e 64 20 75 6e 70 6c  on plug and unpl
0520: 75 67 20 6f 66 20 64 65 76 69 63 65 73 2e 20 4f  ug of devices. O
0530: 74 68 65 72 77 69 73 65 20 69 74 20 69 73 20 6d  therwise it is m
0540: 61 64 65 20 75 70 20 6f 66 20 61 20 73 6e 61 70  ade up of a snap
0550: 73 68 6f 74 20 6f 66 20 73 75 69 74 61 62 6c 65  shot of suitable
0560: 20 66 69 6c 65 20 6e 61 6d 65 73 20 69 6e 20 74   file names in t
0570: 68 65 20 3c 74 74 3e 2f 64 65 76 3c 2f 74 74 3e  he <tt>/dev</tt>
0580: 20 64 69 72 65 63 74 6f 72 79 2e 0d 0a 0d 0a 3c   directory.....<
0590: 74 74 3e 76 34 6c 32 20 67 72 65 79 69 6d 61 67  tt>v4l2 greyimag
05a0: 65 20 3c 69 3e 64 65 76 69 64 20 6d 61 73 6b 3c  e <i>devid mask<
05b0: 2f 69 3e 20 3f 3c 69 3e 70 68 6f 74 6f 49 6d 61  /i> ?<i>photoIma
05c0: 67 65 3c 2f 69 3e 3f 3c 2f 74 74 3e 0d 0a 0d 0a  ge</i>?</tt>....
05d0: 20 20 20 20 43 6f 70 69 65 73 20 74 68 65 20 6d      Copies the m
05e0: 6f 73 74 20 72 65 63 65 6e 74 20 63 61 70 74 75  ost recent captu
05f0: 72 65 64 20 69 6d 61 67 65 20 6f 66 20 74 68 65  red image of the
0600: 20 64 65 76 69 63 65 20 3c 74 74 3e 3c 69 3e 64   device <tt><i>d
0610: 65 76 69 64 3c 2f 69 3e 3c 2f 74 74 3e 20 69 6e  evid</i></tt> in
0620: 74 6f 20 74 68 65 20 70 68 6f 74 6f 20 69 6d 61  to the photo ima
0630: 67 65 20 69 64 65 6e 74 69 66 69 65 64 20 62 79  ge identified by
0640: 20 3c 74 74 3e 3c 69 3e 70 68 6f 74 6f 49 6d 61   <tt><i>photoIma
0650: 67 65 3c 2f 69 3e 3c 2f 74 74 3e 20 61 6e 64 20  ge</i></tt> and 
0660: 72 65 74 75 72 6e 73 20 6e 6f 6e 2d 7a 65 72 6f  returns non-zero
0670: 20 6f 6e 20 73 75 63 63 65 73 73 20 6f 72 20 7a   on success or z
0680: 65 72 6f 20 69 66 20 6e 6f 20 64 61 74 61 20 74  ero if no data t
0690: 72 61 6e 73 66 65 72 20 68 61 73 20 74 61 6b 65  ransfer has take
06a0: 6e 20 70 6c 61 63 65 2e 20 54 68 65 20 69 6d 61  n place. The ima
06b0: 67 65 20 69 73 20 63 6f 6e 76 65 72 74 65 64 20  ge is converted 
06c0: 74 6f 20 67 72 65 79 73 63 61 6c 65 20 69 66 20  to greyscale if 
06d0: 74 68 65 20 63 61 70 74 75 72 65 20 66 6f 72 6d  the capture form
06e0: 61 74 20 64 65 6c 69 76 65 72 73 20 63 6f 6c 6f  at delivers colo
06f0: 72 20 69 6d 61 67 65 73 2c 20 77 68 65 72 65 20  r images, where 
0700: 3c 74 74 3e 3c 69 3e 6d 61 73 6b 3c 2f 69 3e 3c  <tt><i>mask</i><
0710: 2f 74 74 3e 63 6f 6e 74 72 6f 6c 73 20 74 68 65  /tt>controls the
0720: 20 63 6f 6e 76 65 72 73 69 6f 6e 2e 20 49 66 20   conversion. If 
0730: 69 74 20 69 73 20 65 6d 70 74 79 20 6f 72 20 3c  it is empty or <
0740: 62 3e 52 47 42 3c 2f 62 3e 2c 20 61 6c 6c 20 63  b>RGB</b>, all c
0750: 6f 6c 6f 72 20 63 6f 6d 70 6f 6e 65 6e 74 73 20  olor components 
0760: 61 72 65 20 75 73 65 64 20 66 6f 72 20 63 6f 6e  are used for con
0770: 76 65 72 73 69 6f 6e 2c 20 6f 74 68 65 72 77 69  version, otherwi
0780: 73 65 20 66 6f 72 20 65 61 63 68 20 6c 65 74 74  se for each lett
0790: 65 72 20 3c 62 3e 52 3c 2f 62 3e 2c 20 3c 62 3e  er <b>R</b>, <b>
07a0: 47 3c 2f 62 3e 2c 20 61 6e 64 20 3c 62 3e 42 3c  G</b>, and <b>B<
07b0: 2f 62 3e 20 74 68 65 20 72 65 73 70 65 63 74 69  /b> the respecti
07c0: 76 65 20 63 6f 6c 6f 72 20 63 6f 6d 70 6f 6e 65  ve color compone
07d0: 6e 74 20 69 73 20 20 75 73 65 64 2e 20 49 66 20  nt is  used. If 
07e0: 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 63 6f  more than one co
07f0: 6c 6f 72 20 63 6f 6d 70 6f 6e 65 6e 74 20 69 73  lor component is
0800: 20 75 73 65 64 20 69 6e 20 74 68 65 20 63 6f 6e   used in the con
0810: 76 65 72 73 69 6f 6e 2c 20 74 68 65 20 77 65 69  version, the wei
0820: 67 68 74 73 20 61 72 65 20 30 2e 32 39 39 20 66  ghts are 0.299 f
0830: 6f 72 20 72 65 64 2c 20 30 2e 35 38 37 20 66 6f  or red, 0.587 fo
0840: 72 20 67 72 65 65 6e 2c 20 61 6e 64 20 30 2e 31  r green, and 0.1
0850: 31 34 20 66 6f 72 20 20 62 6c 75 65 2e 20 49 66  14 for  blue. If
0860: 20 3c 74 74 3e 3c 69 3e 70 68 6f 74 6f 49 6d 61   <tt><i>photoIma
0870: 67 65 3c 2f 69 3e 3c 2f 74 74 3e 20 69 73 20 6f  ge</i></tt> is o
0880: 6d 69 74 74 65 64 2c 20 61 20 66 6f 75 72 20 65  mitted, a four e
0890: 6c 65 6d 65 6e 74 20 6c 69 73 74 20 69 73 20 72  lement list is r
08a0: 65 74 75 72 6e 65 64 20 77 69 74 68 20 74 68 65  eturned with the
08b0: 20 66 69 72 73 74 20 65 6c 65 6d 65 6e 74 20 62   first element b
08c0: 65 69 6e 67 20 74 68 65 20 69 6d 61 67 65 20 77  eing the image w
08d0: 69 64 74 68 2c 20 74 68 65 20 73 65 63 6f 6e 64  idth, the second
08e0: 20 74 68 65 20 69 6d 61 67 65 20 68 65 69 67 68   the image heigh
08f0: 74 2c 20 74 68 65 20 74 68 69 72 64 20 74 68 65  t, the third the
0900: 20 6e 75 6d 62 65 72 20 6f 66 20 62 79 74 65 73   number of bytes
0910: 20 70 65 72 20 70 69 78 65 6c 20 28 6f 6e 65 20   per pixel (one 
0920: 6f 72 20 74 77 6f 29 2c 20 61 6e 64 20 74 68 65  or two), and the
0930: 20 6c 61 73 74 20 74 68 65 20 69 6d 61 67 65 27   last the image'
0940: 73 20 70 69 78 65 6c 20 76 61 6c 75 65 73 20 77  s pixel values w
0950: 69 74 68 20 6f 6e 65 20 6f 72 20 74 77 6f 20 62  ith one or two b
0960: 79 74 65 73 20 70 65 72 20 67 72 65 79 20 70 69  ytes per grey pi
0970: 78 65 6c 20 61 73 20 61 20 62 79 74 65 20 61 72  xel as a byte ar
0980: 72 61 79 2e 20 49 6e 20 74 68 69 73 20 63 61 73  ray. In this cas
0990: 65 20 61 6e 20 65 72 72 6f 72 20 69 73 20 69 6e  e an error is in
09a0: 64 69 63 61 74 65 64 20 62 79 20 74 68 72 6f 77  dicated by throw
09b0: 69 6e 67 20 61 6e 20 65 78 63 65 70 74 69 6f 6e  ing an exception
09c0: 2e 0d 0a 0d 0a 3c 74 74 3e 76 34 6c 32 20 67 72  .....<tt>v4l2 gr
09d0: 65 79 73 68 69 66 74 20 3c 69 3e 64 65 76 69 64  eyshift <i>devid
09e0: 3c 2f 69 3e 20 3f 3c 69 3e 73 68 69 66 74 3c 2f  </i> ?<i>shift</
09f0: 69 3e 3f 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20  i>?</tt>....    
0a00: 52 65 74 75 72 6e 73 20 6f 72 20 73 65 74 73 20  Returns or sets 
0a10: 74 68 65 20 62 69 74 20 73 68 69 66 74 20 74 6f  the bit shift to
0a20: 20 62 65 20 61 70 70 6c 69 65 64 20 6f 6e 20 67   be applied on g
0a30: 72 65 79 20 69 6d 61 67 65 73 20 77 69 74 68 20  rey images with 
0a40: 61 20 62 69 74 20 64 65 70 74 68 20 68 69 67 68  a bit depth high
0a50: 65 72 20 74 68 61 6e 20 38 20 77 68 69 63 68 20  er than 8 which 
0a60: 61 72 65 20 63 61 70 74 75 72 65 64 20 66 72 6f  are captured fro
0a70: 6d 20 64 65 76 69 63 65 20 3c 74 74 3e 3c 69 3e  m device <tt><i>
0a80: 64 65 76 69 64 3c 2f 69 3e 3c 2f 74 74 3e 2e 20  devid</i></tt>. 
0a90: 54 68 65 20 64 65 66 61 75 6c 74 20 76 61 6c 75  The default valu
0aa0: 65 20 69 73 20 34 2c 20 77 68 69 63 68 20 69 73  e is 4, which is
0ab0: 20 73 75 69 74 61 62 6c 65 20 66 6f 72 20 67 72   suitable for gr
0ac0: 65 79 73 63 61 6c 65 20 63 61 6d 65 72 61 73 20  eyscale cameras 
0ad0: 77 69 74 68 20 31 32 20 62 69 74 20 72 65 73 6f  with 12 bit reso
0ae0: 6c 75 74 69 6f 6e 2e 20 54 68 65 20 73 68 69 66  lution. The shif
0af0: 74 20 69 73 20 6e 6f 74 20 61 70 70 6c 69 65 64  t is not applied
0b00: 20 77 68 65 6e 20 74 68 65 20 3c 74 74 3e 3c 69   when the <tt><i
0b10: 3e 69 6d 61 67 65 3c 2f 69 3e 3c 2f 74 74 3e 20  >image</i></tt> 
0b20: 73 75 62 63 6f 6d 6d 61 6e 64 20 72 65 74 72 69  subcommand retri
0b30: 65 76 65 73 20 72 61 77 20 62 79 74 65 20 61 72  eves raw byte ar
0b40: 72 61 79 20 64 61 74 61 2e 0d 0a 0d 0a 3c 74 74  ray data.....<tt
0b50: 3e 76 34 6c 32 20 69 6d 61 67 65 20 3c 69 3e 64  >v4l2 image <i>d
0b60: 65 76 69 64 3c 2f 69 3e 20 3f 3c 69 3e 70 68 6f  evid</i> ?<i>pho
0b70: 74 6f 49 6d 61 67 65 3c 2f 69 3e 3f 3c 2f 74 74  toImage</i>?</tt
0b80: 3e 0d 0a 0d 0a 20 20 20 20 43 6f 70 69 65 73 20  >....    Copies 
0b90: 74 68 65 20 6d 6f 73 74 20 72 65 63 65 6e 74 20  the most recent 
0ba0: 63 61 70 74 75 72 65 64 20 69 6d 61 67 65 20 6f  captured image o
0bb0: 66 20 74 68 65 20 64 65 76 69 63 65 20 3c 74 74  f the device <tt
0bc0: 3e 3c 69 3e 64 65 76 69 64 3c 2f 69 3e 3c 2f 74  ><i>devid</i></t
0bd0: 74 3e 20 69 6e 74 6f 20 74 68 65 20 70 68 6f 74  t> into the phot
0be0: 6f 20 69 6d 61 67 65 20 69 64 65 6e 74 69 66 69  o image identifi
0bf0: 65 64 20 62 79 20 3c 74 74 3e 3c 69 3e 70 68 6f  ed by <tt><i>pho
0c00: 74 6f 49 6d 61 67 65 3c 2f 69 3e 3c 2f 74 74 3e  toImage</i></tt>
0c10: 20 61 6e 64 20 72 65 74 75 72 6e 73 20 6e 6f 6e   and returns non
0c20: 2d 7a 65 72 6f 20 6f 6e 20 73 75 63 63 65 73 73  -zero on success
0c30: 20 6f 72 20 7a 65 72 6f 20 69 66 20 6e 6f 20 64   or zero if no d
0c40: 61 74 61 20 74 72 61 6e 73 66 65 72 20 68 61 73  ata transfer has
0c50: 20 74 61 6b 65 6e 20 70 6c 61 63 65 2e 20 49 66   taken place. If
0c60: 20 3c 74 74 3e 3c 69 3e 70 68 6f 74 6f 49 6d 61   <tt><i>photoIma
0c70: 67 65 3c 2f 69 3e 3c 2f 74 74 3e 20 69 73 20 6f  ge</i></tt> is o
0c80: 6d 69 74 74 65 64 2c 20 61 20 66 6f 75 72 20 65  mitted, a four e
0c90: 6c 65 6d 65 6e 74 20 6c 69 73 74 20 69 73 20 72  lement list is r
0ca0: 65 74 75 72 6e 65 64 20 77 69 74 68 20 74 68 65  eturned with the
0cb0: 20 66 69 72 73 74 20 65 6c 65 6d 65 6e 74 20 62   first element b
0cc0: 65 69 6e 67 20 74 68 65 20 69 6d 61 67 65 20 77  eing the image w
0cd0: 69 64 74 68 2c 20 74 68 65 20 73 65 63 6f 6e 64  idth, the second
0ce0: 20 74 68 65 20 69 6d 61 67 65 20 68 65 69 67 68   the image heigh
0cf0: 74 2c 20 74 68 65 20 74 68 69 72 64 20 74 68 65  t, the third the
0d00: 20 6e 75 6d 62 65 72 20 6f 66 20 62 79 74 65 73   number of bytes
0d10: 20 70 65 72 20 70 69 78 65 6c 2c 20 61 6e 64 20   per pixel, and 
0d20: 74 68 65 20 6c 61 73 74 20 74 68 65 20 69 6d 61  the last the ima
0d30: 67 65 27 73 20 52 47 42 20 76 61 6c 75 65 73 20  ge's RGB values 
0d40: 77 69 74 68 20 33 20 62 79 74 65 73 20 70 65 72  with 3 bytes per
0d50: 20 70 69 78 65 6c 20 69 6e 20 72 65 64 2c 20 67   pixel in red, g
0d60: 72 65 65 6e 2c 20 62 6c 75 65 20 6f 72 64 65 72  reen, blue order
0d70: 20 61 73 20 61 20 62 79 74 65 20 61 72 72 61 79   as a byte array
0d80: 2e 20 49 6e 20 74 68 69 73 20 63 61 73 65 20 61  . In this case a
0d90: 6e 20 65 72 72 6f 72 20 69 73 20 69 6e 64 69 63  n error is indic
0da0: 61 74 65 64 20 62 79 20 74 68 72 6f 77 69 6e 67  ated by throwing
0db0: 20 61 6e 20 65 78 63 65 70 74 69 6f 6e 2e 0d 0a   an exception...
0dc0: 0d 0a 3c 74 74 3e 76 34 6c 32 20 69 6e 66 6f 20  ..<tt>v4l2 info 
0dd0: 3c 69 3e 64 65 76 69 64 3c 2f 69 3e 3c 2f 74 74  <i>devid</i></tt
0de0: 3e 0d 0a 0d 0a 20 20 20 20 52 65 74 75 72 6e 73  >....    Returns
0df0: 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20   information on 
0e00: 6f 70 65 6e 20 64 65 76 69 63 65 73 2e 20 49 66  open devices. If
0e10: 20 3c 74 74 3e 3c 69 3e 64 65 76 69 64 3c 2f 69   <tt><i>devid</i
0e20: 3e 3c 2f 74 74 3e 20 69 73 20 73 70 65 63 69 66  ></tt> is specif
0e30: 69 65 64 2c 0d 0a 61 20 6c 69 73 74 20 6f 66 20  ied,..a list of 
0e40: 74 77 6f 20 65 6c 65 6d 65 6e 74 73 20 69 73 20  two elements is 
0e50: 72 65 74 75 72 6e 65 64 2c 20 74 68 65 20 66 69  returned, the fi
0e60: 72 73 74 20 62 65 69 6e 67 20 74 68 65 20 64 65  rst being the de
0e70: 76 69 63 65 20 6e 61 6d 65 20 61 6e 64 0d 0a 74  vice name and..t
0e80: 68 65 20 73 65 63 6f 6e 64 20 74 68 65 20 69 6d  he second the im
0e90: 61 67 65 20 63 61 6c 6c 62 61 63 6b 20 63 6f 6d  age callback com
0ea0: 6d 61 6e 64 20 66 6f 72 20 74 68 61 74 20 64 65  mand for that de
0eb0: 76 69 63 65 2c 20 69 2e 65 2e 20 74 68 65 20 73  vice, i.e. the s
0ec0: 61 6d 65 0d 0a 61 72 67 75 6d 65 6e 74 73 20 77  ame..arguments w
0ed0: 68 69 63 68 20 77 65 72 65 20 75 73 65 64 20 6f  hich were used o
0ee0: 6e 20 3c 74 74 3e 76 34 6c 32 20 6f 70 65 6e 3c  n <tt>v4l2 open<
0ef0: 2f 74 74 3e 2e 20 49 66 20 3c 74 74 3e 3c 69 3e  /tt>. If <tt><i>
0f00: 64 65 76 69 64 3c 2f 69 3e 3c 2f 74 74 3e 20 69  devid</i></tt> i
0f10: 73 20 6f 6d 69 74 74 65 64 2c 20 61 20 6c 69 73  s omitted, a lis
0f20: 74 20 6f 66 20 3c 74 74 3e 3c 69 3e 64 65 76 69  t of <tt><i>devi
0f30: 64 3c 2f 69 3e 3c 2f 74 74 3e 73 2c 20 69 2e 65  d</i></tt>s, i.e
0f40: 2e 20 61 6c 6c 20 63 75 72 72 65 6e 74 6c 79 20  . all currently 
0f50: 6f 70 65 6e 65 64 20 64 65 76 69 63 65 73 20 69  opened devices i
0f60: 73 20 72 65 74 75 72 6e 65 64 2e 0d 0a 0d 0a 3c  s returned.....<
0f70: 74 74 3e 76 34 6c 32 20 69 73 6c 6f 6f 70 62 61  tt>v4l2 isloopba
0f80: 63 6b 20 3c 69 3e 64 65 76 6e 61 6d 65 3c 2f 69  ck <i>devname</i
0f90: 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 54 65  ></tt>....    Te
0fa0: 73 74 73 20 69 66 20 3c 74 74 3e 3c 69 3e 64 65  sts if <tt><i>de
0fb0: 76 6e 61 6d 65 3c 2f 69 3e 3c 2f 74 74 3e 20 69  vname</i></tt> i
0fc0: 73 20 61 20 6c 6f 6f 70 62 61 63 6b 20 76 69 64  s a loopback vid
0fd0: 65 6f 20 64 65 76 69 63 65 20 61 6e 64 20 72 65  eo device and re
0fe0: 74 75 72 6e 73 20 74 72 75 65 20 6f 72 20 66 61  turns true or fa
0ff0: 6c 73 65 2e 0d 0a 0d 0a 3c 74 74 3e 76 34 6c 32  lse.....<tt>v4l2
1000: 20 6c 69 73 74 65 6e 20 3f 3c 69 3e 63 61 6c 6c   listen ?<i>call
1010: 62 61 63 6b 3c 2f 69 3e 3f 3c 2f 74 74 3e 0d 0a  back</i>?</tt>..
1020: 0d 0a 20 20 20 20 52 65 74 72 69 65 76 65 73 20  ..    Retrieves 
1030: 6f 72 20 73 65 74 73 20 74 68 65 20 3c 74 74 3e  or sets the <tt>
1040: 3c 69 3e 63 61 6c 6c 62 61 63 6b 3c 2f 69 3e 3c  <i>callback</i><
1050: 2f 74 74 3e 20 63 6f 6d 6d 61 6e 64 20 63 61 6c  /tt> command cal
1060: 6c 65 64 20 6f 6e 20 70 6c 75 67 20 61 6e 64 20  led on plug and 
1070: 75 6e 70 6c 75 67 20 6f 66 20 64 65 76 69 63 65  unplug of device
1080: 73 2e 20 57 68 65 6e 20 61 20 64 65 76 69 63 65  s. When a device
1090: 20 69 73 20 70 6c 75 67 67 65 64 20 6f 72 20 75   is plugged or u
10a0: 6e 70 6c 75 67 67 65 64 20 74 68 61 74 20 63 61  nplugged that ca
10b0: 6c 6c 62 61 63 6b 20 69 73 20 69 6e 76 6f 6b 65  llback is invoke
10c0: 64 20 77 69 74 68 20 74 77 6f 20 61 64 64 69 74  d with two addit
10d0: 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 73 3a  ional arguments:
10e0: 20 74 68 65 20 74 79 70 65 20 6f 66 20 65 76 65   the type of eve
10f0: 6e 74 20 28 3c 74 74 3e 61 64 64 3c 2f 74 74 3e  nt (<tt>add</tt>
1100: 20 6f 72 20 3c 74 74 3e 72 65 6d 6f 76 65 3c 2f   or <tt>remove</
1110: 74 74 3e 29 20 61 6e 64 20 74 68 65 20 64 65 76  tt>) and the dev
1120: 69 63 65 20 6e 61 6d 65 20 77 68 69 63 68 20 77  ice name which w
1130: 61 73 20 61 64 64 65 64 20 6f 72 20 72 65 6d 6f  as added or remo
1140: 76 65 64 2e 20 4f 6e 6c 79 20 75 73 65 61 62 6c  ved. Only useabl
1150: 65 20 69 66 20 3c 74 74 3e 75 64 65 76 3c 2f 74  e if <tt>udev</t
1160: 74 3e 20 73 75 70 70 6f 72 74 20 69 73 20 61 76  t> support is av
1170: 61 69 6c 61 62 6c 65 2e 0d 0a 0d 0a 3c 74 74 3e  ailable.....<tt>
1180: 76 34 6c 32 20 6c 6f 6f 70 62 61 63 6b 20 3c 69  v4l2 loopback <i
1190: 3e 64 65 76 6e 61 6d 65 3c 69 3e 20 3f 3c 69 3e  >devname<i> ?<i>
11a0: 66 6f 75 72 63 63 20 77 69 64 74 68 20 68 65 69  fourcc width hei
11b0: 67 68 74 20 66 70 73 3c 69 3e 3f 3c 2f 74 74 3e  ght fps<i>?</tt>
11c0: 0d 0a 0d 0a 20 20 20 20 52 65 74 72 69 65 76 65  ....    Retrieve
11d0: 73 20 6f 72 20 73 65 74 73 20 66 72 61 6d 65 20  s or sets frame 
11e0: 66 6f 72 6d 61 74 20 61 6e 64 20 72 61 74 65 20  format and rate 
11f0: 6f 66 20 74 68 65 20 6c 6f 6f 70 62 61 63 6b 20  of the loopback 
1200: 76 69 64 65 6f 20 64 65 76 69 63 65 20 3c 74 74  video device <tt
1210: 3e 3c 69 3e 64 65 76 6e 61 6d 65 3c 2f 69 3e 3c  ><i>devname</i><
1220: 2f 74 74 3e 2e 20 54 68 65 20 70 61 72 61 6d 65  /tt>. The parame
1230: 74 65 72 20 3c 74 74 3e 3c 69 3e 66 6f 75 72 63  ter <tt><i>fourc
1240: 63 3c 2f 69 3e 3c 2f 74 74 3e 20 73 70 65 63 69  c</i></tt> speci
1250: 66 69 65 73 20 74 68 65 20 66 6f 72 6d 61 74 20  fies the format 
1260: 63 6f 64 65 2c 20 74 68 65 20 69 6d 61 67 65 20  code, the image 
1270: 73 69 7a 65 20 69 73 20 67 69 76 65 6e 20 61 73  size is given as
1280: 20 3c 74 74 3e 3c 69 3e 77 69 64 74 68 3c 2f 69   <tt><i>width</i
1290: 3e 3c 2f 74 74 3e 20 74 69 6d 65 73 20 3c 74 74  ></tt> times <tt
12a0: 3e 3c 69 3e 68 65 69 67 68 74 3c 2f 69 3e 3c 2f  ><i>height</i></
12b0: 74 74 3e 20 70 69 78 65 6c 73 2c 20 61 6e 64 20  tt> pixels, and 
12c0: 74 68 65 20 66 72 61 6d 65 20 72 61 74 65 20 3c  the frame rate <
12d0: 74 74 3e 3c 69 3e 66 70 73 3c 2f 69 3e 3c 2f 74  tt><i>fps</i></t
12e0: 74 3e 20 61 73 20 66 72 61 63 74 69 6f 6e 2c 20  t> as fraction, 
12f0: 69 2e 65 2e 20 31 2f 33 30 2c 20 6f 72 20 61 73  i.e. 1/30, or as
1300: 20 61 6e 20 69 6e 74 65 67 72 61 6c 20 6e 75 6d   an integral num
1310: 62 65 72 2c 20 62 6f 74 68 20 65 78 70 72 65 73  ber, both expres
1320: 73 69 6e 67 20 66 72 61 6d 65 73 20 70 65 72 20  sing frames per 
1330: 73 65 63 6f 6e 64 2e 20 57 68 65 6e 20 6e 6f 20  second. When no 
1340: 70 61 72 61 6d 65 74 65 72 73 20 61 72 65 20 73  parameters are s
1350: 70 65 63 69 66 69 65 64 2c 20 74 68 65 20 63 75  pecified, the cu
1360: 72 72 65 6e 74 20 73 65 74 74 69 6e 67 73 20 61  rrent settings a
1370: 72 65 20 72 65 74 75 72 6e 65 64 20 61 73 20 61  re returned as a
1380: 20 66 6f 75 72 20 65 6c 65 6d 65 6e 74 20 6c 69   four element li
1390: 73 74 20 6f 66 20 3c 74 74 3e 3c 69 3e 66 6f 75  st of <tt><i>fou
13a0: 72 63 63 3c 2f 69 3e 3c 2f 74 74 3e 2c 20 3c 74  rcc</i></tt>, <t
13b0: 74 3e 3c 69 3e 77 69 64 74 68 3c 2f 69 3e 3c 2f  t><i>width</i></
13c0: 74 74 3e 2c 20 3c 74 74 3e 3c 69 3e 68 65 69 67  tt>, <tt><i>heig
13d0: 68 74 3c 2f 69 3e 3c 2f 74 74 3e 2c 20 61 6e 64  ht</i></tt>, and
13e0: 20 3c 74 74 3e 3c 69 3e 66 70 73 3c 2f 69 3e 3c   <tt><i>fps</i><
13f0: 2f 74 74 3e 2e 0d 0a 0d 0a 3c 74 74 3e 76 34 6c  /tt>.....<tt>v4l
1400: 32 20 6d 62 63 6f 70 79 20 3c 69 3e 62 79 74 65  2 mbcopy <i>byte
1410: 61 72 72 61 79 31 20 62 79 74 65 61 72 72 61 79  array1 bytearray
1420: 32 20 6d 61 73 6b 3c 2f 69 3e 3c 2f 74 74 3e 0d  2 mask</i></tt>.
1430: 0a 0d 0a 20 20 20 20 43 6f 70 69 65 73 20 74 68  ...    Copies th
1440: 65 20 63 6f 6e 74 65 6e 74 20 6f 66 20 52 47 42  e content of RGB
1450: 20 62 79 74 65 20 61 72 72 61 79 20 3c 74 74 3e   byte array <tt>
1460: 3c 69 3e 62 79 74 65 61 72 72 61 79 32 3c 2f 69  <i>bytearray2</i
1470: 3e 3c 2f 74 74 3e 20 69 6e 74 6f 20 74 68 65 20  ></tt> into the 
1480: 20 62 79 74 65 20 61 72 72 61 79 20 3c 74 74 3e   byte array <tt>
1490: 3c 69 3e 62 79 74 65 61 72 72 61 79 31 3c 2f 69  <i>bytearray1</i
14a0: 3e 3c 2f 74 74 3e 20 75 73 69 6e 67 20 61 6e 20  ></tt> using an 
14b0: 52 47 42 20 3c 74 74 3e 3c 69 3e 6d 61 73 6b 3c  RGB <tt><i>mask<
14c0: 2f 69 3e 3c 2f 74 74 3e 2e 20 42 6f 74 68 20 62  /i></tt>. Both b
14d0: 79 74 65 20 61 72 72 61 79 73 20 6d 75 73 74 20  yte arrays must 
14e0: 68 61 76 65 20 69 64 65 6e 74 69 63 61 6c 20 6c  have identical l
14f0: 65 6e 67 74 68 20 77 68 69 63 68 20 6d 75 73 74  ength which must
1500: 20 62 65 20 61 20 6d 75 6c 74 69 70 6c 65 20 6f   be a multiple o
1510: 66 20 33 20 28 66 6f 72 20 52 47 42 29 2e 20 54  f 3 (for RGB). T
1520: 68 65 20 6d 61 69 6e 20 70 75 72 70 6f 73 65 20  he main purpose 
1530: 6f 66 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20  of this command 
1540: 69 73 20 74 6f 20 63 6f 6d 62 69 6e 65 20 69 6d  is to combine im
1550: 61 67 65 73 20 66 72 6f 6d 20 74 77 6f 20 63 61  ages from two ca
1560: 6d 65 72 61 73 20 69 6e 74 6f 20 61 6e 20 61 6e  meras into an an
1570: 61 67 6c 79 70 68 20 33 44 2c 20 77 68 65 72 65  aglyph 3D, where
1580: 20 28 66 6f 72 20 61 20 72 65 64 2d 63 79 61 6e   (for a red-cyan
1590: 20 61 6e 61 67 6c 79 70 68 29 20 74 68 65 20 6c   anaglyph) the l
15a0: 65 66 74 20 63 61 6d 65 72 61 20 69 6d 61 67 65  eft camera image
15b0: 20 75 73 65 73 20 6d 61 73 6b 20 30 78 46 46 30   uses mask 0xFF0
15c0: 30 30 30 20 28 72 65 64 20 63 6f 6d 70 6f 6e 65  000 (red compone
15d0: 6e 74 29 20 61 6e 64 20 74 68 65 20 72 69 67 68  nt) and the righ
15e0: 74 20 63 61 6d 65 72 61 20 69 6d 61 67 65 20 75  t camera image u
15f0: 73 65 73 20 6d 61 73 6b 20 30 78 30 30 46 46 46  ses mask 0x00FFF
1600: 46 20 28 67 72 65 65 6e 20 61 6e 64 20 62 6c 75  F (green and blu
1610: 65 20 63 6f 6d 70 6f 6e 65 6e 74 73 29 2e 0d 0a  e components)...
1620: 0d 0a 3c 74 74 3e 76 34 6c 32 20 6d 63 6f 70 79  ..<tt>v4l2 mcopy
1630: 20 3c 69 3e 70 68 6f 74 6f 31 20 70 68 6f 74 6f   <i>photo1 photo
1640: 32 20 6d 61 73 6b 3c 2f 69 3e 3c 2f 74 74 3e 0d  2 mask</i></tt>.
1650: 0a 0d 0a 20 20 20 20 43 6f 70 69 65 73 20 74 68  ...    Copies th
1660: 65 20 63 6f 6e 74 65 6e 74 20 6f 66 20 74 68 65  e content of the
1670: 20 70 68 6f 74 6f 20 69 6d 61 67 65 20 3c 74 74   photo image <tt
1680: 3e 3c 69 3e 70 68 6f 74 6f 32 3c 2f 69 3e 3c 2f  ><i>photo2</i></
1690: 74 74 3e 20 69 6e 74 6f 20 74 68 65 20 70 68 6f  tt> into the pho
16a0: 74 6f 20 69 6d 61 67 65 20 3c 74 74 3e 3c 69 3e  to image <tt><i>
16b0: 70 68 6f 74 6f 31 3c 2f 69 3e 3c 2f 74 74 3e 20  photo1</i></tt> 
16c0: 75 73 69 6e 67 20 61 6e 20 41 52 47 42 20 3c 74  using an ARGB <t
16d0: 74 3e 3c 69 3e 6d 61 73 6b 3c 2f 69 3e 3c 2f 74  t><i>mask</i></t
16e0: 74 3e 2e 20 42 6f 74 68 20 70 68 6f 74 6f 20 69  t>. Both photo i
16f0: 6d 61 67 65 73 20 6d 75 73 74 20 68 61 76 65 20  mages must have 
1700: 69 64 65 6e 74 69 63 61 6c 20 77 69 64 74 68 2c  identical width,
1710: 20 68 65 69 67 68 74 2c 20 61 6e 64 20 64 65 70   height, and dep
1720: 74 68 2e 20 54 68 65 20 6d 61 69 6e 20 70 75 72  th. The main pur
1730: 70 6f 73 65 20 6f 66 20 74 68 69 73 20 63 6f 6d  pose of this com
1740: 6d 61 6e 64 20 69 73 20 74 6f 20 63 6f 6d 62 69  mand is to combi
1750: 6e 65 20 69 6d 61 67 65 73 20 66 72 6f 6d 20 74  ne images from t
1760: 77 6f 20 63 61 6d 65 72 61 73 20 69 6e 74 6f 20  wo cameras into 
1770: 61 6e 20 61 6e 61 67 6c 79 70 68 20 33 44 2c 20  an anaglyph 3D, 
1780: 77 68 65 72 65 20 28 66 6f 72 20 61 20 72 65 64  where (for a red
1790: 2d 63 79 61 6e 20 61 6e 61 67 6c 79 70 68 29 20  -cyan anaglyph) 
17a0: 74 68 65 20 6c 65 66 74 20 63 61 6d 65 72 61 20  the left camera 
17b0: 69 6d 61 67 65 20 75 73 65 73 20 6d 61 73 6b 20  image uses mask 
17c0: 30 78 30 30 46 46 30 30 30 30 20 28 72 65 64 20  0x00FF0000 (red 
17d0: 63 6f 6d 70 6f 6e 65 6e 74 29 20 61 6e 64 20 74  component) and t
17e0: 68 65 20 72 69 67 68 74 20 63 61 6d 65 72 61 20  he right camera 
17f0: 69 6d 61 67 65 20 75 73 65 73 20 6d 61 73 6b 20  image uses mask 
1800: 30 78 30 30 30 30 46 46 46 46 20 28 67 72 65 65  0x0000FFFF (gree
1810: 6e 20 61 6e 64 20 62 6c 75 65 20 63 6f 6d 70 6f  n and blue compo
1820: 6e 65 6e 74 73 29 2e 0d 0a 0d 0a 3c 74 74 3e 76  nents).....<tt>v
1830: 34 6c 32 20 6d 69 72 72 6f 72 20 3c 69 3e 64 65  4l2 mirror <i>de
1840: 76 69 64 3c 2f 69 3e 20 3f 3c 69 3e 78 20 79 3c  vid</i> ?<i>x y<
1850: 2f 69 3e 3f 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20  /i>?</tt>....   
1860: 20 52 65 74 72 69 65 76 65 73 20 6f 72 20 73 65   Retrieves or se
1870: 74 73 20 66 6c 61 67 73 20 74 6f 20 6d 69 72 72  ts flags to mirr
1880: 6f 72 20 63 61 70 74 75 72 65 64 20 69 6d 61 67  or captured imag
1890: 65 73 20 61 6c 6f 6e 67 20 74 68 65 20 58 20 6f  es along the X o
18a0: 72 20 59 20 61 78 69 73 2e 20 50 61 72 61 6d 65  r Y axis. Parame
18b0: 74 65 72 73 20 3c 74 74 3e 3c 69 3e 78 3c 2f 69  ters <tt><i>x</i
18c0: 3e 3c 2f 74 74 3e 20 61 6e 64 20 3c 74 74 3e 3c  ></tt> and <tt><
18d0: 69 3e 79 3c 2f 69 3e 3c 2f 74 74 3e 20 69 66 20  i>y</i></tt> if 
18e0: 73 70 65 63 69 66 69 65 64 20 6d 75 73 74 20 62  specified must b
18f0: 65 20 62 6f 6f 6c 65 61 6e 20 76 61 6c 75 65 73  e boolean values
1900: 2e 0d 0a 0d 0a 3c 74 74 3e 76 34 6c 32 20 6f 70  .....<tt>v4l2 op
1910: 65 6e 20 3c 69 3e 64 65 76 6e 61 6d 65 20 63 61  en <i>devname ca
1920: 6c 6c 62 61 63 6b 3c 2f 69 3e 3c 2f 74 74 3e 0d  llback</i></tt>.
1930: 0a 0d 0a 20 20 20 20 4f 70 65 6e 73 20 74 68 65  ...    Opens the
1940: 20 64 65 76 69 63 65 20 77 69 74 68 20 64 65 76   device with dev
1950: 69 63 65 20 6e 61 6d 65 20 28 55 4e 2a 58 20 70  ice name (UN*X p
1960: 61 74 68 6e 61 6d 65 29 20 3c 74 74 3e 3c 69 3e  athname) <tt><i>
1970: 64 65 76 6e 61 6d 65 3c 2f 69 3e 3c 2f 74 74 3e  devname</i></tt>
1980: 20 61 6e 64 20 65 73 74 61 62 6c 69 73 68 65 73   and establishes
1990: 20 3c 74 74 3e 3c 69 3e 63 61 6c 6c 62 61 63 6b   <tt><i>callback
19a0: 3c 2f 69 3e 3c 2f 74 74 3e 20 61 73 20 63 6f 6d  </i></tt> as com
19b0: 6d 61 6e 64 20 74 6f 20 62 65 20 69 6e 76 6f 6b  mand to be invok
19c0: 65 64 20 6f 6e 20 63 61 70 74 75 72 65 64 20 69  ed on captured i
19d0: 6d 61 67 65 73 20 61 6e 64 20 72 65 74 75 72 6e  mages and return
19e0: 73 20 61 20 3c 74 74 3e 3c 69 3e 64 65 76 69 64  s a <tt><i>devid
19f0: 3c 2f 69 3e 3c 2f 74 74 3e 2c 20 69 2e 65 2e 20  </i></tt>, i.e. 
1a00: 61 20 68 61 6e 64 6c 65 20 74 6f 20 66 75 72 74  a handle to furt
1a10: 68 65 72 20 64 65 61 6c 20 77 69 74 68 20 74 68  her deal with th
1a20: 65 20 64 65 76 69 63 65 2e 20 54 77 6f 20 61 64  e device. Two ad
1a30: 64 69 74 69 6f 6e 61 6c 20 70 61 72 61 6d 65 74  ditional paramet
1a40: 65 72 73 20 61 72 65 20 61 70 70 65 6e 64 65 64  ers are appended
1a50: 20 77 68 65 6e 20 3c 74 74 3e 3c 69 3e 63 61 6c   when <tt><i>cal
1a60: 6c 62 61 63 6b 3c 2f 69 3e 3c 2f 74 74 3e 20 69  lback</i></tt> i
1a70: 73 20 69 6e 76 6f 6b 65 64 3a 20 74 68 65 20 66  s invoked: the f
1a80: 69 72 73 74 20 69 73 20 74 68 65 20 3c 74 74 3e  irst is the <tt>
1a90: 3c 69 3e 64 65 76 69 64 3c 2f 69 3e 3c 2f 74 74  <i>devid</i></tt
1aa0: 3e 20 6f 66 20 74 68 65 20 64 65 76 69 63 65 2c  > of the device,
1ab0: 20 74 68 65 20 73 65 63 6f 6e 64 20 61 20 66 72   the second a fr
1ac0: 61 6d 65 20 63 6f 75 6e 74 65 72 20 77 69 74 68  ame counter with
1ad0: 20 69 6e 69 74 69 61 6c 20 76 61 6c 75 65 20 6f   initial value o
1ae0: 66 20 7a 65 72 6f 20 62 61 73 65 64 20 6f 6e 20  f zero based on 
1af0: 74 68 65 20 6c 61 73 74 20 73 74 61 72 74 20 6f  the last start o
1b00: 66 20 69 6d 61 67 65 20 63 61 70 74 75 72 65 2e  f image capture.
1b10: 20 49 66 20 61 6e 20 65 72 72 6f 72 20 69 73 20   If an error is 
1b20: 64 65 74 65 63 74 65 64 20 64 75 72 69 6e 67 20  detected during 
1b30: 69 6d 61 67 65 20 63 61 70 74 75 72 65 2c 20 74  image capture, t
1b40: 68 65 20 77 6f 72 64 20 3c 62 3e 65 72 72 6f 72  he word <b>error
1b50: 3c 2f 62 3e 20 69 73 20 75 73 65 64 20 69 6e 73  </b> is used ins
1b60: 74 65 61 64 20 6f 66 20 74 68 65 20 66 72 61 6d  tead of the fram
1b70: 65 20 63 6f 75 6e 74 65 72 2e 0d 0a 0d 0a 3c 74  e counter.....<t
1b80: 74 3e 76 34 6c 32 20 6f 72 69 65 6e 74 61 74 69  t>v4l2 orientati
1b90: 6f 6e 20 3c 69 3e 64 65 76 69 64 3c 2f 69 3e 20  on <i>devid</i> 
1ba0: 3f 3c 69 3e 64 65 67 72 65 65 73 3c 2f 69 3e 3f  ?<i>degrees</i>?
1bb0: 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74  </tt>....    Ret
1bc0: 72 69 65 76 65 73 20 6f 72 20 73 65 74 73 20 74  rieves or sets t
1bd0: 68 65 20 6f 72 69 65 6e 74 61 74 69 6f 6e 20 6f  he orientation o
1be0: 66 20 63 61 70 74 75 72 65 64 20 69 6d 61 67 65  f captured image
1bf0: 73 20 72 65 67 61 72 64 69 6e 67 20 69 6d 61 67  s regarding imag
1c00: 65 20 72 6f 74 61 74 69 6f 6e 2e 20 3c 74 74 3e  e rotation. <tt>
1c10: 3c 69 3e 64 65 67 72 65 65 73 3c 2f 69 3e 3c 2f  <i>degrees</i></
1c20: 74 74 3e 20 69 66 20 73 70 65 63 69 66 69 65 64  tt> if specified
1c30: 20 6d 75 73 74 20 62 65 20 61 6e 20 69 6e 74 65   must be an inte
1c40: 67 65 72 20 6e 75 6d 62 65 72 2e 0d 0a 0d 0a 3c  ger number.....<
1c50: 74 74 3e 76 34 6c 32 20 70 61 72 61 6d 65 74 65  tt>v4l2 paramete
1c60: 72 73 20 3c 69 3e 64 65 76 69 64 3c 2f 69 3e 20  rs <i>devid</i> 
1c70: 3f 3c 69 3e 6b 65 79 20 76 61 6c 75 65 20 2e 2e  ?<i>key value ..
1c80: 2e 3c 2f 69 3e 3f 3c 2f 74 74 3e 0d 0a 0d 0a 20  .</i>?</tt>.... 
1c90: 20 20 20 52 65 74 75 72 6e 73 20 6f 72 20 63 68     Returns or ch
1ca0: 61 6e 67 65 73 20 64 65 76 69 63 65 20 70 61 72  anges device par
1cb0: 61 6d 65 74 65 72 73 20 66 6f 72 20 74 68 65 20  ameters for the 
1cc0: 64 65 76 69 63 65 20 69 64 65 6e 74 69 66 69 65  device identifie
1cd0: 64 20 62 79 20 3c 74 74 3e 3c 69 3e 64 65 76 69  d by <tt><i>devi
1ce0: 64 3c 2f 69 3e 3c 2f 74 74 3e 20 67 69 76 65 6e  d</i></tt> given
1cf0: 20 61 73 20 6b 65 79 2d 76 61 6c 75 65 20 70 61   as key-value pa
1d00: 69 72 73 2c 20 65 2e 67 2e 20 3c 74 74 3e 66 72  irs, e.g. <tt>fr
1d10: 61 6d 65 2d 73 69 7a 65 20 33 32 30 78 32 34 30  ame-size 320x240
1d20: 3c 2f 74 74 3e 20 77 69 6c 6c 20 63 68 61 6e 67  </tt> will chang
1d30: 65 20 74 68 65 20 73 69 7a 65 20 6f 66 20 63 61  e the size of ca
1d40: 70 74 75 72 65 64 20 69 6d 61 67 65 73 20 74 6f  ptured images to
1d50: 20 77 69 64 74 68 20 33 32 30 20 61 6e 64 20 68   width 320 and h
1d60: 65 69 67 68 74 20 32 34 30 2e 20 54 68 65 20 63  eight 240. The c
1d70: 6f 6d 6d 61 6e 64 20 72 65 74 75 72 6e 73 20 74  ommand returns t
1d80: 68 65 20 63 75 72 72 65 6e 74 20 64 65 76 69 63  he current devic
1d90: 65 20 70 61 72 61 6d 65 74 65 72 73 20 28 61 66  e parameters (af
1da0: 74 65 72 20 74 68 65 20 70 6f 74 65 6e 74 69 61  ter the potentia
1db0: 6c 20 63 68 61 6e 67 65 2c 20 77 68 65 6e 20 6b  l change, when k
1dc0: 65 79 73 20 61 6e 64 20 76 61 6c 75 65 73 20 77  eys and values w
1dd0: 68 65 72 65 20 67 69 76 65 6e 29 20 61 73 20 61  here given) as a
1de0: 20 6b 65 79 2d 76 61 6c 75 65 20 6c 69 73 74 20   key-value list 
1df0: 77 68 69 63 68 20 63 61 6e 20 62 65 20 70 72 6f  which can be pro
1e00: 63 65 73 73 65 64 20 77 69 74 68 20 3c 74 74 3e  cessed with <tt>
1e10: 61 72 72 61 79 20 73 65 74 3c 2f 74 74 3e 20 6f  array set</tt> o
1e20: 72 20 3c 74 74 3e 64 69 63 74 20 67 65 74 3c 2f  r <tt>dict get</
1e30: 74 74 3e 2e 20 0d 0a 0d 0a 3c 74 74 3e 76 34 6c  tt>. ....<tt>v4l
1e40: 32 20 73 74 61 72 74 20 3c 69 3e 64 65 76 69 64  2 start <i>devid
1e50: 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20  </i></tt>....   
1e60: 20 53 74 61 72 74 73 20 63 61 70 74 75 72 69 6e   Starts capturin
1e70: 67 20 69 6d 61 67 65 73 20 6f 66 20 74 68 65 20  g images of the 
1e80: 64 65 76 69 63 65 20 69 64 65 6e 74 69 66 69 65  device identifie
1e90: 64 20 62 79 20 3c 74 74 3e 3c 69 3e 64 65 76 69  d by <tt><i>devi
1ea0: 64 3c 2f 69 3e 3c 2f 74 74 3e 2e 20 57 68 65 6e  d</i></tt>. When
1eb0: 20 61 6e 20 69 6d 61 67 65 20 69 73 20 72 65 61   an image is rea
1ec0: 64 79 2c 20 74 68 65 20 63 61 6c 6c 62 61 63 6b  dy, the callback
1ed0: 20 63 6f 6d 6d 61 6e 64 20 73 65 74 20 6f 6e 20   command set on 
1ee0: 3c 74 74 3e 76 34 6c 32 20 6f 70 65 6e 3c 2f 74  <tt>v4l2 open</t
1ef0: 74 3e 20 69 73 20 69 6e 76 6f 6b 65 64 2e 0d 0a  t> is invoked...
1f00: 0d 0a 3c 74 74 3e 76 34 6c 32 20 73 74 61 74 65  ..<tt>v4l2 state
1f10: 20 3c 69 3e 64 65 76 69 64 3c 2f 69 3e 3c 2f 74   <i>devid</i></t
1f20: 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74 75 72 6e  t>....    Return
1f30: 73 20 74 68 65 20 69 6d 61 67 65 20 63 61 70 74  s the image capt
1f40: 75 72 65 20 73 74 61 74 65 20 6f 66 20 74 68 65  ure state of the
1f50: 20 64 65 76 69 63 65 20 69 64 65 6e 74 69 66 69   device identifi
1f60: 65 64 20 62 79 20 3c 74 74 3e 3c 69 3e 64 65 76  ed by <tt><i>dev
1f70: 69 64 3c 2f 69 3e 3c 2f 74 74 3e 2e 20 54 68 65  id</i></tt>. The
1f80: 20 72 65 73 75 6c 74 20 69 73 20 74 68 65 20 73   result is the s
1f90: 74 72 69 6e 67 20 3c 62 3e 63 61 70 74 75 72 65  tring <b>capture
1fa0: 3c 2f 62 3e 20 69 66 20 74 68 65 20 64 65 76 69  </b> if the devi
1fb0: 63 65 20 69 73 20 73 74 61 72 74 65 64 2c 20 3c  ce is started, <
1fc0: 62 3e 73 74 6f 70 70 65 64 3c 2f 62 3e 20 69 66  b>stopped</b> if
1fd0: 20 74 68 65 20 64 65 76 69 63 65 20 69 73 20 73   the device is s
1fe0: 74 6f 70 70 65 64 2c 20 6f 72 20 3c 62 3e 65 72  topped, or <b>er
1ff0: 72 6f 72 3c 2f 62 3e 20 69 66 20 61 6e 20 65 72  ror</b> if an er
2000: 72 6f 72 20 68 61 73 20 62 65 65 6e 20 64 65 74  ror has been det
2010: 65 63 74 65 64 20 77 68 69 6c 65 20 69 6d 61 67  ected while imag
2020: 65 20 63 61 70 74 75 72 65 20 77 61 73 20 61 63  e capture was ac
2030: 74 69 76 65 2e 0d 0a 0d 0a 3c 74 74 3e 76 34 6c  tive.....<tt>v4l
2040: 32 20 73 74 6f 70 20 3c 69 3e 64 65 76 69 64 3c  2 stop <i>devid<
2050: 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20  /i></tt>....    
2060: 53 74 6f 70 20 63 61 70 74 75 72 69 6e 67 20 69  Stop capturing i
2070: 6d 61 67 65 73 20 6f 66 20 74 68 65 20 64 65 76  mages of the dev
2080: 69 63 65 20 69 64 65 6e 74 69 66 69 65 64 20 62  ice identified b
2090: 79 20 3c 74 74 3e 3c 69 3e 64 65 76 69 64 3c 2f  y <tt><i>devid</
20a0: 69 3e 3c 2f 74 74 3e 2e 0d 0a 0d 0a 3c 74 74 3e  i></tt>.....<tt>
20b0: 76 34 6c 32 20 74 6f 70 68 6f 74 6f 20 3c 69 3e  v4l2 tophoto <i>
20c0: 77 69 64 74 68 20 68 65 69 67 68 74 20 62 70 70  width height bpp
20d0: 20 62 79 74 65 61 72 72 61 79 3c 2f 69 3e 20 3f   bytearray</i> ?
20e0: 3c 69 3e 72 6f 74 20 6d 69 72 72 6f 72 78 20 6d  <i>rot mirrorx m
20f0: 69 72 72 6f 72 79 3c 2f 69 3e 3f 3c 2f 74 74 3e  irrory</i>?</tt>
2100: 0d 0a 0d 0a 20 20 20 20 4d 61 6b 65 73 20 74 68  ....    Makes th
2110: 65 20 52 47 42 20 28 62 70 70 20 69 73 20 33 29  e RGB (bpp is 3)
2120: 20 6f 72 20 67 72 65 79 20 28 62 70 70 20 69 73   or grey (bpp is
2130: 20 31 29 20 62 79 74 65 20 61 72 72 61 79 20 3c   1) byte array <
2140: 74 74 3e 3c 69 3e 62 79 74 65 61 72 72 61 79 3c  tt><i>bytearray<
2150: 2f 69 3e 3c 2f 74 74 3e 20 6f 66 20 3c 74 74 3e  /i></tt> of <tt>
2160: 3c 69 3e 77 69 64 74 68 3c 2f 69 3e 3c 2f 74 74  <i>width</i></tt
2170: 3e 20 74 69 6d 65 73 20 3c 74 74 3e 3c 3c 69 3e  > times <tt><<i>
2180: 68 65 69 67 68 74 3c 2f 69 3e 3c 2f 74 74 3e 20  height</i></tt> 
2190: 70 69 78 65 6c 73 20 69 6e 74 6f 20 61 20 54 6b  pixels into a Tk
21a0: 20 70 68 6f 74 6f 20 69 6d 61 67 65 2e 20 4f 70   photo image. Op
21b0: 74 69 6f 6e 61 6c 6c 79 2c 20 74 68 65 20 64 61  tionally, the da
21c0: 74 61 20 69 73 20 72 6f 74 61 74 65 64 20 62 79  ta is rotated by
21d0: 20 3c 74 74 3e 3c 69 3e 72 6f 74 3c 2f 69 3e 3c   <tt><i>rot</i><
21e0: 2f 74 74 3e 20 64 65 67 72 65 65 73 20 28 70 6f  /tt> degrees (po
21f0: 73 73 69 62 6c 65 20 76 61 6c 75 65 73 20 30 2c  ssible values 0,
2200: 20 39 30 2c 20 31 38 30 2c 20 32 37 30 29 20 61   90, 180, 270) a
2210: 6e 64 2f 6f 72 20 6d 69 72 72 6f 72 65 64 20 61  nd/or mirrored a
2220: 6c 6f 6e 67 20 74 68 65 20 58 20 61 6e 64 2f 6f  long the X and/o
2230: 72 20 59 20 61 78 69 73 20 61 73 20 73 70 65 63  r Y axis as spec
2240: 69 66 69 65 64 20 62 79 20 74 68 65 20 62 6f 6f  ified by the boo
2250: 6c 65 61 6e 20 76 61 6c 75 65 73 20 3c 74 74 3e  lean values <tt>
2260: 3c 69 3e 6d 69 72 72 6f 72 78 3c 2f 69 3e 3c 2f  <i>mirrorx</i></
2270: 74 74 3e 20 61 6e 64 20 3c 74 74 3e 3c 69 3e 6d  tt> and <tt><i>m
2280: 69 72 72 6f 72 79 3c 2f 69 3e 3c 2f 74 74 3e 2e  irrory</i></tt>.
2290: 0d 0a 0d 0a 3c 74 74 3e 76 34 6c 32 20 77 72 69  ....<tt>v4l2 wri
22a0: 74 65 20 3c 69 3e 64 65 76 69 64 20 62 79 74 65  te <i>devid byte
22b0: 61 72 72 61 79 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a  array</i></tt>..
22c0: 0d 0a 20 20 20 20 57 72 69 74 65 73 20 74 68 65  ..    Writes the
22d0: 20 62 79 74 65 73 20 69 6e 20 3c 74 74 3e 3c 69   bytes in <tt><i
22e0: 3e 62 79 74 65 61 72 72 61 79 3c 2f 69 3e 3c 2f  >bytearray</i></
22f0: 74 74 3e 20 74 6f 20 74 68 65 20 64 65 76 69 63  tt> to the devic
2300: 65 20 69 64 65 6e 74 69 66 69 65 64 20 62 79 20  e identified by 
2310: 3c 74 74 3e 3c 69 3e 64 65 76 69 64 3c 2f 69 3e  <tt><i>devid</i>
2320: 3c 2f 74 74 3e 20 77 68 69 63 68 20 6d 75 73 74  </tt> which must
2330: 20 62 65 20 61 6e 20 6f 70 65 6e 20 6c 6f 6f 70   be an open loop
2340: 62 61 63 6b 20 76 69 64 65 6f 20 64 65 76 69 63  back video devic
2350: 65 2e 20 54 68 65 20 73 69 7a 65 20 6f 66 20 3c  e. The size of <
2360: 74 74 3e 3c 69 3e 62 79 74 65 61 72 72 61 79 3c  tt><i>bytearray<
2370: 2f 69 3e 3c 2f 74 74 3e 20 6d 75 73 74 20 6d 61  /i></tt> must ma
2380: 74 63 68 20 74 68 65 20 20 76 69 64 65 6f 20 77  tch the  video w
2390: 69 64 74 68 2f 68 65 69 67 68 74 20 6f 66 20 74  idth/height of t
23a0: 68 65 20 6c 6f 6f 70 62 61 63 6b 20 64 65 76 69  he loopback devi
23b0: 63 65 2e 20 44 61 74 61 20 69 73 20 63 6f 6e 76  ce. Data is conv
23c0: 65 72 74 65 64 20 74 6f 20 3c 62 3e 59 55 59 56  erted to <b>YUYV
23d0: 3c 2f 62 3e 20 69 66 20 74 68 69 73 20 69 73 20  </b> if this is 
23e0: 64 65 74 65 63 74 65 64 20 66 6f 72 20 74 68 65  detected for the
23f0: 20 6f 75 74 70 75 74 20 70 61 74 68 20 6f 66 20   output path of 
2400: 74 68 65 20 6c 6f 6f 70 62 61 63 6b 20 64 65 76  the loopback dev
2410: 69 63 65 2e 0d 0a 0d 0a 3c 74 74 3e 76 34 6c 32  ice.....<tt>v4l2
2420: 20 77 72 69 74 65 70 68 6f 74 6f 20 3c 69 3e 64   writephoto <i>d
2430: 65 76 69 64 20 70 68 6f 74 6f 3c 2f 69 3e 3c 2f  evid photo</i></
2440: 74 74 3e 0d 0a 0d 0a 20 20 20 20 57 72 69 74 65  tt>....    Write
2450: 73 20 74 68 65 20 63 6f 6e 74 65 6e 74 20 6f 66  s the content of
2460: 20 74 68 65 20 70 68 6f 74 6f 20 69 6d 61 67 65   the photo image
2470: 20 3c 74 74 3e 3c 69 3e 70 68 6f 74 6f 3c 2f 69   <tt><i>photo</i
2480: 3e 3c 2f 74 74 3e 20 74 6f 20 74 68 65 20 64 65  ></tt> to the de
2490: 76 69 63 65 20 69 64 65 6e 74 69 66 69 65 64 20  vice identified 
24a0: 62 79 20 3c 74 74 3e 3c 69 3e 64 65 76 69 64 3c  by <tt><i>devid<
24b0: 2f 69 3e 3c 2f 74 74 3e 20 77 68 69 63 68 20 6d  /i></tt> which m
24c0: 75 73 74 20 62 65 20 61 6e 20 6f 70 65 6e 20 6c  ust be an open l
24d0: 6f 6f 70 62 61 63 6b 20 76 69 64 65 6f 20 64 65  oopback video de
24e0: 76 69 63 65 2e 20 54 68 65 20 66 6f 72 6d 61 74  vice. The format
24f0: 20 77 72 69 74 74 65 6e 20 69 73 20 65 69 74 68   written is eith
2500: 65 72 20 3c 62 3e 52 47 42 34 3c 2f 62 3e 20 6f  er <b>RGB4</b> o
2510: 72 20 3c 62 3e 59 55 59 56 3c 2f 62 3e 20 77 69  r <b>YUYV</b> wi
2520: 74 68 20 74 68 65 20 70 68 6f 74 6f 27 73 20 64  th the photo's d
2530: 69 6d 65 6e 73 69 6f 6e 73 20 64 65 70 65 6e 64  imensions depend
2540: 69 6e 67 20 6f 6e 20 77 68 69 63 68 20 66 6f 72  ing on which for
2550: 6d 61 74 20 69 73 20 64 65 74 65 63 74 65 64 20  mat is detected 
2560: 66 6f 72 20 74 68 65 20 6f 75 74 70 75 74 20 70  for the output p
2570: 61 74 68 20 6f 66 20 74 68 65 20 6c 6f 6f 70 62  ath of the loopb
2580: 61 63 6b 20 64 65 76 69 63 65 2e 0d 0a 0d 0a 54  ack device.....T
2590: 68 65 20 3c 74 74 3e 76 34 6c 32 3c 2f 74 74 3e  he <tt>v4l2</tt>
25a0: 20 63 6f 6d 6d 61 6e 64 20 74 72 69 65 73 20 74   command tries t
25b0: 6f 20 6c 61 7a 79 20 6c 6f 61 64 20 54 6b 2c 20  o lazy load Tk, 
25c0: 74 68 75 73 20 61 6c 6c 6f 77 69 6e 67 20 74 6f  thus allowing to
25d0: 20 75 73 65 20 69 74 20 66 72 6f 6d 20 61 20 6e   use it from a n
25e0: 6f 72 6d 61 6c 20 3c 62 3e 74 63 6c 73 68 3c 2f  ormal <b>tclsh</
25f0: 62 3e 2e 20 4f 6e 6c 79 20 77 68 65 6e 20 61 20  b>. Only when a 
2600: 70 68 6f 74 6f 20 69 6d 61 67 65 20 69 73 20 72  photo image is r
2610: 65 71 75 69 72 65 64 20 62 79 20 61 20 73 75 62  equired by a sub
2620: 63 6f 6d 6d 61 6e 64 2c 20 54 6b 20 6d 75 73 74  command, Tk must
2630: 20 62 65 20 61 76 61 69 6c 61 62 6c 65 20 61 6e   be available an
2640: 64 20 61 6e 20 61 74 74 65 6d 70 74 20 74 6f 20  d an attempt to 
2650: 6c 6f 61 64 20 69 74 20 69 73 20 6d 61 64 65 2e  load it is made.
2660: 0d 0a 0d 0a 46 6f 72 20 20 74 68 65 20 3c 74 74  ....For  the <tt
2670: 3e 3c 69 3e 66 6f 75 72 63 63 3c 2f 69 3e 3c 2f  ><i>fourcc</i></
2680: 74 74 3e 20 66 6f 72 6d 61 74 20 63 6f 64 65 73  tt> format codes
2690: 20 69 6e 20 3c 74 74 3e 76 34 6c 32 20 6c 6f 6f   in <tt>v4l2 loo
26a0: 70 62 61 63 6b 3c 2f 74 74 3e 2c 20 63 6f 6e 73  pback</tt>, cons
26b0: 75 6c 74 20 74 68 65 20 4c 69 6e 75 78 20 68 65  ult the Linux he
26c0: 61 64 65 72 20 66 69 6c 65 20 3c 74 74 3e 2f 75  ader file <tt>/u
26d0: 73 72 2f 69 6e 63 6c 75 64 65 2f 6c 69 6e 75 78  sr/include/linux
26e0: 2f 76 69 64 65 6f 64 65 76 32 2e 68 3c 2f 74 74  /videodev2.h</tt
26f0: 3e 2e 20 54 68 65 20 6d 6f 73 74 20 75 73 65 66  >. The most usef
2700: 75 6c 20 66 6f 72 6d 61 74 73 20 61 72 65 20 3c  ul formats are <
2710: 62 3e 52 47 42 34 3c 2f 62 3e 20 28 38 20 62 69  b>RGB4</b> (8 bi
2720: 74 73 20 70 65 72 20 63 6f 6c 6f 72 20 69 6e 20  ts per color in 
2730: 61 20 33 32 20 62 69 74 20 76 61 6c 75 65 20 70  a 32 bit value p
2740: 65 72 20 70 69 78 65 6c 29 20 61 6e 64 20 3c 62  er pixel) and <b
2750: 3e 52 47 42 33 3c 2f 62 3e 20 28 38 20 62 69 74  >RGB3</b> (8 bit
2760: 73 20 70 65 72 20 63 6f 6c 6f 72 20 70 61 63 6b  s per color pack
2770: 65 64 20 69 6e 74 6f 20 32 34 20 62 69 74 73 29  ed into 24 bits)
2780: 2e 20 4c 69 6d 69 74 65 64 20 73 75 70 70 6f 72  . Limited suppor
2790: 74 20 66 6f 72 20 3c 62 3e 59 55 59 56 3c 2f 62  t for <b>YUYV</b
27a0: 3e 20 61 6e 64 20 3c 62 3e 59 56 59 55 3c 2f 62  > and <b>YVYU</b
27b0: 3e 20 28 59 55 56 20 34 3a 32 3a 32 20 69 6e 74  > (YUV 4:2:2 int
27c0: 65 72 6c 65 61 76 65 64 29 20 65 78 69 73 74 73  erleaved) exists
27d0: 20 66 6f 72 20 74 68 65 20 3c 62 3e 76 34 6c 32   for the <b>v4l2
27e0: 20 77 72 69 74 65 70 68 6f 74 6f 3c 2f 62 3e 20   writephoto</b> 
27f0: 73 75 62 63 6f 6d 6d 61 6e 64 2c 20 74 6f 6f 2e  subcommand, too.
2800: 0d 0a 0a 5a 20 63 38 38 34 31 62 34 62 32 33 66  ...Z c8841b4b23f
2810: 35 33 38 31 38 31 38 63 36 35 33 30 33 38 38 64  5381818c6530388d
2820: 36 32 61 37 64 0a                                62a7d.