Difference between revisions of "CM-iGLX Video Input Port"

From Compulab Mediawiki
Jump to: navigation, search
 
Line 1: Line 1:
= Introduction =
+
#REDIRECT [[CM-iGLX: Linux: Video Input Port]]
CM-iGLX has Video Input Port (VIP in short) integrated into Geode LX processor. The VIP receives data from video decoder (for instance SAA7113h assembled on the SB-iGLX) and this data can be stored as a video stream or presented as a display overlay. This functionality can be enabled in using [http://v4l2spec.bytesex.org/ "Video for Linux 2 (v4l2)" API].
 
CompuLab provides [http://www.compulab.co.il/mediawiki/files/Linux/iglx/geodelx-v4l2.tar.gz geodelx-v4l2 package] which contains a driver that implements the v4l2 API on CM-iGLX ({{filename|geodelx-v4l2/geode_lx_video.patch}}) and application examples for video capture ({{filename|geodelx-v4l2/examples/capture.c}}) and video overlay ({{filename|geodelx-v4l2/examples/overlay.c}}).
 
 
 
= Kernel configuration =
 
The v4l2 driver for CM-iGLX included in the [http://www.compulab.co.il/mediawiki/files/Linux/iglx/geodelx-v4l2.tar.gz geodelx-v4l2 package] is available as a patch vs. [http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.tar.bz2 Linux kernel 2.6.24]. After applying the patch to kernel source tree you will need to enable the [[#Geode LX framebuffer driver]] and
 
[[#Geode LX v4l2 driver]]. After updating kernel configuration as described below, build the kernel and install the resulting image and loadable kernel modules to CM-iGLX.
 
 
 
== Geode LX framebuffer driver ==
 
 
 
In the '''"Device Drivers -> Graphics support"''' menu enable '''"Support for frame buffer devices"''':
 
 
 
<pre>
 
.config - Linux Kernel v2.6.24 Configuration
 
──────────────────────────────────────────────────────────────────────────────
 
  ┌─────────────────────────── Graphics support ────────────────────────────┐
 
  │  Arrow keys navigate the menu.  <Enter> selects submenus --->.          │
 
  │  Highlighted letters are hotkeys.  Pressing <Y> includes, <N> excludes, │
 
  │  <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help, </> │
 
  │  for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < >      │
 
  │ ┌─────────────────────────────────────────────────────────────────────┐ │
 
  │ │    < > /dev/agpgart (AGP Support)  --->                            │ │
 
  │ │    < > Direct Rendering Manager (XFree86 4.1.0 and higher DRI suppor│ │
 
  │ │    < > Lowlevel video output switch controls                        │ │
 
  │ │    <*> Support for frame buffer devices  --->                      │ │
 
  │ │    [ ] Backlight & LCD device support  --->                        │ │
 
  │ │        Display device support  --->                                │ │
 
  │ │        Console display driver support  --->                        │ │
 
  │ │    [ ] Bootup logo  --->                                            │ │
 
  │ └─────────────────────────────────────────────────────────────────────┘ │
 
  ├─────────────────────────────────────────────────────────────────────────┤
 
  │                    <Select>    < Exit >    < Help >                    │
 
  └─────────────────────────────────────────────────────────────────────────┘
 
</pre>
 
 
 
and in the '''"Support for frame buffer devices"''' menu enable '''"AMD Geode family framebuffer support"''' and '''"AMD Geode LX framebuffer support"''':
 
 
 
<pre>
 
.config - Linux Kernel v2.6.24 Configuration
 
──────────────────────────────────────────────────────────────────────────────
 
  ┌─────────────────── Support for frame buffer devices ────────────────────┐
 
  │  Arrow keys navigate the menu.  <Enter> selects submenus --->.          │
 
  │  Highlighted letters are hotkeys.  Pressing <Y> includes, <N> excludes, │
 
  │  <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help, </> │
 
  │  for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < >      │
 
  │ ┌─────────────────────────────────────────────────────────────────────┐ │
 
  │ │    --- Support for frame buffer devices                            │ │
 
  │ │    [ ]  Enable firmware EDID                                      │ │
 
  │ │    [ ]  Enable Video Mode Handling Helpers                        │ │
 
  │ │    [ ]  Enable Tile Blitting Support                              │ │
 
  │ │          *** Frame buffer hardware drivers ***                      │ │
 
  │ │    < >  Cirrus Logic support                                      │ │
 
  │ │    < >  Permedia2 support                                          │ │
 
  │ │    < >  CyberPro 2000/2010/5000 support                            │ │
 
  │ │    < >  Arc Monochrome LCD board support                          │ │
 
  .............
 
  │ │    < >  3Dfx Voodoo Graphics (sst1) support                        │ │
 
  │ │    < >  VIA VT8623 support                                        │ │
 
  │ │    < >  Cyberblade/i1 support                                      │ │
 
  │ │    < >  Trident support                                            │ │
 
  │ │    < >  ARK 2000PV support                                        │ │
 
  │ │    < >  Permedia3 support (EXPERIMENTAL)                          │ │
 
  │ │    [*]  AMD Geode family framebuffer support (EXPERIMENTAL)        │ │
 
  │ │    <*>    AMD Geode LX framebuffer support (EXPERIMENTAL)          │ │
 
  │ │    < >    AMD Geode GX framebuffer support (EXPERIMENTAL)          │ │
 
  │ │    < >    AMD Geode GX1 framebuffer support (EXPERIMENTAL)        │ │
 
  │ │    < >  Virtual Frame Buffer support (ONLY FOR TESTING!)          │ │
 
  │ └─────────────────────────────────────────────────────────────────────┘ │
 
  ├─────────────────────────────────────────────────────────────────────────┤
 
  │                    <Select>    < Exit >    < Help >                    │
 
  └─────────────────────────────────────────────────────────────────────────┘
 
</pre>
 
 
 
== Geode LX v4l2 driver ==
 
In the '''"Device Drivers -> Multimedia devices"''' menu enable '''"Video for Linux"''':
 
 
 
<pre>
 
.config - Linux Kernel v2.6.24 Configuration
 
──────────────────────────────────────────────────────────────────────────────
 
  ┌────────────────────────── Multimedia devices ───────────────────────────┐
 
  │  Arrow keys navigate the menu.  <Enter> selects submenus --->.          │
 
  │  Highlighted letters are hotkeys.  Pressing <Y> includes, <N> excludes, │
 
  │  <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help, </> │
 
  │  for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < >      │
 
  │ ┌─────────────────────────────────────────────────────────────────────┐ │
 
  │ │    <M> Video For Linux                                              │ │
 
  │ │    [ ]  Enable Video For Linux API 1 (DEPRECATED)                  │ │
 
  │ │    [*]   Enable Video For Linux API 1 compatible Layer              │ │
 
  │ │    [*]   Video capture adapters  --->                              │ │
 
  │ │    [ ]  Radio Adapters  --->                                      │ │
 
  │ │    < > DVB for Linux                                                │ │
 
  │ │    [ ] DAB adapters                                                │ │
 
  │ │                                                                    │ │
 
  │ │                                                                    │ │
 
  │ │                                                                    │ │
 
  │ └─────────────────────────────────────────────────────────────────────┘ │
 
  ├─────────────────────────────────────────────────────────────────────────┤
 
  │                    <Select>    < Exit >    < Help >                    │
 
  └─────────────────────────────────────────────────────────────────────────┘
 
</pre>
 
 
 
Next, go to '''"Video capture adapters"''' menu and enable '''"Geode LX Video capture interface"''':
 
 
 
<pre>
 
.config - Linux Kernel v2.6.24 Configuration
 
──────────────────────────────────────────────────────────────────────────────
 
  ┌──────────────────────── Video capture adapters ─────────────────────────┐
 
  │  Arrow keys navigate the menu.  <Enter> selects submenus --->.          │
 
  │  Highlighted letters are hotkeys.  Pressing <Y> includes, <N> excludes, │
 
  │  <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help, </> │
 
  │  for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < >      │
 
  │ ┌─────────────────────────────────────────────────────────────────────┐ │
 
  │ │    --- Video capture adapters                                      │ │
 
  │ │    [ ]  Enable advanced debug functionality                        │ │
 
  │ │    [ ]  Autoselect pertinent encoders/decoders and other helper chi│ │
 
  │ │            Encoders/decoders and other helper chips  --->          │ │
 
  │ │    < >  Virtual Video Driver                                      │ │
 
  │ │    < >  SAA5246A, SAA5281 Teletext processor                      │ │
 
  │ │    < >  SAA5249 Teletext processor                                │ │
 
  │ │    < >  Philips SAA7134 support                                    │ │
 
  │ │    < >  Hexium HV-PCI6 and Orion frame grabber                    │ │
 
  │ │    < >  Hexium Gemini frame grabber                                │ │
 
  │ │    < >  Conexant 2388x (bt878 successor) support                  │ │
 
  │ │    <M>  Geode LX Video capture interface  --->                    │ │
 
  │ │    < >  Marvell 88ALP01 (Cafe) CMOS Camera Controller support      │ │
 
  │ │    [ ]  V4L USB devices  --->                                      │ │
 
  │ └─────────────────────────────────────────────────────────────────────┘ │
 
  ├─────────────────────────────────────────────────────────────────────────┤
 
  │                    <Select>    < Exit >    < Help >                    │
 
  └─────────────────────────────────────────────────────────────────────────┘
 
</pre>
 
 
 
If you are using SB-iGLX base board disable '''"Autoselect pertinent encoders/decoders and other helper chips"''' option and select SAA7113 video decoder:
 
 
 
<pre>
 
.config - Linux Kernel v2.6.24 Configuration
 
──────────────────────────────────────────────────────────────────────────────
 
  ┌─────────────── Encoders/decoders and other helper chips ────────────────┐
 
  │  Arrow keys navigate the menu.  <Enter> selects submenus --->.          │
 
  │  Highlighted letters are hotkeys.  Pressing <Y> includes, <N> excludes, │
 
  │  <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help, </> │
 
  │  for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < >      │
 
  │ ┌─────────────────────────────────────────────────────────────────────┐ │
 
  │ │        *** Audio decoders ***                                      │ │
 
  │ │    < > Philips TDA9840 audio processor                              │ │
 
  │ │    < > Philips TEA6415C audio processor                            │ │
 
  │ │    < > Philips TEA6420 audio processor                              │ │
 
  │ │    < > Micronas MSP34xx audio decoders                              │ │
 
  │ │    < > Cirrus Logic CS53L32A audio ADC                              │ │
 
  │ │    < > Texas Instruments TLV320AIC23B audio codec                  │ │
 
  │ │    < > Wolfson Microelectronics WM8775 audio ADC with input mixer  │ │
 
  │ │    < > Wolfson Microelectronics WM8739 stereo audio ADC            │ │
 
  │ │    < > Panasonic VP27s internal MPX                                │ │
 
  │ │        *** Video decoders ***                                      │ │
 
  │ │    < > OmniVision OV7670 sensor support                            │ │
 
  │ │    < > TCM825x camera sensor support                                │ │
 
  │ │    <M> Philips SAA7113/4/5 video decoders                          │ │
 
  │ │    < > Texas Instruments TVP5150 video decoder                      │ │
 
  │ │        *** Video and audio decoders ***                            │ │
 
  │ │    < > Conexant CX2584x audio/video decoders                        │ │
 
  │ │        *** MPEG video encoders ***                                  │ │
 
  │ │    < > Conexant CX2341x MPEG encoders                              │ │
 
  │ │        *** Video encoders ***                                      │ │
 
  │ │    < > Philips SAA7127/9 digital video encoders                    │ │
 
  │ │        *** Video improvement chips ***                              │ │
 
  │ │    < > NEC Electronics uPD64031A Ghost Reduction                    │ │
 
  │ │    < > NEC Electronics uPD64083 3-Dimensional Y/C separation        │ │
 
  │ └─────────────────────────────────────────────────────────────────────┘ │
 
  ├─────────────────────────────────────────────────────────────────────────┤
 
  │                    <Select>    < Exit >    < Help >                    │
 
  └─────────────────────────────────────────────────────────────────────────┘
 
</pre>
 
 
 
= Application examples =
 
 
 
The [http://www.compulab.co.il/mediawiki/files/Linux/iglx/geodelx-v4l2.tar.gz geodelx-v4l2 package] includes two simple examples for video capture and video overlay.
 
 
 
== Capture ==
 
The capture example accepts the following command line options:
 
 
 
<pre>
 
-d | --device name  Video device name [/dev/video]
 
-h | --help          Print this message
 
-m | --mmap          Use memory mapped buffers
 
-r | --read          Use read() calls
 
-o | --output        Capture to file [file]
 
</pre>
 
 
 
== Overlay ==
 
The overlay example accepts the following command line options:
 
 
 
<pre>
 
-d | --device name  Video device name [/dev/video]
 
-w | --width value  Overlay window width [640]
 
-e | --height value  Overlay window height [480]
 
-l | --left value    Overlay window left coord [0]
 
-t | --top value    Overlay window top coord [0]
 
-s | --steps value  Steps for control adjustment []
 
-v | --verbose      Verbose output
 
-h | --help          Print this message
 
</pre>
 

Latest revision as of 08:13, 23 December 2009