The Linux sources and UVC firmwares for The Imaging Source cameras.
Clone or download

README.md

The Imaging Source Linux Repository

This repository will give you additional ressources to control your TIS camera.

What do we offer?

  • gstreamer elements
  • gobject introspection
  • uvc extensions
  • firmware update tools
  • examples on how to interact with your camera

Important Note

The instructions in this manual will install the software in the system folders located under /usr. If you want to install the software to a different location (eg. /usr/local/), you need to change the path specifications in the respective instructions by yourself. Please note that in this case you may need to take additional steps to allow your system to locate the installed libraries and other components.

Dependencies

The following packages are required to build our software:

git g++-4.8 or higher cmake pkg-config libudev-dev libtinyxml-dev libgstreamer1.0-dev libglib2.0-dev libgirepository1.0-dev libusb-1.0-0-dev libzip-dev python3-setuptools

For aravis:

libxml2 libaudit libpcap0.8

Runtime Dependencies

The following packages are required to execute the compiled binaries for our software:

gstreamer-1.0 libusb-1.0 libglib2.0 libgirepository1.0 libudev libtinyxml libzip libnotify

For aravis:

libxml2-dev libaudit-dev libpcap-dev libnotify-dev

For our GUI applications:

python3-gi python3-pyqt5

On a Debian / Ubuntu system, the following command line could be used to install all required packages in one go:

# Build dependencies
sudo apt-get install git g++ cmake pkg-config libudev-dev libudev1 libtinyxml-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libglib2.0-dev libgirepository1.0-dev libusb-1.0-0-dev libzip-dev uvcdynctrl python-setuptools libxml2-dev libpcap-dev libaudit-dev libnotify-dev autoconf intltool gtk-doc-tools python3-setuptools

# Runtime dependencies
sudo apt-get install gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly libxml2 libpcap0.8 libaudit1 libnotify4 python3-pyqt5 python3-gi

aravis installation

We support GigE cameras through an aravis git submodule. A systemwide installation can be done but does not affect tiscamera. If you want to build against an external aravis version set TCAM_INTERNAL_ARAVIS=OFF

If you only use USB cameras you can build without aravis.

Building tiscamera

The following commands will build and install our software with default settings. A brief reference of compile time options could be found at the end of this document.

git clone --recursive https://github.com/TheImagingSource/tiscamera.git
cd tiscamera
mkdir build
cd build

# With ARAVIS:
cmake -DBUILD_ARAVIS=ON -DBUILD_GST_1_0=ON -DBUILD_TOOLS=ON -DBUILD_V4L2=ON -DCMAKE_INSTALL_PREFIX=/usr ..
# Without ARAVIS
cmake -DBUILD_ARAVIS=OFF -DBUILD_GST_1_0=ON -DBUILD_TOOLS=ON -DBUILD_V4L2=ON -DCMAKE_INSTALL_PREFIX=/usr ..

make
sudo make install

Optional for GigE-Vision devices: Start the gige-daemon

GigE-Vision cameras have a several seconds long delay before they could be reliably detected on the network. To speed up this process for applications, a background daemon is build and installed which detects cameras before an application starts. The following commands will activate the daemon on your system:

sudo systemctl daemon-reload                 # make systemd aware of gige-daemon
sudo systemctl enable gige-daemon.service    # start on every boot
sudo systemctl start gige-daemon.service     # start the actual daemon
sudo systemctl status gige-daemon.service    # check if statemd say everything is ok

cmake options

  • -DBUILD_ARAVIS=<ON/OFF>

    Build tiscamera with support for aravis devices.

  • -DBUILD_GST_1_0=<ON/OFF>

    Build gstreamer 1.0 plugins.

  • -DBUILD_TOOLS=<ON/OFF>

    Build additional tools for camera interaction.

  • -DBUILD_V4L2=<ON/OFF>

    Build tiscamera with suppoort for v4l2 devices.

  • -DBUILD_LIBUSB=<ON/OFF>

    Build tiscamera with suppoort for v4l2 devices.

  • -DCMAKE_INSTALL_PREFIX

    Installation target prefix (defaults to /usr/local)

!! IMPORTANT !! Currently some features like uvc-extension units for v4l2 cameras or systemd units for GigE cameras require root privileges as no user directories are used for these files. If you wish to install without root privileges you will have to change the paths for udev, uvcdynctrl via -DTCAM_INSTALL_UDEV, -DTCAM_INSTALL_UVCDYNCTRL, -DTCAM_INSTALL_GSTREAMER, -DTCAM_INSTALL_GIR, -DTCAM_INSTALL_TYPELIB and -DTCAM_INSTALL_SYSTEMD

Where to go from here

After installation you could try one of our examples or directly start with a gstreamer pipeline like:

gst-launch-1.0 tcambin ! videoconvert ! ximagesink

Questions, etc.

For questions simply open a ticket or write us a mail at support@theimagingsource.com.

Licensing

All files are published under the Apache License 2.0, unless otherwise noted.

Included libraries: 7z under Public Domain PugiXml under MIT