Update source code overview in README
This commit is contained in:
parent
2133a087d5
commit
b12021d8f5
39
README.md
39
README.md
|
@ -41,10 +41,8 @@ These are the sections describing the sensors.
|
|||
|
||||
* `driver=ov5640` the name of the media node that provides the sensor and it's /dev/v4l-subdev* node.
|
||||
* `media-driver=sun6i-csi` the name of the media node that has this camera in it.
|
||||
* `width=640` and `height=480` the resolution to use for the sensor
|
||||
* `rate=15` the refresh rate in fps to use for the sensor
|
||||
* `fmt=BGGR8` sets the pixel and bus formats used when capturing from the sensor, only BGGR8 is fully supported
|
||||
* `rotate=90` the rotation angle to make the sensor match the screen
|
||||
* `mirrored=true` whether the output is mirrored, useful for front-facing cameras
|
||||
* `colormatrix=` the DNG colormatrix1 attribute as 9 comma seperated floats
|
||||
* `forwardmatrix=` the DNG forwardmatrix1 attribute as 9 comma seperated floats
|
||||
* `blacklevel=10` The DNG blacklevel attribute for this camera
|
||||
|
@ -53,6 +51,14 @@ These are the sections describing the sensors.
|
|||
* `cropfactor=10.81` The cropfactor for the sensor in the camera, for EXIF
|
||||
* `fnumber=3.0` The aperture size of the sensor, for EXIF
|
||||
|
||||
These sections have two possibly prefixes: `capture-` and `preview-`. Both sets
|
||||
are required. Capture is used when a picture is taken, whereas preview is used
|
||||
when previewing.
|
||||
|
||||
* `width=640` and `height=480` the resolution to use for the sensor
|
||||
* `rate=15` the refresh rate in fps to use for the sensor
|
||||
* `fmt=BGGR8` sets the pixel and bus formats used when capturing from the sensor, only BGGR8 is fully supported
|
||||
|
||||
# Post processing
|
||||
|
||||
Megapixels only captures raw frames and stores .dng files. It captures a 5 frame burst and saves it to a temporary
|
||||
|
@ -93,11 +99,30 @@ To send patches, follow this procedure:
|
|||
|
||||
## Source code organization
|
||||
|
||||
There are 3 ".c" files:
|
||||
|
||||
* `ini.c` contains a INI file format parser.
|
||||
* `quickdebayer.c` implements a fast debayer function.
|
||||
* `main.c` contains the entry point and everything else.
|
||||
* `camera_config.c` describes how cameras are configured. Contains no state.
|
||||
* `main.c` contains the entry point and UI portion of the application.
|
||||
* `quickpreview.c` implements fast preview functionality, including debayering, color correction, rotation, etc.
|
||||
* `io_pipeline.c` implements all IO interaction with V4L2 devices in a separate thread to prevent blocking.
|
||||
* `process_pipeline.c` implements all process done on captured images, including launching post-processing
|
||||
* `pipeline.c` Generic threaded message passing implementation based on glib, used to implement the pipelines.
|
||||
* `camera.c` V4L2 abstraction layer to make working with cameras easier
|
||||
* `device.c` V4L2 abstraction layer for devices
|
||||
|
||||
The primary image pipeline consists of the main application, the IO pipeline and
|
||||
the process pipeline. The main application sends commands to the IO pipeline,
|
||||
which in turn talks to the process pipeline, which then talks to the main
|
||||
application. This way neither IO nor processing blocks the main application and
|
||||
races are generally avoided.
|
||||
|
||||
Tests are located in `tests/`.
|
||||
|
||||
## Tools
|
||||
|
||||
All tools are contained in `tools/`
|
||||
|
||||
* `list_devices` lists all V4L2 devices and their hardware layout
|
||||
* `camera_test` lists controls and video modes of a specific camera and tests capturing data from it
|
||||
|
||||
## Linux video subsystem
|
||||
|
||||
|
|
Loading…
Reference in New Issue