Argos2D A100 SurveillanceApp Developer's Guide

From BlueWiki

Jump to: navigation, search

The Surveillance software is a ready-to-use appliance for the Argos®2D A100 camera platform.

Customers may also extend the software according to their needs. The application source code is available under the BSD license (other licenses apply to third-party tools).


Contents

1 Flash layout

  • SPI-NOR flash contains U-Boot boot loader and U-Boot environment
  • Configuration data is stored to U-Boot environment (with Linux tool fw_setenv coming with U-Boot)
  • NAND flash contains Linux kernel image (2nd partition, offset 16MiB, size 5MiB)
  • NAND flash also contains root file system (3rd partition, offset 21MiB, max. size 256MiB)
  • Root file system alternate partition (changed with each firmware update): 4th partition, offset 277MiB, max. size 256 MiB
  • Root file system type is cramfs, this is a read-only file system.
  • Firmware update includes Linux kernel and Root file system, not U-Boot, nor U-Boot environment.

2 Firmware update image format

  • ZIP file
    • uImage (Linux kernel as built by LTIB)
    • rootfs.cramfs (Root file system image as built by LTIB)
    • version.txt (Text file, containing firmware version string, e.g. "1.0.0")

3 Video stream

  • Created with GStreamer framework
  • Threaded C application
  • Pipeline overview
mfw_v4lsrc --> ismconv --> mfw_ipucsc --> clockoverlay --> videorate --> tee (1)--+-->(2) queue --> capsfilter --> videorate --> capsfilter --> mfw_vpuencoder --> multifilesink
                                                                                  |-->(3) queue --> mfw_vpuencoder --> capsfilter --> ffmux_mp4 --> filesink
                                                                                  '-->(4) queue --> mfw_vpuencoder --> capsfilter --> ffmux_mp4 --> filesink
  • (1) Capture bin: Captures camera input, converts from Bayer to RGB, converts color space (with i.MX IPU), adds time/date overlay, harmonizes frame rate with videorate
  • (2) JPEG encoding bin: Decreases frame rate to 1/2 fps, encodes JPG image with i.MX VPU, writes to file (overwriting the old)
  • (3)/(4) H.264 encoding bins: Encode to H.264 with i.MX VPU, muxes into MP4 with ffmpeg library, writes to file
  • (3) and (4) are running alternately, with overlapping of 1 second

4 Source build

  • You need to have the Bluetechnix i.MX53 Linux BSP installed. The version required is listed with each SurveillanceApp software release.
  • In the Source package, following the instructions in the file
INSTALL.txt

5 Source code overview

build_all.sh (SH)
Builds the application.
install_all.sh (SH)
Installs the demo to LTIB's rootfs.
INSTALL.txt
Read how to build and install the demo.
LICENSE
License
LICENSE_zip30
License file coming with InfoZip v3.0, which is used in the application.
config/
build-config
All configuration parameters; gets also installed on target (/opt/bluetechnix/imx53-ecam-demo/imx53-ecam-demo.config).
defconfig.dev
LTIB configuration; must be copied to <ltib>/config/platform/imx/.config.
gst-fsl-plugin*
Patch for Freescale GStreamer plug-in package
gst-plugins-base*
Patch for GStreamer base plug-ins package
imx5_defconfig
Linux kernel configuration; must be copied to <ltib>/rpm/BUILD/linux/.config.
linux.patch
Patch for Linux kernel
network
pango.modules
resolv.conf
shadow
sshd_config
ssh_host_*
Additional files for the root file system
u-boot.patch
Patch for U-Boot boot loader
src/
set-cross-envs
Source script that sets cross-compile environment variables
app/
config.sh (SH)
Configuration tool "ecamconfig"
fwupdate.sh (SH)
Firmware update tool "ecamfwupdate"
ledd.sh (SH)
Blinking LED daemon
main.sh (SH)
Application entry point. Starts application daemons and applications, then quits.
ntpd.sh (SH)
Time synchronization daemon
passwd.sh (SH)
Wrapper for passwd to change root password ("ecamrootpasswd")
setuptool.sh (SH)
setuptoolstart.sh (SH)
Tool for camera positioning ("ecamsetuptool")
templogger.sh (SH)
Temperature logging daemon
uploader.sh (SH)
Uploading daemon
version.sh (SH)
Version display tool ("ecamversion")
watchdogd.sh (SH)
Watchdog daemon
camctl/
Makefile
mt9m025-ctl.c (C)
Camera control application that writes directly to I2C registers via I2CDEV driver.
gst/ (C)
GStreamer C application (implements above Pipeline)
pwchange/ (C)
Video password change utility
utils/
ledctl.sh (SH)
LED control script.
ubootenv/ (C)
Linux tools for reading/writing U-Boot environment. This is part of U-Boot's source code. (GPL license!)
zip/ (C)
Info-Zip v3.0 (http://www.info-zip.org). Separate license!

6 Support

If you have questions, want to report a bug or request a feature, or need support: Contact our support team.

Bluetechnix offers custom development services! Feel free to contact office if you are interested.

Personal tools