Internal

This section describes the internal project structure.

Folder Structure

This is a simplified folder structure of the tiscamera project:

tiscamera
├── cmake
│   └── modules
├── data - static data that is neither compiled or generated
│   ├── firmware
│   │   └── usb2
│   ├── images - logos, icons, camera images, etc.
│   ├── systemd - systemd units
│   ├── udev - udev rules for usb cameras, see Udev
│   └── uvc-extensions - description files for UVC extension units, see UVC
├── dependencies - third party software
│   ├── 7z
│   ├── aravis
│   ├── catch - C++ test framework
│   ├── CLI11
│   ├── json
│   └── PugiXml
├── doc - documentation infrastructure
│   ├── images
│   ├── pages
│   │   ├── images
│   │   ├── _static
│   │   └── _templates
├── examples - code examples to help with understanding
│   ├── c
│   └── python
├── packaging - resources for the creation of binary distributions
│   └── deb
├── scripts - helper scripts, see Scripts
├── src - general source directory
│   ├── algorithms - autofocus, whitebalance, etc.
│   ├── aravis - aravis backend
│   ├── gobject - tcamprop property interface
│   ├── gstreamer-1.0 - gstreamer modules
│   ├── libusb - libusb-1.0 backend
│   ├── tcam-network - network helper library
│   └── v4l2 - v4l2 backend
├── tests - verification code, see Tests
│   ├── integration
│   │   └── start_stop
│   └── unit
│   ├── gstreamer-1.0
│   └── tcam-network
└── tools - directory for applications
├── camera-ip-conf
├── dfk73udev
├── firmware-update
├── gige-daemon
├── tcam-capture
├── tcam-ctrl
├── tcam-gigetool

Libraries

This section describes the purpose behind the different libraries.

libtcam

The main library. Device indexing, property mappings, etc. is done here. The backends are also contained in this library.

libtcamprop

gobject-introspection library. Used by all gstreamer modules.

libtcam-network

Common network functionality. Used by gige-daemon, camera-ip-conf, tcam-gigetool

libtcam-uvc-extension

uvc extension loading functionality. Used by tcam-uvc-extension-loader.

libtcamgstbase

Common functionality that is shared between the tcam gstreamer elements.

libtcam-algorithms

This library contains all algorithms like auto-exposure, whitebalance and autofocus.

libtcam-dfk73

Helper library for the correct initialization of DFK73 cameras.