Skip to content

Commit 194a254

Browse files
committed
Submitting an early draft of the configuration file fields
1 parent df2be69 commit 194a254

File tree

3 files changed

+133
-1
lines changed

3 files changed

+133
-1
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ _* At the moment, text, RGB or bitfield bitmaps and PNG overlays are handled, mo
6767

6868
### Documentation
6969

70+
- [Configuration](doc/config.md) - _doc/config.md_
7071
- [Endpoints](doc/endpoints.md) - _doc/endpoints.md_
7172
- [Overlays](doc/overlays.md) - _doc/overlays.md_
7273

doc/config.md

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
# Configuration Reference
2+
3+
This document describes the fields that can be found within a configuration file for Divinus.
4+
5+
## System section
6+
7+
- **sensor_config**: Path to the sensor calibration or configuration file, if applicable (e.g., `/etc/sensors/imx415.bin`).
8+
- **web_port**: Port number for the web server (default: `80`).
9+
- **web_whitelist**: Array of up to 4 IP addresses or domains allowed to access the web server.
10+
- **web_enable_auth**: Boolean to enable authentication on the API, live stream and WebUI endpoints (default: `false`).
11+
- **web_auth_user**: Username for basic authentication (default: `admin`).
12+
- **web_auth_pass**: Password for basic authentication (default: `12345`).
13+
- **web_enable_static**: Boolean to enable serving static web content (default: `false`).
14+
- **isp_thread_stack_size**: Stack size for ISP thread, if applicable (default: `16384`).
15+
- **venc_stream_thread_stack_size**: Stack size for video encoding stream thread (default: `16384`).
16+
- **web_server_thread_stack_size**: Stack size for web server thread (default: `65536`).
17+
- **time_format**: Format for displaying time, refer to strftime() modifiers for exact parameters (e.g., `"%Y-%m-%d %H:%M:%S"`).
18+
- **watchdog**: Watchdog timer in seconds, where 0 means disabled (default: `30`).
19+
20+
## Night mode section
21+
22+
- **enable**: Boolean to activate night mode support.
23+
- **ir_cut_pin1**: GPIO number for IR cut filter control (normal state pin).
24+
- **ir_cut_pin2**: GPIO number for IR cut filter control (inverted state pin).
25+
- **ir_led_pin**: GPIO number for IR LED control.
26+
- **ir_sensor_pin**: GPIO number for PIR motion sensor or similar digital toggle.
27+
- **check_interval_s**: Interval in seconds to check night mode conditions.
28+
- **pin_switch_delay_us**: Delay in microseconds before switching GPIO pins, must be used to protect cut filter coils from burning.
29+
- **adc_device**: Path to the ADC device used for night mode.
30+
- **adc_threshold**: Threshold raw value to trigger night mode, depends on the bitness of the given ADC device.
31+
32+
## ISP section
33+
34+
- **mirror**: Boolean to turn on image mirroring (default: `false`).
35+
- **flip**: Boolean to turn on image flipping (default: `false`).
36+
- **antiflicker**: Antiflicker setting in Hz (default: `60`).
37+
38+
## mDNS section
39+
40+
- **enable**: Boolean to turn on mDNS announcer, lets LAN users access the device by a domain name, its configured hostname followed by .local (default: `false`).
41+
42+
## ONVIF section
43+
44+
- **enable**: Boolean to activate ONVIF services (default: `false`).
45+
- **enable_auth**: Boolean to turn on ONVIF authentication (default: `false`).
46+
- **auth_user**: Username for ONVIF authentication (default: `admin`).
47+
- **auth_pass**: Password for ONVIF authentication (default: `12345`).
48+
49+
## RTSP section
50+
51+
- **enable**: Boolean to activate the integrated RTSP server (default: `true`).
52+
- **enable_auth**: Boolean to turn on RTSP authentication (default: `false`).
53+
- **auth_user**: Username for RTSP authentication (default: `admin`).
54+
- **auth_pass**: Password for RTSP authentication (default: `12345`).
55+
- **port**: Port number for RTSP server (default: `554`).
56+
57+
## Record section
58+
59+
- **enable**: Boolean to allow or block recording operations (default: `false`).
60+
- **continuous**: Boolean to turn on continuous recording at launch (default: `false`).
61+
- **path**: Path to save recordings (e.g., `/mnt/sdcard/recordings`).
62+
- **filename**: String for a fixed destination file, leave empty to use incremental numbering
63+
- **segment_duration**: Target duration for a recording in seconds
64+
- **segment_size**: Target file size for a recording in bytes
65+
66+
## Stream section
67+
68+
- **enable**: Boolean to turn on special streaming methods (default: `false`).
69+
- **udp_srcport**: Source port for UDP streaming (default: `5600`).
70+
- **dest**: List of destination URLs for streaming (e.g., `udp://239.255.255.0:5600`).
71+
72+
## Audio section
73+
74+
- **enable**: Boolean to activate or deactivate audio functionality.
75+
- **bitrate**: Audio bitrate in kbps (e.g., `128`).
76+
- **gain**: Audio gain in decibels (e.g., `0` for no gain).
77+
- **srate**: Audio sampling rate in Hz (e.g., `44100`).
78+
79+
## MP4 section
80+
81+
- **enable**: Boolean to activate or deactivate MP4 encoding.
82+
- **codec**: Codec used for encoding (H.264 or H.265).
83+
- **mode**: Encoding mode.
84+
- **width**: Video width in pixels.
85+
- **height**: Video height in pixels.
86+
- **fps**: Frames per second.
87+
- **gop**: Interval between keyframes.
88+
- **profile**: Encoding profile.
89+
- **bitrate**: Bitrate in kbps.
90+
91+
## OSD section
92+
93+
- **enable**: Boolean to turn on On-Screen Display regions globally, used to reduce resource usage or let another app manage the functionality (default: `true`).
94+
- **regX_img**: Path to the image for OSD region X.
95+
- **regX_text**: Text displayed in OSD region X.
96+
- **regX_font**: Font used for text in OSD region X.
97+
- **regX_opal**: Opacity of OSD region X.
98+
- **regX_posx**: X position of OSD region X.
99+
- **regX_posy**: Y position of OSD region X.
100+
- **regX_size**: Size of the text or image in OSD region X.
101+
- **regX_color**: Color of the text or image in OSD region X.
102+
- **regX_outl**: Outline color of the text in OSD region X.
103+
- **regX_thick**: Thickness of the text outline in OSD region X.
104+
105+
## JPEG section
106+
107+
- **enable**: Boolean to activate or deactivate JPEG encoding.
108+
- **width**: Image width in pixels.
109+
- **height**: Image height in pixels.
110+
- **qfactor**: JPEG compression quality factor.
111+
112+
## MJPEG section
113+
114+
- **enable**: Boolean to activate or deactivate MJPEG encoding.
115+
- **mode**: Encoding mode.
116+
- **width**: Video width in pixels.
117+
- **height**: Video height in pixels.
118+
- **fps**: Frames per second.
119+
- **bitrate**: Bitrate in kbps.
120+
121+
## HTTP POST section
122+
123+
- **enable**: Boolean to activate or deactivate HTTP POST requests.
124+
- **host**: Host for HTTP POST requests.
125+
- **url**: URL for HTTP POST requests.
126+
- **login**: Login for HTTP POST authentication.
127+
- **password**: Password for HTTP POST authentication.
128+
- **width**: Image width sent in pixels.
129+
- **height**: Image height sent in pixels.
130+
- **interval**: Interval between requests in seconds.
131+
- **qfactor**: JPEG compression quality factor for HTTP POST.

src/app_config.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ int save_app_config(void) {
169169
if (imgEmpty && textEmpty) continue;
170170

171171
if (!imgEmpty)
172-
fprintf(file, " reg_%dimg: %s\n", i, osds[i].img);
172+
fprintf(file, " reg%d_img: %s\n", i, osds[i].img);
173173
if (!textEmpty)
174174
fprintf(file, " reg%d_text: %s\n", i, osds[i].text);
175175
fprintf(file, " reg%d_font: %s\n", i, osds[i].font);

0 commit comments

Comments
 (0)