Metadata-Version: 2.4
Name: camshark
Version: 0.2.4
Summary: Think of wireshark for libcamera based cameras
Author-email: Stefan Klug <stefan.klug@ideasonboard.com>, Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Maintainer-email: Stefan Klug <stefan.klug@ideasonboard.com>
Project-URL: Homepage, https://libcamera.org
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Multimedia :: Video :: Capture
Classifier: Topic :: Software Development :: Embedded Systems
Classifier: License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: coloredlogs
Requires-Dist: colour-science
Requires-Dist: matplotlib
Requires-Dist: numpy
Requires-Dist: opencv-python
Requires-Dist: opencv-contrib-python
Requires-Dist: pidng
Requires-Dist: pixutils @ git+https://github.com/tomba/pixutils.git
Requires-Dist: PyQt6
Requires-Dist: pyqtgraph
Requires-Dist: pyyaml
Requires-Dist: QScintilla
Dynamic: license-file

# Camshark

A gui tool to work remotely with libcamera based cameras.

This is a tool to help developing libcamera and related cameras. It is developed
with the following premises in mind:

 * Easy to setup (No one uses a development tool that takes more than a few
   minutes to setup)
 * Minimal requirements on the remote device (This is the reason for not using a
   "proper" rpc implementation like grpc)
 * Image quality over speed. Images are transferred uncompressed to the host to 
   get unmodified data.

## Installation and Usage

Please double check the prerequisites on the device first (see below). These are 
most likely more difficult to achieve than running and installing camshark 
itself. The easiest way to use camshark is via pipx:
```
pipx install git+https://gitlab.freedesktop.org/camera/camshark.git
camshark user@device.local

# or if you need to pass an env variable to the remote
camshark user@device.local -e LIBCAMERA_LOG_LEVELS="Something:0"

```

## Prerequisites on the device

 * The device must be reachable via passwordless ssh
 * python3 must be executable on the device
 * the libcamera python bindings must be installed on the device
 * /tmp must be writable 

## Running from source

```
# Setup python venv
python -m venv venv
. ./venv/bin/activate

# install dependnecies
pip3 install -r requirements.txt

# run camshark
./camshark.py user@device.local

# to pass environment variables to libcamera
./camshark.py user@device.local -e LIBCAMERA_LOG_LEVELS="*:0"
```
