diff --git a/docs/faq.rst b/docs/faq.rst index 37bf25af8..3bc59311c 100644 --- a/docs/faq.rst +++ b/docs/faq.rst @@ -32,3 +32,29 @@ Snapshots and Zones images are stored in the `images` directory in your webroot. Ensure that the `images` directory is writable by the user which ZoneMinder is running as. If the `images` directory is a symlink, ensure that your web server has access to that directory as well. + +How do the 3 AlarmCheckMethods interact? +---------------------------------------- + +In example, if I set the alarm % to 5-10% and the filtered and blob to 1-100%, what happens? + +1. If any of the min/max values is 0, the check that the value is applied to is skipped. +2. If you have a min-alarmed area and you're below that, then it quits. +3. If you have a max-alarmed area and you're above that, then it quits. +4. If you're on filtered or blobs + + 1. and have a min filtered area that you're below then it quits + 2. and have a max filtered area that you're above then it quits + +5. If you're on blobs + + 1. any blob smaller than the min blob area (if set) is discarded + 2. any blob larger than the max blob area (if set) is discarded + 3. If there are less remaining blobs than the minimum-blobs, then it quits. + 4. If there are more remaining blobs than the maximum-blobs, then it quits. + +If AlarmedPixels is selected, you can only enter min/max pixel threshold and +min/max alarmed area. If FilteredPixels is selected, the Blob options are +disabled. The Blob check method allows you to specify all options. Filtered +adds more checks than alarmed, and blobs adds more checks than filtered. The +final 'score' is calculated using final check method. diff --git a/src/zm_image.cpp b/src/zm_image.cpp index 6af43e83f..80a4f4c21 100644 --- a/src/zm_image.cpp +++ b/src/zm_image.cpp @@ -860,7 +860,7 @@ bool Image::WriteJpeg( const char *filename, int quality_override ) const } jpeg_set_defaults( cinfo ); - jpeg_set_quality( cinfo, quality, false ); + jpeg_set_quality( cinfo, quality, FALSE ); cinfo->dct_method = JDCT_FASTEST; jpeg_start_compress( cinfo, TRUE ); @@ -1093,7 +1093,7 @@ bool Image::EncodeJpeg( JOCTET *outbuffer, int *outbuffer_size, int quality_over } jpeg_set_defaults( cinfo ); - jpeg_set_quality( cinfo, quality, false ); + jpeg_set_quality( cinfo, quality, FALSE ); cinfo->dct_method = JDCT_FASTEST; jpeg_start_compress( cinfo, TRUE ); diff --git a/src/zm_jpeg.cpp b/src/zm_jpeg.cpp index 97ea47b32..92f757ca1 100644 --- a/src/zm_jpeg.cpp +++ b/src/zm_jpeg.cpp @@ -399,12 +399,12 @@ void zm_use_std_huff_tables( j_decompress_ptr cinfo ) { static const JHUFF_TBL dclumin = { { /* 0-base */ 0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 }, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }, - 0 + FALSE }; static const JHUFF_TBL dcchrome = { { /* 0-base */ 0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 }, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }, - 0 + FALSE }; static const JHUFF_TBL aclumin = { { /* 0-base */ 0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 0x7d }, @@ -429,7 +429,7 @@ void zm_use_std_huff_tables( j_decompress_ptr cinfo ) { 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa }, - 0 + FALSE }; static const JHUFF_TBL acchrome = { { /* 0-base */ 0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 0x77 }, @@ -454,7 +454,7 @@ void zm_use_std_huff_tables( j_decompress_ptr cinfo ) { 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa }, - 0 + FALSE }; cinfo->dc_huff_tbl_ptrs[0] = (JHUFF_TBL*)&dclumin;