• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

docs/H03-May-2018-788650

gst/H03-May-2018-910682

gst-0.10/H03-May-2018-901677

m4/H03-May-2018-10,6099,573

man/H03-May-2018-114108

module/H03-May-2018-10172

po/H03-May-2018-2,2171,800

src/H03-May-2018-37,62324,647

tests/H03-May-2018-4,5683,436

tools/H03-May-2018-12,6749,196

viewer/H03-May-2018-2,4652,034

.gitignoreH A D03-May-2018544 5756

.travis.ymlH A D03-May-20182.3 KiB4436

AUTHORSH A D03-May-201837 21

COPYINGH A D03-May-201824.7 KiB483400

ChangeLogH A D03-May-20180

Makefile.amH A D03-May-2022655 3821

Makefile.declH A D03-May-20182.1 KiB5844

NEWSH A D03-May-201814.8 KiB422330

README.mdH A D03-May-20186.9 KiB13084

RELEASINGH A D03-May-20183.1 KiB8658

TODOH A D03-May-2018737 2117

aravis.doapH A D03-May-2018966 2219

aravis.pc.inH A D03-May-2018339 1210

aravis.rulesH A D03-May-2018319 76

arvconfig.h.inH A D03-May-2018172 76

autogen.shH A D03-May-20181.1 KiB4028

configure.acH A D03-May-201810 KiB312253

meson.buildH A D03-May-20183 KiB8767

README.md

1[![Build Status](https://travis-ci.org/AravisProject/aravis.svg?branch=master)](https://travis-ci.org/AravisProject/aravis)
2[![Codacy Badge](https://api.codacy.com/project/badge/Grade/fa7d9c88e5594d709ab44e8bad01a569)](https://www.codacy.com/app/EmmanuelP/aravis?utm_source=github.com&utm_medium=referral&utm_content=AravisProject/aravis&utm_campaign=Badge_Grade)
3[![Coverity Scan Build Status](https://scan.coverity.com/projects/aravisproject-aravis/badge.svg)](https://scan.coverity.com/projects/aravisproject-aravis)
4
5# ![](viewer/icons/gnome/256x256/apps/aravis.png) Aravis
6
7### What is Aravis ?
8
9Aravis is a glib/gobject based library for video acquisition using Genicam cameras. It currently implements the gigabit ethernet and USB3 (Since Aravis 0.5.x) protocols used by industrial cameras. It also provides a basic ethernet camera simulator and a simple video viewer.
10
11# ![](viewer/data/aravis.png)
12# ![](viewer/data/aravis-video.png)
13
14Aravis is released under the LGPL v2+.
15
16### Installing Aravis
17
18Aravis uses the standard GNU build system, using autoconf for package configuration and resolving portability issues, automake for building makefiles that comply with the GNU Coding Standards, and libtool for building shared libraries on multiple platforms. The recommended way to get the sources is to download the release tarballs from http://ftp.gnome.org/pub/GNOME/sources/aravis.
19
20```
21./configure
22make
23make install
24```
25
26Compilation options may be passed to the configure script. Please run `./configure --help` for information about the available options.
27
28On some platforms (like Ubuntu), you may have to configure the dynamic linker (ld) to let it know where the aravis libraries are installed, and run ldconfig as root in order to update ld cache.
29
30If you want to use a clone of the git repository on github, instead of the release tarballs, you may have to create the configure script by running:
31
32```
33./autogen.sh
34```
35
36#### Building on Mac OS X
37
38Using the GNU build system on Mac OS X is not directly supported, but can be mimicked by augmenting the install procedure above with some environment settings:
39
40```
41brew install gettext intltool gtk-doc automake libxml2
42brew link --force gettext
43brew link --force libxml2
44aclocal
45autoconf
46autoheader
47gtkdocize
48intltoolize
49glibtoolize --copy
50automake --add-missing
51./configure
52make
53make install
54```
55
56### Ethernet Device Performance
57
58#### Stream Packet Size
59
60One way to increase streaming performance is to increase the stream packet size. arv_camera_gv_set_packet_size() (and arv_camera_gv_auto_packet_size() since Aravis 0.5.X) allows you to change this parameter. By default, the network adapter of your machine will probably not let you receive packet bigger than 1500 bytes, which is the default Maximum Transfer Unit (MTU). It means if you want to use big packets, you also have to increase the network adapter MTU to a greater walue (8192 bytes being a recommended value). The exact procedure to change the MTU depends on the distribution you are using. Please refer to the administrator manual of your distribution.
61
62On Fedora, MTU can be changed using the network setting panel. Edit the wired network settings. MTU parameter is in the Identity page.
63
64Please note if your device is not connected directly to the machine, you may also have to tweak the active devices on your network.
65
66#### Packet Socket Support (Since Aravis 0.5.x)
67
68Aravis can use packet sockets for the video receiving thread. But this mode requires extended capabilities. If you want to allow your application to use packet socket, you must set the `cap_net_raw` capability using `setcap`. For example, the following command gives this capability to the Aravis viewer (You should do this on the installed arv-viewer executable, has the one in the source tree is just a wrapper shell script):
69
70```
71sudo setcap cap_net_raw+ep arv-viewer
72```
73
74### USB Permissions
75
76By default, USB devices permissions may not be sufficient to allow any user to access the USB3 cameras. This permissions can be changed by using an udev rule file. There is a file example in Aravis sources, aravis.rules. This file must be placed in /etc/udev/rules.d directory (The exact location may depend on the distribution you are using). This file only contains declarations for a couple of vendors. If you want to add an entry with the vendor of your camera, the output of `lsusb` command will give you the vendor id, which is the first 4 digits of the ID field.
77
78### Dependencies
79
80The Aravis library depends on libxml2 and glib2, with an optional USB support depending on libusb1, and an optional packet socket support depending on libaudit.
81
82The GStreamer plugin depends on GStreamer1 in addition to the Aravis library dependencies.
83
84The simple viewer depends on GStreamer1, Gtk+3, libnotify and the Aravis library dependencies.
85
86The required versions are specified in the [configure.ac](https://github.com/AravisProject/aravis/blob/master/configure.ac#L67) file in Aravis sources.
87
88It is perfectly possible to only build the library, reducing the dependencies to the bare minimum.
89
90### Contributions
91
92As an open source and free software project, we welcome any contributions to the aravis project: code, bug reports, testing...
93
94However, contributions to both Gigabit Ethernet and USB3 protocol code (files `src/arvuv*.[ch]` `src/arvgv*.[ch]`) must not be based on the corresponding specification documents published by the [AIA](http://http://www.visiononline.org/), as this organisation forbids the use of their documents for the development of an open source implementation of the specifications. So, if you want to contribute to this part of Aravis, don't use the AIA documents and state clearly in the pull request your work is not based on them.
95
96#### Unit tests
97
98Aravis has a set of unit tests that helps to catch regressions and memory leaks during the development. The test suite is run using the following commands:
99
100```
101cd tests
102make check
103make check-valgrind-memcheck
104```
105
106`make check-valgrind-hellgrind`, `make check-valgrind-sgcheck` and `make check-valgrind-drd` are known to not pass. Any help to understand what fails and why would be nice.
107
108All the code is not covered yet by the tests. Code coverage can be obtained using:
109
110```
111cd tests
112make check-code-coverage
113```
114
115The report is published in `tests/aravis-{VERSION}-coverage/index.html`. Code coverage improvment is welcomed as well.
116
117### Downloads
118
119* 0.4.x stable releases: http://ftp.gnome.org/pub/GNOME/sources/aravis/0.4/
120* 0.5.x development releases: http://ftp.gnome.org/pub/GNOME/sources/aravis/0.5/
121
122### Links
123
124* Github repository: https://github.com/AravisProject/aravis
125* Mailing list: aravis@freelists.org ( http://www.freelists.org/list/aravis )
126* Aravis 0.4 documentation: https://aravisproject.github.io/docs/aravis-0.4/
127* Aravis 0.5 (unstable) documentation: https://aravisproject.github.io/docs/aravis-0.5/
128* Blog: http://blogs.gnome.org/emmanuel/category/aravis/
129* Genicam standard : http://www.genicam.org
130