This section describes the internal project structure.
This is a simplified folder structure of the tiscamera project:
This section describes the purpose behind the different libraries.
The main library. Device indexing, property mappings, etc. is done here. The backends are also contained in this library.
gobject-introspection library. Used by all gstreamer modules.
Common network functionality. Used by tcam-gige-daemon and tcam-gigetool
uvc extension loading functionality. Used by tcam-uvc-extension-loader.
Common functionality that is shared between the tcam gstreamer elements.
Tiscamera will start multiple threads in the background. The following is an overview over these.
Indexing An internal device indexing thread will run periodically to ensure all potential devices are known and accessible to the user.
Internal capture thread This thread is responsible for image acquisition. It will call the auto algorithms for further processing.
Auto algorithms This thread checks for exposure corrections, white balance and other before passing the image buffer to gstreamer.
Streaming thread This is the thread tcamsrc and internal elements reside in. It will wait for a new image buffer to be given and pass it to downstream elements.
GStreamer thread The main gstreamer thread. Responsible for message handling and state changes. Typically implicitly started by the user application.
Device lost thread Security thread for the propagation of device lost events. Idle unless such an event occurs.