From 19872b3ff59fc69d647320a397f1b6024731c992 Mon Sep 17 00:00:00 2001 From: Maurice ONeal Date: Tue, 28 Mar 2023 20:27:12 -0400 Subject: [PATCH] v2.0 updated documentation and cleaned up the code. preparing to release to master. --- README.md | 63 ++++++++++------------------------------------- src/common.cpp | 2 -- src/common.h | 9 +------ src/mo_detect.cpp | 2 -- 4 files changed, 14 insertions(+), 62 deletions(-) diff --git a/README.md b/README.md index 31b61c4..aa3bf7a 100644 --- a/README.md +++ b/README.md @@ -44,76 +44,39 @@ web_root = /var/www/html # warning: this will overwrite any existing index.html files so be sure # to choose a directory that doesn't have an existing website. # -buff_dir = /tmp -# this application records small clips of the footage from the camera and -# then stores them into this directory. any clips with motion detected in -# them are moved to web_root; if no motion is detected, they are deleted. -# it is highly recommend to use a ramdisk tempfs for this since this -# directory is used for large amounts of writes. -# cam_name = cam-1 # this is the optional camera name parameter to identify the camera. this -# name will be used to form the directory structure in the web_root as -# well as buff_dir. if not defined, the name of the config file will be -# used. +# name will also be used to as the base directory in web_root. if not +# defined, the name of the config file will be used. # pix_thresh = 150 # this value tells the application how far different the pixels need to be # before the pixels are actually considered different. think of this as # pixel diff sensitivity, the higher the value the lesser the sensitivity. -# -frame_gap = 20 -# this value is used to tell the application how far in between frames to -# check the pixel diffs for motion. the lower the value, the more frames -# will be checked, however with that comes higher cpu usage. +# maximum is 255. # img_thresh = 80000 -# this indicates how many pixels need to be different in between frame_gap +# this indicates how many pixels need to be different in between frames # before it is considered motion. any video clips found with frames -# exceeding this value will be moved from buff_dir to web_root. +# exceeding this value will be copied from live footage to event footage. # -clip_len = 20 -# this parameter indicate the amount of seconds to record in each video -# clip from the camera that will be stored and then processed in buff_dir. +max_events = 40 +# this indicates the maximum amount of motion event video clips to keep +# before deleting the oldest clip. # -num_of_clips = 3 -# this will tell the application how many video clips should be recorded -# to buff_dir from the camera before the recording loop pauses to do some -# house keeping. by house keeping, it will wait until all motion detection -# threads are finished, reload the config file and then call the post_cmd -# if no motion was detected in any of the video clips. +sch_sec = 60 +# this is the amount of seconds to wait in between running post_cmd. # post_cmd = move_the_ptz_camera.py -# this an optional command to run after num_of_clips is met. one great use -# for this is to move a ptz camera to the next position of it's patrol -# pattern. note: the call to this command will be delayed if motion was -# detected. -# -max_days = 15 -# this defines the maximum amount of days worth of video clips that is -# allowed to be stored in the web_root. whenever this limit is met, the -# oldest day and all of it's associated video clips will be deleted. -# -max_clips = 30 -# this is the maximum amount of video clips that is allowed to be stored -# in web_root per day. whenever this limit is met, the oldest clip is -# deleted. +# this an optional command to run with sch_sec. one great use for this +# is to move a ptz camera to the next position of it's patrol pattern. +# note: the call to this command will be delayed if motion was detected. # max_log_size = 50000 # this is the maximum byte size of all log files that can be stored in # web_root. whenever this limit is met, the log file will be deleted and # then eventually recreated blank. # -vid_container = mp4 -# this is the video file format to use for recording footage from the -# camera. the format support depends entirely on the under laying ffmpeg -# installation. -# -vid_codec = copy -# this is the video codec to use when pulling footage from the camera -# via ffmpeg. the default is "copy" meaning it will just match the codec -# from the camera itself without trans-coding. -# web_text = #dee5ee # this can be used to customize the color of the text in the web # interface. it can be defined as any color understood by html5 standard. diff --git a/src/common.cpp b/src/common.cpp index fee254f..b5ecb43 100644 --- a/src/common.cpp +++ b/src/common.cpp @@ -221,7 +221,6 @@ bool rdConf(const string &filePath, shared_t *share) rdLine("post_cmd = ", line, &share->postCmd); rdLine("pix_thresh = ", line, &share->pixThresh); rdLine("img_thresh = ", line, &share->imgThresh); - rdLine("max_days = ", line, &share->maxDays); rdLine("max_events = ", line, &share->maxEvents); rdLine("max_log_size = ", line, &share->maxLogSize); } @@ -241,7 +240,6 @@ bool rdConf(shared_t *share) share->retCode = 0; share->pixThresh = 50; share->imgThresh = 800; - share->maxDays = 15; share->maxEvents = 40; share->maxLogSize = 50000; share->skipCmd = false; diff --git a/src/common.h b/src/common.h index c51abbb..edd2400 100644 --- a/src/common.h +++ b/src/common.h @@ -16,7 +16,6 @@ #include #include #include -#include #include #include #include @@ -24,10 +23,7 @@ #include #include #include -#include -#include #include -#include #include #include @@ -38,7 +34,7 @@ using namespace std; using namespace std::filesystem; using namespace std::chrono; -#define APP_VER "2.0.t13" +#define APP_VER "2.0" #define APP_NAME "Motion Watch" #define REC_LOG_NAME "rec_log_lines.html" #define DET_LOG_NAME "det_log_lines.html" @@ -67,14 +63,11 @@ struct shared_t string webTxt; string webFont; string webRoot; - mutex detMutex; bool skipCmd; int procTime; int schSec; - int frameGap; int pixThresh; int imgThresh; - int maxDays; int maxEvents; int maxLogSize; int retCode; diff --git a/src/mo_detect.cpp b/src/mo_detect.cpp index 13d4cd7..90e5586 100644 --- a/src/mo_detect.cpp +++ b/src/mo_detect.cpp @@ -118,8 +118,6 @@ bool moDetect(const string &buffFile, Mat &vidThumb, shared_t *share) { capture.retrieve(next); - lock_guard guard(share->detMutex); - if (!next.empty()) { if (imgDiff(prev, next, score, share))