Migrate svn to git
This commit is contained in:
commit
33cbd89212
|
@ -0,0 +1,10 @@
|
||||||
|
ZoneMinder - A Linux based camera monitoring and analysis tool.
|
||||||
|
|
||||||
|
This project was imagined and created by Philip Coombes in
|
||||||
|
September 2002, shortly after being burglarised of his power tools.
|
||||||
|
|
||||||
|
mailto:philip.coombes@zoneminder.com
|
||||||
|
|
||||||
|
Plugin architecture and sample plugin modified for this version of ZoneMinder
|
||||||
|
with support of Stagecoach Wireless (mailto:beat.naef@stagecoach-wireless.com)
|
||||||
|
and the contributions of the CVisionLab team <info@cvisionlab.com>
|
|
@ -0,0 +1,340 @@
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||||
|
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your
|
||||||
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
License is intended to guarantee your freedom to share and change free
|
||||||
|
software--to make sure the software is free for all its users. This
|
||||||
|
General Public License applies to most of the Free Software
|
||||||
|
Foundation's software and to any other program whose authors commit to
|
||||||
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
|
the GNU Library General Public License instead.) You can apply it to
|
||||||
|
your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
this service if you wish), that you receive source code or can get it
|
||||||
|
if you want it, that you can change the software or use pieces of it
|
||||||
|
in new free programs; and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid
|
||||||
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
|
These restrictions translate to certain responsibilities for you if you
|
||||||
|
distribute copies of the software, or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether
|
||||||
|
gratis or for a fee, you must give the recipients all the rights that
|
||||||
|
you have. You must make sure that they, too, receive or can get the
|
||||||
|
source code. And you must show them these terms so they know their
|
||||||
|
rights.
|
||||||
|
|
||||||
|
We protect your rights with two steps: (1) copyright the software, and
|
||||||
|
(2) offer you this license which gives you legal permission to copy,
|
||||||
|
distribute and/or modify the software.
|
||||||
|
|
||||||
|
Also, for each author's protection and ours, we want to make certain
|
||||||
|
that everyone understands that there is no warranty for this free
|
||||||
|
software. If the software is modified by someone else and passed on, we
|
||||||
|
want its recipients to know that what they have is not the original, so
|
||||||
|
that any problems introduced by others will not reflect on the original
|
||||||
|
authors' reputations.
|
||||||
|
|
||||||
|
Finally, any free program is threatened constantly by software
|
||||||
|
patents. We wish to avoid the danger that redistributors of a free
|
||||||
|
program will individually obtain patent licenses, in effect making the
|
||||||
|
program proprietary. To prevent this, we have made it clear that any
|
||||||
|
patent must be licensed for everyone's free use or not licensed at all.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License applies to any program or other work which contains
|
||||||
|
a notice placed by the copyright holder saying it may be distributed
|
||||||
|
under the terms of this General Public License. The "Program", below,
|
||||||
|
refers to any such program or work, and a "work based on the Program"
|
||||||
|
means either the Program or any derivative work under copyright law:
|
||||||
|
that is to say, a work containing the Program or a portion of it,
|
||||||
|
either verbatim or with modifications and/or translated into another
|
||||||
|
language. (Hereinafter, translation is included without limitation in
|
||||||
|
the term "modification".) Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running the Program is not restricted, and the output from the Program
|
||||||
|
is covered only if its contents constitute a work based on the
|
||||||
|
Program (independent of having been made by running the Program).
|
||||||
|
Whether that is true depends on what the Program does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Program's
|
||||||
|
source code as you receive it, in any medium, provided that you
|
||||||
|
conspicuously and appropriately publish on each copy an appropriate
|
||||||
|
copyright notice and disclaimer of warranty; keep intact all the
|
||||||
|
notices that refer to this License and to the absence of any warranty;
|
||||||
|
and give any other recipients of the Program a copy of this License
|
||||||
|
along with the Program.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and
|
||||||
|
you may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Program or any portion
|
||||||
|
of it, thus forming a work based on the Program, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) You must cause the modified files to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
b) You must cause any work that you distribute or publish, that in
|
||||||
|
whole or in part contains or is derived from the Program or any
|
||||||
|
part thereof, to be licensed as a whole at no charge to all third
|
||||||
|
parties under the terms of this License.
|
||||||
|
|
||||||
|
c) If the modified program normally reads commands interactively
|
||||||
|
when run, you must cause it, when started running for such
|
||||||
|
interactive use in the most ordinary way, to print or display an
|
||||||
|
announcement including an appropriate copyright notice and a
|
||||||
|
notice that there is no warranty (or else, saying that you provide
|
||||||
|
a warranty) and that users may redistribute the program under
|
||||||
|
these conditions, and telling the user how to view a copy of this
|
||||||
|
License. (Exception: if the Program itself is interactive but
|
||||||
|
does not normally print such an announcement, your work based on
|
||||||
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Program,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Program, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Program.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Program
|
||||||
|
with the Program (or with a work based on the Program) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may copy and distribute the Program (or a work based on it,
|
||||||
|
under Section 2) in object code or executable form under the terms of
|
||||||
|
Sections 1 and 2 above provided that you also do one of the following:
|
||||||
|
|
||||||
|
a) Accompany it with the complete corresponding machine-readable
|
||||||
|
source code, which must be distributed under the terms of Sections
|
||||||
|
1 and 2 above on a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
|
b) Accompany it with a written offer, valid for at least three
|
||||||
|
years, to give any third party, for a charge no more than your
|
||||||
|
cost of physically performing source distribution, a complete
|
||||||
|
machine-readable copy of the corresponding source code, to be
|
||||||
|
distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
|
customarily used for software interchange; or,
|
||||||
|
|
||||||
|
c) Accompany it with the information you received as to the offer
|
||||||
|
to distribute corresponding source code. (This alternative is
|
||||||
|
allowed only for noncommercial distribution and only if you
|
||||||
|
received the program in object code or executable form with such
|
||||||
|
an offer, in accord with Subsection b above.)
|
||||||
|
|
||||||
|
The source code for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For an executable work, complete source
|
||||||
|
code means all the source code for all modules it contains, plus any
|
||||||
|
associated interface definition files, plus the scripts used to
|
||||||
|
control compilation and installation of the executable. However, as a
|
||||||
|
special exception, the source code distributed need not include
|
||||||
|
anything that is normally distributed (in either source or binary
|
||||||
|
form) with the major components (compiler, kernel, and so on) of the
|
||||||
|
operating system on which the executable runs, unless that component
|
||||||
|
itself accompanies the executable.
|
||||||
|
|
||||||
|
If distribution of executable or object code is made by offering
|
||||||
|
access to copy from a designated place, then offering equivalent
|
||||||
|
access to copy the source code from the same place counts as
|
||||||
|
distribution of the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
|
except as expressly provided under this License. Any attempt
|
||||||
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
|
void, and will automatically terminate your rights under this License.
|
||||||
|
However, parties who have received copies, or rights, from you under
|
||||||
|
this License will not have their licenses terminated so long as such
|
||||||
|
parties remain in full compliance.
|
||||||
|
|
||||||
|
5. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Program or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Program (or any work based on the
|
||||||
|
Program), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Program or works based on it.
|
||||||
|
|
||||||
|
6. Each time you redistribute the Program (or any work based on the
|
||||||
|
Program), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute or modify the Program subject to
|
||||||
|
these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties to
|
||||||
|
this License.
|
||||||
|
|
||||||
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Program at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Program by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Program.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under
|
||||||
|
any particular circumstance, the balance of the section is intended to
|
||||||
|
apply and the section as a whole is intended to apply in other
|
||||||
|
circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system, which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Program under this License
|
||||||
|
may add an explicit geographical distribution limitation excluding
|
||||||
|
those countries, so that distribution is permitted only in or among
|
||||||
|
countries not thus excluded. In such case, this License incorporates
|
||||||
|
the limitation as if written in the body of this License.
|
||||||
|
|
||||||
|
9. The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program
|
||||||
|
specifies a version number of this License which applies to it and "any
|
||||||
|
later version", you have the option of following the terms and conditions
|
||||||
|
either of that version or of any later version published by the Free
|
||||||
|
Software Foundation. If the Program does not specify a version number of
|
||||||
|
this License, you may choose any version ever published by the Free Software
|
||||||
|
Foundation.
|
||||||
|
|
||||||
|
10. If you wish to incorporate parts of the Program into other free
|
||||||
|
programs whose distribution conditions are different, write to the author
|
||||||
|
to ask for permission. For software which is copyrighted by the Free
|
||||||
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||||
|
make exceptions for this. Our decision will be guided by the two goals
|
||||||
|
of preserving the free status of all derivatives of our free software and
|
||||||
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||||
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||||
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||||
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||||
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||||
|
REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||||
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||||
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||||
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||||
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||||
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest
|
||||||
|
possible use to the public, the best way to achieve this is to make it
|
||||||
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively
|
||||||
|
convey the exclusion of warranty; and each file should have at least
|
||||||
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program is interactive, make it output a short notice like this
|
||||||
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
|
Gnomovision version 69, Copyright (C) year name of author
|
||||||
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
|
This is free software, and you are welcome to redistribute it
|
||||||
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, the commands you use may
|
||||||
|
be called something other than `show w' and `show c'; they could even be
|
||||||
|
mouse-clicks or menu items--whatever suits your program.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your
|
||||||
|
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||||
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||||
|
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
|
<signature of Ty Coon>, 1 April 1989
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
This General Public License does not permit incorporating your program into
|
||||||
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
|
consider it more useful to permit linking proprietary applications with the
|
||||||
|
library. If this is what you want to do, use the GNU Library General
|
||||||
|
Public License instead of this License.
|
|
@ -0,0 +1,185 @@
|
||||||
|
Basic Installation
|
||||||
|
==================
|
||||||
|
|
||||||
|
These are generic installation instructions.
|
||||||
|
|
||||||
|
Please see http://www.zoneminder.com/wiki/index.php/Documentation
|
||||||
|
for full details.
|
||||||
|
|
||||||
|
The `configure' shell script attempts to guess correct values for
|
||||||
|
various system-dependent variables used during compilation. It uses
|
||||||
|
those values to create a `Makefile' in each directory of the package.
|
||||||
|
It may also create one or more `.h' files containing system-dependent
|
||||||
|
definitions. Finally, it creates a shell script `config.status' that
|
||||||
|
you can run in the future to recreate the current configuration, a file
|
||||||
|
`config.cache' that saves the results of its tests to speed up
|
||||||
|
reconfiguring, and a file `config.log' containing compiler output
|
||||||
|
(useful mainly for debugging `configure').
|
||||||
|
|
||||||
|
If you need to do unusual things to compile the package, please try
|
||||||
|
to figure out how `configure' could check whether to do them, and mail
|
||||||
|
diffs or instructions to the address given in the `README' so they can
|
||||||
|
be considered for the next release. If at some point `config.cache'
|
||||||
|
contains results you don't want to keep, you may remove or edit it.
|
||||||
|
|
||||||
|
The file `configure.in' is used to create `configure' by a program
|
||||||
|
called `autoconf'. You only need `configure.in' if you want to change
|
||||||
|
it or regenerate `configure' using a newer version of `autoconf'.
|
||||||
|
|
||||||
|
The simplest way to compile this package is:
|
||||||
|
|
||||||
|
1. `cd' to the directory containing the package's source code and type
|
||||||
|
`./configure' to configure the package for your system. If you're
|
||||||
|
using `csh' on an old version of System V, you might need to type
|
||||||
|
`sh ./configure' instead to prevent `csh' from trying to execute
|
||||||
|
`configure' itself.
|
||||||
|
|
||||||
|
Running `configure' takes awhile. While running, it prints some
|
||||||
|
messages telling which features it is checking for.
|
||||||
|
|
||||||
|
2. Type `make' to compile the package.
|
||||||
|
|
||||||
|
3. Optionally, type `make check' to run any self-tests that come with
|
||||||
|
the package.
|
||||||
|
|
||||||
|
4. Type `make install' to install the programs and any data files and
|
||||||
|
documentation.
|
||||||
|
|
||||||
|
5. You can remove the program binaries and object files from the
|
||||||
|
source code directory by typing `make clean'. To also remove the
|
||||||
|
files that `configure' created (so you can compile the package for
|
||||||
|
a different kind of computer), type `make distclean'. There is
|
||||||
|
also a `make maintainer-clean' target, but that is intended mainly
|
||||||
|
for the package's developers. If you use it, you may have to get
|
||||||
|
all sorts of other programs in order to regenerate files that came
|
||||||
|
with the distribution.
|
||||||
|
|
||||||
|
Compilers and Options
|
||||||
|
=====================
|
||||||
|
|
||||||
|
Some systems require unusual options for compilation or linking that
|
||||||
|
the `configure' script does not know about. You can give `configure'
|
||||||
|
initial values for variables by setting them in the environment. Using
|
||||||
|
a Bourne-compatible shell, you can do that on the command line like
|
||||||
|
this:
|
||||||
|
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
|
||||||
|
|
||||||
|
Or on systems that have the `env' program, you can do it like this:
|
||||||
|
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
|
||||||
|
|
||||||
|
Compiling For Multiple Architectures
|
||||||
|
====================================
|
||||||
|
|
||||||
|
You can compile the package for more than one kind of computer at the
|
||||||
|
same time, by placing the object files for each architecture in their
|
||||||
|
own directory. To do this, you must use a version of `make' that
|
||||||
|
supports the `VPATH' variable, such as GNU `make'. `cd' to the
|
||||||
|
directory where you want the object files and executables to go and run
|
||||||
|
the `configure' script. `configure' automatically checks for the
|
||||||
|
source code in the directory that `configure' is in and in `..'.
|
||||||
|
|
||||||
|
If you have to use a `make' that does not supports the `VPATH'
|
||||||
|
variable, you have to compile the package for one architecture at a time
|
||||||
|
in the source code directory. After you have installed the package for
|
||||||
|
one architecture, use `make distclean' before reconfiguring for another
|
||||||
|
architecture.
|
||||||
|
|
||||||
|
Installation Names
|
||||||
|
==================
|
||||||
|
|
||||||
|
By default, `make install' will install the package's files in
|
||||||
|
`/usr/local/bin', `/usr/local/man', etc. You can specify an
|
||||||
|
installation prefix other than `/usr/local' by giving `configure' the
|
||||||
|
option `--prefix=PATH'.
|
||||||
|
|
||||||
|
You can specify separate installation prefixes for
|
||||||
|
architecture-specific files and architecture-independent files. If you
|
||||||
|
give `configure' the option `--exec-prefix=PATH', the package will use
|
||||||
|
PATH as the prefix for installing programs and libraries.
|
||||||
|
Documentation and other data files will still use the regular prefix.
|
||||||
|
|
||||||
|
In addition, if you use an unusual directory layout you can give
|
||||||
|
options like `--bindir=PATH' to specify different values for particular
|
||||||
|
kinds of files. Run `configure --help' for a list of the directories
|
||||||
|
you can set and what kinds of files go in them.
|
||||||
|
|
||||||
|
If the package supports it, you can cause programs to be installed
|
||||||
|
with an extra prefix or suffix on their names by giving `configure' the
|
||||||
|
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
||||||
|
|
||||||
|
Optional Features
|
||||||
|
=================
|
||||||
|
|
||||||
|
Some packages pay attention to `--enable-FEATURE' options to
|
||||||
|
`configure', where FEATURE indicates an optional part of the package.
|
||||||
|
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
||||||
|
is something like `gnu-as' or `x' (for the X Window System). The
|
||||||
|
`README' should mention any `--enable-' and `--with-' options that the
|
||||||
|
package recognizes.
|
||||||
|
|
||||||
|
For packages that use the X Window System, `configure' can usually
|
||||||
|
find the X include and library files automatically, but if it doesn't,
|
||||||
|
you can use the `configure' options `--x-includes=DIR' and
|
||||||
|
`--x-libraries=DIR' to specify their locations.
|
||||||
|
|
||||||
|
Specifying the System Type
|
||||||
|
==========================
|
||||||
|
|
||||||
|
There may be some features `configure' can not figure out
|
||||||
|
automatically, but needs to determine by the type of host the package
|
||||||
|
will run on. Usually `configure' can figure that out, but if it prints
|
||||||
|
a message saying it can not guess the host type, give it the
|
||||||
|
`--host=TYPE' option. TYPE can either be a short name for the system
|
||||||
|
type, such as `sun4', or a canonical name with three fields:
|
||||||
|
CPU-COMPANY-SYSTEM
|
||||||
|
|
||||||
|
See the file `config.sub' for the possible values of each field. If
|
||||||
|
`config.sub' isn't included in this package, then this package doesn't
|
||||||
|
need to know the host type.
|
||||||
|
|
||||||
|
If you are building compiler tools for cross-compiling, you can also
|
||||||
|
use the `--target=TYPE' option to select the type of system they will
|
||||||
|
produce code for and the `--build=TYPE' option to select the type of
|
||||||
|
system on which you are compiling the package.
|
||||||
|
|
||||||
|
Sharing Defaults
|
||||||
|
================
|
||||||
|
|
||||||
|
If you want to set default values for `configure' scripts to share,
|
||||||
|
you can create a site shell script called `config.site' that gives
|
||||||
|
default values for variables like `CC', `cache_file', and `prefix'.
|
||||||
|
`configure' looks for `PREFIX/share/config.site' if it exists, then
|
||||||
|
`PREFIX/etc/config.site' if it exists. Or, you can set the
|
||||||
|
`CONFIG_SITE' environment variable to the location of the site script.
|
||||||
|
A warning: not all `configure' scripts look for a site script.
|
||||||
|
|
||||||
|
Operation Controls
|
||||||
|
==================
|
||||||
|
|
||||||
|
`configure' recognizes the following options to control how it
|
||||||
|
operates.
|
||||||
|
|
||||||
|
`--cache-file=FILE'
|
||||||
|
Use and save the results of the tests in FILE instead of
|
||||||
|
`./config.cache'. Set FILE to `/dev/null' to disable caching, for
|
||||||
|
debugging `configure'.
|
||||||
|
|
||||||
|
`--help'
|
||||||
|
Print a summary of the options to `configure', and exit.
|
||||||
|
|
||||||
|
`--quiet'
|
||||||
|
`--silent'
|
||||||
|
`-q'
|
||||||
|
Do not print messages saying which checks are being made. To
|
||||||
|
suppress all normal output, redirect it to `/dev/null' (any error
|
||||||
|
messages will still be shown).
|
||||||
|
|
||||||
|
`--srcdir=DIR'
|
||||||
|
Look for the package's source code in directory DIR. Usually
|
||||||
|
`configure' can determine that directory automatically.
|
||||||
|
|
||||||
|
`--version'
|
||||||
|
Print the version of Autoconf used to generate the `configure'
|
||||||
|
script, and exit.
|
||||||
|
|
||||||
|
`configure' also accepts some other, not widely useful, options.
|
|
@ -0,0 +1,32 @@
|
||||||
|
AUTOMAKE_OPTIONS = gnu
|
||||||
|
|
||||||
|
# And these to the user and group of your webserver
|
||||||
|
webuser = @WEB_USER@
|
||||||
|
webgroup = @WEB_GROUP@
|
||||||
|
|
||||||
|
sysconf_DATA = \
|
||||||
|
zm.conf
|
||||||
|
|
||||||
|
SUBDIRS = \
|
||||||
|
src \
|
||||||
|
web \
|
||||||
|
scripts \
|
||||||
|
db \
|
||||||
|
misc
|
||||||
|
|
||||||
|
EXTRA_DIST = \
|
||||||
|
zm.conf.in \
|
||||||
|
zmconfgen.pl.in
|
||||||
|
|
||||||
|
# Yes, you are correct. This is a HACK!
|
||||||
|
install-data-hook:
|
||||||
|
( cd $(DESTDIR)$(sysconfdir); chown $(webuser):$(webgroup) $(sysconf_DATA); chmod 600 $(sysconf_DATA) )
|
||||||
|
( if ! test -e $(ZM_RUNDIR); then mkdir -p $(ZM_RUNDIR); fi; if test "$(ZM_RUNDIR)" != "/var/run"; then chown $(webuser):$(webgroup) $(ZM_RUNDIR); chmod u+w $(ZM_RUNDIR); fi )
|
||||||
|
( if ! test -e $(ZM_TMPDIR); then mkdir -m 700 -p $(ZM_TMPDIR); fi; if test "$(ZM_TMPDIR)" != "/tmp"; then chown $(webuser):$(webgroup) $(ZM_TMPDIR); chmod u+w $(ZM_TMPDIR); fi )
|
||||||
|
( if ! test -e $(ZM_LOGDIR); then mkdir -p $(ZM_LOGDIR); fi; if test "$(ZM_LOGDIR)" != "/var/log"; then chown $(webuser):$(webgroup) $(ZM_LOGDIR); chmod u+w $(ZM_LOGDIR); fi )
|
||||||
|
|
||||||
|
uninstall-hook:
|
||||||
|
@-( cd $(DESTDIR)$(webdir); rm -rf events graphics images sounds temp )
|
||||||
|
@-( if test "$(ZM_RUNDIR)" != "/var/run"; then rm -rf $(ZM_RUNDIR); fi )
|
||||||
|
@-( if test "$(ZM_TMPDIR)" != "/tmp"; then rm -rf $(ZM_TMPDIR); fi )
|
||||||
|
@-( if test "$(ZM_LOGDIR)" != "/var/log"; then rm -rf $(ZM_LOGDIR); fi )
|
|
@ -0,0 +1,880 @@
|
||||||
|
# Makefile.in generated by automake 1.11.6 from Makefile.am.
|
||||||
|
# @configure_input@
|
||||||
|
|
||||||
|
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||||
|
# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
|
||||||
|
# Foundation, Inc.
|
||||||
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||||
|
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
# PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
@SET_MAKE@
|
||||||
|
|
||||||
|
VPATH = @srcdir@
|
||||||
|
am__make_dryrun = \
|
||||||
|
{ \
|
||||||
|
am__dry=no; \
|
||||||
|
case $$MAKEFLAGS in \
|
||||||
|
*\\[\ \ ]*) \
|
||||||
|
echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
|
||||||
|
| grep '^AM OK$$' >/dev/null || am__dry=yes;; \
|
||||||
|
*) \
|
||||||
|
for am__flg in $$MAKEFLAGS; do \
|
||||||
|
case $$am__flg in \
|
||||||
|
*=*|--*) ;; \
|
||||||
|
*n*) am__dry=yes; break;; \
|
||||||
|
esac; \
|
||||||
|
done;; \
|
||||||
|
esac; \
|
||||||
|
test $$am__dry = yes; \
|
||||||
|
}
|
||||||
|
pkgdatadir = $(datadir)/@PACKAGE@
|
||||||
|
pkgincludedir = $(includedir)/@PACKAGE@
|
||||||
|
pkglibdir = $(libdir)/@PACKAGE@
|
||||||
|
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||||
|
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||||
|
install_sh_DATA = $(install_sh) -c -m 644
|
||||||
|
install_sh_PROGRAM = $(install_sh) -c
|
||||||
|
install_sh_SCRIPT = $(install_sh) -c
|
||||||
|
INSTALL_HEADER = $(INSTALL_DATA)
|
||||||
|
transform = $(program_transform_name)
|
||||||
|
NORMAL_INSTALL = :
|
||||||
|
PRE_INSTALL = :
|
||||||
|
POST_INSTALL = :
|
||||||
|
NORMAL_UNINSTALL = :
|
||||||
|
PRE_UNINSTALL = :
|
||||||
|
POST_UNINSTALL = :
|
||||||
|
subdir = .
|
||||||
|
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
||||||
|
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
|
||||||
|
$(srcdir)/zm.conf.in $(srcdir)/zmconfgen.pl.in \
|
||||||
|
$(top_srcdir)/configure \
|
||||||
|
$(top_srcdir)/scripts/ZoneMinder/lib/ZoneMinder/Base.pm.in \
|
||||||
|
$(top_srcdir)/scripts/ZoneMinder/lib/ZoneMinder/Config.pm.in \
|
||||||
|
$(top_srcdir)/scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm.in \
|
||||||
|
$(top_srcdir)/scripts/ZoneMinder/lib/ZoneMinder/Memory.pm.in \
|
||||||
|
AUTHORS COPYING ChangeLog INSTALL NEWS TODO depcomp install-sh \
|
||||||
|
missing mkinstalldirs
|
||||||
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
|
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||||
|
$(top_srcdir)/configure.ac
|
||||||
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
|
$(ACLOCAL_M4)
|
||||||
|
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||||
|
configure.lineno config.status.lineno
|
||||||
|
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||||
|
CONFIG_HEADER = config.h
|
||||||
|
CONFIG_CLEAN_FILES = zm.conf zmconfgen.pl \
|
||||||
|
scripts/ZoneMinder/lib/ZoneMinder/Base.pm \
|
||||||
|
scripts/ZoneMinder/lib/ZoneMinder/Config.pm \
|
||||||
|
scripts/ZoneMinder/lib/ZoneMinder/Memory.pm \
|
||||||
|
scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm
|
||||||
|
CONFIG_CLEAN_VPATH_FILES =
|
||||||
|
SOURCES =
|
||||||
|
DIST_SOURCES =
|
||||||
|
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||||
|
html-recursive info-recursive install-data-recursive \
|
||||||
|
install-dvi-recursive install-exec-recursive \
|
||||||
|
install-html-recursive install-info-recursive \
|
||||||
|
install-pdf-recursive install-ps-recursive install-recursive \
|
||||||
|
installcheck-recursive installdirs-recursive pdf-recursive \
|
||||||
|
ps-recursive uninstall-recursive
|
||||||
|
am__can_run_installinfo = \
|
||||||
|
case $$AM_UPDATE_INFO_DIR in \
|
||||||
|
n|no|NO) false;; \
|
||||||
|
*) (install-info --version) >/dev/null 2>&1;; \
|
||||||
|
esac
|
||||||
|
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||||
|
am__vpath_adj = case $$p in \
|
||||||
|
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||||
|
*) f=$$p;; \
|
||||||
|
esac;
|
||||||
|
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
||||||
|
am__install_max = 40
|
||||||
|
am__nobase_strip_setup = \
|
||||||
|
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
||||||
|
am__nobase_strip = \
|
||||||
|
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
||||||
|
am__nobase_list = $(am__nobase_strip_setup); \
|
||||||
|
for p in $$list; do echo "$$p $$p"; done | \
|
||||||
|
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||||
|
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||||
|
if (++n[$$2] == $(am__install_max)) \
|
||||||
|
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||||
|
END { for (dir in files) print dir, files[dir] }'
|
||||||
|
am__base_list = \
|
||||||
|
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||||
|
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||||
|
am__uninstall_files_from_dir = { \
|
||||||
|
test -z "$$files" \
|
||||||
|
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
||||||
|
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
||||||
|
$(am__cd) "$$dir" && rm -f $$files; }; \
|
||||||
|
}
|
||||||
|
am__installdirs = "$(DESTDIR)$(sysconfdir)"
|
||||||
|
DATA = $(sysconf_DATA)
|
||||||
|
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
||||||
|
distclean-recursive maintainer-clean-recursive
|
||||||
|
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
|
||||||
|
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
|
||||||
|
distdir dist dist-all distcheck
|
||||||
|
ETAGS = etags
|
||||||
|
CTAGS = ctags
|
||||||
|
DIST_SUBDIRS = $(SUBDIRS)
|
||||||
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
distdir = $(PACKAGE)-$(VERSION)
|
||||||
|
top_distdir = $(distdir)
|
||||||
|
am__remove_distdir = \
|
||||||
|
if test -d "$(distdir)"; then \
|
||||||
|
find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||||
|
&& rm -rf "$(distdir)" \
|
||||||
|
|| { sleep 5 && rm -rf "$(distdir)"; }; \
|
||||||
|
else :; fi
|
||||||
|
am__relativize = \
|
||||||
|
dir0=`pwd`; \
|
||||||
|
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
|
||||||
|
sed_rest='s,^[^/]*/*,,'; \
|
||||||
|
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
|
||||||
|
sed_butlast='s,/*[^/]*$$,,'; \
|
||||||
|
while test -n "$$dir1"; do \
|
||||||
|
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
|
||||||
|
if test "$$first" != "."; then \
|
||||||
|
if test "$$first" = ".."; then \
|
||||||
|
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
|
||||||
|
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
|
||||||
|
else \
|
||||||
|
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
|
||||||
|
if test "$$first2" = "$$first"; then \
|
||||||
|
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
|
||||||
|
else \
|
||||||
|
dir2="../$$dir2"; \
|
||||||
|
fi; \
|
||||||
|
dir0="$$dir0"/"$$first"; \
|
||||||
|
fi; \
|
||||||
|
fi; \
|
||||||
|
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
|
||||||
|
done; \
|
||||||
|
reldir="$$dir2"
|
||||||
|
DIST_ARCHIVES = $(distdir).tar.gz
|
||||||
|
GZIP_ENV = --best
|
||||||
|
distuninstallcheck_listfiles = find . -type f -print
|
||||||
|
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
|
||||||
|
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
|
||||||
|
distcleancheck_listfiles = find . -type f -print
|
||||||
|
ACLOCAL = @ACLOCAL@
|
||||||
|
ALLOCA = @ALLOCA@
|
||||||
|
AMTAR = @AMTAR@
|
||||||
|
AUTOCONF = @AUTOCONF@
|
||||||
|
AUTOHEADER = @AUTOHEADER@
|
||||||
|
AUTOMAKE = @AUTOMAKE@
|
||||||
|
AWK = @AWK@
|
||||||
|
BINDIR = @BINDIR@
|
||||||
|
CC = @CC@
|
||||||
|
CCDEPMODE = @CCDEPMODE@
|
||||||
|
CFLAGS = @CFLAGS@
|
||||||
|
CGI_PREFIX = @CGI_PREFIX@
|
||||||
|
CPPFLAGS = @CPPFLAGS@
|
||||||
|
CXX = @CXX@
|
||||||
|
CXXCPP = @CXXCPP@
|
||||||
|
CXXDEPMODE = @CXXDEPMODE@
|
||||||
|
CXXFLAGS = @CXXFLAGS@
|
||||||
|
CYGPATH_W = @CYGPATH_W@
|
||||||
|
DEFS = @DEFS@
|
||||||
|
DEPDIR = @DEPDIR@
|
||||||
|
ECHO_C = @ECHO_C@
|
||||||
|
ECHO_N = @ECHO_N@
|
||||||
|
ECHO_T = @ECHO_T@
|
||||||
|
EGREP = @EGREP@
|
||||||
|
ENABLE_MMAP = @ENABLE_MMAP@
|
||||||
|
EXEEXT = @EXEEXT@
|
||||||
|
EXTRA_LIBS = @EXTRA_LIBS@
|
||||||
|
EXTRA_PERL_LIB = @EXTRA_PERL_LIB@
|
||||||
|
FFMPEG_CFLAGS = @FFMPEG_CFLAGS@
|
||||||
|
FFMPEG_LIBS = @FFMPEG_LIBS@
|
||||||
|
FFMPEG_PREFIX = @FFMPEG_PREFIX@
|
||||||
|
GREP = @GREP@
|
||||||
|
INSTALL = @INSTALL@
|
||||||
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
|
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||||
|
LDFLAGS = @LDFLAGS@
|
||||||
|
LIBDIR = @LIBDIR@
|
||||||
|
LIBOBJS = @LIBOBJS@
|
||||||
|
LIBS = @LIBS@
|
||||||
|
LIB_ARCH = @LIB_ARCH@
|
||||||
|
LN_S = @LN_S@
|
||||||
|
LTLIBOBJS = @LTLIBOBJS@
|
||||||
|
MAKEINFO = @MAKEINFO@
|
||||||
|
MKDIR_P = @MKDIR_P@
|
||||||
|
MYSQL_CFLAGS = @MYSQL_CFLAGS@
|
||||||
|
MYSQL_LIBS = @MYSQL_LIBS@
|
||||||
|
MYSQL_PREFIX = @MYSQL_PREFIX@
|
||||||
|
OBJEXT = @OBJEXT@
|
||||||
|
OPT_FFMPEG = @OPT_FFMPEG@
|
||||||
|
OPT_NETPBM = @OPT_NETPBM@
|
||||||
|
PACKAGE = @PACKAGE@
|
||||||
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
|
PACKAGE_NAME = @PACKAGE_NAME@
|
||||||
|
PACKAGE_STRING = @PACKAGE_STRING@
|
||||||
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
|
PACKAGE_URL = @PACKAGE_URL@
|
||||||
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
|
PATH_BUILD = @PATH_BUILD@
|
||||||
|
PATH_FFMPEG = @PATH_FFMPEG@
|
||||||
|
PATH_NETPBM = @PATH_NETPBM@
|
||||||
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
|
PERL = @PERL@
|
||||||
|
PERL_MM_PARMS = @PERL_MM_PARMS@
|
||||||
|
POW_LIB = @POW_LIB@
|
||||||
|
RANLIB = @RANLIB@
|
||||||
|
SET_MAKE = @SET_MAKE@
|
||||||
|
SHELL = @SHELL@
|
||||||
|
STRIP = @STRIP@
|
||||||
|
SYSCONFDIR = @SYSCONFDIR@
|
||||||
|
TIME_BUILD = @TIME_BUILD@
|
||||||
|
VERSION = @VERSION@
|
||||||
|
WEB_GROUP = @WEB_GROUP@
|
||||||
|
WEB_HOST = @WEB_HOST@
|
||||||
|
WEB_PREFIX = @WEB_PREFIX@
|
||||||
|
WEB_USER = @WEB_USER@
|
||||||
|
ZM_CONFIG = @ZM_CONFIG@
|
||||||
|
ZM_DB_HOST = @ZM_DB_HOST@
|
||||||
|
ZM_DB_NAME = @ZM_DB_NAME@
|
||||||
|
ZM_DB_PASS = @ZM_DB_PASS@
|
||||||
|
ZM_DB_USER = @ZM_DB_USER@
|
||||||
|
ZM_HAS_GNUTLS = @ZM_HAS_GNUTLS@
|
||||||
|
ZM_HAS_GNUTLS_OPENSSL = @ZM_HAS_GNUTLS_OPENSSL@
|
||||||
|
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||||
|
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||||
|
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||||
|
ZM_LOGDIR = @ZM_LOGDIR@
|
||||||
|
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||||
|
ZM_PCRE = @ZM_PCRE@
|
||||||
|
ZM_PID = @ZM_PID@
|
||||||
|
ZM_RUNDIR = @ZM_RUNDIR@
|
||||||
|
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||||
|
ZM_TMPDIR = @ZM_TMPDIR@
|
||||||
|
abs_builddir = @abs_builddir@
|
||||||
|
abs_srcdir = @abs_srcdir@
|
||||||
|
abs_top_builddir = @abs_top_builddir@
|
||||||
|
abs_top_srcdir = @abs_top_srcdir@
|
||||||
|
ac_ct_CC = @ac_ct_CC@
|
||||||
|
ac_ct_CXX = @ac_ct_CXX@
|
||||||
|
am__include = @am__include@
|
||||||
|
am__leading_dot = @am__leading_dot@
|
||||||
|
am__quote = @am__quote@
|
||||||
|
am__tar = @am__tar@
|
||||||
|
am__untar = @am__untar@
|
||||||
|
bindir = @bindir@
|
||||||
|
build_alias = @build_alias@
|
||||||
|
builddir = @builddir@
|
||||||
|
datadir = @datadir@
|
||||||
|
datarootdir = @datarootdir@
|
||||||
|
docdir = @docdir@
|
||||||
|
dvidir = @dvidir@
|
||||||
|
exec_prefix = @exec_prefix@
|
||||||
|
host_alias = @host_alias@
|
||||||
|
htmldir = @htmldir@
|
||||||
|
includedir = @includedir@
|
||||||
|
infodir = @infodir@
|
||||||
|
install_sh = @install_sh@
|
||||||
|
libdir = @libdir@
|
||||||
|
libexecdir = @libexecdir@
|
||||||
|
localedir = @localedir@
|
||||||
|
localstatedir = @localstatedir@
|
||||||
|
mandir = @mandir@
|
||||||
|
mkdir_p = @mkdir_p@
|
||||||
|
oldincludedir = @oldincludedir@
|
||||||
|
pdfdir = @pdfdir@
|
||||||
|
prefix = @prefix@
|
||||||
|
program_transform_name = @program_transform_name@
|
||||||
|
psdir = @psdir@
|
||||||
|
sbindir = @sbindir@
|
||||||
|
sharedstatedir = @sharedstatedir@
|
||||||
|
srcdir = @srcdir@
|
||||||
|
sysconfdir = @sysconfdir@
|
||||||
|
target_alias = @target_alias@
|
||||||
|
top_build_prefix = @top_build_prefix@
|
||||||
|
top_builddir = @top_builddir@
|
||||||
|
top_srcdir = @top_srcdir@
|
||||||
|
AUTOMAKE_OPTIONS = gnu
|
||||||
|
|
||||||
|
# And these to the user and group of your webserver
|
||||||
|
webuser = @WEB_USER@
|
||||||
|
webgroup = @WEB_GROUP@
|
||||||
|
sysconf_DATA = \
|
||||||
|
zm.conf
|
||||||
|
|
||||||
|
SUBDIRS = \
|
||||||
|
src \
|
||||||
|
web \
|
||||||
|
scripts \
|
||||||
|
db \
|
||||||
|
misc
|
||||||
|
|
||||||
|
EXTRA_DIST = \
|
||||||
|
zm.conf.in \
|
||||||
|
zmconfgen.pl.in
|
||||||
|
|
||||||
|
all: config.h
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) all-recursive
|
||||||
|
|
||||||
|
.SUFFIXES:
|
||||||
|
am--refresh: Makefile
|
||||||
|
@:
|
||||||
|
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||||
|
@for dep in $?; do \
|
||||||
|
case '$(am__configure_deps)' in \
|
||||||
|
*$$dep*) \
|
||||||
|
echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
|
||||||
|
$(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
|
||||||
|
&& exit 0; \
|
||||||
|
exit 1;; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
|
||||||
|
$(am__cd) $(top_srcdir) && \
|
||||||
|
$(AUTOMAKE) --gnu Makefile
|
||||||
|
.PRECIOUS: Makefile
|
||||||
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||||
|
@case '$?' in \
|
||||||
|
*config.status*) \
|
||||||
|
echo ' $(SHELL) ./config.status'; \
|
||||||
|
$(SHELL) ./config.status;; \
|
||||||
|
*) \
|
||||||
|
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
|
||||||
|
esac;
|
||||||
|
|
||||||
|
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||||
|
$(SHELL) ./config.status --recheck
|
||||||
|
|
||||||
|
$(top_srcdir)/configure: $(am__configure_deps)
|
||||||
|
$(am__cd) $(srcdir) && $(AUTOCONF)
|
||||||
|
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||||
|
$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
||||||
|
$(am__aclocal_m4_deps):
|
||||||
|
|
||||||
|
config.h: stamp-h1
|
||||||
|
@if test ! -f $@; then rm -f stamp-h1; else :; fi
|
||||||
|
@if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
|
||||||
|
|
||||||
|
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
|
||||||
|
@rm -f stamp-h1
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status config.h
|
||||||
|
$(srcdir)/config.h.in: $(am__configure_deps)
|
||||||
|
($(am__cd) $(top_srcdir) && $(AUTOHEADER))
|
||||||
|
rm -f stamp-h1
|
||||||
|
touch $@
|
||||||
|
|
||||||
|
distclean-hdr:
|
||||||
|
-rm -f config.h stamp-h1
|
||||||
|
zm.conf: $(top_builddir)/config.status $(srcdir)/zm.conf.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||||
|
zmconfgen.pl: $(top_builddir)/config.status $(srcdir)/zmconfgen.pl.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||||
|
scripts/ZoneMinder/lib/ZoneMinder/Base.pm: $(top_builddir)/config.status $(top_srcdir)/scripts/ZoneMinder/lib/ZoneMinder/Base.pm.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||||
|
scripts/ZoneMinder/lib/ZoneMinder/Config.pm: $(top_builddir)/config.status $(top_srcdir)/scripts/ZoneMinder/lib/ZoneMinder/Config.pm.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||||
|
scripts/ZoneMinder/lib/ZoneMinder/Memory.pm: $(top_builddir)/config.status $(top_srcdir)/scripts/ZoneMinder/lib/ZoneMinder/Memory.pm.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||||
|
scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm: $(top_builddir)/config.status $(top_srcdir)/scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||||
|
install-sysconfDATA: $(sysconf_DATA)
|
||||||
|
@$(NORMAL_INSTALL)
|
||||||
|
@list='$(sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \
|
||||||
|
if test -n "$$list"; then \
|
||||||
|
echo " $(MKDIR_P) '$(DESTDIR)$(sysconfdir)'"; \
|
||||||
|
$(MKDIR_P) "$(DESTDIR)$(sysconfdir)" || exit 1; \
|
||||||
|
fi; \
|
||||||
|
for p in $$list; do \
|
||||||
|
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||||
|
echo "$$d$$p"; \
|
||||||
|
done | $(am__base_list) | \
|
||||||
|
while read files; do \
|
||||||
|
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sysconfdir)'"; \
|
||||||
|
$(INSTALL_DATA) $$files "$(DESTDIR)$(sysconfdir)" || exit $$?; \
|
||||||
|
done
|
||||||
|
|
||||||
|
uninstall-sysconfDATA:
|
||||||
|
@$(NORMAL_UNINSTALL)
|
||||||
|
@list='$(sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \
|
||||||
|
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||||
|
dir='$(DESTDIR)$(sysconfdir)'; $(am__uninstall_files_from_dir)
|
||||||
|
|
||||||
|
# This directory's subdirectories are mostly independent; you can cd
|
||||||
|
# into them and run `make' without going through this Makefile.
|
||||||
|
# To change the values of `make' variables: instead of editing Makefiles,
|
||||||
|
# (1) if the variable is set in `config.status', edit `config.status'
|
||||||
|
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||||
|
# (2) otherwise, pass the desired values on the `make' command line.
|
||||||
|
$(RECURSIVE_TARGETS):
|
||||||
|
@fail= failcom='exit 1'; \
|
||||||
|
for f in x $$MAKEFLAGS; do \
|
||||||
|
case $$f in \
|
||||||
|
*=* | --[!k]*);; \
|
||||||
|
*k*) failcom='fail=yes';; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
dot_seen=no; \
|
||||||
|
target=`echo $@ | sed s/-recursive//`; \
|
||||||
|
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||||
|
echo "Making $$target in $$subdir"; \
|
||||||
|
if test "$$subdir" = "."; then \
|
||||||
|
dot_seen=yes; \
|
||||||
|
local_target="$$target-am"; \
|
||||||
|
else \
|
||||||
|
local_target="$$target"; \
|
||||||
|
fi; \
|
||||||
|
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||||
|
|| eval $$failcom; \
|
||||||
|
done; \
|
||||||
|
if test "$$dot_seen" = "no"; then \
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||||
|
fi; test -z "$$fail"
|
||||||
|
|
||||||
|
$(RECURSIVE_CLEAN_TARGETS):
|
||||||
|
@fail= failcom='exit 1'; \
|
||||||
|
for f in x $$MAKEFLAGS; do \
|
||||||
|
case $$f in \
|
||||||
|
*=* | --[!k]*);; \
|
||||||
|
*k*) failcom='fail=yes';; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
dot_seen=no; \
|
||||||
|
case "$@" in \
|
||||||
|
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||||
|
*) list='$(SUBDIRS)' ;; \
|
||||||
|
esac; \
|
||||||
|
rev=''; for subdir in $$list; do \
|
||||||
|
if test "$$subdir" = "."; then :; else \
|
||||||
|
rev="$$subdir $$rev"; \
|
||||||
|
fi; \
|
||||||
|
done; \
|
||||||
|
rev="$$rev ."; \
|
||||||
|
target=`echo $@ | sed s/-recursive//`; \
|
||||||
|
for subdir in $$rev; do \
|
||||||
|
echo "Making $$target in $$subdir"; \
|
||||||
|
if test "$$subdir" = "."; then \
|
||||||
|
local_target="$$target-am"; \
|
||||||
|
else \
|
||||||
|
local_target="$$target"; \
|
||||||
|
fi; \
|
||||||
|
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||||
|
|| eval $$failcom; \
|
||||||
|
done && test -z "$$fail"
|
||||||
|
tags-recursive:
|
||||||
|
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||||
|
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||||
|
done
|
||||||
|
ctags-recursive:
|
||||||
|
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||||
|
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||||
|
done
|
||||||
|
|
||||||
|
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||||
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||||
|
unique=`for i in $$list; do \
|
||||||
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
|
done | \
|
||||||
|
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||||
|
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||||
|
mkid -fID $$unique
|
||||||
|
tags: TAGS
|
||||||
|
|
||||||
|
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||||
|
$(TAGS_FILES) $(LISP)
|
||||||
|
set x; \
|
||||||
|
here=`pwd`; \
|
||||||
|
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
||||||
|
include_option=--etags-include; \
|
||||||
|
empty_fix=.; \
|
||||||
|
else \
|
||||||
|
include_option=--include; \
|
||||||
|
empty_fix=; \
|
||||||
|
fi; \
|
||||||
|
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||||
|
if test "$$subdir" = .; then :; else \
|
||||||
|
test ! -f $$subdir/TAGS || \
|
||||||
|
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
|
||||||
|
fi; \
|
||||||
|
done; \
|
||||||
|
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
||||||
|
unique=`for i in $$list; do \
|
||||||
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
|
done | \
|
||||||
|
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||||
|
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||||
|
shift; \
|
||||||
|
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||||
|
test -n "$$unique" || unique=$$empty_fix; \
|
||||||
|
if test $$# -gt 0; then \
|
||||||
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||||
|
"$$@" $$unique; \
|
||||||
|
else \
|
||||||
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||||
|
$$unique; \
|
||||||
|
fi; \
|
||||||
|
fi
|
||||||
|
ctags: CTAGS
|
||||||
|
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||||
|
$(TAGS_FILES) $(LISP)
|
||||||
|
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
||||||
|
unique=`for i in $$list; do \
|
||||||
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
|
done | \
|
||||||
|
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||||
|
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||||
|
test -z "$(CTAGS_ARGS)$$unique" \
|
||||||
|
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||||
|
$$unique
|
||||||
|
|
||||||
|
GTAGS:
|
||||||
|
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||||
|
&& $(am__cd) $(top_srcdir) \
|
||||||
|
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||||
|
|
||||||
|
distclean-tags:
|
||||||
|
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||||
|
|
||||||
|
distdir: $(DISTFILES)
|
||||||
|
$(am__remove_distdir)
|
||||||
|
test -d "$(distdir)" || mkdir "$(distdir)"
|
||||||
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
|
list='$(DISTFILES)'; \
|
||||||
|
dist_files=`for file in $$list; do echo $$file; done | \
|
||||||
|
sed -e "s|^$$srcdirstrip/||;t" \
|
||||||
|
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||||
|
case $$dist_files in \
|
||||||
|
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||||
|
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||||
|
sort -u` ;; \
|
||||||
|
esac; \
|
||||||
|
for file in $$dist_files; do \
|
||||||
|
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||||
|
if test -d $$d/$$file; then \
|
||||||
|
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
|
if test -d "$(distdir)/$$file"; then \
|
||||||
|
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||||
|
fi; \
|
||||||
|
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||||
|
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||||
|
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||||
|
fi; \
|
||||||
|
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||||
|
else \
|
||||||
|
test -f "$(distdir)/$$file" \
|
||||||
|
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||||
|
|| exit 1; \
|
||||||
|
fi; \
|
||||||
|
done
|
||||||
|
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||||
|
if test "$$subdir" = .; then :; else \
|
||||||
|
$(am__make_dryrun) \
|
||||||
|
|| test -d "$(distdir)/$$subdir" \
|
||||||
|
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
||||||
|
|| exit 1; \
|
||||||
|
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
|
||||||
|
$(am__relativize); \
|
||||||
|
new_distdir=$$reldir; \
|
||||||
|
dir1=$$subdir; dir2="$(top_distdir)"; \
|
||||||
|
$(am__relativize); \
|
||||||
|
new_top_distdir=$$reldir; \
|
||||||
|
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
|
||||||
|
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
|
||||||
|
($(am__cd) $$subdir && \
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) \
|
||||||
|
top_distdir="$$new_top_distdir" \
|
||||||
|
distdir="$$new_distdir" \
|
||||||
|
am__remove_distdir=: \
|
||||||
|
am__skip_length_check=: \
|
||||||
|
am__skip_mode_fix=: \
|
||||||
|
distdir) \
|
||||||
|
|| exit 1; \
|
||||||
|
fi; \
|
||||||
|
done
|
||||||
|
-test -n "$(am__skip_mode_fix)" \
|
||||||
|
|| find "$(distdir)" -type d ! -perm -755 \
|
||||||
|
-exec chmod u+rwx,go+rx {} \; -o \
|
||||||
|
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
|
||||||
|
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
|
||||||
|
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|
||||||
|
|| chmod -R a+r "$(distdir)"
|
||||||
|
dist-gzip: distdir
|
||||||
|
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||||
|
$(am__remove_distdir)
|
||||||
|
|
||||||
|
dist-bzip2: distdir
|
||||||
|
tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
|
||||||
|
$(am__remove_distdir)
|
||||||
|
|
||||||
|
dist-lzip: distdir
|
||||||
|
tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
|
||||||
|
$(am__remove_distdir)
|
||||||
|
|
||||||
|
dist-lzma: distdir
|
||||||
|
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
|
||||||
|
$(am__remove_distdir)
|
||||||
|
|
||||||
|
dist-xz: distdir
|
||||||
|
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
|
||||||
|
$(am__remove_distdir)
|
||||||
|
|
||||||
|
dist-tarZ: distdir
|
||||||
|
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
||||||
|
$(am__remove_distdir)
|
||||||
|
|
||||||
|
dist-shar: distdir
|
||||||
|
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
|
||||||
|
$(am__remove_distdir)
|
||||||
|
|
||||||
|
dist-zip: distdir
|
||||||
|
-rm -f $(distdir).zip
|
||||||
|
zip -rq $(distdir).zip $(distdir)
|
||||||
|
$(am__remove_distdir)
|
||||||
|
|
||||||
|
dist dist-all: distdir
|
||||||
|
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||||
|
$(am__remove_distdir)
|
||||||
|
|
||||||
|
# This target untars the dist file and tries a VPATH configuration. Then
|
||||||
|
# it guarantees that the distribution is self-contained by making another
|
||||||
|
# tarfile.
|
||||||
|
distcheck: dist
|
||||||
|
case '$(DIST_ARCHIVES)' in \
|
||||||
|
*.tar.gz*) \
|
||||||
|
GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
|
||||||
|
*.tar.bz2*) \
|
||||||
|
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||||
|
*.tar.lzma*) \
|
||||||
|
lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
|
||||||
|
*.tar.lz*) \
|
||||||
|
lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
|
||||||
|
*.tar.xz*) \
|
||||||
|
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
|
||||||
|
*.tar.Z*) \
|
||||||
|
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||||
|
*.shar.gz*) \
|
||||||
|
GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
|
||||||
|
*.zip*) \
|
||||||
|
unzip $(distdir).zip ;;\
|
||||||
|
esac
|
||||||
|
chmod -R a-w $(distdir); chmod u+w $(distdir)
|
||||||
|
mkdir $(distdir)/_build
|
||||||
|
mkdir $(distdir)/_inst
|
||||||
|
chmod a-w $(distdir)
|
||||||
|
test -d $(distdir)/_build || exit 0; \
|
||||||
|
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
|
||||||
|
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
|
||||||
|
&& am__cwd=`pwd` \
|
||||||
|
&& $(am__cd) $(distdir)/_build \
|
||||||
|
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
|
||||||
|
$(AM_DISTCHECK_CONFIGURE_FLAGS) \
|
||||||
|
$(DISTCHECK_CONFIGURE_FLAGS) \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) install \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
|
||||||
|
distuninstallcheck \
|
||||||
|
&& chmod -R a-w "$$dc_install_base" \
|
||||||
|
&& ({ \
|
||||||
|
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
|
||||||
|
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
|
||||||
|
} || { rm -rf "$$dc_destdir"; exit 1; }) \
|
||||||
|
&& rm -rf "$$dc_destdir" \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) dist \
|
||||||
|
&& rm -rf $(DIST_ARCHIVES) \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
|
||||||
|
&& cd "$$am__cwd" \
|
||||||
|
|| exit 1
|
||||||
|
$(am__remove_distdir)
|
||||||
|
@(echo "$(distdir) archives ready for distribution: "; \
|
||||||
|
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
|
||||||
|
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
|
||||||
|
distuninstallcheck:
|
||||||
|
@test -n '$(distuninstallcheck_dir)' || { \
|
||||||
|
echo 'ERROR: trying to run $@ with an empty' \
|
||||||
|
'$$(distuninstallcheck_dir)' >&2; \
|
||||||
|
exit 1; \
|
||||||
|
}; \
|
||||||
|
$(am__cd) '$(distuninstallcheck_dir)' || { \
|
||||||
|
echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
|
||||||
|
exit 1; \
|
||||||
|
}; \
|
||||||
|
test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
|
||||||
|
|| { echo "ERROR: files left after uninstall:" ; \
|
||||||
|
if test -n "$(DESTDIR)"; then \
|
||||||
|
echo " (check DESTDIR support)"; \
|
||||||
|
fi ; \
|
||||||
|
$(distuninstallcheck_listfiles) ; \
|
||||||
|
exit 1; } >&2
|
||||||
|
distcleancheck: distclean
|
||||||
|
@if test '$(srcdir)' = . ; then \
|
||||||
|
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
|
||||||
|
exit 1 ; \
|
||||||
|
fi
|
||||||
|
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|
||||||
|
|| { echo "ERROR: files left in build directory after distclean:" ; \
|
||||||
|
$(distcleancheck_listfiles) ; \
|
||||||
|
exit 1; } >&2
|
||||||
|
check-am: all-am
|
||||||
|
check: check-recursive
|
||||||
|
all-am: Makefile $(DATA) config.h
|
||||||
|
installdirs: installdirs-recursive
|
||||||
|
installdirs-am:
|
||||||
|
for dir in "$(DESTDIR)$(sysconfdir)"; do \
|
||||||
|
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||||
|
done
|
||||||
|
install: install-recursive
|
||||||
|
install-exec: install-exec-recursive
|
||||||
|
install-data: install-data-recursive
|
||||||
|
uninstall: uninstall-recursive
|
||||||
|
|
||||||
|
install-am: all-am
|
||||||
|
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||||
|
|
||||||
|
installcheck: installcheck-recursive
|
||||||
|
install-strip:
|
||||||
|
if test -z '$(STRIP)'; then \
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||||
|
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||||
|
install; \
|
||||||
|
else \
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||||
|
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||||
|
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||||
|
fi
|
||||||
|
mostlyclean-generic:
|
||||||
|
|
||||||
|
clean-generic:
|
||||||
|
|
||||||
|
distclean-generic:
|
||||||
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||||
|
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||||
|
|
||||||
|
maintainer-clean-generic:
|
||||||
|
@echo "This command is intended for maintainers to use"
|
||||||
|
@echo "it deletes files that may require special tools to rebuild."
|
||||||
|
clean: clean-recursive
|
||||||
|
|
||||||
|
clean-am: clean-generic mostlyclean-am
|
||||||
|
|
||||||
|
distclean: distclean-recursive
|
||||||
|
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||||
|
-rm -f Makefile
|
||||||
|
distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
|
||||||
|
|
||||||
|
dvi: dvi-recursive
|
||||||
|
|
||||||
|
dvi-am:
|
||||||
|
|
||||||
|
html: html-recursive
|
||||||
|
|
||||||
|
html-am:
|
||||||
|
|
||||||
|
info: info-recursive
|
||||||
|
|
||||||
|
info-am:
|
||||||
|
|
||||||
|
install-data-am:
|
||||||
|
@$(NORMAL_INSTALL)
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
|
||||||
|
install-dvi: install-dvi-recursive
|
||||||
|
|
||||||
|
install-dvi-am:
|
||||||
|
|
||||||
|
install-exec-am: install-sysconfDATA
|
||||||
|
|
||||||
|
install-html: install-html-recursive
|
||||||
|
|
||||||
|
install-html-am:
|
||||||
|
|
||||||
|
install-info: install-info-recursive
|
||||||
|
|
||||||
|
install-info-am:
|
||||||
|
|
||||||
|
install-man:
|
||||||
|
|
||||||
|
install-pdf: install-pdf-recursive
|
||||||
|
|
||||||
|
install-pdf-am:
|
||||||
|
|
||||||
|
install-ps: install-ps-recursive
|
||||||
|
|
||||||
|
install-ps-am:
|
||||||
|
|
||||||
|
installcheck-am:
|
||||||
|
|
||||||
|
maintainer-clean: maintainer-clean-recursive
|
||||||
|
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||||
|
-rm -rf $(top_srcdir)/autom4te.cache
|
||||||
|
-rm -f Makefile
|
||||||
|
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||||
|
|
||||||
|
mostlyclean: mostlyclean-recursive
|
||||||
|
|
||||||
|
mostlyclean-am: mostlyclean-generic
|
||||||
|
|
||||||
|
pdf: pdf-recursive
|
||||||
|
|
||||||
|
pdf-am:
|
||||||
|
|
||||||
|
ps: ps-recursive
|
||||||
|
|
||||||
|
ps-am:
|
||||||
|
|
||||||
|
uninstall-am: uninstall-sysconfDATA
|
||||||
|
@$(NORMAL_INSTALL)
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
|
||||||
|
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \
|
||||||
|
ctags-recursive install-am install-data-am install-strip \
|
||||||
|
tags-recursive uninstall-am
|
||||||
|
|
||||||
|
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
||||||
|
all all-am am--refresh check check-am clean clean-generic \
|
||||||
|
ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
|
||||||
|
dist-lzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \
|
||||||
|
distcheck distclean distclean-generic distclean-hdr \
|
||||||
|
distclean-tags distcleancheck distdir distuninstallcheck dvi \
|
||||||
|
dvi-am html html-am info info-am install install-am \
|
||||||
|
install-data install-data-am install-data-hook install-dvi \
|
||||||
|
install-dvi-am install-exec install-exec-am install-html \
|
||||||
|
install-html-am install-info install-info-am install-man \
|
||||||
|
install-pdf install-pdf-am install-ps install-ps-am \
|
||||||
|
install-strip install-sysconfDATA installcheck installcheck-am \
|
||||||
|
installdirs installdirs-am maintainer-clean \
|
||||||
|
maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
|
||||||
|
pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
|
||||||
|
uninstall-hook uninstall-sysconfDATA
|
||||||
|
|
||||||
|
|
||||||
|
# Yes, you are correct. This is a HACK!
|
||||||
|
install-data-hook:
|
||||||
|
( cd $(DESTDIR)$(sysconfdir); chown $(webuser):$(webgroup) $(sysconf_DATA); chmod 600 $(sysconf_DATA) )
|
||||||
|
( if ! test -e $(ZM_RUNDIR); then mkdir -p $(ZM_RUNDIR); fi; if test "$(ZM_RUNDIR)" != "/var/run"; then chown $(webuser):$(webgroup) $(ZM_RUNDIR); chmod u+w $(ZM_RUNDIR); fi )
|
||||||
|
( if ! test -e $(ZM_TMPDIR); then mkdir -m 700 -p $(ZM_TMPDIR); fi; if test "$(ZM_TMPDIR)" != "/tmp"; then chown $(webuser):$(webgroup) $(ZM_TMPDIR); chmod u+w $(ZM_TMPDIR); fi )
|
||||||
|
( if ! test -e $(ZM_LOGDIR); then mkdir -p $(ZM_LOGDIR); fi; if test "$(ZM_LOGDIR)" != "/var/log"; then chown $(webuser):$(webgroup) $(ZM_LOGDIR); chmod u+w $(ZM_LOGDIR); fi )
|
||||||
|
|
||||||
|
uninstall-hook:
|
||||||
|
@-( cd $(DESTDIR)$(webdir); rm -rf events graphics images sounds temp )
|
||||||
|
@-( if test "$(ZM_RUNDIR)" != "/var/run"; then rm -rf $(ZM_RUNDIR); fi )
|
||||||
|
@-( if test "$(ZM_TMPDIR)" != "/tmp"; then rm -rf $(ZM_TMPDIR); fi )
|
||||||
|
@-( if test "$(ZM_LOGDIR)" != "/var/log"; then rm -rf $(ZM_LOGDIR); fi )
|
||||||
|
|
||||||
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
.NOEXPORT:
|
|
@ -0,0 +1,5 @@
|
||||||
|
|
||||||
|
All documentation for ZoneMinder is now online at
|
||||||
|
|
||||||
|
http://www.zoneminder.com/wiki/index.php/Documentation
|
||||||
|
|
|
@ -0,0 +1,74 @@
|
||||||
|
AC_DEFUN([AC_DEFINE_DIR], [
|
||||||
|
prefix_NONE=
|
||||||
|
exec_prefix_NONE=
|
||||||
|
test "x$prefix" = xNONE && prefix_NONE=yes && prefix=$ac_default_prefix
|
||||||
|
test "x$exec_prefix" = xNONE && exec_prefix_NONE=yes && exec_prefix=$prefix
|
||||||
|
dnl In Autoconf 2.60, ${datadir} refers to ${datarootdir}, which in turn
|
||||||
|
dnl refers to ${prefix}. Thus we have to use `eval' twice.
|
||||||
|
eval ac_define_dir="\"[$]$2\""
|
||||||
|
eval ac_define_dir="\"$ac_define_dir\""
|
||||||
|
AC_SUBST($1, "$ac_define_dir")
|
||||||
|
AC_DEFINE_UNQUOTED($1, "$ac_define_dir", [$3])
|
||||||
|
test "$prefix_NONE" && prefix=NONE
|
||||||
|
test "$exec_prefix_NONE" && exec_prefix=NONE
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_DEFUN([AC_PROG_PERL_VERSION],[dnl
|
||||||
|
# Make sure we have perl
|
||||||
|
if test -z "$PERL"; then
|
||||||
|
AC_CHECK_PROG(PERL,perl,perl)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if version of Perl is sufficient
|
||||||
|
ac_perl_version="$1"
|
||||||
|
|
||||||
|
if test "x$PERL" != "x"; then
|
||||||
|
AC_MSG_CHECKING(for perl version greater than or equal to $ac_perl_version)
|
||||||
|
# NB: It would be nice to log the error if there is one, but we cannot rely
|
||||||
|
# on autoconf internals
|
||||||
|
$PERL -e "use $ac_perl_version;" > /dev/null 2>&1
|
||||||
|
if test $? -ne 0; then
|
||||||
|
AC_MSG_RESULT(no);
|
||||||
|
$3
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(ok);
|
||||||
|
$2
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
AC_MSG_WARN(could not find perl)
|
||||||
|
fi
|
||||||
|
])dnl
|
||||||
|
|
||||||
|
AC_DEFUN([AC_PROG_PERL_MODULES],[dnl
|
||||||
|
ac_perl_modules="$1"
|
||||||
|
# Make sure we have perl
|
||||||
|
if test -z "$PERL"; then
|
||||||
|
AC_CHECK_PROG(PERL,perl,perl)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "x$PERL" != x; then
|
||||||
|
ac_perl_modules_failed=0
|
||||||
|
for ac_perl_module in $ac_perl_modules; do
|
||||||
|
AC_MSG_CHECKING(for perl module $ac_perl_module)
|
||||||
|
|
||||||
|
# Would be nice to log result here, but can't rely on autoconf internals
|
||||||
|
$PERL "-M$ac_perl_module" -e exit > /dev/null 2>&1
|
||||||
|
if test $? -ne 0; then
|
||||||
|
AC_MSG_RESULT(no);
|
||||||
|
ac_perl_modules_failed=1
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(ok);
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Run optional shell commands
|
||||||
|
if test "$ac_perl_modules_failed" = 0; then
|
||||||
|
:
|
||||||
|
$2
|
||||||
|
else
|
||||||
|
:
|
||||||
|
$3
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
AC_MSG_WARN(could not find perl)
|
||||||
|
fi])dnl
|
|
@ -0,0 +1,984 @@
|
||||||
|
# generated automatically by aclocal 1.11.6 -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||||
|
# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
|
||||||
|
# Inc.
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||||
|
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
# PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||||
|
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||||
|
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
|
||||||
|
[m4_warning([this file was generated for autoconf 2.69.
|
||||||
|
You have another version of autoconf. It may work, but is not guaranteed to.
|
||||||
|
If you have problems, you may need to regenerate the build system entirely.
|
||||||
|
To do so, use the procedure documented by the package, typically `autoreconf'.])])
|
||||||
|
|
||||||
|
# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software
|
||||||
|
# Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# serial 1
|
||||||
|
|
||||||
|
# AM_AUTOMAKE_VERSION(VERSION)
|
||||||
|
# ----------------------------
|
||||||
|
# Automake X.Y traces this macro to ensure aclocal.m4 has been
|
||||||
|
# generated from the m4 files accompanying Automake X.Y.
|
||||||
|
# (This private macro should not be called outside this file.)
|
||||||
|
AC_DEFUN([AM_AUTOMAKE_VERSION],
|
||||||
|
[am__api_version='1.11'
|
||||||
|
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
|
||||||
|
dnl require some minimum version. Point them to the right macro.
|
||||||
|
m4_if([$1], [1.11.6], [],
|
||||||
|
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
|
||||||
|
])
|
||||||
|
|
||||||
|
# _AM_AUTOCONF_VERSION(VERSION)
|
||||||
|
# -----------------------------
|
||||||
|
# aclocal traces this macro to find the Autoconf version.
|
||||||
|
# This is a private macro too. Using m4_define simplifies
|
||||||
|
# the logic in aclocal, which can simply ignore this definition.
|
||||||
|
m4_define([_AM_AUTOCONF_VERSION], [])
|
||||||
|
|
||||||
|
# AM_SET_CURRENT_AUTOMAKE_VERSION
|
||||||
|
# -------------------------------
|
||||||
|
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
|
||||||
|
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
|
||||||
|
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
||||||
|
[AM_AUTOMAKE_VERSION([1.11.6])dnl
|
||||||
|
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||||
|
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||||
|
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
|
||||||
|
|
||||||
|
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# serial 1
|
||||||
|
|
||||||
|
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
|
||||||
|
# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
|
||||||
|
# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
|
||||||
|
#
|
||||||
|
# Of course, Automake must honor this variable whenever it calls a
|
||||||
|
# tool from the auxiliary directory. The problem is that $srcdir (and
|
||||||
|
# therefore $ac_aux_dir as well) can be either absolute or relative,
|
||||||
|
# depending on how configure is run. This is pretty annoying, since
|
||||||
|
# it makes $ac_aux_dir quite unusable in subdirectories: in the top
|
||||||
|
# source directory, any form will work fine, but in subdirectories a
|
||||||
|
# relative path needs to be adjusted first.
|
||||||
|
#
|
||||||
|
# $ac_aux_dir/missing
|
||||||
|
# fails when called from a subdirectory if $ac_aux_dir is relative
|
||||||
|
# $top_srcdir/$ac_aux_dir/missing
|
||||||
|
# fails if $ac_aux_dir is absolute,
|
||||||
|
# fails when called from a subdirectory in a VPATH build with
|
||||||
|
# a relative $ac_aux_dir
|
||||||
|
#
|
||||||
|
# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
|
||||||
|
# are both prefixed by $srcdir. In an in-source build this is usually
|
||||||
|
# harmless because $srcdir is `.', but things will broke when you
|
||||||
|
# start a VPATH build or use an absolute $srcdir.
|
||||||
|
#
|
||||||
|
# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
|
||||||
|
# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
|
||||||
|
# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
|
||||||
|
# and then we would define $MISSING as
|
||||||
|
# MISSING="\${SHELL} $am_aux_dir/missing"
|
||||||
|
# This will work as long as MISSING is not called from configure, because
|
||||||
|
# unfortunately $(top_srcdir) has no meaning in configure.
|
||||||
|
# However there are other variables, like CC, which are often used in
|
||||||
|
# configure, and could therefore not use this "fixed" $ac_aux_dir.
|
||||||
|
#
|
||||||
|
# Another solution, used here, is to always expand $ac_aux_dir to an
|
||||||
|
# absolute PATH. The drawback is that using absolute paths prevent a
|
||||||
|
# configured tree to be moved without reconfiguration.
|
||||||
|
|
||||||
|
AC_DEFUN([AM_AUX_DIR_EXPAND],
|
||||||
|
[dnl Rely on autoconf to set up CDPATH properly.
|
||||||
|
AC_PREREQ([2.50])dnl
|
||||||
|
# expand $ac_aux_dir to an absolute path
|
||||||
|
am_aux_dir=`cd $ac_aux_dir && pwd`
|
||||||
|
])
|
||||||
|
|
||||||
|
# AM_CONDITIONAL -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
|
||||||
|
# Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# serial 9
|
||||||
|
|
||||||
|
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
|
||||||
|
# -------------------------------------
|
||||||
|
# Define a conditional.
|
||||||
|
AC_DEFUN([AM_CONDITIONAL],
|
||||||
|
[AC_PREREQ(2.52)dnl
|
||||||
|
ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
|
||||||
|
[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
|
||||||
|
AC_SUBST([$1_TRUE])dnl
|
||||||
|
AC_SUBST([$1_FALSE])dnl
|
||||||
|
_AM_SUBST_NOTMAKE([$1_TRUE])dnl
|
||||||
|
_AM_SUBST_NOTMAKE([$1_FALSE])dnl
|
||||||
|
m4_define([_AM_COND_VALUE_$1], [$2])dnl
|
||||||
|
if $2; then
|
||||||
|
$1_TRUE=
|
||||||
|
$1_FALSE='#'
|
||||||
|
else
|
||||||
|
$1_TRUE='#'
|
||||||
|
$1_FALSE=
|
||||||
|
fi
|
||||||
|
AC_CONFIG_COMMANDS_PRE(
|
||||||
|
[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
|
||||||
|
AC_MSG_ERROR([[conditional "$1" was never defined.
|
||||||
|
Usually this means the macro was only invoked conditionally.]])
|
||||||
|
fi])])
|
||||||
|
|
||||||
|
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009,
|
||||||
|
# 2010, 2011 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# serial 12
|
||||||
|
|
||||||
|
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
|
||||||
|
# written in clear, in which case automake, when reading aclocal.m4,
|
||||||
|
# will think it sees a *use*, and therefore will trigger all it's
|
||||||
|
# C support machinery. Also note that it means that autoscan, seeing
|
||||||
|
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
|
||||||
|
|
||||||
|
|
||||||
|
# _AM_DEPENDENCIES(NAME)
|
||||||
|
# ----------------------
|
||||||
|
# See how the compiler implements dependency checking.
|
||||||
|
# NAME is "CC", "CXX", "GCJ", or "OBJC".
|
||||||
|
# We try a few techniques and use that to set a single cache variable.
|
||||||
|
#
|
||||||
|
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
|
||||||
|
# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
|
||||||
|
# dependency, and given that the user is not expected to run this macro,
|
||||||
|
# just rely on AC_PROG_CC.
|
||||||
|
AC_DEFUN([_AM_DEPENDENCIES],
|
||||||
|
[AC_REQUIRE([AM_SET_DEPDIR])dnl
|
||||||
|
AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
|
||||||
|
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
|
||||||
|
AC_REQUIRE([AM_DEP_TRACK])dnl
|
||||||
|
|
||||||
|
ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
|
||||||
|
[$1], CXX, [depcc="$CXX" am_compiler_list=],
|
||||||
|
[$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
|
||||||
|
[$1], UPC, [depcc="$UPC" am_compiler_list=],
|
||||||
|
[$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
|
||||||
|
[depcc="$$1" am_compiler_list=])
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([dependency style of $depcc],
|
||||||
|
[am_cv_$1_dependencies_compiler_type],
|
||||||
|
[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
|
||||||
|
# We make a subdir and do the tests there. Otherwise we can end up
|
||||||
|
# making bogus files that we don't know about and never remove. For
|
||||||
|
# instance it was reported that on HP-UX the gcc test will end up
|
||||||
|
# making a dummy file named `D' -- because `-MD' means `put the output
|
||||||
|
# in D'.
|
||||||
|
rm -rf conftest.dir
|
||||||
|
mkdir conftest.dir
|
||||||
|
# Copy depcomp to subdir because otherwise we won't find it if we're
|
||||||
|
# using a relative directory.
|
||||||
|
cp "$am_depcomp" conftest.dir
|
||||||
|
cd conftest.dir
|
||||||
|
# We will build objects and dependencies in a subdirectory because
|
||||||
|
# it helps to detect inapplicable dependency modes. For instance
|
||||||
|
# both Tru64's cc and ICC support -MD to output dependencies as a
|
||||||
|
# side effect of compilation, but ICC will put the dependencies in
|
||||||
|
# the current directory while Tru64 will put them in the object
|
||||||
|
# directory.
|
||||||
|
mkdir sub
|
||||||
|
|
||||||
|
am_cv_$1_dependencies_compiler_type=none
|
||||||
|
if test "$am_compiler_list" = ""; then
|
||||||
|
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
|
||||||
|
fi
|
||||||
|
am__universal=false
|
||||||
|
m4_case([$1], [CC],
|
||||||
|
[case " $depcc " in #(
|
||||||
|
*\ -arch\ *\ -arch\ *) am__universal=true ;;
|
||||||
|
esac],
|
||||||
|
[CXX],
|
||||||
|
[case " $depcc " in #(
|
||||||
|
*\ -arch\ *\ -arch\ *) am__universal=true ;;
|
||||||
|
esac])
|
||||||
|
|
||||||
|
for depmode in $am_compiler_list; do
|
||||||
|
# Setup a source with many dependencies, because some compilers
|
||||||
|
# like to wrap large dependency lists on column 80 (with \), and
|
||||||
|
# we should not choose a depcomp mode which is confused by this.
|
||||||
|
#
|
||||||
|
# We need to recreate these files for each test, as the compiler may
|
||||||
|
# overwrite some of them when testing with obscure command lines.
|
||||||
|
# This happens at least with the AIX C compiler.
|
||||||
|
: > sub/conftest.c
|
||||||
|
for i in 1 2 3 4 5 6; do
|
||||||
|
echo '#include "conftst'$i'.h"' >> sub/conftest.c
|
||||||
|
# Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
|
||||||
|
# Solaris 8's {/usr,}/bin/sh.
|
||||||
|
touch sub/conftst$i.h
|
||||||
|
done
|
||||||
|
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
|
||||||
|
|
||||||
|
# We check with `-c' and `-o' for the sake of the "dashmstdout"
|
||||||
|
# mode. It turns out that the SunPro C++ compiler does not properly
|
||||||
|
# handle `-M -o', and we need to detect this. Also, some Intel
|
||||||
|
# versions had trouble with output in subdirs
|
||||||
|
am__obj=sub/conftest.${OBJEXT-o}
|
||||||
|
am__minus_obj="-o $am__obj"
|
||||||
|
case $depmode in
|
||||||
|
gcc)
|
||||||
|
# This depmode causes a compiler race in universal mode.
|
||||||
|
test "$am__universal" = false || continue
|
||||||
|
;;
|
||||||
|
nosideeffect)
|
||||||
|
# after this tag, mechanisms are not by side-effect, so they'll
|
||||||
|
# only be used when explicitly requested
|
||||||
|
if test "x$enable_dependency_tracking" = xyes; then
|
||||||
|
continue
|
||||||
|
else
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
msvc7 | msvc7msys | msvisualcpp | msvcmsys)
|
||||||
|
# This compiler won't grok `-c -o', but also, the minuso test has
|
||||||
|
# not run yet. These depmodes are late enough in the game, and
|
||||||
|
# so weak that their functioning should not be impacted.
|
||||||
|
am__obj=conftest.${OBJEXT-o}
|
||||||
|
am__minus_obj=
|
||||||
|
;;
|
||||||
|
none) break ;;
|
||||||
|
esac
|
||||||
|
if depmode=$depmode \
|
||||||
|
source=sub/conftest.c object=$am__obj \
|
||||||
|
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
|
||||||
|
$SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
|
||||||
|
>/dev/null 2>conftest.err &&
|
||||||
|
grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
|
||||||
|
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
|
||||||
|
grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
|
||||||
|
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
|
||||||
|
# icc doesn't choke on unknown options, it will just issue warnings
|
||||||
|
# or remarks (even with -Werror). So we grep stderr for any message
|
||||||
|
# that says an option was ignored or not supported.
|
||||||
|
# When given -MP, icc 7.0 and 7.1 complain thusly:
|
||||||
|
# icc: Command line warning: ignoring option '-M'; no argument required
|
||||||
|
# The diagnosis changed in icc 8.0:
|
||||||
|
# icc: Command line remark: option '-MP' not supported
|
||||||
|
if (grep 'ignoring option' conftest.err ||
|
||||||
|
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
|
||||||
|
am_cv_$1_dependencies_compiler_type=$depmode
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
rm -rf conftest.dir
|
||||||
|
else
|
||||||
|
am_cv_$1_dependencies_compiler_type=none
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
|
||||||
|
AM_CONDITIONAL([am__fastdep$1], [
|
||||||
|
test "x$enable_dependency_tracking" != xno \
|
||||||
|
&& test "$am_cv_$1_dependencies_compiler_type" = gcc3])
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
# AM_SET_DEPDIR
|
||||||
|
# -------------
|
||||||
|
# Choose a directory name for dependency files.
|
||||||
|
# This macro is AC_REQUIREd in _AM_DEPENDENCIES
|
||||||
|
AC_DEFUN([AM_SET_DEPDIR],
|
||||||
|
[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||||||
|
AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
# AM_DEP_TRACK
|
||||||
|
# ------------
|
||||||
|
AC_DEFUN([AM_DEP_TRACK],
|
||||||
|
[AC_ARG_ENABLE(dependency-tracking,
|
||||||
|
[ --disable-dependency-tracking speeds up one-time build
|
||||||
|
--enable-dependency-tracking do not reject slow dependency extractors])
|
||||||
|
if test "x$enable_dependency_tracking" != xno; then
|
||||||
|
am_depcomp="$ac_aux_dir/depcomp"
|
||||||
|
AMDEPBACKSLASH='\'
|
||||||
|
am__nodep='_no'
|
||||||
|
fi
|
||||||
|
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
|
||||||
|
AC_SUBST([AMDEPBACKSLASH])dnl
|
||||||
|
_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
|
||||||
|
AC_SUBST([am__nodep])dnl
|
||||||
|
_AM_SUBST_NOTMAKE([am__nodep])dnl
|
||||||
|
])
|
||||||
|
|
||||||
|
# Generate code to set up dependency tracking. -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
|
||||||
|
# Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
#serial 5
|
||||||
|
|
||||||
|
# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||||
|
# ------------------------------
|
||||||
|
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||||
|
[{
|
||||||
|
# Autoconf 2.62 quotes --file arguments for eval, but not when files
|
||||||
|
# are listed without --file. Let's play safe and only enable the eval
|
||||||
|
# if we detect the quoting.
|
||||||
|
case $CONFIG_FILES in
|
||||||
|
*\'*) eval set x "$CONFIG_FILES" ;;
|
||||||
|
*) set x $CONFIG_FILES ;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
for mf
|
||||||
|
do
|
||||||
|
# Strip MF so we end up with the name of the file.
|
||||||
|
mf=`echo "$mf" | sed -e 's/:.*$//'`
|
||||||
|
# Check whether this is an Automake generated Makefile or not.
|
||||||
|
# We used to match only the files named `Makefile.in', but
|
||||||
|
# some people rename them; so instead we look at the file content.
|
||||||
|
# Grep'ing the first line is not enough: some people post-process
|
||||||
|
# each Makefile.in and add a new line on top of each file to say so.
|
||||||
|
# Grep'ing the whole file is not good either: AIX grep has a line
|
||||||
|
# limit of 2048, but all sed's we know have understand at least 4000.
|
||||||
|
if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
|
||||||
|
dirpart=`AS_DIRNAME("$mf")`
|
||||||
|
else
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
# Extract the definition of DEPDIR, am__include, and am__quote
|
||||||
|
# from the Makefile without running `make'.
|
||||||
|
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
|
||||||
|
test -z "$DEPDIR" && continue
|
||||||
|
am__include=`sed -n 's/^am__include = //p' < "$mf"`
|
||||||
|
test -z "am__include" && continue
|
||||||
|
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
|
||||||
|
# When using ansi2knr, U may be empty or an underscore; expand it
|
||||||
|
U=`sed -n 's/^U = //p' < "$mf"`
|
||||||
|
# Find all dependency output files, they are included files with
|
||||||
|
# $(DEPDIR) in their names. We invoke sed twice because it is the
|
||||||
|
# simplest approach to changing $(DEPDIR) to its actual value in the
|
||||||
|
# expansion.
|
||||||
|
for file in `sed -n "
|
||||||
|
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
|
||||||
|
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
|
||||||
|
# Make sure the directory exists.
|
||||||
|
test -f "$dirpart/$file" && continue
|
||||||
|
fdir=`AS_DIRNAME(["$file"])`
|
||||||
|
AS_MKDIR_P([$dirpart/$fdir])
|
||||||
|
# echo "creating $dirpart/$file"
|
||||||
|
echo '# dummy' > "$dirpart/$file"
|
||||||
|
done
|
||||||
|
done
|
||||||
|
}
|
||||||
|
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||||
|
|
||||||
|
|
||||||
|
# AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||||
|
# -----------------------------
|
||||||
|
# This macro should only be invoked once -- use via AC_REQUIRE.
|
||||||
|
#
|
||||||
|
# This code is only required when automatic dependency tracking
|
||||||
|
# is enabled. FIXME. This creates each `.P' file that we will
|
||||||
|
# need in order to bootstrap the dependency handling code.
|
||||||
|
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||||
|
[AC_CONFIG_COMMANDS([depfiles],
|
||||||
|
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||||
|
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
|
||||||
|
])
|
||||||
|
|
||||||
|
# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
|
||||||
|
# Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# serial 8
|
||||||
|
|
||||||
|
# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS.
|
||||||
|
AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
|
||||||
|
|
||||||
|
# Do all the work for Automake. -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||||
|
# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# serial 16
|
||||||
|
|
||||||
|
# This macro actually does too much. Some checks are only needed if
|
||||||
|
# your package does certain things. But this isn't really a big deal.
|
||||||
|
|
||||||
|
# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
|
||||||
|
# AM_INIT_AUTOMAKE([OPTIONS])
|
||||||
|
# -----------------------------------------------
|
||||||
|
# The call with PACKAGE and VERSION arguments is the old style
|
||||||
|
# call (pre autoconf-2.50), which is being phased out. PACKAGE
|
||||||
|
# and VERSION should now be passed to AC_INIT and removed from
|
||||||
|
# the call to AM_INIT_AUTOMAKE.
|
||||||
|
# We support both call styles for the transition. After
|
||||||
|
# the next Automake release, Autoconf can make the AC_INIT
|
||||||
|
# arguments mandatory, and then we can depend on a new Autoconf
|
||||||
|
# release and drop the old call support.
|
||||||
|
AC_DEFUN([AM_INIT_AUTOMAKE],
|
||||||
|
[AC_PREREQ([2.62])dnl
|
||||||
|
dnl Autoconf wants to disallow AM_ names. We explicitly allow
|
||||||
|
dnl the ones we care about.
|
||||||
|
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
|
||||||
|
AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
|
||||||
|
AC_REQUIRE([AC_PROG_INSTALL])dnl
|
||||||
|
if test "`cd $srcdir && pwd`" != "`pwd`"; then
|
||||||
|
# Use -I$(srcdir) only when $(srcdir) != ., so that make's output
|
||||||
|
# is not polluted with repeated "-I."
|
||||||
|
AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
|
||||||
|
# test to see if srcdir already configured
|
||||||
|
if test -f $srcdir/config.status; then
|
||||||
|
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# test whether we have cygpath
|
||||||
|
if test -z "$CYGPATH_W"; then
|
||||||
|
if (cygpath --version) >/dev/null 2>/dev/null; then
|
||||||
|
CYGPATH_W='cygpath -w'
|
||||||
|
else
|
||||||
|
CYGPATH_W=echo
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
AC_SUBST([CYGPATH_W])
|
||||||
|
|
||||||
|
# Define the identity of the package.
|
||||||
|
dnl Distinguish between old-style and new-style calls.
|
||||||
|
m4_ifval([$2],
|
||||||
|
[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
|
||||||
|
AC_SUBST([PACKAGE], [$1])dnl
|
||||||
|
AC_SUBST([VERSION], [$2])],
|
||||||
|
[_AM_SET_OPTIONS([$1])dnl
|
||||||
|
dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
|
||||||
|
m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
|
||||||
|
[m4_fatal([AC_INIT should be called with package and version arguments])])dnl
|
||||||
|
AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
|
||||||
|
AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
|
||||||
|
|
||||||
|
_AM_IF_OPTION([no-define],,
|
||||||
|
[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
|
||||||
|
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
|
||||||
|
|
||||||
|
# Some tools Automake needs.
|
||||||
|
AC_REQUIRE([AM_SANITY_CHECK])dnl
|
||||||
|
AC_REQUIRE([AC_ARG_PROGRAM])dnl
|
||||||
|
AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
|
||||||
|
AM_MISSING_PROG(AUTOCONF, autoconf)
|
||||||
|
AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
|
||||||
|
AM_MISSING_PROG(AUTOHEADER, autoheader)
|
||||||
|
AM_MISSING_PROG(MAKEINFO, makeinfo)
|
||||||
|
AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
|
||||||
|
AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
|
||||||
|
AC_REQUIRE([AM_PROG_MKDIR_P])dnl
|
||||||
|
# We need awk for the "check" target. The system "awk" is bad on
|
||||||
|
# some platforms.
|
||||||
|
AC_REQUIRE([AC_PROG_AWK])dnl
|
||||||
|
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
|
||||||
|
AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||||||
|
_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
|
||||||
|
[_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
|
||||||
|
[_AM_PROG_TAR([v7])])])
|
||||||
|
_AM_IF_OPTION([no-dependencies],,
|
||||||
|
[AC_PROVIDE_IFELSE([AC_PROG_CC],
|
||||||
|
[_AM_DEPENDENCIES(CC)],
|
||||||
|
[define([AC_PROG_CC],
|
||||||
|
defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
|
||||||
|
AC_PROVIDE_IFELSE([AC_PROG_CXX],
|
||||||
|
[_AM_DEPENDENCIES(CXX)],
|
||||||
|
[define([AC_PROG_CXX],
|
||||||
|
defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
|
||||||
|
AC_PROVIDE_IFELSE([AC_PROG_OBJC],
|
||||||
|
[_AM_DEPENDENCIES(OBJC)],
|
||||||
|
[define([AC_PROG_OBJC],
|
||||||
|
defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
|
||||||
|
])
|
||||||
|
_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
|
||||||
|
dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
|
||||||
|
dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
|
||||||
|
dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
|
||||||
|
AC_CONFIG_COMMANDS_PRE(dnl
|
||||||
|
[m4_provide_if([_AM_COMPILER_EXEEXT],
|
||||||
|
[AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
|
||||||
|
])
|
||||||
|
|
||||||
|
dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
|
||||||
|
dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
|
||||||
|
dnl mangled by Autoconf and run in a shell conditional statement.
|
||||||
|
m4_define([_AC_COMPILER_EXEEXT],
|
||||||
|
m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
|
||||||
|
|
||||||
|
|
||||||
|
# When config.status generates a header, we must update the stamp-h file.
|
||||||
|
# This file resides in the same directory as the config header
|
||||||
|
# that is generated. The stamp files are numbered to have different names.
|
||||||
|
|
||||||
|
# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
|
||||||
|
# loop where config.status creates the headers, so we can generate
|
||||||
|
# our stamp files there.
|
||||||
|
AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
|
||||||
|
[# Compute $1's index in $config_headers.
|
||||||
|
_am_arg=$1
|
||||||
|
_am_stamp_count=1
|
||||||
|
for _am_header in $config_headers :; do
|
||||||
|
case $_am_header in
|
||||||
|
$_am_arg | $_am_arg:* )
|
||||||
|
break ;;
|
||||||
|
* )
|
||||||
|
_am_stamp_count=`expr $_am_stamp_count + 1` ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
|
||||||
|
|
||||||
|
# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation,
|
||||||
|
# Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# serial 1
|
||||||
|
|
||||||
|
# AM_PROG_INSTALL_SH
|
||||||
|
# ------------------
|
||||||
|
# Define $install_sh.
|
||||||
|
AC_DEFUN([AM_PROG_INSTALL_SH],
|
||||||
|
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||||
|
if test x"${install_sh}" != xset; then
|
||||||
|
case $am_aux_dir in
|
||||||
|
*\ * | *\ *)
|
||||||
|
install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
|
||||||
|
*)
|
||||||
|
install_sh="\${SHELL} $am_aux_dir/install-sh"
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
AC_SUBST(install_sh)])
|
||||||
|
|
||||||
|
# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# serial 2
|
||||||
|
|
||||||
|
# Check whether the underlying file-system supports filenames
|
||||||
|
# with a leading dot. For instance MS-DOS doesn't.
|
||||||
|
AC_DEFUN([AM_SET_LEADING_DOT],
|
||||||
|
[rm -rf .tst 2>/dev/null
|
||||||
|
mkdir .tst 2>/dev/null
|
||||||
|
if test -d .tst; then
|
||||||
|
am__leading_dot=.
|
||||||
|
else
|
||||||
|
am__leading_dot=_
|
||||||
|
fi
|
||||||
|
rmdir .tst 2>/dev/null
|
||||||
|
AC_SUBST([am__leading_dot])])
|
||||||
|
|
||||||
|
# Check to see how 'make' treats includes. -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# serial 4
|
||||||
|
|
||||||
|
# AM_MAKE_INCLUDE()
|
||||||
|
# -----------------
|
||||||
|
# Check to see how make treats includes.
|
||||||
|
AC_DEFUN([AM_MAKE_INCLUDE],
|
||||||
|
[am_make=${MAKE-make}
|
||||||
|
cat > confinc << 'END'
|
||||||
|
am__doit:
|
||||||
|
@echo this is the am__doit target
|
||||||
|
.PHONY: am__doit
|
||||||
|
END
|
||||||
|
# If we don't find an include directive, just comment out the code.
|
||||||
|
AC_MSG_CHECKING([for style of include used by $am_make])
|
||||||
|
am__include="#"
|
||||||
|
am__quote=
|
||||||
|
_am_result=none
|
||||||
|
# First try GNU make style include.
|
||||||
|
echo "include confinc" > confmf
|
||||||
|
# Ignore all kinds of additional output from `make'.
|
||||||
|
case `$am_make -s -f confmf 2> /dev/null` in #(
|
||||||
|
*the\ am__doit\ target*)
|
||||||
|
am__include=include
|
||||||
|
am__quote=
|
||||||
|
_am_result=GNU
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
# Now try BSD make style include.
|
||||||
|
if test "$am__include" = "#"; then
|
||||||
|
echo '.include "confinc"' > confmf
|
||||||
|
case `$am_make -s -f confmf 2> /dev/null` in #(
|
||||||
|
*the\ am__doit\ target*)
|
||||||
|
am__include=.include
|
||||||
|
am__quote="\""
|
||||||
|
_am_result=BSD
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
AC_SUBST([am__include])
|
||||||
|
AC_SUBST([am__quote])
|
||||||
|
AC_MSG_RESULT([$_am_result])
|
||||||
|
rm -f confinc confmf
|
||||||
|
])
|
||||||
|
|
||||||
|
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
|
||||||
|
# Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# serial 6
|
||||||
|
|
||||||
|
# AM_MISSING_PROG(NAME, PROGRAM)
|
||||||
|
# ------------------------------
|
||||||
|
AC_DEFUN([AM_MISSING_PROG],
|
||||||
|
[AC_REQUIRE([AM_MISSING_HAS_RUN])
|
||||||
|
$1=${$1-"${am_missing_run}$2"}
|
||||||
|
AC_SUBST($1)])
|
||||||
|
|
||||||
|
|
||||||
|
# AM_MISSING_HAS_RUN
|
||||||
|
# ------------------
|
||||||
|
# Define MISSING if not defined so far and test if it supports --run.
|
||||||
|
# If it does, set am_missing_run to use it, otherwise, to nothing.
|
||||||
|
AC_DEFUN([AM_MISSING_HAS_RUN],
|
||||||
|
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||||
|
AC_REQUIRE_AUX_FILE([missing])dnl
|
||||||
|
if test x"${MISSING+set}" != xset; then
|
||||||
|
case $am_aux_dir in
|
||||||
|
*\ * | *\ *)
|
||||||
|
MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
|
||||||
|
*)
|
||||||
|
MISSING="\${SHELL} $am_aux_dir/missing" ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
# Use eval to expand $SHELL
|
||||||
|
if eval "$MISSING --run true"; then
|
||||||
|
am_missing_run="$MISSING --run "
|
||||||
|
else
|
||||||
|
am_missing_run=
|
||||||
|
AC_MSG_WARN([`missing' script is too old or missing])
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation,
|
||||||
|
# Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# serial 1
|
||||||
|
|
||||||
|
# AM_PROG_MKDIR_P
|
||||||
|
# ---------------
|
||||||
|
# Check for `mkdir -p'.
|
||||||
|
AC_DEFUN([AM_PROG_MKDIR_P],
|
||||||
|
[AC_PREREQ([2.60])dnl
|
||||||
|
AC_REQUIRE([AC_PROG_MKDIR_P])dnl
|
||||||
|
dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
|
||||||
|
dnl while keeping a definition of mkdir_p for backward compatibility.
|
||||||
|
dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
|
||||||
|
dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
|
||||||
|
dnl Makefile.ins that do not define MKDIR_P, so we do our own
|
||||||
|
dnl adjustment using top_builddir (which is defined more often than
|
||||||
|
dnl MKDIR_P).
|
||||||
|
AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
|
||||||
|
case $mkdir_p in
|
||||||
|
[[\\/$]]* | ?:[[\\/]]*) ;;
|
||||||
|
*/*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
|
||||||
|
esac
|
||||||
|
])
|
||||||
|
|
||||||
|
# Helper functions for option handling. -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software
|
||||||
|
# Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# serial 5
|
||||||
|
|
||||||
|
# _AM_MANGLE_OPTION(NAME)
|
||||||
|
# -----------------------
|
||||||
|
AC_DEFUN([_AM_MANGLE_OPTION],
|
||||||
|
[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
|
||||||
|
|
||||||
|
# _AM_SET_OPTION(NAME)
|
||||||
|
# --------------------
|
||||||
|
# Set option NAME. Presently that only means defining a flag for this option.
|
||||||
|
AC_DEFUN([_AM_SET_OPTION],
|
||||||
|
[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
|
||||||
|
|
||||||
|
# _AM_SET_OPTIONS(OPTIONS)
|
||||||
|
# ------------------------
|
||||||
|
# OPTIONS is a space-separated list of Automake options.
|
||||||
|
AC_DEFUN([_AM_SET_OPTIONS],
|
||||||
|
[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
|
||||||
|
|
||||||
|
# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
|
||||||
|
# -------------------------------------------
|
||||||
|
# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
|
||||||
|
AC_DEFUN([_AM_IF_OPTION],
|
||||||
|
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
|
||||||
|
|
||||||
|
# Check to make sure that the build environment is sane. -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
|
||||||
|
# Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# serial 5
|
||||||
|
|
||||||
|
# AM_SANITY_CHECK
|
||||||
|
# ---------------
|
||||||
|
AC_DEFUN([AM_SANITY_CHECK],
|
||||||
|
[AC_MSG_CHECKING([whether build environment is sane])
|
||||||
|
# Just in case
|
||||||
|
sleep 1
|
||||||
|
echo timestamp > conftest.file
|
||||||
|
# Reject unsafe characters in $srcdir or the absolute working directory
|
||||||
|
# name. Accept space and tab only in the latter.
|
||||||
|
am_lf='
|
||||||
|
'
|
||||||
|
case `pwd` in
|
||||||
|
*[[\\\"\#\$\&\'\`$am_lf]]*)
|
||||||
|
AC_MSG_ERROR([unsafe absolute working directory name]);;
|
||||||
|
esac
|
||||||
|
case $srcdir in
|
||||||
|
*[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
|
||||||
|
AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Do `set' in a subshell so we don't clobber the current shell's
|
||||||
|
# arguments. Must try -L first in case configure is actually a
|
||||||
|
# symlink; some systems play weird games with the mod time of symlinks
|
||||||
|
# (eg FreeBSD returns the mod time of the symlink's containing
|
||||||
|
# directory).
|
||||||
|
if (
|
||||||
|
set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
|
||||||
|
if test "$[*]" = "X"; then
|
||||||
|
# -L didn't work.
|
||||||
|
set X `ls -t "$srcdir/configure" conftest.file`
|
||||||
|
fi
|
||||||
|
rm -f conftest.file
|
||||||
|
if test "$[*]" != "X $srcdir/configure conftest.file" \
|
||||||
|
&& test "$[*]" != "X conftest.file $srcdir/configure"; then
|
||||||
|
|
||||||
|
# If neither matched, then we have a broken ls. This can happen
|
||||||
|
# if, for instance, CONFIG_SHELL is bash and it inherits a
|
||||||
|
# broken ls alias from the environment. This has actually
|
||||||
|
# happened. Such a system could not be considered "sane".
|
||||||
|
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
|
||||||
|
alias in your environment])
|
||||||
|
fi
|
||||||
|
|
||||||
|
test "$[2]" = conftest.file
|
||||||
|
)
|
||||||
|
then
|
||||||
|
# Ok.
|
||||||
|
:
|
||||||
|
else
|
||||||
|
AC_MSG_ERROR([newly created file is older than distributed files!
|
||||||
|
Check your system clock])
|
||||||
|
fi
|
||||||
|
AC_MSG_RESULT(yes)])
|
||||||
|
|
||||||
|
# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# serial 1
|
||||||
|
|
||||||
|
# AM_PROG_INSTALL_STRIP
|
||||||
|
# ---------------------
|
||||||
|
# One issue with vendor `install' (even GNU) is that you can't
|
||||||
|
# specify the program used to strip binaries. This is especially
|
||||||
|
# annoying in cross-compiling environments, where the build's strip
|
||||||
|
# is unlikely to handle the host's binaries.
|
||||||
|
# Fortunately install-sh will honor a STRIPPROG variable, so we
|
||||||
|
# always use install-sh in `make install-strip', and initialize
|
||||||
|
# STRIPPROG with the value of the STRIP variable (set by the user).
|
||||||
|
AC_DEFUN([AM_PROG_INSTALL_STRIP],
|
||||||
|
[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
|
||||||
|
# Installed binaries are usually stripped using `strip' when the user
|
||||||
|
# run `make install-strip'. However `strip' might not be the right
|
||||||
|
# tool to use in cross-compilation environments, therefore Automake
|
||||||
|
# will honor the `STRIP' environment variable to overrule this program.
|
||||||
|
dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
|
||||||
|
if test "$cross_compiling" != no; then
|
||||||
|
AC_CHECK_TOOL([STRIP], [strip], :)
|
||||||
|
fi
|
||||||
|
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
|
||||||
|
AC_SUBST([INSTALL_STRIP_PROGRAM])])
|
||||||
|
|
||||||
|
# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# serial 3
|
||||||
|
|
||||||
|
# _AM_SUBST_NOTMAKE(VARIABLE)
|
||||||
|
# ---------------------------
|
||||||
|
# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
|
||||||
|
# This macro is traced by Automake.
|
||||||
|
AC_DEFUN([_AM_SUBST_NOTMAKE])
|
||||||
|
|
||||||
|
# AM_SUBST_NOTMAKE(VARIABLE)
|
||||||
|
# --------------------------
|
||||||
|
# Public sister of _AM_SUBST_NOTMAKE.
|
||||||
|
AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
|
||||||
|
|
||||||
|
# Check how to create a tarball. -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# serial 2
|
||||||
|
|
||||||
|
# _AM_PROG_TAR(FORMAT)
|
||||||
|
# --------------------
|
||||||
|
# Check how to create a tarball in format FORMAT.
|
||||||
|
# FORMAT should be one of `v7', `ustar', or `pax'.
|
||||||
|
#
|
||||||
|
# Substitute a variable $(am__tar) that is a command
|
||||||
|
# writing to stdout a FORMAT-tarball containing the directory
|
||||||
|
# $tardir.
|
||||||
|
# tardir=directory && $(am__tar) > result.tar
|
||||||
|
#
|
||||||
|
# Substitute a variable $(am__untar) that extract such
|
||||||
|
# a tarball read from stdin.
|
||||||
|
# $(am__untar) < result.tar
|
||||||
|
AC_DEFUN([_AM_PROG_TAR],
|
||||||
|
[# Always define AMTAR for backward compatibility. Yes, it's still used
|
||||||
|
# in the wild :-( We should find a proper way to deprecate it ...
|
||||||
|
AC_SUBST([AMTAR], ['$${TAR-tar}'])
|
||||||
|
m4_if([$1], [v7],
|
||||||
|
[am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
|
||||||
|
[m4_case([$1], [ustar],, [pax],,
|
||||||
|
[m4_fatal([Unknown tar format])])
|
||||||
|
AC_MSG_CHECKING([how to create a $1 tar archive])
|
||||||
|
# Loop over all known methods to create a tar archive until one works.
|
||||||
|
_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
|
||||||
|
_am_tools=${am_cv_prog_tar_$1-$_am_tools}
|
||||||
|
# Do not fold the above two line into one, because Tru64 sh and
|
||||||
|
# Solaris sh will not grok spaces in the rhs of `-'.
|
||||||
|
for _am_tool in $_am_tools
|
||||||
|
do
|
||||||
|
case $_am_tool in
|
||||||
|
gnutar)
|
||||||
|
for _am_tar in tar gnutar gtar;
|
||||||
|
do
|
||||||
|
AM_RUN_LOG([$_am_tar --version]) && break
|
||||||
|
done
|
||||||
|
am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
|
||||||
|
am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
|
||||||
|
am__untar="$_am_tar -xf -"
|
||||||
|
;;
|
||||||
|
plaintar)
|
||||||
|
# Must skip GNU tar: if it does not support --format= it doesn't create
|
||||||
|
# ustar tarball either.
|
||||||
|
(tar --version) >/dev/null 2>&1 && continue
|
||||||
|
am__tar='tar chf - "$$tardir"'
|
||||||
|
am__tar_='tar chf - "$tardir"'
|
||||||
|
am__untar='tar xf -'
|
||||||
|
;;
|
||||||
|
pax)
|
||||||
|
am__tar='pax -L -x $1 -w "$$tardir"'
|
||||||
|
am__tar_='pax -L -x $1 -w "$tardir"'
|
||||||
|
am__untar='pax -r'
|
||||||
|
;;
|
||||||
|
cpio)
|
||||||
|
am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
|
||||||
|
am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
|
||||||
|
am__untar='cpio -i -H $1 -d'
|
||||||
|
;;
|
||||||
|
none)
|
||||||
|
am__tar=false
|
||||||
|
am__tar_=false
|
||||||
|
am__untar=false
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# If the value was cached, stop now. We just wanted to have am__tar
|
||||||
|
# and am__untar set.
|
||||||
|
test -n "${am_cv_prog_tar_$1}" && break
|
||||||
|
|
||||||
|
# tar/untar a dummy directory, and stop if the command works
|
||||||
|
rm -rf conftest.dir
|
||||||
|
mkdir conftest.dir
|
||||||
|
echo GrepMe > conftest.dir/file
|
||||||
|
AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
|
||||||
|
rm -rf conftest.dir
|
||||||
|
if test -s conftest.tar; then
|
||||||
|
AM_RUN_LOG([$am__untar <conftest.tar])
|
||||||
|
grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
rm -rf conftest.dir
|
||||||
|
|
||||||
|
AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
|
||||||
|
AC_MSG_RESULT([$am_cv_prog_tar_$1])])
|
||||||
|
AC_SUBST([am__tar])
|
||||||
|
AC_SUBST([am__untar])
|
||||||
|
]) # _AM_PROG_TAR
|
||||||
|
|
||||||
|
m4_include([acinclude.m4])
|
|
@ -0,0 +1,450 @@
|
||||||
|
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||||
|
|
||||||
|
/* Expanded binary directory */
|
||||||
|
#undef BINDIR
|
||||||
|
|
||||||
|
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
|
||||||
|
systems. This function is required for `alloca.c' support on those systems.
|
||||||
|
*/
|
||||||
|
#undef CRAY_STACKSEG_END
|
||||||
|
|
||||||
|
/* Define to 1 if using `alloca.c'. */
|
||||||
|
#undef C_ALLOCA
|
||||||
|
|
||||||
|
/* Define to 1 if you have `alloca', as a function or macro. */
|
||||||
|
#undef HAVE_ALLOCA
|
||||||
|
|
||||||
|
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
|
||||||
|
*/
|
||||||
|
#undef HAVE_ALLOCA_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <arpa/inet.h> header file. */
|
||||||
|
#undef HAVE_ARPA_INET_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the declaration of `backtrace', and to 0 if you
|
||||||
|
don't. */
|
||||||
|
#undef HAVE_DECL_BACKTRACE
|
||||||
|
|
||||||
|
/* Define to 1 if you have the declaration of `gnutls_fingerprint', and to 0
|
||||||
|
if you don't. */
|
||||||
|
#undef HAVE_DECL_GNUTLS_FINGERPRINT
|
||||||
|
|
||||||
|
/* Define to 1 if you have the declaration of `MD5', and to 0 if you don't. */
|
||||||
|
#undef HAVE_DECL_MD5
|
||||||
|
|
||||||
|
/* Define to 1 if you have the declaration of `round', and to 0 if you don't.
|
||||||
|
*/
|
||||||
|
#undef HAVE_DECL_ROUND
|
||||||
|
|
||||||
|
/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
|
||||||
|
#undef HAVE_DOPRNT
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <execinfo.h> header file. */
|
||||||
|
#undef HAVE_EXECINFO_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <fcntl.h> header file. */
|
||||||
|
#undef HAVE_FCNTL_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <gcrypt.h> header file. */
|
||||||
|
#undef HAVE_GCRYPT_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `gethostbyname' function. */
|
||||||
|
#undef HAVE_GETHOSTBYNAME
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `gethostname' function. */
|
||||||
|
#undef HAVE_GETHOSTNAME
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `getpagesize' function. */
|
||||||
|
#undef HAVE_GETPAGESIZE
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `gettimeofday' function. */
|
||||||
|
#undef HAVE_GETTIMEOFDAY
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <glob.h> header file. */
|
||||||
|
#undef HAVE_GLOB_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <gnutls/gnutls.h> header file. */
|
||||||
|
#undef HAVE_GNUTLS_GNUTLS_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <gnutls/openssl.h> header file. */
|
||||||
|
#undef HAVE_GNUTLS_OPENSSL_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||||
|
#undef HAVE_INTTYPES_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `ioctl' function. */
|
||||||
|
#undef HAVE_IOCTL
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `ioctlsocket' function. */
|
||||||
|
#undef HAVE_IOCTLSOCKET
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <jpeglib.h> header file. */
|
||||||
|
#undef HAVE_JPEGLIB_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `avcodec' library (-lavcodec). */
|
||||||
|
#undef HAVE_LIBAVCODEC
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <libavcodec/avcodec.h> header file. */
|
||||||
|
#undef HAVE_LIBAVCODEC_AVCODEC_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `avcore' library (-lavcore). */
|
||||||
|
#undef HAVE_LIBAVCORE
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `avdevice' library (-lavdevice). */
|
||||||
|
#undef HAVE_LIBAVDEVICE
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `avformat' library (-lavformat). */
|
||||||
|
#undef HAVE_LIBAVFORMAT
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <libavformat/avformat.h> header file. */
|
||||||
|
#undef HAVE_LIBAVFORMAT_AVFORMAT_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `avutil' library (-lavutil). */
|
||||||
|
#undef HAVE_LIBAVUTIL
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <libavutil/avutil.h> header file. */
|
||||||
|
#undef HAVE_LIBAVUTIL_AVUTIL_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `bz2' library (-lbz2). */
|
||||||
|
#undef HAVE_LIBBZ2
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `crypto' library (-lcrypto). */
|
||||||
|
#undef HAVE_LIBCRYPTO
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `dl' library (-ldl). */
|
||||||
|
#undef HAVE_LIBDL
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `gcrypt' library (-lgcrypt). */
|
||||||
|
#undef HAVE_LIBGCRYPT
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `gnutls' library (-lgnutls). */
|
||||||
|
#undef HAVE_LIBGNUTLS
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `jpeg' library (-ljpeg). */
|
||||||
|
#undef HAVE_LIBJPEG
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `mysqlclient' library (-lmysqlclient). */
|
||||||
|
#undef HAVE_LIBMYSQLCLIENT
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `pcre' library (-lpcre). */
|
||||||
|
#undef HAVE_LIBPCRE
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `pthread' library (-lpthread). */
|
||||||
|
#undef HAVE_LIBPTHREAD
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `swscale' library (-lswscale). */
|
||||||
|
#undef HAVE_LIBSWSCALE
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <libswscale/swscale.h> header file. */
|
||||||
|
#undef HAVE_LIBSWSCALE_SWSCALE_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `x264' library (-lx264). */
|
||||||
|
#undef HAVE_LIBX264
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `z' library (-lz). */
|
||||||
|
#undef HAVE_LIBZ
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <limits.h> header file. */
|
||||||
|
#undef HAVE_LIMITS_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <linux/videodev2.h> header file. */
|
||||||
|
#undef HAVE_LINUX_VIDEODEV2_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <linux/videodev.h> header file. */
|
||||||
|
#undef HAVE_LINUX_VIDEODEV_H
|
||||||
|
|
||||||
|
/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
|
||||||
|
to 0 otherwise. */
|
||||||
|
#undef HAVE_MALLOC
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `memmove' function. */
|
||||||
|
#undef HAVE_MEMMOVE
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <memory.h> header file. */
|
||||||
|
#undef HAVE_MEMORY_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `memset' function. */
|
||||||
|
#undef HAVE_MEMSET
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `mkdir' function. */
|
||||||
|
#undef HAVE_MKDIR
|
||||||
|
|
||||||
|
/* Define to 1 if you have a working `mmap' system call. */
|
||||||
|
#undef HAVE_MMAP
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `munmap' function. */
|
||||||
|
#undef HAVE_MUNMAP
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <mysql/mysql.h> header file. */
|
||||||
|
#undef HAVE_MYSQL_MYSQL_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <netdb.h> header file. */
|
||||||
|
#undef HAVE_NETDB_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <netinet/in.h> header file. */
|
||||||
|
#undef HAVE_NETINET_IN_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <openssl/md5.h> header file. */
|
||||||
|
#undef HAVE_OPENSSL_MD5_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <pcre.h> header file. */
|
||||||
|
#undef HAVE_PCRE_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <pcre/pcre.h> header file. */
|
||||||
|
#undef HAVE_PCRE_PCRE_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `posix_memalign' function. */
|
||||||
|
#undef HAVE_POSIX_MEMALIGN
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <pthread.h> header file. */
|
||||||
|
#undef HAVE_PTHREAD_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `putenv' function. */
|
||||||
|
#undef HAVE_PUTENV
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `select' function. */
|
||||||
|
#undef HAVE_SELECT
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `sendfile' function. */
|
||||||
|
#undef HAVE_SENDFILE
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `sigaction' function. */
|
||||||
|
#undef HAVE_SIGACTION
|
||||||
|
|
||||||
|
/* Define to 1 if the system has the type `siginfo_t'. */
|
||||||
|
#undef HAVE_SIGINFO_T
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `sleep' function. */
|
||||||
|
#undef HAVE_SLEEP
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `socket' function. */
|
||||||
|
#undef HAVE_SOCKET
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `sqrt' function. */
|
||||||
|
#undef HAVE_SQRT
|
||||||
|
|
||||||
|
/* Define to 1 if `stat' has the bug that it succeeds when given the
|
||||||
|
zero-length file name argument. */
|
||||||
|
#undef HAVE_STAT_EMPTY_STRING_BUG
|
||||||
|
|
||||||
|
/* Define to 1 if stdbool.h conforms to C99. */
|
||||||
|
#undef HAVE_STDBOOL_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stddef.h> header file. */
|
||||||
|
#undef HAVE_STDDEF_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdint.h> header file. */
|
||||||
|
#undef HAVE_STDINT_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||||
|
#undef HAVE_STDLIB_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strcasecmp' function. */
|
||||||
|
#undef HAVE_STRCASECMP
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strchr' function. */
|
||||||
|
#undef HAVE_STRCHR
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strcspn' function. */
|
||||||
|
#undef HAVE_STRCSPN
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strerror' function. */
|
||||||
|
#undef HAVE_STRERROR
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strftime' function. */
|
||||||
|
#undef HAVE_STRFTIME
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <strings.h> header file. */
|
||||||
|
#undef HAVE_STRINGS_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <string.h> header file. */
|
||||||
|
#undef HAVE_STRING_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strncasecmp' function. */
|
||||||
|
#undef HAVE_STRNCASECMP
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strrchr' function. */
|
||||||
|
#undef HAVE_STRRCHR
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strsignal' function. */
|
||||||
|
#undef HAVE_STRSIGNAL
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strspn' function. */
|
||||||
|
#undef HAVE_STRSPN
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strstr' function. */
|
||||||
|
#undef HAVE_STRSTR
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strtol' function. */
|
||||||
|
#undef HAVE_STRTOL
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strtoull' function. */
|
||||||
|
#undef HAVE_STRTOULL
|
||||||
|
|
||||||
|
/* Define to 1 if the system has the type `struct sigcontext'. */
|
||||||
|
#undef HAVE_STRUCT_SIGCONTEXT
|
||||||
|
|
||||||
|
/* Define to 1 if `eip' is a member of `struct sigcontext'. */
|
||||||
|
#undef HAVE_STRUCT_SIGCONTEXT_EIP
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `syscall' function. */
|
||||||
|
#undef HAVE_SYSCALL
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <syscall.h> header file. */
|
||||||
|
#undef HAVE_SYSCALL_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <syslog.h> header file. */
|
||||||
|
#undef HAVE_SYSLOG_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/ioctl.h> header file. */
|
||||||
|
#undef HAVE_SYS_IOCTL_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/ipc.h> header file. */
|
||||||
|
#undef HAVE_SYS_IPC_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/mman.h> header file. */
|
||||||
|
#undef HAVE_SYS_MMAN_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/param.h> header file. */
|
||||||
|
#undef HAVE_SYS_PARAM_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/select.h> header file. */
|
||||||
|
#undef HAVE_SYS_SELECT_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/sendfile.h> header file. */
|
||||||
|
#undef HAVE_SYS_SENDFILE_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/shm.h> header file. */
|
||||||
|
#undef HAVE_SYS_SHM_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/socket.h> header file. */
|
||||||
|
#undef HAVE_SYS_SOCKET_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||||
|
#undef HAVE_SYS_STAT_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/time.h> header file. */
|
||||||
|
#undef HAVE_SYS_TIME_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||||
|
#undef HAVE_SYS_TYPES_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/un.h> header file. */
|
||||||
|
#undef HAVE_SYS_UN_H
|
||||||
|
|
||||||
|
/* Define to 1 if the system has the type `ucontext_t'. */
|
||||||
|
#undef HAVE_UCONTEXT_T
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <unistd.h> header file. */
|
||||||
|
#undef HAVE_UNISTD_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `usleep' function. */
|
||||||
|
#undef HAVE_USLEEP
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <values.h> header file. */
|
||||||
|
#undef HAVE_VALUES_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `vprintf' function. */
|
||||||
|
#undef HAVE_VPRINTF
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <zlib.h> header file. */
|
||||||
|
#undef HAVE_ZLIB_H
|
||||||
|
|
||||||
|
/* Define to 1 if the system has the type `_Bool'. */
|
||||||
|
#undef HAVE__BOOL
|
||||||
|
|
||||||
|
/* Expanded library directory */
|
||||||
|
#undef LIBDIR
|
||||||
|
|
||||||
|
/* Define to 1 if `lstat' dereferences a symlink specified with a trailing
|
||||||
|
slash. */
|
||||||
|
#undef LSTAT_FOLLOWS_SLASHED_SYMLINK
|
||||||
|
|
||||||
|
/* Name of package */
|
||||||
|
#undef PACKAGE
|
||||||
|
|
||||||
|
/* Define to the address where bug reports for this package should be sent. */
|
||||||
|
#undef PACKAGE_BUGREPORT
|
||||||
|
|
||||||
|
/* Define to the full name of this package. */
|
||||||
|
#undef PACKAGE_NAME
|
||||||
|
|
||||||
|
/* Define to the full name and version of this package. */
|
||||||
|
#undef PACKAGE_STRING
|
||||||
|
|
||||||
|
/* Define to the one symbol short name of this package. */
|
||||||
|
#undef PACKAGE_TARNAME
|
||||||
|
|
||||||
|
/* Define to the home page for this package. */
|
||||||
|
#undef PACKAGE_URL
|
||||||
|
|
||||||
|
/* Define to the version of this package. */
|
||||||
|
#undef PACKAGE_VERSION
|
||||||
|
|
||||||
|
/* Define as the return type of signal handlers (`int' or `void'). */
|
||||||
|
#undef RETSIGTYPE
|
||||||
|
|
||||||
|
/* Define to the type of arg 1 for `select'. */
|
||||||
|
#undef SELECT_TYPE_ARG1
|
||||||
|
|
||||||
|
/* Define to the type of args 2, 3 and 4 for `select'. */
|
||||||
|
#undef SELECT_TYPE_ARG234
|
||||||
|
|
||||||
|
/* Define to the type of arg 5 for `select'. */
|
||||||
|
#undef SELECT_TYPE_ARG5
|
||||||
|
|
||||||
|
/* If using the C implementation of alloca, define if you know the
|
||||||
|
direction of stack growth for your system; otherwise it will be
|
||||||
|
automatically deduced at runtime.
|
||||||
|
STACK_DIRECTION > 0 => grows toward higher addresses
|
||||||
|
STACK_DIRECTION < 0 => grows toward lower addresses
|
||||||
|
STACK_DIRECTION = 0 => direction of growth unknown */
|
||||||
|
#undef STACK_DIRECTION
|
||||||
|
|
||||||
|
/* Define to 1 if you have the ANSI C header files. */
|
||||||
|
#undef STDC_HEADERS
|
||||||
|
|
||||||
|
/* Expanded configuration directory */
|
||||||
|
#undef SYSCONFDIR
|
||||||
|
|
||||||
|
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
|
||||||
|
#undef TIME_WITH_SYS_TIME
|
||||||
|
|
||||||
|
/* Define to 1 if your <sys/time.h> declares `struct tm'. */
|
||||||
|
#undef TM_IN_SYS_TIME
|
||||||
|
|
||||||
|
/* Version number of package */
|
||||||
|
#undef VERSION
|
||||||
|
|
||||||
|
/* "Whether debug is switched off and compiled out" */
|
||||||
|
#undef ZM_DBG_OFF
|
||||||
|
|
||||||
|
/* "Whether to use mapped rather than shared memory" */
|
||||||
|
#undef ZM_MEM_MAPPED
|
||||||
|
|
||||||
|
/* "Whether crash tracing is switched off and compiled out" */
|
||||||
|
#undef ZM_NO_CRASHTRACE
|
||||||
|
|
||||||
|
/* Define to empty if `const' does not conform to ANSI C. */
|
||||||
|
#undef const
|
||||||
|
|
||||||
|
/* Define to `int' if <sys/types.h> doesn't define. */
|
||||||
|
#undef gid_t
|
||||||
|
|
||||||
|
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
||||||
|
calls it, or to nothing if 'inline' is not supported under any name. */
|
||||||
|
#ifndef __cplusplus
|
||||||
|
#undef inline
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define to rpl_malloc if the replacement function should be used. */
|
||||||
|
#undef malloc
|
||||||
|
|
||||||
|
/* Define to `int' if <sys/types.h> does not define. */
|
||||||
|
#undef mode_t
|
||||||
|
|
||||||
|
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||||
|
#undef size_t
|
||||||
|
|
||||||
|
/* Define to `int' if <sys/types.h> doesn't define. */
|
||||||
|
#undef uid_t
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,399 @@
|
||||||
|
AC_PREREQ(2.59)
|
||||||
|
AC_INIT(zm,1.25.0,[http://www.zoneminder.com/forums/ - Please check FAQ first],ZoneMinder,http://www.zoneminder.com/downloads.html)
|
||||||
|
AM_INIT_AUTOMAKE
|
||||||
|
AC_CONFIG_SRCDIR(src/zm.h)
|
||||||
|
AM_CONFIG_HEADER(config.h)
|
||||||
|
|
||||||
|
PATH_BUILD=`pwd`
|
||||||
|
AC_SUBST(PATH_BUILD)
|
||||||
|
TIME_BUILD=`date +'%s'`
|
||||||
|
AC_SUBST(TIME_BUILD)
|
||||||
|
|
||||||
|
AC_ARG_VAR(ZM_DB_HOST,[Hostname where ZoneMinder database located, default localhost])
|
||||||
|
AC_ARG_VAR(ZM_DB_NAME,[Name of ZoneMinder database, default zm])
|
||||||
|
AC_ARG_VAR(ZM_DB_USER,[Name of ZoneMinder database user, default zmuser])
|
||||||
|
AC_ARG_VAR(ZM_DB_PASS,[Password of ZoneMinder database user, default zmpass])
|
||||||
|
AC_ARG_VAR(ZM_SSL_LIB,[Library to use for ssl functions, default gnutls])
|
||||||
|
AC_ARG_VAR(ZM_MYSQL_ENGINE,[MySQL engine to use with database, default MyISAM])
|
||||||
|
AC_ARG_VAR(ZM_RUNDIR,[Location of transient process files, default /var/run/zm])
|
||||||
|
AC_ARG_VAR(ZM_TMPDIR,[Location of temporary files, default /tmp/zm])
|
||||||
|
AC_ARG_VAR(ZM_LOGDIR,[Location of generated log files, default /var/log/zm])
|
||||||
|
|
||||||
|
if test "$ZM_DB_HOST" == ""; then
|
||||||
|
AC_SUBST(ZM_DB_HOST,[localhost])
|
||||||
|
fi
|
||||||
|
if test "$ZM_DB_NAME" == ""; then
|
||||||
|
AC_SUBST(ZM_DB_NAME,[zm])
|
||||||
|
fi
|
||||||
|
if test "$ZM_DB_USER" == ""; then
|
||||||
|
AC_SUBST(ZM_DB_USER,[zmuser])
|
||||||
|
fi
|
||||||
|
if test "$ZM_DB_PASS" == ""; then
|
||||||
|
AC_SUBST(ZM_DB_PASS,[zmpass])
|
||||||
|
fi
|
||||||
|
if test "$ZM_SSL_LIB" == ""; then
|
||||||
|
AC_SUBST(ZM_SSL_LIB,gnutls)
|
||||||
|
fi
|
||||||
|
if test "$ZM_MYSQL_ENGINE" == ""; then
|
||||||
|
AC_SUBST(ZM_MYSQL_ENGINE,MyISAM)
|
||||||
|
fi
|
||||||
|
if test "$ZM_RUNDIR" == ""; then
|
||||||
|
AC_SUBST(ZM_RUNDIR,[/var/run/zm])
|
||||||
|
fi
|
||||||
|
if test "$ZM_TMPDIR" == ""; then
|
||||||
|
AC_SUBST(ZM_TMPDIR,[/tmp/zm])
|
||||||
|
fi
|
||||||
|
if test "$ZM_LOGDIR" == ""; then
|
||||||
|
AC_SUBST(ZM_LOGDIR,[/var/log/zm])
|
||||||
|
fi
|
||||||
|
|
||||||
|
LIB_ARCH=lib
|
||||||
|
AC_ARG_WITH(libarch,
|
||||||
|
[ --with-libarch=<lib> architecture library path to use, default lib],
|
||||||
|
[LIB_ARCH=$with_libarch],
|
||||||
|
AC_MSG_WARN([You can call configure with the --with-libarch option.
|
||||||
|
This tells configure where to find architecture specific libraries.
|
||||||
|
The default of 'lib' is usually ok but 64 bit machines may require lib64.
|
||||||
|
e.g. --with-libarch=lib or --with-libarch=lib64])
|
||||||
|
)
|
||||||
|
AC_SUBST(LIB_ARCH)
|
||||||
|
|
||||||
|
MYSQL_PREFIX=/usr
|
||||||
|
AC_ARG_WITH(mysql,
|
||||||
|
[ --with-mysql=<path> prefix of MySQL installation, default /usr],
|
||||||
|
[MYSQL_PREFIX=$with_mysql],
|
||||||
|
AC_MSG_WARN([You can call configure with the --with-mysql option.
|
||||||
|
This tells configure where to find the MySql C library and headers if configure cannot
|
||||||
|
locate them automatically.
|
||||||
|
e.g. --with-mysql=/usr/local or --with-mysql=/usr])
|
||||||
|
)
|
||||||
|
AC_SUBST(MYSQL_PREFIX)
|
||||||
|
MYSQL_LIBS="-L${MYSQL_PREFIX}/${LIB_ARCH}/mysql"
|
||||||
|
MYSQL_CFLAGS="-I${MYSQL_PREFIX}/include"
|
||||||
|
AC_SUBST(MYSQL_LIBS)
|
||||||
|
AC_SUBST(MYSQL_CFLAGS)
|
||||||
|
|
||||||
|
LDFLAGS="${MYSQL_LIBS} $LDFLAGS"
|
||||||
|
|
||||||
|
FFMPEG_PREFIX=/usr
|
||||||
|
AC_ARG_WITH(ffmpeg,
|
||||||
|
[ --with-ffmpeg=<path> prefix of ffmpeg root directory for libavcodec etc, default /usr],
|
||||||
|
[FFMPEG_PREFIX=$with_ffmpeg],
|
||||||
|
AC_MSG_WARN([You can call configure with the --with-ffmpeg option.
|
||||||
|
This tells configure where to find the ffmpeg root directory within which are the libavcodec
|
||||||
|
and libavformat files that can be used to build true MPEG streaming into ZoneMinder. Ensure that
|
||||||
|
your copy of ffmpeg has installed libraries as well as binaries (use 'make installlib'). If you
|
||||||
|
are using a local install of ffmpeg you may have to remove or rename a previous real installation
|
||||||
|
as the headers and libraries from that will probably be picked up before your local copy.
|
||||||
|
e.g. --with-ffmpeg=/usr/local])
|
||||||
|
)
|
||||||
|
AC_SUBST(FFMPEG_PREFIX)
|
||||||
|
FFMPEG_LIBS="-L${FFMPEG_PREFIX}/${LIB_ARCH}"
|
||||||
|
FFMPEG_CFLAGS="-I${FFMPEG_PREFIX}/include -D__STDC_CONSTANT_MACROS"
|
||||||
|
AC_SUBST(FFMPEG_LIBS)
|
||||||
|
AC_SUBST(FFMPEG_CFLAGS)
|
||||||
|
|
||||||
|
LDFLAGS="${FFMPEG_LIBS} $LDFLAGS"
|
||||||
|
CFLAGS="${FFMPEG_CFLAGS} $CFLAGS"
|
||||||
|
CPPFLAGS="${FFMPEG_CFLAGS} $CPPFLAGS"
|
||||||
|
|
||||||
|
EXTRA_LIBS=
|
||||||
|
AC_ARG_WITH(extralibs,
|
||||||
|
[ --with-extralibs="<libs>" string containing extra libraries to pass to link, default empty],
|
||||||
|
[EXTRA_LIBS=$with_extralibs],
|
||||||
|
AC_MSG_WARN([You can call configure with the --with-extralibs option.
|
||||||
|
Ordinarily you will need to use this option only when your copy of ffmpeg has been built
|
||||||
|
with support for additional formats and you would use this option to detail which additional
|
||||||
|
libraries ffmpeg was built with so that it is able to link successfully with ZoneMinder.
|
||||||
|
You will need to wrap this option in quotes if it contains any spaces.
|
||||||
|
e.g. --with-extralibs="-lmp3lame"])
|
||||||
|
)
|
||||||
|
AC_SUBST(EXTRA_LIBS)
|
||||||
|
|
||||||
|
LDFLAGS="$LDFLAGS ${EXTRA_LIBS}"
|
||||||
|
|
||||||
|
AC_ARG_WITH(webdir,
|
||||||
|
[ --with-webdir=<path> prefix of web directory],
|
||||||
|
[WEB_PREFIX=$with_webdir],
|
||||||
|
AC_MSG_ERROR([You must call configure with the --with-webdir option.
|
||||||
|
This tells configure where to install PHP and web files and scripts.
|
||||||
|
e.g. --with-webdir=/var/www/html or --with-webdir=/www/vhtdocs/<site>])
|
||||||
|
)
|
||||||
|
AC_SUBST(WEB_PREFIX)
|
||||||
|
|
||||||
|
AC_ARG_WITH(cgidir,
|
||||||
|
[ --with-cgidir=<path> prefix of cgi directory],
|
||||||
|
[CGI_PREFIX=$with_cgidir],
|
||||||
|
AC_MSG_ERROR([You must call configure with the --with-cgidir option.
|
||||||
|
This tells configure where to install cgi files and scripts.
|
||||||
|
e.g. --with-cgidir=/var/www/cgi-bin or --with-webdir=/www/vhtdocs/<site>/cgi-bin])
|
||||||
|
)
|
||||||
|
AC_SUBST(CGI_PREFIX)
|
||||||
|
|
||||||
|
WEB_USER=apache
|
||||||
|
AC_ARG_WITH(webuser,
|
||||||
|
[ --with-webuser=<user> name of web user, default apache],
|
||||||
|
[WEB_USER=$with_webuser],
|
||||||
|
AC_MSG_WARN([You can call configure with the --with-webuser option.
|
||||||
|
This tells configure what the user name of the web user is if it is not the default of 'apache'.
|
||||||
|
e.g. --with-webuser=apache or --with-webuser=web])
|
||||||
|
)
|
||||||
|
AC_SUBST(WEB_USER)
|
||||||
|
|
||||||
|
WEB_GROUP=apache
|
||||||
|
AC_ARG_WITH(webgroup,
|
||||||
|
[ --with-webgroup=<group> name of web group, default apache],
|
||||||
|
[WEB_GROUP=$with_webgroup],
|
||||||
|
AC_MSG_WARN([You can call configure with the --with-webgroup option.
|
||||||
|
This tells configure what the group name of the web group is if it is not the default of 'apache'.
|
||||||
|
e.g. --with-webgroup=apache or --with-webgroup=web])
|
||||||
|
)
|
||||||
|
AC_SUBST(WEB_GROUP)
|
||||||
|
|
||||||
|
WEB_HOST=zm.local
|
||||||
|
AC_ARG_WITH(webhost,
|
||||||
|
[ --with-webhost=<hostname> name of web hostname, default zm.local],
|
||||||
|
[WEB_HOST=$with_webhost],
|
||||||
|
AC_MSG_WARN([You can call configure with the --with-webhost option.
|
||||||
|
This tells configure what the host name is for name based virtual hosting. This is only used to populate the sample web/zmHttpd.conf file.
|
||||||
|
e.g. --with-webhost=zm.localdomain])
|
||||||
|
)
|
||||||
|
AC_SUBST(WEB_HOST)
|
||||||
|
|
||||||
|
ENABLE_DEBUG=yes
|
||||||
|
AC_ARG_ENABLE(debug,
|
||||||
|
[ --enable-debug=<yes|no> enable or disable debug, default enabled],
|
||||||
|
[ENABLE_DEBUG=$enable_debug],
|
||||||
|
AC_MSG_WARN([You can call configure with the --enable-debug=<yes|no> or --disable-debug option.
|
||||||
|
This tells configure whether to compile ZoneMinder with debug included. Although debug is included
|
||||||
|
by default it is not output unless explicitly switched on elsewhere. These checks may induce a
|
||||||
|
small penalty on performance and if you are after squeezing the maximum possible performance out
|
||||||
|
of ZoneMinder you may use this switch to prevent debug from being compiled in.
|
||||||
|
e.g. --enable-debug=yes or --disable-debug])
|
||||||
|
)
|
||||||
|
if test "$ENABLE_DEBUG" != "yes"; then
|
||||||
|
AC_DEFINE(ZM_DBG_OFF,1,"Whether debug is switched off and compiled out")
|
||||||
|
fi
|
||||||
|
|
||||||
|
ENABLE_CRASHTRACE=yes
|
||||||
|
AC_ARG_ENABLE(crashtrace,
|
||||||
|
[ --enable-crashtrace=<yes|no> enable or disabled crash tracing, default enabled],
|
||||||
|
[ENABLE_CRASHTRACE=$enable_crashtrace],
|
||||||
|
AC_MSG_WARN([You can call configure with the --enable-crashtrace=<yes|no> or --disable-crashtrace option.
|
||||||
|
This tells configure whether to compile ZoneMinder with crash tracing included. This allows a
|
||||||
|
dump of the stack trace when a ZoneMinder binary crashes or is killed by an unexpected signal.
|
||||||
|
Although this should work on most systems it does rely on un(or loosely) documented features and
|
||||||
|
so should be regarded as experimental. If you experience problems compiling zm_signal.cpp or
|
||||||
|
ZoneMinder binaries fail to shut down correctly then you should probably disable this feature.
|
||||||
|
e.g. --enable-crashtrace=yes or --disable-crashtrace])
|
||||||
|
)
|
||||||
|
if test "$ENABLE_CRASHTRACE" != "yes"; then
|
||||||
|
AC_DEFINE(ZM_NO_CRASHTRACE,1,"Whether crash tracing is switched off and compiled out")
|
||||||
|
fi
|
||||||
|
|
||||||
|
ENABLE_MMAP=yes
|
||||||
|
AC_ARG_ENABLE(mmap,
|
||||||
|
[ --enable-mmap=<yes|no> enable or disabled mapped memory versus shared memory, default mapped],
|
||||||
|
[ENABLE_MMAP=$enable_mmap],
|
||||||
|
AC_MSG_WARN([You can call configure with the --enable-mmap=<yes|no> or --disable-mmap option.
|
||||||
|
This tells configure whether to compile ZoneMinder with mmap support rather than IPC shared
|
||||||
|
memory. This is a feature that uses memory mapped into files which all processes can share.
|
||||||
|
Memory mapping requires less configuration and is more flexible than shared memory but may
|
||||||
|
slow down your system unless the mapped files are configured to reside on a fast or RAM based
|
||||||
|
filesystem which will normally be the case by default.
|
||||||
|
e.g. --enable-mmap=yes or --disable-mmap])
|
||||||
|
)
|
||||||
|
if test "$ENABLE_MMAP" == "yes"; then
|
||||||
|
AC_DEFINE(ZM_MEM_MAPPED,1,"Whether to use mapped rather than shared memory")
|
||||||
|
else
|
||||||
|
AC_DEFINE(ZM_MEM_MAPPED,0,"Whether to use mapped rather than shared memory")
|
||||||
|
fi
|
||||||
|
AC_SUBST(ENABLE_MMAP)
|
||||||
|
|
||||||
|
# Compiler
|
||||||
|
AC_LANG_CPLUSPLUS
|
||||||
|
|
||||||
|
# Checks for programs.
|
||||||
|
AC_PROG_CXX
|
||||||
|
AC_PROG_CC
|
||||||
|
AC_PROG_INSTALL
|
||||||
|
AC_PROG_LN_S
|
||||||
|
AC_PROG_RANLIB
|
||||||
|
AC_PROG_MAKE_SET
|
||||||
|
|
||||||
|
# Checks for typedefs, structures, and compiler characteristics.
|
||||||
|
AC_HEADER_STDBOOL
|
||||||
|
AC_C_CONST
|
||||||
|
AC_TYPE_UID_T
|
||||||
|
AC_C_INLINE
|
||||||
|
AC_TYPE_MODE_T
|
||||||
|
AC_TYPE_SIZE_T
|
||||||
|
AC_HEADER_TIME
|
||||||
|
AC_STRUCT_TM
|
||||||
|
AC_TYPE_SIGNAL
|
||||||
|
|
||||||
|
AC_CHECK_TYPES(siginfo_t,,,[#include <signal.h>])
|
||||||
|
AC_CHECK_TYPES(struct sigcontext,,,[#include <signal.h>])
|
||||||
|
AC_CHECK_MEMBERS([struct sigcontext.eip],,,[#include <signal.h>])
|
||||||
|
AC_CHECK_TYPES(ucontext_t,,,[#include <signal.h>])
|
||||||
|
|
||||||
|
# Checks for library functions.
|
||||||
|
AC_PROG_GCC_TRADITIONAL
|
||||||
|
AC_FUNC_MALLOC
|
||||||
|
AC_FUNC_MMAP
|
||||||
|
AC_FUNC_SELECT_ARGTYPES
|
||||||
|
AC_FUNC_STAT
|
||||||
|
AC_FUNC_STRFTIME
|
||||||
|
AC_FUNC_STRTOD
|
||||||
|
AC_FUNC_VPRINTF
|
||||||
|
AC_CHECK_FUNCS([gethostbyname gethostname gettimeofday memmove memset mkdir munmap posix_memalign putenv select sendfile socket sqrt strcasecmp strchr strcspn strerror strncasecmp strrchr strsignal strspn strstr strtol strtoull])
|
||||||
|
AC_CHECK_FUNCS([syscall sleep usleep ioctl ioctlsocket sigaction])
|
||||||
|
|
||||||
|
# Other programs
|
||||||
|
AC_CHECK_PROG(OPT_FFMPEG,ffmpeg,yes,no)
|
||||||
|
AC_PATH_PROG(PATH_FFMPEG,ffmpeg)
|
||||||
|
AC_CHECK_PROG(OPT_NETPBM,pnmscale,yes,no)
|
||||||
|
AC_PATH_PROG(PATH_NETPBM,pnmscale)
|
||||||
|
if test "$OPT_NETPBM" == "yes"; then
|
||||||
|
PATH_NETPBM=`dirname $PATH_NETPBM`
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Checks for libraries.
|
||||||
|
AC_CHECK_LIB(mysqlclient,mysql_init,,AC_MSG_ERROR(zm requires libmysqlclient.a))
|
||||||
|
AC_CHECK_LIB(jpeg,jpeg_start_compress,,AC_MSG_ERROR(zm requires libjpeg.a))
|
||||||
|
AC_CHECK_LIB(pthread,pthread_create,,AC_MSG_ERROR(zm requires libpthread.a))
|
||||||
|
AC_CHECK_LIB(dl,dlsym,,AC_MSG_ERROR(zm requires libdl.a))
|
||||||
|
if test "$ZM_SSL_LIB" == "openssl"; then
|
||||||
|
AC_CHECK_HEADERS(openssl/md5.h,,AC_MSG_WARN(zm requires openssl/md5.h header to be installed for openssl),)
|
||||||
|
AC_CHECK_LIB(crypto,MD5,,AC_MSG_WARN([libcrypto.a is required for authenticated streaming - use ZM_SSL_LIB option to select gnutls instead]))
|
||||||
|
else
|
||||||
|
AC_CHECK_HEADERS(gnutls/openssl.h,AC_SUBST(ZM_HAS_GNUTLS_OPENSSL,1),AC_SUBST(ZM_HAS_GNUTLS_OPENSSL,0),)
|
||||||
|
AC_CHECK_HEADERS(gnutls/gnutls.h,AC_SUBST(ZM_HAS_GNUTLS,1),AC_SUBST(ZM_HAS_GNUTLS,0),)
|
||||||
|
if test "$ZM_HAS_GNUTLS_OPENSSL" == "0" && test "$ZM_HAS_GNUTLS" == "0"; then
|
||||||
|
AC_MSG_WARN(gnutls is required for authenticated streaming - use ZM_SSL_LIB option to select openssl instead)
|
||||||
|
fi
|
||||||
|
AC_CHECK_HEADERS(gcrypt.h,,AC_MSG_WARN(zm requires libgcrypt header to be installed for gnutls),)
|
||||||
|
AC_CHECK_LIB(gcrypt,gcry_check_version,,AC_MSG_WARN([libgcrypt.a is required for authenticated streaming - use ZM_SSL_LIB option to select openssl instead]))
|
||||||
|
AC_CHECK_LIB(gnutls,gnutls_fingerprint,,AC_MSG_WARN([libgnutls.a is required for authenticated streaming - use ZM_SSL_LIB option to select openssl instead]))
|
||||||
|
fi
|
||||||
|
AC_CHECK_LIB(pcre,pcre_compile,,AC_MSG_WARN(libpcre.a may be required for remote/network camera support))
|
||||||
|
AC_CHECK_LIB(z,zlibVersion)
|
||||||
|
AC_CHECK_LIB(x264,x264_predict_16x16_init)
|
||||||
|
AC_CHECK_LIB(avutil,av_malloc,,AC_MSG_WARN(libavutil.a may be required for MPEG streaming))
|
||||||
|
# Don't bother to warn about this one
|
||||||
|
AC_CHECK_LIB(avcore,av_image_copy,,)
|
||||||
|
AC_CHECK_LIB(avcodec,avcodec_version,,AC_MSG_WARN(libavcodec.a is required for MPEG streaming))
|
||||||
|
AC_CHECK_LIB(avformat,avformat_version,,AC_MSG_WARN(libavformat.a is required for MPEG streaming))
|
||||||
|
#AC_CHECK_LIB(avcodec,avcodec_open,,AC_MSG_WARN(libavcodec.a is required for MPEG streaming))
|
||||||
|
#AC_CHECK_LIB(avformat,av_new_stream,,AC_MSG_WARN(libavformat.a is required for MPEG streaming))
|
||||||
|
AC_CHECK_LIB(avdevice,avdevice_register_all,,AC_MSG_WARN(libavdevice.a may be required for MPEG streaming))
|
||||||
|
AC_CHECK_LIB(swscale,sws_scale,,,-lswscale)
|
||||||
|
AC_CHECK_LIB(bz2,BZ2_bzCompress,,AC_MSG_WARN(zm requires libbz2.a for recent versions of ffmpeg))
|
||||||
|
AC_CHECK_LIB(z,compress,,)
|
||||||
|
|
||||||
|
# Checks for header files.
|
||||||
|
AC_FUNC_ALLOCA
|
||||||
|
AC_HEADER_STDC
|
||||||
|
AC_CHECK_HEADERS([fcntl.h limits.h memory.h stddef.h stdlib.h string.h strings.h sys/param.h sys/time.h syslog.h unistd.h values.h])
|
||||||
|
AC_CHECK_HEADERS([netdb.h netinet/in.h arpa/inet.h sys/ioctl.h sys/socket.h sys/un.h glob.h sys/sendfile.h])
|
||||||
|
AC_CHECK_HEADERS(execinfo.h,,,)
|
||||||
|
AC_CHECK_HEADERS(syscall.h,,,)
|
||||||
|
AC_CHECK_HEADERS(pthread.h,,,)
|
||||||
|
AC_CHECK_HEADERS(linux/videodev.h,AC_SUBST(ZM_HAS_V4L1,1),AC_SUBST(ZM_HAS_V4L1,0),)
|
||||||
|
AC_CHECK_HEADERS(linux/videodev2.h,AC_SUBST(ZM_HAS_V4L2,1),AC_SUBST(ZM_HAS_V4L2,0),)
|
||||||
|
if test "$ZM_HAS_V4L1" == "1" || test "$ZM_HAS_V4L2" == "1"; then
|
||||||
|
AC_SUBST(ZM_HAS_V4L,1)
|
||||||
|
else
|
||||||
|
AC_SUBST(ZM_HAS_V4L,0)
|
||||||
|
AC_MSG_WARN(zm requires Video4Linux or Video4Linux2 to be installed for analog or USB camera support)
|
||||||
|
fi
|
||||||
|
AC_CHECK_HEADERS(jpeglib.h,,AC_MSG_ERROR(zm requires libjpeg headers to be installed),)
|
||||||
|
AC_CHECK_HEADERS(mysql/mysql.h,,AC_MSG_ERROR(zm requires MySQL headers - check that MySQL development packages are installed),)
|
||||||
|
AC_CHECK_HEADERS(libavutil/avutil.h,,,)
|
||||||
|
AC_CHECK_HEADERS(libavcodec/avcodec.h,,,)
|
||||||
|
AC_CHECK_HEADERS(libavformat/avformat.h,,,)
|
||||||
|
AC_CHECK_HEADERS(libswscale/swscale.h,,,)
|
||||||
|
AC_CHECK_HEADERS(pcre/pcre.h,AC_SUBST(ZM_PCRE,"1"),,)
|
||||||
|
AC_CHECK_HEADERS(pcre.h,AC_SUBST(ZM_PCRE,"1"),,)
|
||||||
|
if test "$ENABLE_MMAP" == "yes"; then
|
||||||
|
AC_CHECK_HEADERS(sys/mman.h,,,)
|
||||||
|
AC_CHECK_HEADERS(fcntl.h,,,)
|
||||||
|
else
|
||||||
|
AC_CHECK_HEADERS(sys/ipc.h,,,)
|
||||||
|
AC_CHECK_HEADERS(sys/shm.h,,,)
|
||||||
|
fi
|
||||||
|
AC_CHECK_HEADERS(zlib.h,,,)
|
||||||
|
|
||||||
|
AC_CHECK_DECLS(round,,,[#include <math.h>])
|
||||||
|
if test "$ZM_SSL_LIB" == "openssl"; then
|
||||||
|
AC_CHECK_DECLS(MD5,,AC_MSG_ERROR([zm requires openssl/md5.h - use ZM_SSL_LIB option to select gnutls instead]),[#include <stdlib.h>
|
||||||
|
#include <openssl/md5.h>])
|
||||||
|
else
|
||||||
|
if test "$ZM_HAS_GNUTLS_OPENSSL" == "1"; then
|
||||||
|
AC_CHECK_DECLS(MD5,,AC_MSG_ERROR([zm requires gnutls/openssl.h - use ZM_SSL_LIB option to select openssl instead]),[#include <stdlib.h>
|
||||||
|
#include <gnutls/openssl.h>])
|
||||||
|
else
|
||||||
|
AC_CHECK_DECLS(gnutls_fingerprint,,AC_MSG_ERROR([zm requires gnutls/gnutls.h - use ZM_SSL_LIB option to select openssl instead]),[#include <stdlib.h>
|
||||||
|
#include <gnutls/gnutls.h>])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
AC_CHECK_DECLS(backtrace,,,[#include <execinfo.h>])
|
||||||
|
|
||||||
|
AC_SUBST(LDFLAGS)
|
||||||
|
|
||||||
|
AC_PROG_PERL_VERSION(5.6.0)
|
||||||
|
|
||||||
|
# Compulsory perl modules
|
||||||
|
AC_PROG_PERL_MODULES(Sys::Syslog,,AC_MSG_ERROR(zm requires SYS:Syslog))
|
||||||
|
AC_PROG_PERL_MODULES(DBI,,AC_MSG_ERROR(zm requires DBI))
|
||||||
|
AC_PROG_PERL_MODULES(DBD::mysql,,AC_MSG_ERROR(zm requires DBD::mysql))
|
||||||
|
AC_PROG_PERL_MODULES(Getopt::Long,,AC_MSG_ERROR(zm requires Getopt::Long))
|
||||||
|
AC_PROG_PERL_MODULES(Time::HiRes,,AC_MSG_ERROR(zm requires Time::HiRes))
|
||||||
|
AC_PROG_PERL_MODULES(Date::Manip,,AC_MSG_ERROR(zm requires Date::Manip))
|
||||||
|
AC_PROG_PERL_MODULES(LWP::UserAgent,,AC_MSG_ERROR(zm requires LWP::UserAgent))
|
||||||
|
AC_PROG_PERL_MODULES(ExtUtils::MakeMaker,,AC_MSG_ERROR(zm requires ExtUtils::MakeMaker))
|
||||||
|
if test "$ENABLE_MMAP" == "yes"; then
|
||||||
|
AC_PROG_PERL_MODULES(Sys::Mmap,,AC_MSG_ERROR(zm requires Sys::Mmap for mapped memory - set --enable-mmap=no to use IPC shared memory instead))
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Optional perl modules
|
||||||
|
AC_PROG_PERL_MODULES(Module::Load,,AC_MSG_WARN(Module::Load is required for PTZ camera control))
|
||||||
|
AC_PROG_PERL_MODULES(Device::SerialPort,,AC_MSG_WARN(Device::SerialPort is required for RS232/RS485 PTZ camera control))
|
||||||
|
AC_PROG_PERL_MODULES(Net::FTP,,AC_MSG_WARN(Net::FTP is required for automatic event uploading using ftp))
|
||||||
|
AC_PROG_PERL_MODULES(Net::SFTP::Foreign,,AC_MSG_WARN(Net::SFTP::Foreign is required for automatic event uploading using sftp))
|
||||||
|
AC_PROG_PERL_MODULES(Expect,,AC_MSG_WARN(Expect is required for automatic event uploading using sftp))
|
||||||
|
AC_PROG_PERL_MODULES(Archive::Tar,,AC_MSG_WARN(Archive::Tar may be required for automatic event uploading))
|
||||||
|
AC_PROG_PERL_MODULES(Archive::Zip,,AC_MSG_WARN(Archive::Zip may be required for automatic event uploading))
|
||||||
|
AC_PROG_PERL_MODULES(Net::SMTP,,AC_MSG_WARN(Net::SMTP may be required for automatic event email notification))
|
||||||
|
AC_PROG_PERL_MODULES(MIME::Lite,,AC_MSG_WARN(MIME::Lite may be required for automatic event email notification))
|
||||||
|
AC_PROG_PERL_MODULES(MIME::Entity,,AC_MSG_WARN(MIME::Entity may be required for automatic event email notification))
|
||||||
|
AC_PROG_PERL_MODULES(X10::ActiveHome,,AC_MSG_WARN(X10::ActiveHome is required for X.10 support))
|
||||||
|
|
||||||
|
AC_DEFINE_DIR([BINDIR],[bindir],[Expanded binary directory])
|
||||||
|
AC_DEFINE_DIR([LIBDIR],[libdir],[Expanded library directory])
|
||||||
|
AC_SUBST(ZM_PID,"$ZM_RUNDIR/zm.pid")
|
||||||
|
AC_DEFINE_DIR([SYSCONFDIR],[sysconfdir],[Expanded configuration directory])
|
||||||
|
AC_SUBST(ZM_CONFIG,"$SYSCONFDIR/zm.conf")
|
||||||
|
|
||||||
|
# Slight hack for non-standard perl install paths
|
||||||
|
if test "$prefix" != "NONE"; then
|
||||||
|
PERL_SITE_PREFIX=`perl -V:siteprefix | sed -e "s/.*='\(.*\)';/\1/"`
|
||||||
|
PERL_SITE_LIB=`perl -V:installsitelib | sed -e "s/.*='\(.*\)';/\1/"`
|
||||||
|
PERL_LIB_PATH=`echo $PERL_SITE_LIB | sed -e "s|^$PERL_SITE_PREFIX||"`
|
||||||
|
EXTRA_PERL_LIB="use lib '$prefix$PERL_LIB_PATH'; # Include custom perl install path"
|
||||||
|
PERL_MM_PARMS="PREFIX=$prefix"
|
||||||
|
else
|
||||||
|
EXTRA_PERL_LIB="# Include from system perl paths only"
|
||||||
|
PERL_MM_PARMS=
|
||||||
|
fi
|
||||||
|
AC_SUBST(PERL_MM_PARMS)
|
||||||
|
AC_SUBST(EXTRA_PERL_LIB)
|
||||||
|
|
||||||
|
AC_CONFIG_FILES([Makefile zm.conf zmconfgen.pl db/Makefile db/zm_create.sql misc/Makefile misc/apache.conf misc/logrotate.conf misc/syslog.conf scripts/Makefile scripts/zm scripts/zmaudit.pl scripts/zmcontrol.pl scripts/zmdc.pl scripts/zmfilter.pl scripts/zmpkg.pl scripts/zmtrack.pl scripts/zmtrigger.pl scripts/zmupdate.pl scripts/zmvideo.pl scripts/zmwatch.pl scripts/zmx10.pl scripts/zmdbbackup scripts/zmdbrestore scripts/zmeventdump scripts/zmlogrotate.conf scripts/ZoneMinder/lib/ZoneMinder/Base.pm scripts/ZoneMinder/lib/ZoneMinder/Config.pm scripts/ZoneMinder/lib/ZoneMinder/Memory.pm scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm src/Makefile src/zm_config.h web/Makefile web/ajax/Makefile web/css/Makefile web/graphics/Makefile web/includes/Makefile web/includes/config.php web/js/Makefile web/lang/Makefile web/skins/Makefile web/skins/classic/Makefile web/skins/classic/ajax/Makefile web/skins/classic/css/Makefile web/skins/classic/graphics/Makefile web/skins/classic/includes/Makefile web/skins/classic/js/Makefile web/skins/classic/lang/Makefile web/skins/classic/views/Makefile web/skins/classic/views/css/Makefile web/skins/classic/views/js/Makefile web/skins/mobile/Makefile web/skins/mobile/ajax/Makefile web/skins/mobile/css/Makefile web/skins/mobile/graphics/Makefile web/skins/mobile/includes/Makefile web/skins/mobile/lang/Makefile web/skins/mobile/views/Makefile web/skins/mobile/views/css/Makefile web/tools/Makefile web/tools/mootools/Makefile web/views/Makefile web/skins/xml/Makefile web/skins/xml/views/Makefile web/skins/xml/includes/Makefile])
|
||||||
|
|
||||||
|
# Create the definitions for compilation and defaults for the database
|
||||||
|
AC_CONFIG_COMMANDS([src/zm_config_defines.h],[perl ./zmconfgen.pl])
|
||||||
|
# Manually generate the perl Makefile maker
|
||||||
|
AC_CONFIG_COMMANDS([scripts/ZoneMinder/Makefile],[(cd scripts/ZoneMinder; echo "perl Makefile.PL $PERL_MM_PARMS"; perl Makefile.PL $PERL_MM_PARMS)],[PERL_MM_PARMS=$PERL_MM_PARMS])
|
||||||
|
|
||||||
|
AC_OUTPUT
|
|
@ -0,0 +1,44 @@
|
||||||
|
AUTOMAKE_OPTIONS = gnu
|
||||||
|
|
||||||
|
EXTRA_DIST = \
|
||||||
|
zm_create.sql.in \
|
||||||
|
zm_update-0.0.1.sql \
|
||||||
|
zm_update-0.9.7.sql \
|
||||||
|
zm_update-0.9.8.sql \
|
||||||
|
zm_update-0.9.9.sql \
|
||||||
|
zm_update-0.9.10.sql \
|
||||||
|
zm_update-0.9.11.sql \
|
||||||
|
zm_update-0.9.12.sql \
|
||||||
|
zm_update-0.9.13.sql \
|
||||||
|
zm_update-0.9.15.sql \
|
||||||
|
zm_update-0.9.16.sql \
|
||||||
|
zm_update-1.17.1.sql \
|
||||||
|
zm_update-1.17.2.sql \
|
||||||
|
zm_update-1.18.0.sql \
|
||||||
|
zm_update-1.18.1.sql \
|
||||||
|
zm_update-1.19.0.sql \
|
||||||
|
zm_update-1.19.1.sql \
|
||||||
|
zm_update-1.19.2.sql \
|
||||||
|
zm_update-1.19.3.sql \
|
||||||
|
zm_update-1.19.4.sql \
|
||||||
|
zm_update-1.19.5.sql \
|
||||||
|
zm_update-1.20.0.sql \
|
||||||
|
zm_update-1.20.1.sql \
|
||||||
|
zm_update-1.21.0.sql \
|
||||||
|
zm_update-1.21.1.sql \
|
||||||
|
zm_update-1.21.2.sql \
|
||||||
|
zm_update-1.21.3.sql \
|
||||||
|
zm_update-1.21.4.sql \
|
||||||
|
zm_update-1.22.0.sql \
|
||||||
|
zm_update-1.22.1.sql \
|
||||||
|
zm_update-1.22.2.sql \
|
||||||
|
zm_update-1.22.3.sql \
|
||||||
|
zm_update-1.23.0.sql \
|
||||||
|
zm_update-1.23.1.sql \
|
||||||
|
zm_update-1.23.2.sql \
|
||||||
|
zm_update-1.23.3.sql \
|
||||||
|
zm_update-1.24.0.sql \
|
||||||
|
zm_update-1.24.1.sql \
|
||||||
|
zm_update-1.24.2.sql \
|
||||||
|
zm_update-1.24.3.sql \
|
||||||
|
zm_update-1.24.4.sql
|
|
@ -0,0 +1,439 @@
|
||||||
|
# Makefile.in generated by automake 1.11.6 from Makefile.am.
|
||||||
|
# @configure_input@
|
||||||
|
|
||||||
|
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||||
|
# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
|
||||||
|
# Foundation, Inc.
|
||||||
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||||
|
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
# PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
@SET_MAKE@
|
||||||
|
VPATH = @srcdir@
|
||||||
|
am__make_dryrun = \
|
||||||
|
{ \
|
||||||
|
am__dry=no; \
|
||||||
|
case $$MAKEFLAGS in \
|
||||||
|
*\\[\ \ ]*) \
|
||||||
|
echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
|
||||||
|
| grep '^AM OK$$' >/dev/null || am__dry=yes;; \
|
||||||
|
*) \
|
||||||
|
for am__flg in $$MAKEFLAGS; do \
|
||||||
|
case $$am__flg in \
|
||||||
|
*=*|--*) ;; \
|
||||||
|
*n*) am__dry=yes; break;; \
|
||||||
|
esac; \
|
||||||
|
done;; \
|
||||||
|
esac; \
|
||||||
|
test $$am__dry = yes; \
|
||||||
|
}
|
||||||
|
pkgdatadir = $(datadir)/@PACKAGE@
|
||||||
|
pkgincludedir = $(includedir)/@PACKAGE@
|
||||||
|
pkglibdir = $(libdir)/@PACKAGE@
|
||||||
|
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||||
|
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||||
|
install_sh_DATA = $(install_sh) -c -m 644
|
||||||
|
install_sh_PROGRAM = $(install_sh) -c
|
||||||
|
install_sh_SCRIPT = $(install_sh) -c
|
||||||
|
INSTALL_HEADER = $(INSTALL_DATA)
|
||||||
|
transform = $(program_transform_name)
|
||||||
|
NORMAL_INSTALL = :
|
||||||
|
PRE_INSTALL = :
|
||||||
|
POST_INSTALL = :
|
||||||
|
NORMAL_UNINSTALL = :
|
||||||
|
PRE_UNINSTALL = :
|
||||||
|
POST_UNINSTALL = :
|
||||||
|
subdir = db
|
||||||
|
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
|
||||||
|
$(srcdir)/zm_create.sql.in
|
||||||
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
|
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||||
|
$(top_srcdir)/configure.ac
|
||||||
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
|
$(ACLOCAL_M4)
|
||||||
|
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||||
|
CONFIG_HEADER = $(top_builddir)/config.h
|
||||||
|
CONFIG_CLEAN_FILES = zm_create.sql
|
||||||
|
CONFIG_CLEAN_VPATH_FILES =
|
||||||
|
SOURCES =
|
||||||
|
DIST_SOURCES =
|
||||||
|
am__can_run_installinfo = \
|
||||||
|
case $$AM_UPDATE_INFO_DIR in \
|
||||||
|
n|no|NO) false;; \
|
||||||
|
*) (install-info --version) >/dev/null 2>&1;; \
|
||||||
|
esac
|
||||||
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
ACLOCAL = @ACLOCAL@
|
||||||
|
ALLOCA = @ALLOCA@
|
||||||
|
AMTAR = @AMTAR@
|
||||||
|
AUTOCONF = @AUTOCONF@
|
||||||
|
AUTOHEADER = @AUTOHEADER@
|
||||||
|
AUTOMAKE = @AUTOMAKE@
|
||||||
|
AWK = @AWK@
|
||||||
|
BINDIR = @BINDIR@
|
||||||
|
CC = @CC@
|
||||||
|
CCDEPMODE = @CCDEPMODE@
|
||||||
|
CFLAGS = @CFLAGS@
|
||||||
|
CGI_PREFIX = @CGI_PREFIX@
|
||||||
|
CPPFLAGS = @CPPFLAGS@
|
||||||
|
CXX = @CXX@
|
||||||
|
CXXCPP = @CXXCPP@
|
||||||
|
CXXDEPMODE = @CXXDEPMODE@
|
||||||
|
CXXFLAGS = @CXXFLAGS@
|
||||||
|
CYGPATH_W = @CYGPATH_W@
|
||||||
|
DEFS = @DEFS@
|
||||||
|
DEPDIR = @DEPDIR@
|
||||||
|
ECHO_C = @ECHO_C@
|
||||||
|
ECHO_N = @ECHO_N@
|
||||||
|
ECHO_T = @ECHO_T@
|
||||||
|
EGREP = @EGREP@
|
||||||
|
ENABLE_MMAP = @ENABLE_MMAP@
|
||||||
|
EXEEXT = @EXEEXT@
|
||||||
|
EXTRA_LIBS = @EXTRA_LIBS@
|
||||||
|
EXTRA_PERL_LIB = @EXTRA_PERL_LIB@
|
||||||
|
FFMPEG_CFLAGS = @FFMPEG_CFLAGS@
|
||||||
|
FFMPEG_LIBS = @FFMPEG_LIBS@
|
||||||
|
FFMPEG_PREFIX = @FFMPEG_PREFIX@
|
||||||
|
GREP = @GREP@
|
||||||
|
INSTALL = @INSTALL@
|
||||||
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
|
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||||
|
LDFLAGS = @LDFLAGS@
|
||||||
|
LIBDIR = @LIBDIR@
|
||||||
|
LIBOBJS = @LIBOBJS@
|
||||||
|
LIBS = @LIBS@
|
||||||
|
LIB_ARCH = @LIB_ARCH@
|
||||||
|
LN_S = @LN_S@
|
||||||
|
LTLIBOBJS = @LTLIBOBJS@
|
||||||
|
MAKEINFO = @MAKEINFO@
|
||||||
|
MKDIR_P = @MKDIR_P@
|
||||||
|
MYSQL_CFLAGS = @MYSQL_CFLAGS@
|
||||||
|
MYSQL_LIBS = @MYSQL_LIBS@
|
||||||
|
MYSQL_PREFIX = @MYSQL_PREFIX@
|
||||||
|
OBJEXT = @OBJEXT@
|
||||||
|
OPT_FFMPEG = @OPT_FFMPEG@
|
||||||
|
OPT_NETPBM = @OPT_NETPBM@
|
||||||
|
PACKAGE = @PACKAGE@
|
||||||
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
|
PACKAGE_NAME = @PACKAGE_NAME@
|
||||||
|
PACKAGE_STRING = @PACKAGE_STRING@
|
||||||
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
|
PACKAGE_URL = @PACKAGE_URL@
|
||||||
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
|
PATH_BUILD = @PATH_BUILD@
|
||||||
|
PATH_FFMPEG = @PATH_FFMPEG@
|
||||||
|
PATH_NETPBM = @PATH_NETPBM@
|
||||||
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
|
PERL = @PERL@
|
||||||
|
PERL_MM_PARMS = @PERL_MM_PARMS@
|
||||||
|
POW_LIB = @POW_LIB@
|
||||||
|
RANLIB = @RANLIB@
|
||||||
|
SET_MAKE = @SET_MAKE@
|
||||||
|
SHELL = @SHELL@
|
||||||
|
STRIP = @STRIP@
|
||||||
|
SYSCONFDIR = @SYSCONFDIR@
|
||||||
|
TIME_BUILD = @TIME_BUILD@
|
||||||
|
VERSION = @VERSION@
|
||||||
|
WEB_GROUP = @WEB_GROUP@
|
||||||
|
WEB_HOST = @WEB_HOST@
|
||||||
|
WEB_PREFIX = @WEB_PREFIX@
|
||||||
|
WEB_USER = @WEB_USER@
|
||||||
|
ZM_CONFIG = @ZM_CONFIG@
|
||||||
|
ZM_DB_HOST = @ZM_DB_HOST@
|
||||||
|
ZM_DB_NAME = @ZM_DB_NAME@
|
||||||
|
ZM_DB_PASS = @ZM_DB_PASS@
|
||||||
|
ZM_DB_USER = @ZM_DB_USER@
|
||||||
|
ZM_HAS_GNUTLS = @ZM_HAS_GNUTLS@
|
||||||
|
ZM_HAS_GNUTLS_OPENSSL = @ZM_HAS_GNUTLS_OPENSSL@
|
||||||
|
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||||
|
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||||
|
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||||
|
ZM_LOGDIR = @ZM_LOGDIR@
|
||||||
|
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||||
|
ZM_PCRE = @ZM_PCRE@
|
||||||
|
ZM_PID = @ZM_PID@
|
||||||
|
ZM_RUNDIR = @ZM_RUNDIR@
|
||||||
|
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||||
|
ZM_TMPDIR = @ZM_TMPDIR@
|
||||||
|
abs_builddir = @abs_builddir@
|
||||||
|
abs_srcdir = @abs_srcdir@
|
||||||
|
abs_top_builddir = @abs_top_builddir@
|
||||||
|
abs_top_srcdir = @abs_top_srcdir@
|
||||||
|
ac_ct_CC = @ac_ct_CC@
|
||||||
|
ac_ct_CXX = @ac_ct_CXX@
|
||||||
|
am__include = @am__include@
|
||||||
|
am__leading_dot = @am__leading_dot@
|
||||||
|
am__quote = @am__quote@
|
||||||
|
am__tar = @am__tar@
|
||||||
|
am__untar = @am__untar@
|
||||||
|
bindir = @bindir@
|
||||||
|
build_alias = @build_alias@
|
||||||
|
builddir = @builddir@
|
||||||
|
datadir = @datadir@
|
||||||
|
datarootdir = @datarootdir@
|
||||||
|
docdir = @docdir@
|
||||||
|
dvidir = @dvidir@
|
||||||
|
exec_prefix = @exec_prefix@
|
||||||
|
host_alias = @host_alias@
|
||||||
|
htmldir = @htmldir@
|
||||||
|
includedir = @includedir@
|
||||||
|
infodir = @infodir@
|
||||||
|
install_sh = @install_sh@
|
||||||
|
libdir = @libdir@
|
||||||
|
libexecdir = @libexecdir@
|
||||||
|
localedir = @localedir@
|
||||||
|
localstatedir = @localstatedir@
|
||||||
|
mandir = @mandir@
|
||||||
|
mkdir_p = @mkdir_p@
|
||||||
|
oldincludedir = @oldincludedir@
|
||||||
|
pdfdir = @pdfdir@
|
||||||
|
prefix = @prefix@
|
||||||
|
program_transform_name = @program_transform_name@
|
||||||
|
psdir = @psdir@
|
||||||
|
sbindir = @sbindir@
|
||||||
|
sharedstatedir = @sharedstatedir@
|
||||||
|
srcdir = @srcdir@
|
||||||
|
sysconfdir = @sysconfdir@
|
||||||
|
target_alias = @target_alias@
|
||||||
|
top_build_prefix = @top_build_prefix@
|
||||||
|
top_builddir = @top_builddir@
|
||||||
|
top_srcdir = @top_srcdir@
|
||||||
|
AUTOMAKE_OPTIONS = gnu
|
||||||
|
EXTRA_DIST = \
|
||||||
|
zm_create.sql.in \
|
||||||
|
zm_update-0.0.1.sql \
|
||||||
|
zm_update-0.9.7.sql \
|
||||||
|
zm_update-0.9.8.sql \
|
||||||
|
zm_update-0.9.9.sql \
|
||||||
|
zm_update-0.9.10.sql \
|
||||||
|
zm_update-0.9.11.sql \
|
||||||
|
zm_update-0.9.12.sql \
|
||||||
|
zm_update-0.9.13.sql \
|
||||||
|
zm_update-0.9.15.sql \
|
||||||
|
zm_update-0.9.16.sql \
|
||||||
|
zm_update-1.17.1.sql \
|
||||||
|
zm_update-1.17.2.sql \
|
||||||
|
zm_update-1.18.0.sql \
|
||||||
|
zm_update-1.18.1.sql \
|
||||||
|
zm_update-1.19.0.sql \
|
||||||
|
zm_update-1.19.1.sql \
|
||||||
|
zm_update-1.19.2.sql \
|
||||||
|
zm_update-1.19.3.sql \
|
||||||
|
zm_update-1.19.4.sql \
|
||||||
|
zm_update-1.19.5.sql \
|
||||||
|
zm_update-1.20.0.sql \
|
||||||
|
zm_update-1.20.1.sql \
|
||||||
|
zm_update-1.21.0.sql \
|
||||||
|
zm_update-1.21.1.sql \
|
||||||
|
zm_update-1.21.2.sql \
|
||||||
|
zm_update-1.21.3.sql \
|
||||||
|
zm_update-1.21.4.sql \
|
||||||
|
zm_update-1.22.0.sql \
|
||||||
|
zm_update-1.22.1.sql \
|
||||||
|
zm_update-1.22.2.sql \
|
||||||
|
zm_update-1.22.3.sql \
|
||||||
|
zm_update-1.23.0.sql \
|
||||||
|
zm_update-1.23.1.sql \
|
||||||
|
zm_update-1.23.2.sql \
|
||||||
|
zm_update-1.23.3.sql \
|
||||||
|
zm_update-1.24.0.sql \
|
||||||
|
zm_update-1.24.1.sql \
|
||||||
|
zm_update-1.24.2.sql \
|
||||||
|
zm_update-1.24.3.sql \
|
||||||
|
zm_update-1.24.4.sql
|
||||||
|
|
||||||
|
all: all-am
|
||||||
|
|
||||||
|
.SUFFIXES:
|
||||||
|
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||||
|
@for dep in $?; do \
|
||||||
|
case '$(am__configure_deps)' in \
|
||||||
|
*$$dep*) \
|
||||||
|
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||||
|
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||||
|
exit 1;; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu db/Makefile'; \
|
||||||
|
$(am__cd) $(top_srcdir) && \
|
||||||
|
$(AUTOMAKE) --gnu db/Makefile
|
||||||
|
.PRECIOUS: Makefile
|
||||||
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||||
|
@case '$?' in \
|
||||||
|
*config.status*) \
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||||
|
*) \
|
||||||
|
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||||
|
esac;
|
||||||
|
|
||||||
|
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
|
||||||
|
$(top_srcdir)/configure: $(am__configure_deps)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
$(am__aclocal_m4_deps):
|
||||||
|
zm_create.sql: $(top_builddir)/config.status $(srcdir)/zm_create.sql.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||||
|
tags: TAGS
|
||||||
|
TAGS:
|
||||||
|
|
||||||
|
ctags: CTAGS
|
||||||
|
CTAGS:
|
||||||
|
|
||||||
|
|
||||||
|
distdir: $(DISTFILES)
|
||||||
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
|
list='$(DISTFILES)'; \
|
||||||
|
dist_files=`for file in $$list; do echo $$file; done | \
|
||||||
|
sed -e "s|^$$srcdirstrip/||;t" \
|
||||||
|
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||||
|
case $$dist_files in \
|
||||||
|
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||||
|
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||||
|
sort -u` ;; \
|
||||||
|
esac; \
|
||||||
|
for file in $$dist_files; do \
|
||||||
|
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||||
|
if test -d $$d/$$file; then \
|
||||||
|
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
|
if test -d "$(distdir)/$$file"; then \
|
||||||
|
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||||
|
fi; \
|
||||||
|
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||||
|
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||||
|
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||||
|
fi; \
|
||||||
|
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||||
|
else \
|
||||||
|
test -f "$(distdir)/$$file" \
|
||||||
|
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||||
|
|| exit 1; \
|
||||||
|
fi; \
|
||||||
|
done
|
||||||
|
check-am: all-am
|
||||||
|
check: check-am
|
||||||
|
all-am: Makefile
|
||||||
|
installdirs:
|
||||||
|
install: install-am
|
||||||
|
install-exec: install-exec-am
|
||||||
|
install-data: install-data-am
|
||||||
|
uninstall: uninstall-am
|
||||||
|
|
||||||
|
install-am: all-am
|
||||||
|
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||||
|
|
||||||
|
installcheck: installcheck-am
|
||||||
|
install-strip:
|
||||||
|
if test -z '$(STRIP)'; then \
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||||
|
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||||
|
install; \
|
||||||
|
else \
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||||
|
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||||
|
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||||
|
fi
|
||||||
|
mostlyclean-generic:
|
||||||
|
|
||||||
|
clean-generic:
|
||||||
|
|
||||||
|
distclean-generic:
|
||||||
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||||
|
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||||
|
|
||||||
|
maintainer-clean-generic:
|
||||||
|
@echo "This command is intended for maintainers to use"
|
||||||
|
@echo "it deletes files that may require special tools to rebuild."
|
||||||
|
clean: clean-am
|
||||||
|
|
||||||
|
clean-am: clean-generic mostlyclean-am
|
||||||
|
|
||||||
|
distclean: distclean-am
|
||||||
|
-rm -f Makefile
|
||||||
|
distclean-am: clean-am distclean-generic
|
||||||
|
|
||||||
|
dvi: dvi-am
|
||||||
|
|
||||||
|
dvi-am:
|
||||||
|
|
||||||
|
html: html-am
|
||||||
|
|
||||||
|
html-am:
|
||||||
|
|
||||||
|
info: info-am
|
||||||
|
|
||||||
|
info-am:
|
||||||
|
|
||||||
|
install-data-am:
|
||||||
|
|
||||||
|
install-dvi: install-dvi-am
|
||||||
|
|
||||||
|
install-dvi-am:
|
||||||
|
|
||||||
|
install-exec-am:
|
||||||
|
|
||||||
|
install-html: install-html-am
|
||||||
|
|
||||||
|
install-html-am:
|
||||||
|
|
||||||
|
install-info: install-info-am
|
||||||
|
|
||||||
|
install-info-am:
|
||||||
|
|
||||||
|
install-man:
|
||||||
|
|
||||||
|
install-pdf: install-pdf-am
|
||||||
|
|
||||||
|
install-pdf-am:
|
||||||
|
|
||||||
|
install-ps: install-ps-am
|
||||||
|
|
||||||
|
install-ps-am:
|
||||||
|
|
||||||
|
installcheck-am:
|
||||||
|
|
||||||
|
maintainer-clean: maintainer-clean-am
|
||||||
|
-rm -f Makefile
|
||||||
|
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||||
|
|
||||||
|
mostlyclean: mostlyclean-am
|
||||||
|
|
||||||
|
mostlyclean-am: mostlyclean-generic
|
||||||
|
|
||||||
|
pdf: pdf-am
|
||||||
|
|
||||||
|
pdf-am:
|
||||||
|
|
||||||
|
ps: ps-am
|
||||||
|
|
||||||
|
ps-am:
|
||||||
|
|
||||||
|
uninstall-am:
|
||||||
|
|
||||||
|
.MAKE: install-am install-strip
|
||||||
|
|
||||||
|
.PHONY: all all-am check check-am clean clean-generic distclean \
|
||||||
|
distclean-generic distdir dvi dvi-am html html-am info info-am \
|
||||||
|
install install-am install-data install-data-am install-dvi \
|
||||||
|
install-dvi-am install-exec install-exec-am install-html \
|
||||||
|
install-html-am install-info install-info-am install-man \
|
||||||
|
install-pdf install-pdf-am install-ps install-ps-am \
|
||||||
|
install-strip installcheck installcheck-am installdirs \
|
||||||
|
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||||
|
mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
|
||||||
|
|
||||||
|
|
||||||
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
.NOEXPORT:
|
|
@ -0,0 +1,934 @@
|
||||||
|
-- MySQL dump 10.9
|
||||||
|
--
|
||||||
|
-- Host: localhost Database: zm
|
||||||
|
-- ------------------------------------------------------
|
||||||
|
-- Server version 4.1.16-log
|
||||||
|
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||||
|
/*!40101 SET NAMES utf8 */;
|
||||||
|
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||||
|
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||||
|
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||||
|
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Current Database: `zm`
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `zm`;
|
||||||
|
|
||||||
|
USE `zm`;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Config`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Config`;
|
||||||
|
CREATE TABLE `Config` (
|
||||||
|
`Id` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`Name` varchar(32) NOT NULL default '',
|
||||||
|
`Value` text NOT NULL,
|
||||||
|
`Type` tinytext NOT NULL,
|
||||||
|
`DefaultValue` tinytext,
|
||||||
|
`Hint` tinytext,
|
||||||
|
`Pattern` tinytext,
|
||||||
|
`Format` tinytext,
|
||||||
|
`Prompt` tinytext,
|
||||||
|
`Help` text,
|
||||||
|
`Category` varchar(32) NOT NULL default '',
|
||||||
|
`Readonly` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`Requires` text,
|
||||||
|
PRIMARY KEY (`Name`)
|
||||||
|
) ENGINE=MyISAM;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `ControlPresets`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `ControlPresets`;
|
||||||
|
CREATE TABLE `ControlPresets` (
|
||||||
|
`MonitorId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Preset` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Label` varchar(64) NOT NULL default '',
|
||||||
|
PRIMARY KEY (`MonitorId`,`Preset`)
|
||||||
|
) ENGINE=MyISAM;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Controls`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Controls`;
|
||||||
|
CREATE TABLE `Controls` (
|
||||||
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
|
`Name` varchar(64) NOT NULL default '',
|
||||||
|
`Type` enum('Local','Remote') NOT NULL default 'Local',
|
||||||
|
`Protocol` varchar(64) default NULL,
|
||||||
|
`CanWake` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanSleep` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanReset` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanZoom` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanAutoZoom` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanZoomAbs` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanZoomRel` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanZoomCon` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinZoomRange` int(10) unsigned default NULL,
|
||||||
|
`MaxZoomRange` int(10) unsigned default NULL,
|
||||||
|
`MinZoomStep` int(10) unsigned default NULL,
|
||||||
|
`MaxZoomStep` int(10) unsigned default NULL,
|
||||||
|
`HasZoomSpeed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinZoomSpeed` int(10) unsigned default NULL,
|
||||||
|
`MaxZoomSpeed` int(10) unsigned default NULL,
|
||||||
|
`CanFocus` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanAutoFocus` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanFocusAbs` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanFocusRel` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanFocusCon` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinFocusRange` int(10) unsigned default NULL,
|
||||||
|
`MaxFocusRange` int(10) unsigned default NULL,
|
||||||
|
`MinFocusStep` int(10) unsigned default NULL,
|
||||||
|
`MaxFocusStep` int(10) unsigned default NULL,
|
||||||
|
`HasFocusSpeed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinFocusSpeed` int(10) unsigned default NULL,
|
||||||
|
`MaxFocusSpeed` int(10) unsigned default NULL,
|
||||||
|
`CanIris` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanAutoIris` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanIrisAbs` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanIrisRel` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanIrisCon` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinIrisRange` int(10) unsigned default NULL,
|
||||||
|
`MaxIrisRange` int(10) unsigned default NULL,
|
||||||
|
`MinIrisStep` int(10) unsigned default NULL,
|
||||||
|
`MaxIrisStep` int(10) unsigned default NULL,
|
||||||
|
`HasIrisSpeed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinIrisSpeed` int(10) unsigned default NULL,
|
||||||
|
`MaxIrisSpeed` int(10) unsigned default NULL,
|
||||||
|
`CanGain` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanAutoGain` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanGainAbs` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanGainRel` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanGainCon` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinGainRange` int(10) unsigned default NULL,
|
||||||
|
`MaxGainRange` int(10) unsigned default NULL,
|
||||||
|
`MinGainStep` int(10) unsigned default NULL,
|
||||||
|
`MaxGainStep` int(10) unsigned default NULL,
|
||||||
|
`HasGainSpeed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinGainSpeed` int(10) unsigned default NULL,
|
||||||
|
`MaxGainSpeed` int(10) unsigned default NULL,
|
||||||
|
`CanWhite` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanAutoWhite` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanWhiteAbs` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanWhiteRel` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanWhiteCon` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinWhiteRange` int(10) unsigned default NULL,
|
||||||
|
`MaxWhiteRange` int(10) unsigned default NULL,
|
||||||
|
`MinWhiteStep` int(10) unsigned default NULL,
|
||||||
|
`MaxWhiteStep` int(10) unsigned default NULL,
|
||||||
|
`HasWhiteSpeed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinWhiteSpeed` int(10) unsigned default NULL,
|
||||||
|
`MaxWhiteSpeed` int(10) unsigned default NULL,
|
||||||
|
`HasPresets` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`NumPresets` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`HasHomePreset` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanSetPresets` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanMove` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanMoveDiag` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanMoveMap` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanMoveAbs` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanMoveRel` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanMoveCon` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanPan` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinPanRange` int(10) default NULL,
|
||||||
|
`MaxPanRange` int(10) default NULL,
|
||||||
|
`MinPanStep` int(10) default NULL,
|
||||||
|
`MaxPanStep` int(10) default NULL,
|
||||||
|
`HasPanSpeed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinPanSpeed` int(10) default NULL,
|
||||||
|
`MaxPanSpeed` int(10) default NULL,
|
||||||
|
`HasTurboPan` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`TurboPanSpeed` int(10) default NULL,
|
||||||
|
`CanTilt` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinTiltRange` int(10) default NULL,
|
||||||
|
`MaxTiltRange` int(10) default NULL,
|
||||||
|
`MinTiltStep` int(10) default NULL,
|
||||||
|
`MaxTiltStep` int(10) default NULL,
|
||||||
|
`HasTiltSpeed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinTiltSpeed` int(10) default NULL,
|
||||||
|
`MaxTiltSpeed` int(10) default NULL,
|
||||||
|
`HasTurboTilt` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`TurboTiltSpeed` int(10) default NULL,
|
||||||
|
`CanAutoScan` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`NumScanPaths` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
PRIMARY KEY (`Id`)
|
||||||
|
) ENGINE=MyISAM;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Devices`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Devices`;
|
||||||
|
CREATE TABLE `Devices` (
|
||||||
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
|
`Name` tinytext NOT NULL,
|
||||||
|
`Type` enum('X10') NOT NULL default 'X10',
|
||||||
|
`KeyString` varchar(32) NOT NULL default '',
|
||||||
|
PRIMARY KEY (`Id`)
|
||||||
|
) ENGINE=MyISAM;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Events`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Events`;
|
||||||
|
CREATE TABLE `Events` (
|
||||||
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
|
`MonitorId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Name` varchar(64) NOT NULL default '',
|
||||||
|
`Cause` varchar(32) NOT NULL default '',
|
||||||
|
`StartTime` datetime default NULL,
|
||||||
|
`EndTime` datetime default NULL,
|
||||||
|
`Width` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`Height` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`Length` decimal(10,2) NOT NULL default '0.00',
|
||||||
|
`Frames` int(10) unsigned default NULL,
|
||||||
|
`AlarmFrames` int(10) unsigned default NULL,
|
||||||
|
`TotScore` int(10) unsigned NOT NULL default '0',
|
||||||
|
`AvgScore` smallint(5) unsigned default '0',
|
||||||
|
`MaxScore` smallint(5) unsigned default '0',
|
||||||
|
`Archived` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`Videoed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`Uploaded` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`Emailed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`Messaged` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`Executed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`Notes` text,
|
||||||
|
PRIMARY KEY (`Id`,`MonitorId`),
|
||||||
|
KEY `MonitorId` (`MonitorId`),
|
||||||
|
KEY `StartTime` (`StartTime`),
|
||||||
|
KEY `Frames` (`Frames`),
|
||||||
|
KEY `Archived` (`Archived`)
|
||||||
|
) ENGINE=MyISAM;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Filters`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Filters`;
|
||||||
|
CREATE TABLE `Filters` (
|
||||||
|
`Name` varchar(64) NOT NULL default '',
|
||||||
|
`Query` text NOT NULL,
|
||||||
|
`AutoArchive` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`AutoVideo` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`AutoUpload` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`AutoEmail` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`AutoMessage` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`AutoExecute` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`AutoExecuteCmd` tinytext,
|
||||||
|
`AutoDelete` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`Background` tinyint(1) unsigned NOT NULL default '0',
|
||||||
|
PRIMARY KEY (`Name`)
|
||||||
|
) ENGINE=MyISAM;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Frames`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Frames`;
|
||||||
|
CREATE TABLE `Frames` (
|
||||||
|
`EventId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`FrameId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Type` enum('Normal','Bulk','Alarm') NOT NULL default 'Normal',
|
||||||
|
`TimeStamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
|
||||||
|
`Delta` decimal(8,2) NOT NULL default '0.00',
|
||||||
|
`Score` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
PRIMARY KEY (`EventId`,`FrameId`),
|
||||||
|
KEY `Type` (`Type`),
|
||||||
|
KEY `TimeStamp` (`TimeStamp`)
|
||||||
|
) ENGINE=MyISAM;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Groups`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Groups`;
|
||||||
|
CREATE TABLE `Groups` (
|
||||||
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
|
`Name` varchar(64) NOT NULL default '',
|
||||||
|
`MonitorIds` tinytext NOT NULL,
|
||||||
|
PRIMARY KEY (`Id`)
|
||||||
|
) ENGINE=MyISAM;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Logs`
|
||||||
|
--
|
||||||
|
CREATE TABLE `Logs` (
|
||||||
|
`TimeKey` decimal(16,6) NOT NULL,
|
||||||
|
`Component` varchar(32) NOT NULL,
|
||||||
|
`Pid` smallint(6) DEFAULT NULL,
|
||||||
|
`Level` tinyint(3) NOT NULL,
|
||||||
|
`Code` char(3) NOT NULL,
|
||||||
|
`Message` varchar(255) NOT NULL,
|
||||||
|
`File` varchar(255) DEFAULT NULL,
|
||||||
|
`Line` smallint(5) unsigned DEFAULT NULL,
|
||||||
|
KEY `TimeKey` (`TimeKey`)
|
||||||
|
) ENGINE=MyISAM;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `MonitorPresets`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `MonitorPresets`;
|
||||||
|
CREATE TABLE `MonitorPresets` (
|
||||||
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
|
`Name` varchar(64) NOT NULL default '',
|
||||||
|
`Type` enum('Local','Remote','File','Ffmpeg') NOT NULL default 'Local',
|
||||||
|
`Device` tinytext,
|
||||||
|
`Channel` tinyint(3) unsigned default NULL,
|
||||||
|
`Format` int(10) unsigned default NULL,
|
||||||
|
`Protocol` varchar(16) default NULL,
|
||||||
|
`Method` varchar(16) default NULL,
|
||||||
|
`Host` varchar(64) default NULL,
|
||||||
|
`Port` varchar(8) default NULL,
|
||||||
|
`Path` varchar(255) default NULL,
|
||||||
|
`SubPath` varchar(64) default NULL,
|
||||||
|
`Width` smallint(5) unsigned default NULL,
|
||||||
|
`Height` smallint(5) unsigned default NULL,
|
||||||
|
`Palette` int(10) unsigned default NULL,
|
||||||
|
`MaxFPS` decimal(5,2) default NULL,
|
||||||
|
`Controllable` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`ControlId` varchar(16) default NULL,
|
||||||
|
`ControlDevice` varchar(255) default NULL,
|
||||||
|
`ControlAddress` varchar(255) default NULL,
|
||||||
|
`DefaultRate` smallint(5) unsigned NOT NULL default '100',
|
||||||
|
`DefaultScale` smallint(5) unsigned NOT NULL default '100',
|
||||||
|
PRIMARY KEY (`Id`)
|
||||||
|
) ENGINE=MyISAM;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Monitors`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Monitors`;
|
||||||
|
CREATE TABLE `Monitors` (
|
||||||
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
|
`Name` varchar(64) NOT NULL default '',
|
||||||
|
`Type` enum('Local','Remote','File','Ffmpeg') NOT NULL default 'Local',
|
||||||
|
`Function` enum('None','Monitor','Modect','Record','Mocord','Nodect') NOT NULL default 'Monitor',
|
||||||
|
`Enabled` tinyint(3) unsigned NOT NULL default '1',
|
||||||
|
`LinkedMonitors` varchar(255) NOT NULL default '',
|
||||||
|
`Triggers` set('X10') NOT NULL default '',
|
||||||
|
`Device` varchar(64) NOT NULL default '',
|
||||||
|
`Channel` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`Format` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Protocol` varchar(16) NOT NULL default '',
|
||||||
|
`Method` varchar(16) NOT NULL default '',
|
||||||
|
`Host` varchar(64) NOT NULL default '',
|
||||||
|
`Port` varchar(8) NOT NULL default '',
|
||||||
|
`SubPath` varchar(64) NOT NULL default '',
|
||||||
|
`Path` varchar(255) NOT NULL default '',
|
||||||
|
`Width` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`Height` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`Colours` tinyint(3) unsigned NOT NULL default '1',
|
||||||
|
`Palette` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Orientation` enum('0','90','180','270','hori','vert') NOT NULL default '0',
|
||||||
|
`Deinterlacing` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Brightness` mediumint(7) NOT NULL default '-1',
|
||||||
|
`Contrast` mediumint(7) NOT NULL default '-1',
|
||||||
|
`Hue` mediumint(7) NOT NULL default '-1',
|
||||||
|
`Colour` mediumint(7) NOT NULL default '-1',
|
||||||
|
`EventPrefix` varchar(32) NOT NULL default 'Event-',
|
||||||
|
`LabelFormat` varchar(64) NOT NULL default '%N - %y/%m/%d %H:%M:%S',
|
||||||
|
`LabelX` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`LabelY` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`ImageBufferCount` smallint(5) unsigned NOT NULL default '100',
|
||||||
|
`WarmupCount` smallint(5) unsigned NOT NULL default '25',
|
||||||
|
`PreEventCount` smallint(5) unsigned NOT NULL default '10',
|
||||||
|
`PostEventCount` smallint(5) unsigned NOT NULL default '10',
|
||||||
|
`StreamReplayBuffer` int(10) unsigned NOT NULL default '1000',
|
||||||
|
`AlarmFrameCount` smallint(5) unsigned NOT NULL default '1',
|
||||||
|
`SectionLength` int(10) unsigned NOT NULL default '600',
|
||||||
|
`FrameSkip` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`MaxFPS` decimal(5,2) default NULL,
|
||||||
|
`AlarmMaxFPS` decimal(5,2) default NULL,
|
||||||
|
`FPSReportInterval` smallint(5) unsigned NOT NULL default '250',
|
||||||
|
`RefBlendPerc` tinyint(3) unsigned NOT NULL default '10',
|
||||||
|
`Controllable` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`ControlId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`ControlDevice` varchar(255) default NULL,
|
||||||
|
`ControlAddress` varchar(255) default NULL,
|
||||||
|
`AutoStopTimeout` decimal(5,2) default NULL,
|
||||||
|
`TrackMotion` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`TrackDelay` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`ReturnLocation` tinyint(3) NOT NULL default '-1',
|
||||||
|
`ReturnDelay` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`DefaultView` enum('Events','Control') NOT NULL default 'Events',
|
||||||
|
`DefaultRate` smallint(5) unsigned NOT NULL default '100',
|
||||||
|
`DefaultScale` smallint(5) unsigned NOT NULL default '100',
|
||||||
|
`SignalCheckColour` varchar(32) NOT NULL default '#0000BE',
|
||||||
|
`WebColour` varchar(32) NOT NULL default 'red',
|
||||||
|
`Sequence` smallint(5) unsigned default NULL,
|
||||||
|
`UsedPl` varchar(88) NOT NULL default '',
|
||||||
|
`DoNativeMotDet` tinyint(3) unsigned NOT NULL default '1',
|
||||||
|
PRIMARY KEY (`Id`)
|
||||||
|
) ENGINE=MyISAM;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `PluginsConfig`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `PluginsConfig`;
|
||||||
|
CREATE TABLE `PluginsConfig` (
|
||||||
|
`Id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
`Name` varchar(32) NOT NULL DEFAULT '',
|
||||||
|
`Value` text NOT NULL,
|
||||||
|
`Type` tinytext NOT NULL,
|
||||||
|
`Choices` text NOT NULL,
|
||||||
|
`MonitorId` int(10) unsigned NOT NULL,
|
||||||
|
`ZoneId` int(10) unsigned NOT NULL,
|
||||||
|
`pluginName` tinytext NOT NULL,
|
||||||
|
PRIMARY KEY (`Id`),
|
||||||
|
KEY `ZoneId` (`ZoneId`),
|
||||||
|
KEY `MonitorId` (`MonitorId`),
|
||||||
|
KEY `Name` (`Name`),
|
||||||
|
FULLTEXT KEY `pluginName` (`pluginName`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `States`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `States`;
|
||||||
|
CREATE TABLE `States` (
|
||||||
|
`Name` varchar(64) NOT NULL default '',
|
||||||
|
`Definition` text NOT NULL,
|
||||||
|
PRIMARY KEY (`Name`)
|
||||||
|
) ENGINE=MyISAM;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Stats`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Stats`;
|
||||||
|
CREATE TABLE `Stats` (
|
||||||
|
`MonitorId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`ZoneId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`EventId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`FrameId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`PixelDiff` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`AlarmPixels` int(10) unsigned NOT NULL default '0',
|
||||||
|
`FilterPixels` int(10) unsigned NOT NULL default '0',
|
||||||
|
`BlobPixels` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Blobs` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`MinBlobSize` int(10) unsigned NOT NULL default '0',
|
||||||
|
`MaxBlobSize` int(10) unsigned NOT NULL default '0',
|
||||||
|
`MinX` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`MaxX` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`MinY` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`MaxY` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`Score` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
KEY `EventId` (`EventId`),
|
||||||
|
KEY `MonitorId` (`MonitorId`),
|
||||||
|
KEY `ZoneId` (`ZoneId`)
|
||||||
|
) ENGINE=MyISAM;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `TriggersX10`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `TriggersX10`;
|
||||||
|
CREATE TABLE `TriggersX10` (
|
||||||
|
`MonitorId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Activation` varchar(32) default NULL,
|
||||||
|
`AlarmInput` varchar(32) default NULL,
|
||||||
|
`AlarmOutput` varchar(32) default NULL,
|
||||||
|
PRIMARY KEY (`MonitorId`)
|
||||||
|
) ENGINE=MyISAM;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Users`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Users`;
|
||||||
|
CREATE TABLE `Users` (
|
||||||
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
|
`Username` varchar(32) character set latin1 collate latin1_bin NOT NULL default '',
|
||||||
|
`Password` varchar(64) NOT NULL default '',
|
||||||
|
`Language` varchar(8) NOT NULL default '',
|
||||||
|
`Enabled` tinyint(3) unsigned NOT NULL default '1',
|
||||||
|
`Stream` enum('None','View') NOT NULL default 'None',
|
||||||
|
`Events` enum('None','View','Edit') NOT NULL default 'None',
|
||||||
|
`Control` enum('None','View','Edit') NOT NULL default 'None',
|
||||||
|
`Monitors` enum('None','View','Edit') NOT NULL default 'None',
|
||||||
|
`Devices` enum('None','View','Edit') NOT NULL default 'None',
|
||||||
|
`System` enum('None','View','Edit') NOT NULL default 'None',
|
||||||
|
`MaxBandwidth` varchar(16) NOT NULL default '',
|
||||||
|
`MonitorIds` tinytext NOT NULL,
|
||||||
|
PRIMARY KEY (`Id`),
|
||||||
|
UNIQUE KEY `UC_Username` (`Username`)
|
||||||
|
) ENGINE=MyISAM;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `ZonePresets`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `ZonePresets`;
|
||||||
|
CREATE TABLE `ZonePresets` (
|
||||||
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
|
`Name` varchar(64) NOT NULL default '',
|
||||||
|
`Type` enum('Active','Inclusive','Exclusive','Preclusive','Inactive') NOT NULL default 'Active',
|
||||||
|
`Units` enum('Pixels','Percent') NOT NULL default 'Pixels',
|
||||||
|
`CheckMethod` enum('AlarmedPixels','FilteredPixels','Blobs') NOT NULL default 'Blobs',
|
||||||
|
`MinPixelThreshold` smallint(5) unsigned default NULL,
|
||||||
|
`MaxPixelThreshold` smallint(5) unsigned default NULL,
|
||||||
|
`MinAlarmPixels` int(10) unsigned default NULL,
|
||||||
|
`MaxAlarmPixels` int(10) unsigned default NULL,
|
||||||
|
`FilterX` tinyint(3) unsigned default NULL,
|
||||||
|
`FilterY` tinyint(3) unsigned default NULL,
|
||||||
|
`MinFilterPixels` int(10) unsigned default NULL,
|
||||||
|
`MaxFilterPixels` int(10) unsigned default NULL,
|
||||||
|
`MinBlobPixels` int(10) unsigned default NULL,
|
||||||
|
`MaxBlobPixels` int(10) unsigned default NULL,
|
||||||
|
`MinBlobs` smallint(5) unsigned default NULL,
|
||||||
|
`MaxBlobs` smallint(5) unsigned default NULL,
|
||||||
|
`OverloadFrames` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
PRIMARY KEY (`Id`)
|
||||||
|
) ENGINE=MyISAM;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Zones`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Zones`;
|
||||||
|
CREATE TABLE `Zones` (
|
||||||
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
|
`MonitorId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Name` varchar(64) NOT NULL default '',
|
||||||
|
`Type` enum('Active','Inclusive','Exclusive','Preclusive','Inactive') NOT NULL default 'Active',
|
||||||
|
`Units` enum('Pixels','Percent') NOT NULL default 'Pixels',
|
||||||
|
`NumCoords` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`Coords` tinytext NOT NULL,
|
||||||
|
`Area` int(10) unsigned NOT NULL default '0',
|
||||||
|
`AlarmRGB` int(10) unsigned default '0',
|
||||||
|
`CheckMethod` enum('AlarmedPixels','FilteredPixels','Blobs') NOT NULL default 'Blobs',
|
||||||
|
`MinPixelThreshold` smallint(5) unsigned default NULL,
|
||||||
|
`MaxPixelThreshold` smallint(5) unsigned default NULL,
|
||||||
|
`MinAlarmPixels` int(10) unsigned default NULL,
|
||||||
|
`MaxAlarmPixels` int(10) unsigned default NULL,
|
||||||
|
`FilterX` tinyint(3) unsigned default NULL,
|
||||||
|
`FilterY` tinyint(3) unsigned default NULL,
|
||||||
|
`MinFilterPixels` int(10) unsigned default NULL,
|
||||||
|
`MaxFilterPixels` int(10) unsigned default NULL,
|
||||||
|
`MinBlobPixels` int(10) unsigned default NULL,
|
||||||
|
`MaxBlobPixels` int(10) unsigned default NULL,
|
||||||
|
`MinBlobs` smallint(5) unsigned default NULL,
|
||||||
|
`MaxBlobs` smallint(5) unsigned default NULL,
|
||||||
|
`OverloadFrames` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
PRIMARY KEY (`Id`),
|
||||||
|
KEY `MonitorId` (`MonitorId`)
|
||||||
|
) ENGINE=MyISAM;
|
||||||
|
|
||||||
|
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||||
|
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||||
|
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||||
|
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||||
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Initial data to be loaded into ZoneMinder database
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Create a default admin user.
|
||||||
|
--
|
||||||
|
insert into Users values ('','admin',password('admin'),'',1,'View','Edit','Edit','Edit','Edit','Edit','','');
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add a sample filter to purge the oldest 5 events when the disk is 95% full, delete is disabled though
|
||||||
|
--
|
||||||
|
insert into Filters values ('PurgeWhenFull','{"sort_field":"Id","terms":[{"val":0,"attr":"Archived","op":"="},{"cnj":"and","val":95,"attr":"DiskPercent","op":">="}],"limit":5,"sort_asc":1}',0,0,0,0,0,0,'',1,0);
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add in some sample control protocol definitions
|
||||||
|
--
|
||||||
|
insert into Controls values (1,'Pelco-D','Local','PelcoD',1,1,0,1,1,0,0,1,NULL,NULL,NULL,NULL,1,0,3,1,1,0,0,1,NULL,NULL,NULL,NULL,0,NULL,NULL,1,1,0,1,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,1,0,1,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,20,1,1,1,1,0,0,0,1,1,NULL,NULL,NULL,NULL,1,0,63,1,254,1,NULL,NULL,NULL,NULL,1,0,63,1,254,0,0);
|
||||||
|
insert into Controls values (2,'Pelco-P','Local','PelcoP',1,1,0,1,1,0,0,1,NULL,NULL,NULL,NULL,1,0,3,1,1,0,0,1,NULL,NULL,NULL,NULL,0,NULL,NULL,1,1,0,1,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,1,0,1,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,20,1,1,1,1,0,0,0,1,1,NULL,NULL,NULL,NULL,1,0,63,1,254,1,NULL,NULL,NULL,NULL,1,0,63,1,254,0,0);
|
||||||
|
insert into Controls values (3,'Sony VISCA','Local','Visca',1,1,0,1,0,0,0,1,0,16384,10,4000,1,1,6,1,1,1,0,1,0,1536,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,3,1,1,1,1,0,1,1,0,1,-15578,15578,100,10000,1,1,50,1,254,1,-7789,7789,100,5000,1,1,50,1,254,0,0);
|
||||||
|
INSERT INTO Controls VALUES (4,'Axis API v2','Remote','AxisV2',0,0,0,1,0,0,1,0,0,9999,10,2500,0,NULL,NULL,1,1,0,1,0,0,9999,10,2500,0,NULL,NULL,1,1,0,1,0,0,9999,10,2500,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,12,1,1,1,1,1,0,1,0,1,-360,360,1,90,0,NULL,NULL,0,NULL,1,-360,360,1,90,0,NULL,NULL,0,NULL,0,0);
|
||||||
|
insert into Controls values (5,'Panasonic IP','Remote','PanasonicIP',0,0,0,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,8,1,1,1,0,1,0,0,1,1,NULL,NULL,NULL,NULL,0,NULL,NULL,0,NULL,1,NULL,NULL,NULL,NULL,0,NULL,NULL,0,NULL,0,0);
|
||||||
|
insert into Controls values (6,'Neu-Fusion NCS370','Remote','Ncs370',0,0,0,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,24,1,0,1,1,0,0,0,1,1,NULL,NULL,NULL,NULL,0,NULL,NULL,0,NULL,1,NULL,NULL,NULL,NULL,0,NULL,NULL,0,NULL,0,0);
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add some monitor preset values
|
||||||
|
--
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 320x240, mpjpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=320x240',NULL,320,240,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 320x240, mpjpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=320x240&req_fps=5',NULL,320,240,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 320x240, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=320x240',NULL,320,240,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 320x240, jpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=320x240',NULL,320,240,3,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 640x480, mpjpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=640x480',NULL,640,480,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 640x480, mpjpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=640x480&req_fps=5',NULL,640,480,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 640x480, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=640x480',NULL,640,480,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 640x480, jpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=640x480',NULL,640,480,3,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 320x240, mpjpeg, B&W','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=320x240&color=0',NULL,320,240,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 640x480, mpjpeg, B&W','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=640x480&color=0',NULL,640,480,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 320x240, mpjpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=320x240',NULL,320,240,3,NULL,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 320x240, mpjpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=320x240&req_fps=5',NULL,320,240,3,NULL,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 320x240, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=320x240',NULL,320,240,3,NULL,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 320x240, jpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=320x240',NULL,320,240,3,5.0,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 640x480, mpjpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=640x480',NULL,640,480,3,NULL,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 640x480, mpjpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=640x480&req_fps=5',NULL,640,480,3,NULL,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 640x480, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=640x480',NULL,640,480,3,NULL,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 640x480, jpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=640x480',NULL,640,480,3,5.0,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT into MonitorPresets VALUES ('','Axis IP, mpeg4, unicast','Remote',NULL,NULL,NULL,'rtsp','rtpUni','<ip-address>',554,'/mpeg4/media.amp','/trackID=',NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT into MonitorPresets VALUES ('','Axis IP, mpeg4, multicast','Remote',NULL,NULL,NULL,'rtsp','rtpMulti','<ip-address>',554,'/mpeg4/media.amp','/trackID=',NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT into MonitorPresets VALUES ('','Axis IP, mpeg4, RTP/RTSP','Remote',NULL,NULL,NULL,'rtsp','rtpRtsp','<ip-address>',554,'/mpeg4/media.amp','/trackID=',NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT into MonitorPresets VALUES ('','Axis IP, mpeg4, RTP/RTSP/HTTP','Remote',NULL,NULL,NULL,'rtsp','rtpRtspHttp','<ip-address>',554,'/mpeg4/media.amp','/trackID=',NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP, 320x240, mpjpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/nphMotionJpeg?Resolution=320x240&Quality=Standard',NULL,320,240,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP, 320x240, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=320x240&Quality=Standard',NULL,320,240,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP, 320x240, jpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=320x240&Quality=Standard',NULL,320,240,3,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP, 640x480, mpjpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/nphMotionJpeg?Resolution=640x480&Quality=Standard',NULL,640,480,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP, 640x480, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=640x480&Quality=Standard',NULL,640,480,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP, 640x480, jpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=640x480&Quality=Standard',NULL,640,480,3,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP PTZ, 320x240, mpjpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/nphMotionJpeg?Resolution=320x240&Quality=Standard',NULL,320,240,3,NULL,1,5,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP PTZ, 320x240, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=320x240&Quality=Standard',NULL,320,240,3,NULL,1,5,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP PTZ, 320x240, jpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=320x240&Quality=Standard',NULL,320,240,3,5.0,1,5,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP PTZ, 640x480, mpjpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/nphMotionJpeg?Resolution=640x480&Quality=Standard',NULL,640,480,3,NULL,1,5,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP PTZ, 640x480, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=640x480&Quality=Standard',NULL,640,480,3,NULL,1,5,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP PTZ, 640x480, jpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=640x480&Quality=Standard',NULL,640,480,3,5.0,1,5,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Gadspot IP, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/Jpeg/CamImg.jpg',NULL,NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Gadspot IP, jpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/Jpeg/CamImg.jpg',NULL,NULL,NULL,3,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Gadspot IP, mpjpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/GetData.cgi',NULL,NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Gadspot IP, mpjpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/Jpeg/CamImg.jpg',NULL,NULL,NULL,3,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','VEO Observer, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/Jpeg/CamImg.jpg',NULL,NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Blue Net Video Server, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/cgi-bin/image.cgi?control=0&id=admin&passwd=admin',NULL,320,240,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT into MonitorPresets VALUES ('','ACTi IP, mpeg4, unicast','Remote',NULL,NULL,NULL,'rtsp','rtpUni','<ip-address>',7070,'','/track',NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis FFMPEG H.264','Ffmpeg',NULL,NULL,NULL,NULL,NULL,'rtsp://<host/address>/axis-media/media.amp?videocodec=h264',NULL,NULL,NULL,640,480,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Vivotek FFMPEG','Ffmpeg',NULL,NULL,NULL,NULL,NULL,'rtsp://<host/address>:554/live.sdp',NULL,NULL,NULL,352,240,NULL,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis FFMPEG','Ffmpeg',NULL,NULL,NULL,NULL,NULL,'rtsp://<host/address>/axis-media/media.amp',NULL,NULL,NULL,640,480,NULL,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','ACTi TCM FFMPEG','Ffmpeg',NULL,NULL,NULL,NULL,NULL,'rtsp://admin:123456@<host/address>:7070',NULL,NULL,NULL,320,240,NULL,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), PAL, 320x240','Local','/dev/video<?>','<?>',255,NULL,'v4l2',NULL,NULL,NULL,NULL,320,240,1345466932,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), PAL, 320x240, max 5 FPS','Local','/dev/video<?>','<?>',255,NULL,'v4l2',NULL,NULL,NULL,NULL,320,240,1345466932,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), PAL, 640x480','Local','/dev/video<?>','<?>',255,NULL,'v4l2',NULL,NULL,NULL,NULL,640,480,1345466932,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), PAL, 640x480, max 5 FPS','Local','/dev/video<?>','<?>',255,NULL,'v4l2',NULL,NULL,NULL,NULL,640,480,1345466932,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), NTSC, 320x240','Local','/dev/video<?>','<?>',45056,NULL,'v4l2',NULL,NULL,NULL,NULL,320,240,1345466932,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), NTSC, 320x240, max 5 FPS','Local','/dev/video<?>','<?>',45056,NULL,'v4l2',NULL,NULL,NULL,NULL,320,240,1345466932,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), NTSC, 640x480','Local','/dev/video<?>','<?>',45056,NULL,'v4l2',NULL,NULL,NULL,NULL,640,480,1345466932,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), NTSC, 640x480, max 5 FPS','Local','/dev/video<?>','<?>',45056,NULL,'v4l2',NULL,NULL,NULL,NULL,640,480,1345466932,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), PAL, 320x240','Local','/dev/video<?>','<?>',0,NULL,'v4l1',NULL,NULL,NULL,NULL,320,240,13,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), PAL, 320x240, max 5 FPS','Local','/dev/video<?>','<?>',0,NULL,'v4l1',NULL,NULL,NULL,NULL,320,240,13,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), PAL, 640x480','Local','/dev/video<?>','<?>',0,NULL,'v4l1',NULL,NULL,NULL,NULL,640,480,13,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), PAL, 640x480, max 5 FPS','Local','/dev/video<?>','<?>',0,NULL,'v4l1',NULL,NULL,NULL,NULL,640,480,13,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), NTSC, 320x240','Local','/dev/video<?>','<?>',1,NULL,'v4l1',NULL,NULL,NULL,NULL,320,240,13,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), NTSC, 320x240, max 5 FPS','Local','/dev/video<?>','<?>',1,NULL,'v4l1',NULL,NULL,NULL,NULL,320,240,13,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), NTSC, 640x480','Local','/dev/video<?>','<?>',1,NULL,'v4l1',NULL,NULL,NULL,NULL,640,480,13,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), NTSC, 640x480, max 5 FPS','Local','/dev/video<?>','<?>',1,NULL,'v4l1',NULL,NULL,NULL,NULL,640,480,13,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Remote ZoneMinder','Remote',NULL,NULL,NULL,'http','simple','<ip-address>',80,'/cgi-bin/nph-zms?mode=jpeg&monitor=<monitor-id>&scale=100&maxfps=5&buffer=0',NULL,NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add some zone preset values
|
||||||
|
--
|
||||||
|
INSERT INTO ZonePresets VALUES (1,'Fast, low sensitivity','Active','Percent','AlarmedPixels',60,NULL,20,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||||
|
INSERT INTO ZonePresets VALUES (2,'Fast, medium sensitivity','Active','Percent','AlarmedPixels',40,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||||
|
INSERT INTO ZonePresets VALUES (3,'Fast, high sensitivity','Active','Percent','AlarmedPixels',20,NULL,5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||||
|
INSERT INTO ZonePresets VALUES (4,'Best, low sensitivity','Active','Percent','Blobs',60,NULL,36,NULL,7,7,24,NULL,20,NULL,1,NULL,0);
|
||||||
|
INSERT INTO ZonePresets VALUES (5,'Best, medium sensitivity','Active','Percent','Blobs',40,NULL,16,NULL,5,5,12,NULL,10,NULL,1,NULL,0);
|
||||||
|
INSERT INTO ZonePresets VALUES (6,'Best, high sensitivity','Active','Percent','Blobs',20,NULL,8,NULL,3,3,6,NULL,5,NULL,1,NULL,0);
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Apply the initial configuration
|
||||||
|
--
|
||||||
|
-- This section is autogenerated by zmconfgen.pl
|
||||||
|
-- Do not edit this file as any changes will be overwritten
|
||||||
|
--
|
||||||
|
|
||||||
|
delete from Config;
|
||||||
|
|
||||||
|
insert into Config set Id = 0, Name = 'ZM_LANG_DEFAULT', Value = 'en_gb', Type = 'string', DefaultValue = 'en_gb', Hint = 'string', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'Default language used by web interface', Help = 'ZoneMinder allows the web interface to use languages other than English if the appropriate language file has been created and is present. This option allows you to change the default language that is used from the shipped language, British English, to another language', Category = 'system', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 1, Name = 'ZM_OPT_USE_AUTH', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Authenticate user logins to ZoneMinder', Help = 'ZoneMinder can run in two modes. The simplest is an entirely unauthenticated mode where anyone can access ZoneMinder and perform all tasks. This is most suitable for installations where the web server access is limited in other ways. The other mode enables user accounts with varying sets of permissions. Users must login or authenticate to access ZoneMinder and are limited by their defined permissions.', Category = 'system', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 2, Name = 'ZM_AUTH_TYPE', Value = 'builtin', Type = 'string', DefaultValue = 'builtin', Hint = 'builtin|remote', Pattern = '(?^i:^([br]))', Format = ' $1 =~ /^b/ ? \"builtin\" : \"remote\" ', Prompt = 'What is used to authenticate ZoneMinder users', Help = 'ZoneMinder can use two methods to authenticate users when running in authenticated mode. The first is a builtin method where ZoneMinder provides facilities for users to log in and maintains track of their identity. The second method allows interworking with other methods such as http basic authentication which passes an independently authentication \'remote\' user via http. In this case ZoneMinder would use the supplied user without additional authentication provided such a user is configured ion ZoneMinder.', Category = 'system', Readonly = '0', Requires = 'ZM_OPT_USE_AUTH=1';
|
||||||
|
insert into Config set Id = 3, Name = 'ZM_AUTH_RELAY', Value = 'hashed', Type = 'string', DefaultValue = 'hashed', Hint = 'hashed|plain|none', Pattern = '(?^i:^([hpn]))', Format = ' ($1 =~ /^h/) ? \"hashed\" : ($1 =~ /^p/ ? \"plain\" : \"none\" ) ', Prompt = 'Method used to relay authentication information', Help = 'When ZoneMinder is running in authenticated mode it can pass user details between the web pages and the back end processes. There are two methods for doing this. This first is to use a time limited hashed string which contains no direct username or password details, the second method is to pass the username and passwords around in plaintext. This method is not recommend except where you do not have the md5 libraries available on your system or you have a completely isolated system with no external access. You can also switch off authentication relaying if your system is isolated in other ways.', Category = 'system', Readonly = '0', Requires = 'ZM_OPT_USE_AUTH=1';
|
||||||
|
insert into Config set Id = 4, Name = 'ZM_AUTH_HASH_SECRET', Value = '...Change me to something unique...', Type = 'string', DefaultValue = '...Change me to something unique...', Hint = 'string', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'Secret for encoding hashed authentication information', Help = 'When ZoneMinder is running in hashed authenticated mode it is necessary to generate hashed strings containing encrypted sensitive information such as usernames and password. Although these string are reasonably secure the addition of a random secret increases security substantially.', Category = 'system', Readonly = '0', Requires = 'ZM_OPT_USE_AUTH=1;ZM_AUTH_RELAY=hashed';
|
||||||
|
insert into Config set Id = 5, Name = 'ZM_AUTH_HASH_IPS', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Include IP addresses in the authentication hash', Help = 'When ZoneMinder is running in hashed authenticated mode it can optionally include the requesting IP address in the resultant hash. This adds an extra level of security as only requests from that address may use that authentication key. However in some circumstances, such as access over mobile networks, the requesting address can change for each request which will cause most requests to fail. This option allows you to control whether IP addresses are included in the authentication hash on your system. If you experience intermitent problems with authentication, switching this option off may help.', Category = 'system', Readonly = '0', Requires = 'ZM_OPT_USE_AUTH=1;ZM_AUTH_RELAY=hashed';
|
||||||
|
insert into Config set Id = 6, Name = 'ZM_AUTH_HASH_LOGINS', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Allow login by authentication hash', Help = 'The normal process for logging into ZoneMinder is via the login screen with username and password. In some circumstances it may be desirable to allow access directly to one or more pages, for instance from a third party application. If this option is enabled then adding an \'auth\' parameter to any request will include a shortcut login bypassing the login screen, if not already logged in. As authentication hashes are time and, optionally, IP limited this can allow short-term access to ZoneMinder screens from other web pages etc. In order to use this the calling application will hae to generate the authentication hash itself and ensure it is valid. If you use this option you should ensure that you have modified the ZM_AUTH_HASH_SECRET to somethign unique to your system.', Category = 'system', Readonly = '0', Requires = 'ZM_OPT_USE_AUTH=1;ZM_AUTH_RELAY=hashed';
|
||||||
|
insert into Config set Id = 7, Name = 'ZM_DIR_EVENTS', Value = 'events', Type = 'string', DefaultValue = 'events', Hint = 'directory', Pattern = '(?^:^([a-zA-Z0-9-_.]+)$)', Format = ' $1 ', Prompt = 'Directory where events are stored', Help = 'This is the path to the events directory where all the event images and other miscellaneous files are stored. It is normally given as a subdirectory of the web directory you have specified earlier however if disk space is tight it can reside on another partition in which case you should create a link from that area to the path you give here.', Category = 'paths', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 8, Name = 'ZM_USE_DEEP_STORAGE', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Use a deep filesystem hierarchy for events', Help = 'Traditionally ZoneMinder stores all events for a monitor in one directory for that monitor. This is simple and efficient except when you have very large amounts of events. Some filesystems are unable to store more than 32k files in one directory and even without this limitation, large numbers of files in a directory can slow creation and deletion of files. This option allows you to select an alternate method of storing events by year/month/day/hour/min/second which has the effect of separating events out into more directories, resulting in less per directory, and also making it easier to manually navigate to any events that may have happened at a particular time or date.', Category = 'paths', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 9, Name = 'ZM_DIR_IMAGES', Value = 'images', Type = 'string', DefaultValue = 'images', Hint = 'directory', Pattern = '(?^:^([a-zA-Z0-9-_.]+)$)', Format = ' $1 ', Prompt = 'Directory where the images that the ZoneMinder client generates are stored', Help = 'ZoneMinder generates a myriad of images, mosty of which are associated with events. For those that aren\'t this is where they go.', Category = 'paths', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 10, Name = 'ZM_DIR_SOUNDS', Value = 'sounds', Type = 'string', DefaultValue = 'sounds', Hint = 'directory', Pattern = '(?^:^([a-zA-Z0-9-_.]+)$)', Format = ' $1 ', Prompt = 'Directory to the sounds that the ZoneMinder client can use', Help = 'ZoneMinder can optionally play a sound file when an alarm is detected. This indicates where (relative to the web root) to look for this file.', Category = 'paths', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 11, Name = 'ZM_PATH_ZMS', Value = '/cgi-bin/nph-zms', Type = 'string', DefaultValue = '/cgi-bin/nph-zms', Hint = 'relative/path/to/somewhere', Pattern = '(?^:^((?:[^/].*)?)/?$)', Format = ' $1 ', Prompt = 'Web path to zms streaming server', Help = 'The ZoneMinder streaming server is required to send streamed images to your browser. It will be installed into the cgi-bin path given at configuration time. This option determines what the web path to the server is rather than the local path on your machine. Ordinarily the streaming server runs in parser-header mode however if you experience problems with streaming you can change this to non-parsed-header (nph) mode by changing \'zms\' to \'nph-zms\'.', Category = 'paths', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 12, Name = 'ZM_COLOUR_JPEG_FILES', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Colourise greyscale JPEG files', Help = 'Cameras that capture in greyscale can write their captured images to jpeg files with a corresponding greyscale colour space. This saves a small amount of disk space over colour ones. However some tools such as ffmpeg either fail to work with this colour space or have to convert it beforehand. Setting this option to yes uses up a little more space but makes creation of MPEG files much faster.', Category = 'images', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 13, Name = 'ZM_ADD_JPEG_COMMENTS', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Add jpeg timestamp annotations as file header comments', Help = 'JPEG files may have a number of extra fields added to the file header. The comment field may have any kind of text added. This options allows you to have the same text that is used to annotate the image additionally included as a file header comment. If you archive event images to other locations this may help you locate images for particular events or times if you use software that can read comment headers.', Category = 'images', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 14, Name = 'ZM_JPEG_FILE_QUALITY', Value = '70', Type = 'integer', DefaultValue = '70', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'Set the JPEG quality setting for the saved event files (1-100)', Help = 'When ZoneMinder detects an event it will save the images associated with that event to files. These files are in the JPEG format and can be viewed or streamed later. This option specifies what image quality should be used to save these files. A higher number means better quality but less compression so will take up more disk space and take longer to view over a slow connection. By contrast a low number means smaller, quicker to view, files but at the price of lower quality images. This setting applies to all images written except if the capture image has caused an alarm and the alarm file quality option is set at a higher value when that is used instead.', Category = 'images', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 15, Name = 'ZM_JPEG_ALARM_FILE_QUALITY', Value = '0', Type = 'integer', DefaultValue = '0', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'Set the JPEG quality setting for the saved event files during an alarm (1-100)', Help = 'This value is equivalent to the regular jpeg file quality setting above except that it only applies to images saved while in an alarm state and then only if this value is set to a higher quality setting than the ordinary file setting. If set to a lower value then it is ignored. Thus leaving it at the default of 0 effectively means to use the regular file quality setting for all saved images. This is to prevent acccidentally saving important images at a worse quality setting.', Category = 'images', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 16, Name = 'ZM_JPEG_IMAGE_QUALITY', Value = '70', Type = 'integer', DefaultValue = '70', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'Set the JPEG quality setting for the streamed \'live\' images (1-100)', Help = 'When viewing a \'live\' stream for a monitor ZoneMinder will grab an image from the buffer and encode it into JPEG format before sending it. This option specifies what image quality should be used to encode these images. A higher number means better quality but less compression so will take longer to view over a slow connection. By contrast a low number means quicker to view images but at the price of lower quality images. This option does not apply when viewing events or still images as these are usually just read from disk and so will be encoded at the quality specified by the previous options.', Category = 'hidden', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 17, Name = 'ZM_JPEG_STREAM_QUALITY', Value = '70', Type = 'integer', DefaultValue = '70', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'Set the JPEG quality setting for the streamed \'live\' images (1-100)', Help = 'When viewing a \'live\' stream for a monitor ZoneMinder will grab an image from the buffer and encode it into JPEG format before sending it. This option specifies what image quality should be used to encode these images. A higher number means better quality but less compression so will take longer to view over a slow connection. By contrast a low number means quicker to view images but at the price of lower quality images. This option does not apply when viewing events or still images as these are usually just read from disk and so will be encoded at the quality specified by the previous options.', Category = 'images', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 18, Name = 'ZM_MPEG_TIMED_FRAMES', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Tag video frames with a timestamp for more realistic streaming', Help = 'When using streamed MPEG based video, either for live monitor streams or events, ZoneMinder can send the streams in two ways. If this option is selected then the timestamp for each frame, taken from it\'s capture time, is included in the stream. This means that where the frame rate varies, for instance around an alarm, the stream will still maintain it\'s \'real\' timing. If this option is not selected then an approximate frame rate is calculated and that is used to schedule frames instead. This option should be selected unless you encounter problems with your preferred streaming method.', Category = 'images', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 19, Name = 'ZM_MPEG_LIVE_FORMAT', Value = 'swf', Type = 'string', DefaultValue = 'swf', Hint = 'string', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'What format \'live\' video streams are played in', Help = 'When using MPEG mode ZoneMinder can output live video. However what formats are handled by the browser varies greatly between machines. This option allows you to specify a video format using a file extension format, so you would just enter the extension of the file type you would like and the rest is determined from that. The default of \'asf\' works well under Windows with Windows Media Player but I\'m currently not sure what, if anything, works on a Linux platform. If you find out please let me know! If this option is left blank then live streams will revert to being in motion jpeg format', Category = 'images', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 20, Name = 'ZM_MPEG_REPLAY_FORMAT', Value = 'swf', Type = 'string', DefaultValue = 'swf', Hint = 'string', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'What format \'replay\' video streams are played in', Help = 'When using MPEG mode ZoneMinder can replay events in encoded video format. However what formats are handled by the browser varies greatly between machines. This option allows you to specify a video format using a file extension format, so you would just enter the extension of the file type you would like and the rest is determined from that. The default of \'asf\' works well under Windows with Windows Media Player and \'mpg\', or \'avi\' etc should work under Linux. If you know any more then please let me know! If this option is left blank then live streams will revert to being in motion jpeg format', Category = 'images', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 21, Name = 'ZM_RAND_STREAM', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Add a random string to prevent caching of streams', Help = 'Some browsers can cache the streams used by ZoneMinder. In order to prevent his a harmless random string can be appended to the url to make each invocation of the stream appear unique.', Category = 'images', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 22, Name = 'ZM_OPT_CAMBOZOLA', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Is the (optional) cambozola java streaming client installed', Help = 'Cambozola is a handy low fat cheese flavoured Java applet that ZoneMinder uses to view image streams on browsers such as Internet Explorer that don\'t natively support this format. If you use this browser it is highly recommended to install this from http://www.charliemouse.com/code/cambozola/ however if it is not installed still images at a lower refresh rate can still be viewed.', Category = 'images', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 23, Name = 'ZM_PATH_CAMBOZOLA', Value = 'cambozola.jar', Type = 'string', DefaultValue = 'cambozola.jar', Hint = 'relative/path/to/somewhere', Pattern = '(?^:^((?:[^/].*)?)/?$)', Format = ' $1 ', Prompt = 'Web path to (optional) cambozola java streaming client', Help = 'Cambozola is a handy low fat cheese flavoured Java applet that ZoneMinder uses to view image streams on browsers such as Internet Explorer that don\'t natively support this format. If you use this browser it is highly recommended to install this from http://www.charliemouse.com/code/cambozola/ however if it is not installed still images at a lower refresh rate can still be viewed. Leave this as \'cambozola.jar\' if cambozola is installed in the same directory as the ZoneMinder web client files.', Category = 'images', Readonly = '0', Requires = 'ZM_OPT_CAMBOZOLA=1';
|
||||||
|
insert into Config set Id = 24, Name = 'ZM_RELOAD_CAMBOZOLA', Value = '0', Type = 'integer', DefaultValue = '0', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'After how many seconds should Cambozola be reloaded in live view', Help = 'Cambozola allows for the viewing of streaming MJPEG however it caches the entire stream into cache space on the computer, setting this to a number > 0 will cause it to automatically reload after that many seconds to avoid filling up a hard drive.', Category = 'images', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 25, Name = 'ZM_TIMESTAMP_ON_CAPTURE', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Timestamp images as soon as they are captured', Help = 'ZoneMinder can add a timestamp to images in two ways. The default method, when this option is set, is that each image is timestamped immediately when captured and so the image held in memory is marked right away. The second method does not timestamp the images until they are either saved as part of an event or accessed over the web. The timestamp used in both methods will contain the same time as this is preserved along with the image. The first method ensures that an image is timestamped regardless of any other circumstances but will result in all images being timestamped even those never saved or viewed. The second method necessitates that saved images are copied before being saved otherwise two timestamps perhaps at different scales may be applied. This has the (perhaps) desirable side effect that the timestamp is always applied at the same resolution so an image that has scaling applied will still have a legible and correctly scaled timestamp.', Category = 'config', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 26, Name = 'ZM_CPU_EXTENSIONS', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Use advanced CPU extensions to increase performance', Help = 'When advanced processor extensions such as SSE2 or SSSE3 are available, ZoneMinder can use them, which should increase performance and reduce system load. Enabling this option on processors that do not support the advanced processors extensions used by ZoneMinder is harmless and will have no effect.', Category = 'config', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 27, Name = 'ZM_FAST_IMAGE_BLENDS', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Use a fast algorithm to blend the reference image', Help = 'To detect alarms ZoneMinder needs to blend the captured image with the stored reference image to update it for comparison with the next image. The reference blend percentage specified for the monitor controls how much the new image affects the reference image. There are two methods that are available for this. If this option is set then fast calculation which does not use any multiplication or division is used. This calculation is extremely fast, however it limits the possible blend percentages to 50%, 25%, 12.5%, 6.25%, 3.25% and 1.5%. Any other blend percentage will be rounded to the nearest possible one. The alternative is to switch this option off and use standard blending instead, which is slower.', Category = 'config', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 28, Name = 'ZM_OPT_ADAPTIVE_SKIP', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Should frame analysis try and be efficient in skipping frames', Help = 'In previous versions of ZoneMinder the analysis daemon would attempt to keep up with the capture daemon by processing the last captured frame on each pass. This would sometimes have the undesirable side-effect of missing a chunk of the initial activity that caused the alarm because the pre-alarm frames would all have to be written to disk and the database before processing the next frame, leading to some delay between the first and second event frames. Setting this option enables a newer adaptive algorithm where the analysis daemon attempts to process as many captured frames as possible, only skipping frames when in danger of the capture daemon overwriting yet to be processed frames. This skip is variable depending on the size of the ring buffer and the amount of space left in it. Enabling this option will give you much better coverage of the beginning of alarms whilst biasing out any skipped frames towards the middle or end of the event. However you should be aware that this will have the effect of making the analysis daemon run somewhat behind the capture daemon during events and for particularly fast rates of capture it is possible for the adaptive algorithm to be overwhelmed and not have time to react to a rapid build up of pending frames and thus for a buffer overrun condition to occur.', Category = 'config', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 29, Name = 'ZM_BLEND_ALARMED_IMAGES', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Blend alarmed images to update the reference image', Help = 'To detect alarms ZoneMinder compares an image with a reference image which is formed from a composite of the previous images. This option determines whether images that cause events are included in this process. Doing so may increase the precision of the alarmed region but can cause problems if wholescale lighting changes cause alarms as this would not get fed back into the image and an alarm may persist indefinately. A better way to achive the same effect in most cases is to lower substantially the reference blend percentage in specific monitors.', Category = 'config', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 30, Name = 'ZM_MAX_SUSPEND_TIME', Value = '30', Type = 'integer', DefaultValue = '30', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'Maximum time that a monitor may have motion detection suspended', Help = 'ZoneMinder allows monitors to have motion detection to be suspended, for instance while panning a camera. Ordinarily this relies on the operator resuming motion detection afterwards as failure to do so can leave a monitor in a permanently suspended state. This setting allows you to set a maximum time which a camera may be suspended for before it automatically resumes motion detection. This time can be extended by subsequent suspend indications after the first so continuous camera movement will also occur while the monitor is suspended.', Category = 'config', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 31, Name = 'ZM_OPT_REMOTE_CAMERAS', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Are you going to use remote/networked cameras', Help = 'ZoneMinder can work with both local cameras, ie. those attached physically to your computer and remote or network cameras. If you will be using networked cameras select this option.', Category = 'hidden', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 32, Name = 'ZM_NETCAM_REGEXPS', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Use regular expression matching with network cameras', Help = 'Traditionally ZoneMinder has used complex regular regular expressions to handle the multitude of formats that network cameras produce. In versions from 1.21.1 the default is to use a simpler and faster built in pattern matching methodology. This works well with most networks cameras but if you have problems you can try the older, but more flexible, regular expression based method by selecting this option. Note, to use this method you must have libpcre installed on your system.', Category = 'hidden', Readonly = '0', Requires = 'ZM_OPT_REMOTE_CAMERAS=1';
|
||||||
|
insert into Config set Id = 33, Name = 'ZM_HTTP_VERSION', Value = '1.1', Type = 'string', DefaultValue = '1.1', Hint = '1.1|1.0', Pattern = '(?^:^(1\.[01])$)', Format = ' $1?$1:\"\" ', Prompt = 'The version of HTTP that ZoneMinder will use to connect', Help = 'ZoneMinder can communicate with network cameras using either of the HTTP/1.1 or HTTP/1.0 standard. A server will normally fall back to the version it supports iwht no problem so this should usually by left at the default. However it can be changed to HTTP/1.0 if necessary to resolve particular issues.', Category = 'network', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 34, Name = 'ZM_HTTP_UA', Value = 'ZoneMinder', Type = 'string', DefaultValue = 'ZoneMinder', Hint = 'string', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'The user agent that ZoneMinder uses to identify itself', Help = 'When ZoneMinder communicates with remote cameras it will identify itself using this string and it\'s version number. This is normally sufficient, however if a particular cameras expects only to communicate with certain browsers then this can be changed to a different string identifying ZoneMinder as Internet Explorer or Netscape etc.', Category = 'network', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 35, Name = 'ZM_HTTP_TIMEOUT', Value = '2500', Type = 'integer', DefaultValue = '2500', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How long ZoneMinder waits before giving up on images (milliseconds)', Help = 'When retrieving remote images ZoneMinder will wait for this length of time before deciding that an image is not going to arrive and taking steps to retry. This timeout is in milliseconds (1000 per second) and will apply to each part of an image if it is not sent in one whole chunk.', Category = 'network', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 36, Name = 'ZM_MIN_RTP_PORT', Value = '40200', Type = 'integer', DefaultValue = '40200', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'Minimum port that ZoneMinder will listen for RTP traffic on', Help = 'When ZoneMinder communicates with MPEG4 capable cameras using RTP with the unicast method it must open ports for the camera to connect back to for control and streaming purposes. This setting specifies the minimum port number that ZoneMinder will use. Ordinarily two adjacent ports are used for each camera, one for control packets and one for data packets. This port should be set to an even number, you may also need to open up a hole in your firewall to allow cameras to connect back if you wish to use unicasting.', Category = 'network', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 37, Name = 'ZM_MAX_RTP_PORT', Value = '40499', Type = 'integer', DefaultValue = '40499', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'Maximum port that ZoneMinder will listen for RTP traffic on', Help = 'When ZoneMinder communicates with MPEG4 capable cameras using RTP with the unicast method it must open ports for the camera to connect back to for control and streaming purposes. This setting specifies the maximum port number that ZoneMinder will use. Ordinarily two adjacent ports are used for each camera, one for control packets and one for data packets. This port should be set to an even number, you may also need to open up a hole in your firewall to allow cameras to connect back if you wish to use unicasting. You should also ensure that you have opened up at least two ports for each monitor that will be connecting to unicasting network cameras.', Category = 'network', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 38, Name = 'ZM_OPT_FFMPEG', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Is the ffmpeg video encoder/decoder installed', Help = 'ZoneMinder can optionally encode a series of video images into an MPEG encoded movie file for viewing, downloading or storage. This option allows you to specify whether you have the ffmpeg tools installed. Note that creating MPEG files can be fairly CPU and disk intensive and is not a required option as events can still be reviewed as video streams without it.', Category = 'images', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 39, Name = 'ZM_PATH_FFMPEG', Value = '/usr/bin/ffmpeg', Type = 'string', DefaultValue = '/usr/bin/ffmpeg', Hint = '/absolute/path/to/somewhere', Pattern = '(?^:^((?:/[^/]*)+?)/?$)', Format = ' $1 ', Prompt = 'Path to (optional) ffmpeg mpeg encoder', Help = 'This path should point to where ffmpeg has been installed.', Category = 'images', Readonly = '0', Requires = 'ZM_OPT_FFMPEG=1';
|
||||||
|
insert into Config set Id = 40, Name = 'ZM_FFMPEG_INPUT_OPTIONS', Value = '', Type = 'string', DefaultValue = '', Hint = 'string', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'Additional input options to ffmpeg', Help = 'Ffmpeg can take many options on the command line to control the quality of video produced. This option allows you to specify your own set that apply to the input to ffmpeg (options that are given before the -i option). Check the ffmpeg documentation for a full list of options which may be used here.', Category = 'images', Readonly = '0', Requires = 'ZM_OPT_FFMPEG=1';
|
||||||
|
insert into Config set Id = 41, Name = 'ZM_FFMPEG_OUTPUT_OPTIONS', Value = '-r 25', Type = 'string', DefaultValue = '-r 25', Hint = 'string', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'Additional output options to ffmpeg', Help = 'Ffmpeg can take many options on the command line to control the quality of video produced. This option allows you to specify your own set that apply to the output from ffmpeg (options that are given after the -i option). Check the ffmpeg documentation for a full list of options which may be used here. The most common one will often be to force an output frame rate supported by the video encoder.', Category = 'images', Readonly = '0', Requires = 'ZM_OPT_FFMPEG=1';
|
||||||
|
insert into Config set Id = 42, Name = 'ZM_FFMPEG_FORMATS', Value = 'mpg mpeg wmv asf avi* mov swf 3gp**', Type = 'string', DefaultValue = 'mpg mpeg wmv asf avi* mov swf 3gp**', Hint = 'string', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'Formats to allow for ffmpeg video generation', Help = 'Ffmpeg can generate video in many different formats. This option allows you to list the ones you want to be able to select. As new formats are supported by ffmpeg you can add them here and be able to use them immediately. Adding a \'*\' after a format indicates that this will be the default format used for web video, adding \'**\' defines the default format for phone video.', Category = 'images', Readonly = '0', Requires = 'ZM_OPT_FFMPEG=1';
|
||||||
|
insert into Config set Id = 43, Name = 'ZM_LOG_LEVEL_SYSLOG', Value = '0', Type = 'integer', DefaultValue = '0', Hint = 'None=-5|Panic=-4|Fatal=-3|Error=-2|Warning=-1|Info=0|Debug=1', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'Save logging output to the system log', Help = 'ZoneMinder logging is now more more integrated between components and allows you to specify the destination for logging output and the individual levels for each. This option lets you control the level of logging output that goes to the system log. ZoneMinder binaries have always logged to the system log but now scripts and web logging is also included. To preserve the previous behaviour you should ensure this value is set to Info or Warning. This option controls the maximum level of logging that will be written, so Info includes Warnings and Errors etc. To disable entirely, set this option to None. You should use caution when setting this option to Debug as it can affect severely affect system performance. If you want debug you will also need to set a level and component below', Category = 'logging', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 44, Name = 'ZM_LOG_LEVEL_FILE', Value = '-5', Type = 'integer', DefaultValue = '-5', Hint = 'None=-5|Panic=-4|Fatal=-3|Error=-2|Warning=-1|Info=0|Debug=1', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'Save logging output to component files', Help = 'ZoneMinder logging is now more more integrated between components and allows you to specify the destination for logging output and the individual levels for each. This option lets you control the level of logging output that goes to individual log files written by specific components. This is how logging worked previously and although useful for tracking down issues in specific components it also resulted in many disparate log files. To preserve this behaviour you should ensure this value is set to Info or Warning. This option controls the maximum level of logging that will be written, so Info includes Warnings and Errors etc. To disable entirely, set this option to None. You should use caution when setting this option to Debug as it can affect severely affect system performance though file output has less impact than the other options. If you want debug you will also need to set a level and component below', Category = 'logging', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 45, Name = 'ZM_LOG_LEVEL_WEBLOG', Value = '-5', Type = 'integer', DefaultValue = '-5', Hint = 'None=-5|Panic=-4|Fatal=-3|Error=-2|Warning=-1|Info=0|Debug=1', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'Save logging output to the weblog', Help = 'ZoneMinder logging is now more more integrated between components and allows you to specify the destination for logging output and the individual levels for each. This option lets you control the level of logging output from the web interface that goes to the httpd error log. Note that only web logging from PHP and JavaScript files is included and so this option is really only useful for investigating specific issues with those components. This option controls the maximum level of logging that will be written, so Info includes Warnings and Errors etc. To disable entirely, set this option to None. You should use caution when setting this option to Debug as it can affect severely affect system performance. If you want debug you will also need to set a level and component below', Category = 'logging', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 46, Name = 'ZM_LOG_LEVEL_DATABASE', Value = '0', Type = 'integer', DefaultValue = '0', Hint = 'None=-5|Panic=-4|Fatal=-3|Error=-2|Warning=-1|Info=0|Debug=1', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'Save logging output to the database', Help = 'ZoneMinder logging is now more more integrated between components and allows you to specify the destination for logging output and the individual levels for each. This option lets you control the level of logging output that is written to the database. This is a new option which can make viewing logging output easier and more intuitive and also makes it easier to get an overall impression of how the system is performing. If you have a large or very busy system then it is possible that use of this option may slow your system down if the table becomes very large. Ensure you use the LOG_DATABASE_LIMIT option to keep the table to a manageable size. This option controls the maximum level of logging that will be written, so Info includes Warnings and Errors etc. To disable entirely, set this option to None. You should use caution when setting this option to Debug as it can affect severely affect system performance. If you want debug you will also need to set a level and component below', Category = 'logging', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 47, Name = 'ZM_LOG_DATABASE_LIMIT', Value = '7 day', Type = 'string', DefaultValue = '7 day', Hint = 'string', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'Maximum number of log entries to retain', Help = 'If you are using database logging then it is possible to quickly build up a large number of entries in the Logs table. This option allows you to specify how many of these entries are kept. If you set this option to a number greater than zero then that number is used to determine the maximum number of rows, less than or equal to zero indicates no limit and is not recommended. You can also set this value to time values such as \'<n> day\' which will limit the log entries to those newer than that time. You can specify \'hour\', \'day\', \'week\', \'month\' and \'year\', note that the values should be singular (no \'s\' at the end). The Logs table is pruned periodically so it is possible for more than the expected number of rows to be present briefly in the meantime.', Category = 'logging', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 48, Name = 'ZM_LOG_DEBUG', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Switch debugging on', Help = 'ZoneMinder components usually support debug logging available to help with diagnosing problems. Binary components have several levels of debug whereas more other components have only one. Normally this is disabled to minimise performance penalties and avoid filling logs too quickly. This option lets you switch on other options that allow you to configure additional debug information to be output. Components will pick up this instruction when they are restarted.', Category = 'logging', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 49, Name = 'ZM_LOG_DEBUG_TARGET', Value = '', Type = 'string', DefaultValue = '', Hint = 'string', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'What components should have extra debug enabled', Help = 'There are three scopes of debug available. Leaving this option blank means that all components will use extra debug (not recommended). Setting this option to \'_<component>\', e.g. _zmc, will limit extra debug to that component only. Setting this option to \'_<component>_<identity>\', e.g. \'_zmc_m1\' will limit extra debug to that instance of the component only. This is ordinarily what you probably want to do. To debug scripts use their names without the .pl extension, e.g. \'_zmvideo\' and to debug issues with the web interface use \'_web\'. You can specify multiple targets by separating them with \'|\' characters.', Category = 'logging', Readonly = '0', Requires = 'ZM_LOG_DEBUG=1';
|
||||||
|
insert into Config set Id = 50, Name = 'ZM_LOG_DEBUG_LEVEL', Value = '1', Type = 'integer', DefaultValue = '1', Hint = '1|2|3|4|5|6|7|8|9', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'What level of extra debug should be enabled', Help = 'There are 9 levels of debug available, with higher numbers being more debug and level 0 being no debug. However not all levels are used by all components. Also if there is debug at a high level it is usually likely to be output at such a volume that it may obstruct normal operation. For this reason you should set the level carefully and cautiously until the degree of debug you wish to see is present. Scripts and the web interface only have one level so this is an on/off type option for them.', Category = 'logging', Readonly = '0', Requires = 'ZM_LOG_DEBUG=1';
|
||||||
|
insert into Config set Id = 51, Name = 'ZM_LOG_DEBUG_FILE', Value = '/tmp/zm/zm_debug.log+', Type = 'string', DefaultValue = '/tmp/zm/zm_debug.log+', Hint = 'string', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'Where extra debug is output to', Help = 'This option allows you to specify a different target for debug output. All components have a default log file which will norally be in /tmp or /var/log and this is where debug will be written to if this value is empty. Adding a path here will temporarily redirect debug, and other logging output, to this file. This option is a simple filename and you are debugging several components then they will all try and write to the same file with undesirable consequences. Appending a \'+\' to the filename will cause the file to be created with a \'.<pid>\' suffix containing your process id. In this way debug from each run of a component is kept separate. This is the recommended setting as it will also prevent subsequent runs from overwriting the same log. You should ensure that permissions are set up to allow writing to the file and directory specified here.', Category = 'logging', Readonly = '0', Requires = 'ZM_LOG_DEBUG=1';
|
||||||
|
insert into Config set Id = 52, Name = 'ZM_LOG_CHECK_PERIOD', Value = '900', Type = 'integer', DefaultValue = '900', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'Time period used when calculating overall system health', Help = 'When ZoneMinder is logging events to the database it can retrospectively examine the number of warnings and errors that have occurred to calculate an overall state of system health. This option allows you to indicate what period of historical events are used in this calculation. This value is expressed in seconds and is ignored if LOG_LEVEL_DATABASE is set to None.', Category = 'logging', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 53, Name = 'ZM_LOG_ALERT_WAR_COUNT', Value = '1', Type = 'integer', DefaultValue = '1', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'Number of warnings indicating system alert state', Help = 'When ZoneMinder is logging events to the database it can retrospectively examine the number of warnings and errors that have occurred to calculate an overall state of system health. This option allows you to specify how many warnings must have occurred within the defined time period to generate an overall system alert state. A value of zero means warnings are not considered. This value is ignored if LOG_LEVEL_DATABASE is set to None.', Category = 'logging', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 54, Name = 'ZM_LOG_ALERT_ERR_COUNT', Value = '1', Type = 'integer', DefaultValue = '1', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'Number of errors indicating system alert state', Help = 'When ZoneMinder is logging events to the database it can retrospectively examine the number of warnings and errors that have occurred to calculate an overall state of system health. This option allows you to specify how many errors must have occurred within the defined time period to generate an overall system alert state. A value of zero means errors are not considered. This value is ignored if LOG_LEVEL_DATABASE is set to None.', Category = 'logging', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 55, Name = 'ZM_LOG_ALERT_FAT_COUNT', Value = '0', Type = 'integer', DefaultValue = '0', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'Number of fatal error indicating system alert state', Help = 'When ZoneMinder is logging events to the database it can retrospectively examine the number of warnings and errors that have occurred to calculate an overall state of system health. This option allows you to specify how many fatal errors (including panics) must have occurred within the defined time period to generate an overall system alert state. A value of zero means fatal errors are not considered. This value is ignored if LOG_LEVEL_DATABASE is set to None.', Category = 'logging', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 56, Name = 'ZM_LOG_ALARM_WAR_COUNT', Value = '100', Type = 'integer', DefaultValue = '100', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'Number of warnings indicating system alarm state', Help = 'When ZoneMinder is logging events to the database it can retrospectively examine the number of warnings and errors that have occurred to calculate an overall state of system health. This option allows you to specify how many warnings must have occurred within the defined time period to generate an overall system alarm state. A value of zero means warnings are not considered. This value is ignored if LOG_LEVEL_DATABASE is set to None.', Category = 'logging', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 57, Name = 'ZM_LOG_ALARM_ERR_COUNT', Value = '10', Type = 'integer', DefaultValue = '10', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'Number of errors indicating system alarm state', Help = 'When ZoneMinder is logging events to the database it can retrospectively examine the number of warnings and errors that have occurred to calculate an overall state of system health. This option allows you to specify how many errors must have occurred within the defined time period to generate an overall system alarm state. A value of zero means errors are not considered. This value is ignored if LOG_LEVEL_DATABASE is set to None.', Category = 'logging', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 58, Name = 'ZM_LOG_ALARM_FAT_COUNT', Value = '1', Type = 'integer', DefaultValue = '1', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'Number of fatal error indicating system alarm state', Help = 'When ZoneMinder is logging events to the database it can retrospectively examine the number of warnings and errors that have occurred to calculate an overall state of system health. This option allows you to specify how many fatal errors (including panics) must have occurred within the defined time period to generate an overall system alarm state. A value of zero means fatal errors are not considered. This value is ignored if LOG_LEVEL_DATABASE is set to None.', Category = 'logging', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 59, Name = 'ZM_RECORD_EVENT_STATS', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Record event statistical information, switch off if too slow', Help = 'This version of ZoneMinder records detailed information about events in the Stats table. This can help in profiling what the optimum settings are for Zones though this is tricky at present. However in future releases this will be done more easily and intuitively, especially with a large sample of events. The default option of \'yes\' allows this information to be collected now in readiness for this but if you are concerned about performance you can switch this off in which case no Stats information will be saved.', Category = 'logging', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 60, Name = 'ZM_RECORD_DIAG_IMAGES', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Record intermediate alarm diagnostic images, can be very slow', Help = 'In addition to recording event statistics you can also record the intermediate diagnostic images that display the results of the various checks and processing that occur when trying to determine if an alarm event has taken place. There are several of these images generated for each frame and zone for each alarm or alert frame so this can have a massive impact on performance. Only switch this setting on for debug or analysis purposes and remember to switch it off again once no longer required.', Category = 'logging', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 61, Name = 'ZM_DUMP_CORES', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Create core files on unexpected process failure.', Help = 'When an unrecoverable error occurs in a ZoneMinder binary process is has traditionally been trapped and the details written to logs to aid in remote analysis. However in some cases it is easier to diagnose the error if a core file, which is a memory dump of the process at the time of the error, is created. This can be interactively analysed in the debugger and may reveal more or better information than that available from the logs. This option is recommended for advanced users only otherwise leave at the default. Note using this option to trigger core files will mean that there will be no indication in the binary logs that a process has died, they will just stop, however the zmdc log will still contain an entry. Also note that you may have to explicitly enable core file creation on your system via the \'ulimit -c\' command or other means otherwise no file will be created regardless of the value of this option.', Category = 'logging', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 62, Name = 'ZM_PATH_MAP', Value = '/dev/shm', Type = 'string', DefaultValue = '/dev/shm', Hint = '/absolute/path/to/somewhere', Pattern = '(?^:^((?:/[^/]*)+?)/?$)', Format = ' $1 ', Prompt = 'Path to the mapped memory files that that ZoneMinder can use', Help = 'ZoneMinder has historically used IPC shared memory for shared data between processes. This has it\'s advantages and limitations. This version of ZoneMinder can use an alternate method, mapped memory, instead with can be enabled with the --enable--mmap directive to configure. This requires less system configuration and is generally more flexible. However it requires each shared data segment to map onto a filesystem file. This option indicates where those mapped files go. You should ensure that this location has sufficient space for these files and for the best performance it should be a tmpfs file system or ramdisk otherwise disk access may render this method slower than the regular shared memory one.', Category = 'paths', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 63, Name = 'ZM_PATH_SOCKS', Value = '/tmp/zm', Type = 'string', DefaultValue = '/tmp/zm', Hint = '/absolute/path/to/somewhere', Pattern = '(?^:^((?:/[^/]*)+?)/?$)', Format = ' $1 ', Prompt = 'Path to the various Unix domain socket files that ZoneMinder uses', Help = 'ZoneMinder generally uses Unix domain sockets where possible. This reduces the need for port assignments and prevents external applications from possibly compromising the daemons. However each Unix socket requires a .sock file to be created. This option indicates where those socket files go.', Category = 'paths', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 64, Name = 'ZM_PATH_LOGS', Value = '/var/log/zm', Type = 'string', DefaultValue = '/var/log/zm', Hint = '/absolute/path/to/somewhere', Pattern = '(?^:^((?:/[^/]*)+?)/?$)', Format = ' $1 ', Prompt = 'Path to the various logs that the ZoneMinder daemons generate', Help = 'There are various daemons that are used by ZoneMinder to perform various tasks. Most generate helpful log files and this is where they go. They can be deleted if not required for debugging.', Category = 'paths', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 65, Name = 'ZM_PATH_SWAP', Value = '/tmp/zm', Type = 'string', DefaultValue = '/tmp/zm', Hint = '/absolute/path/to/somewhere', Pattern = '(?^:^((?:/[^/]*)+?)/?$)', Format = ' $1 ', Prompt = 'Path to location for temporary swap images used in streaming', Help = 'Buffered playback requires temporary swap images to be stored for each instance of the streaming daemons. This option determines where these images will be stored. The images will actually be stored in sub directories beneath this location and will be automatically cleaned up after a period of time.', Category = 'paths', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 66, Name = 'ZM_WEB_TITLE_PREFIX', Value = 'ZM', Type = 'string', DefaultValue = 'ZM', Hint = 'string', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'The title prefix displayed on each window', Help = 'If you have more than one installation of ZoneMinder it can be helpful to display different titles for each one. Changing this option allows you to customise the window titles to include further information to aid identification.', Category = 'web', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 67, Name = 'ZM_WEB_RESIZE_CONSOLE', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Should the console window resize itself to fit', Help = 'Traditionally the main ZoneMinder web console window has resized itself to shrink to a size small enough to list only the monitors that are actually present. This is intended to make the window more unobtrusize but may not be to everyones tastes, especially if opened in a tab in browsers which support this kind if layout. Switch this option off to have the console window size left to the users preference', Category = 'web', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 68, Name = 'ZM_WEB_POPUP_ON_ALARM', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Should the monitor window jump to the top if an alarm occurs', Help = 'When viewing a live monitor stream you can specify whether you want the window to pop to the front if an alarm occurs when the window is minimised or behind another window. This is most useful if your monitors are over doors for example when they can pop up if someone comes to the doorway.', Category = 'web', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 69, Name = 'ZM_OPT_X10', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Support interfacing with X10 devices', Help = 'If you have an X10 Home Automation setup in your home you can use ZoneMinder to initiate or react to X10 signals if your computer has the appropriate interface controller. This option indicates whether X10 options will be available in the browser client.', Category = 'x10', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 70, Name = 'ZM_X10_DEVICE', Value = '/dev/ttyS0', Type = 'string', DefaultValue = '/dev/ttyS0', Hint = '/absolute/path/to/somewhere', Pattern = '(?^:^((?:/[^/]*)+?)/?$)', Format = ' $1 ', Prompt = 'What device is your X10 controller connected on', Help = 'If you have an X10 controller device (e.g. XM10U) connected to your computer this option details which port it is conected on, the default of /dev/ttyS0 maps to serial or com port 1.', Category = 'x10', Readonly = '0', Requires = 'ZM_OPT_X10=1';
|
||||||
|
insert into Config set Id = 71, Name = 'ZM_X10_HOUSE_CODE', Value = 'A', Type = 'string', DefaultValue = 'A', Hint = 'A-P', Pattern = '(?^i:^([A-P]))', Format = ' uc($1) ', Prompt = 'What X10 house code should be used', Help = 'X10 devices are grouped together by identifying them as all belonging to one House Code. This option details what that is. It should be a single letter between A and P.', Category = 'x10', Readonly = '0', Requires = 'ZM_OPT_X10=1';
|
||||||
|
insert into Config set Id = 72, Name = 'ZM_X10_DB_RELOAD_INTERVAL', Value = '60', Type = 'integer', DefaultValue = '60', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How often (in seconds) the X10 daemon reloads the monitors from the database', Help = 'The zmx10 daemon periodically checks the database to find out what X10 events trigger, or result from, alarms. This option determines how frequently this check occurs, unless you change this area frequently this can be a fairly large value.', Category = 'x10', Readonly = '0', Requires = 'ZM_OPT_X10=1';
|
||||||
|
insert into Config set Id = 73, Name = 'ZM_WEB_SOUND_ON_ALARM', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Should the monitor window play a sound if an alarm occurs', Help = 'When viewing a live monitor stream you can specify whether you want the window to play a sound to alert you if an alarm occurs.', Category = 'web', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 74, Name = 'ZM_WEB_ALARM_SOUND', Value = '', Type = 'string', DefaultValue = '', Hint = 'filename', Pattern = '(?^:^([a-zA-Z0-9-_.]+)$)', Format = ' $1 ', Prompt = 'The sound to play on alarm, put this in the sounds directory', Help = 'You can specify a sound file to play if an alarm occurs whilst you are watching a live monitor stream. So long as your browser understands the format it does not need to be any particular type. This file should be placed in the sounds directory defined earlier.', Category = 'web', Readonly = '0', Requires = 'ZM_WEB_SOUND_ON_ALARM=1';
|
||||||
|
insert into Config set Id = 75, Name = 'ZM_WEB_COMPACT_MONTAGE', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Compact the montage view by removing extra detail', Help = 'The montage view shows the output of all of your active monitors in one window. This include a small menu and status information for each one. This can increase the web traffic and make the window larger than may be desired. Setting this option on removes all this extraneous information and just displays the images.', Category = 'web', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 76, Name = 'ZM_OPT_FAST_DELETE', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Delete only event database records for speed', Help = 'Normally an event created as the result of an alarm consists of entries in one or more database tables plus the various files associated with it. When deleting events in the browser it can take a long time to remove all of this if your are trying to do a lot of events at once. It is recommended that you set this option which means that the browser client only deletes the key entries in the events table, which means the events will no longer appear in the listing, and leaves the zmaudit daemon to clear up the rest later.', Category = 'system', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 77, Name = 'ZM_STRICT_VIDEO_CONFIG', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Allow errors in setting video config to be fatal', Help = 'With some video devices errors can be reported in setting the various video attributes when in fact the operation was successful. Switching this option off will still allow these errors to be reported but will not cause them to kill the video capture daemon. Note however that doing this will cause all errors to be ignored including those which are genuine and which may cause the video capture to not function correctly. Use this option with caution.', Category = 'config', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 78, Name = 'ZM_SIGNAL_CHECK_POINTS', Value = '10', Type = 'integer', DefaultValue = '10', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How many points in a captured image to check for signal loss', Help = 'For locally attached video cameras ZoneMinder can check for signal loss by looking at a number of random points on each captured image. If all of these points are set to the same fixed colour then the camera is assumed to have lost signal. When this happens any open events are closed and a short one frame signal loss event is generated, as is another when the signal returns. This option defines how many points on each image to check. Note that this is a maximum, any points found to not have the check colour will abort any further checks so in most cases on a couple of points will actually be checked. Network and file based cameras are never checked.', Category = 'config', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 79, Name = 'ZM_V4L_MULTI_BUFFER', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Use more than one buffer for Video 4 Linux devices', Help = 'Performance when using Video 4 Linux devices is usually best if multiple buffers are used allowing the next image to be captured while the previous one is being processed. If you have multiple devices on a card sharing one input that requires switching then this approach can sometimes cause frames from one source to be mixed up with frames from another. Switching this option off prevents multi buffering resulting in slower but more stable image capture. This option is ignored for non-local cameras or if only one input is present on a capture chip. This option addresses a similar problem to the ZM_CAPTURES_PER_FRAME option and you should normally change the value of only one of the options at a time.', Category = 'config', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 80, Name = 'ZM_CAPTURES_PER_FRAME', Value = '1', Type = 'integer', DefaultValue = '1', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How many images are captured per returned frame, for shared local cameras', Help = 'If you are using cameras attached to a video capture card which forces multiple inputs to share one capture chip, it can sometimes produce images with interlaced frames reversed resulting in poor image quality and a distinctive comb edge appearance. Increasing this setting allows you to force additional image captures before one is selected as the captured frame. This allows the capture hardware to \'settle down\' and produce better quality images at the price of lesser capture rates. This option has no effect on (a) network cameras, or (b) where multiple inputs do not share a capture chip. This option addresses a similar problem to the ZM_V4L_MULTI_BUFFER option and you should normally change the value of only one of the options at a time.', Category = 'config', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 81, Name = 'ZM_FILTER_RELOAD_DELAY', Value = '300', Type = 'integer', DefaultValue = '300', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How often (in seconds) filters are reloaded in zmfilter', Help = 'ZoneMinder allows you to save filters to the database which allow events that match certain criteria to be emailed, deleted or uploaded to a remote machine etc. The zmfilter daemon loads these and does the actual operation. This option determines how often the filters are reloaded from the database to get the latest versions or new filters. If you don\'t change filters very often this value can be set to a large value.', Category = 'system', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 82, Name = 'ZM_FILTER_EXECUTE_INTERVAL', Value = '60', Type = 'integer', DefaultValue = '60', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How often (in seconds) to run automatic saved filters', Help = 'ZoneMinder allows you to save filters to the database which allow events that match certain criteria to be emailed, deleted or uploaded to a remote machine etc. The zmfilter daemon loads these and does the actual operation. This option determines how often the filters are executed on the saved event in the database. If you want a rapid response to new events this should be a smaller value, however this may increase the overall load on the system and affect performance of other elements.', Category = 'system', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 83, Name = 'ZM_OPT_UPLOAD', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Should ZoneMinder support uploading events from filters', Help = 'In ZoneMinder you can create event filters that specify whether events that match certain criteria should be uploaded to a remote server for archiving. This option specifies whether this functionality should be available', Category = 'upload', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 84, Name = 'ZM_UPLOAD_ARCH_FORMAT', Value = 'tar', Type = 'string', DefaultValue = 'tar', Hint = 'tar|zip', Pattern = '(?^i:^([tz]))', Format = ' $1 =~ /^t/ ? \"tar\" : \"zip\" ', Prompt = 'What format the uploaded events should be created in.', Help = 'Uploaded events may be stored in either .tar or .zip format, this option specifies which. Note that to use this you will need to have the Archive::Tar and/or Archive::Zip perl modules installed.', Category = 'upload', Readonly = '0', Requires = 'ZM_OPT_UPLOAD=1';
|
||||||
|
insert into Config set Id = 85, Name = 'ZM_UPLOAD_ARCH_COMPRESS', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Should archive files be compressed', Help = 'When the archive files are created they can be compressed. However in general since the images are compressed already this saves only a minimal amount of space versus utilising more CPU in their creation. Only enable if you have CPU to waste and are limited in disk space on your remote server or bandwidth.', Category = 'upload', Readonly = '0', Requires = 'ZM_OPT_UPLOAD=1';
|
||||||
|
insert into Config set Id = 86, Name = 'ZM_UPLOAD_ARCH_ANALYSE', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Include the analysis files in the archive', Help = 'When the archive files are created they can contain either just the captured frames or both the captured frames and, for frames that caused an alarm, the analysed image with the changed area highlighted. This option controls files are included. Only include analysed frames if you have a high bandwidth connection to the remote server or if you need help in figuring out what caused an alarm in the first place as archives with these files in can be considerably larger.', Category = 'upload', Readonly = '0', Requires = 'ZM_OPT_UPLOAD=1';
|
||||||
|
insert into Config set Id = 87, Name = 'ZM_UPLOAD_PROTOCOL', Value = 'ftp', Type = 'string', DefaultValue = 'ftp', Hint = 'ftp|sftp', Pattern = '(?^i:^([tz]))', Format = ' $1 =~ /^f/ ? \"ftp\" : \"sftp\" ', Prompt = 'What protocol to use to upload events', Help = 'ZoneMinder can upload events to a remote server using either FTP or SFTP. Regular FTP is widely supported but not necessarily very secure whereas SFTP (Secure FTP) runs over an ssh connection and so is encrypted and uses regular ssh ports. Note that to use this you will need to have the appropriate perl module, either Net::FTP or Net::SFTP installed depending on your choice.', Category = 'upload', Readonly = '0', Requires = 'ZM_OPT_UPLOAD=1';
|
||||||
|
insert into Config set Id = 88, Name = 'ZM_UPLOAD_FTP_HOST', Value = '', Type = 'string', DefaultValue = '', Hint = 'host.your.domain', Pattern = '(?^:^([a-zA-Z0-9_.-]+)$)', Format = ' $1 ', Prompt = 'The remote server to upload to', Help = 'You can use filters to instruct ZoneMinder to upload events to a remote ftp server. This option indicates the name, or ip address, of the server to use.', Category = 'hidden', Readonly = '0', Requires = 'ZM_OPT_UPLOAD=1';
|
||||||
|
insert into Config set Id = 89, Name = 'ZM_UPLOAD_HOST', Value = '', Type = 'string', DefaultValue = '', Hint = 'host.your.domain', Pattern = '(?^:^([a-zA-Z0-9_.-]+)$)', Format = ' $1 ', Prompt = 'The remote server to upload events to', Help = 'You can use filters to instruct ZoneMinder to upload events to a remote server. This option indicates the name, or ip address, of the server to use.', Category = 'upload', Readonly = '0', Requires = 'ZM_OPT_UPLOAD=1';
|
||||||
|
insert into Config set Id = 90, Name = 'ZM_UPLOAD_PORT', Value = '', Type = 'integer', DefaultValue = '', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'The port on the remote upload server, if not the default (SFTP only)', Help = 'You can use filters to instruct ZoneMinder to upload events to a remote server. If you are using the SFTP protocol then this option allows you to specify a particular port to use for connection. If this option is left blank then the default, port 22, is used. This option is ignored for FTP uploads.', Category = 'upload', Readonly = '0', Requires = 'ZM_OPT_UPLOAD=1';
|
||||||
|
insert into Config set Id = 91, Name = 'ZM_UPLOAD_FTP_USER', Value = '', Type = 'string', DefaultValue = '', Hint = 'alphanumeric', Pattern = '(?^:^([a-zA-Z0-9-_]+)$)', Format = ' $1 ', Prompt = 'Your ftp username', Help = 'You can use filters to instruct ZoneMinder to upload events to a remote ftp server. This option indicates the username that ZoneMinder should use to log in for ftp transfer.', Category = 'hidden', Readonly = '0', Requires = 'ZM_OPT_UPLOAD=1';
|
||||||
|
insert into Config set Id = 92, Name = 'ZM_UPLOAD_USER', Value = '', Type = 'string', DefaultValue = '', Hint = 'alphanumeric', Pattern = '(?^:^([a-zA-Z0-9-_]+)$)', Format = ' $1 ', Prompt = 'Remote server username', Help = 'You can use filters to instruct ZoneMinder to upload events to a remote server. This option indicates the username that ZoneMinder should use to log in for transfer.', Category = 'upload', Readonly = '0', Requires = 'ZM_OPT_UPLOAD=1';
|
||||||
|
insert into Config set Id = 93, Name = 'ZM_UPLOAD_FTP_PASS', Value = '', Type = 'string', DefaultValue = '', Hint = 'string', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'Your ftp password', Help = 'You can use filters to instruct ZoneMinder to upload events to a remote ftp server. This option indicates the password that ZoneMinder should use to log in for ftp transfer.', Category = 'hidden', Readonly = '0', Requires = 'ZM_OPT_UPLOAD=1';
|
||||||
|
insert into Config set Id = 94, Name = 'ZM_UPLOAD_PASS', Value = '', Type = 'string', DefaultValue = '', Hint = 'string', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'Remote server password', Help = 'You can use filters to instruct ZoneMinder to upload events to a remote server. This option indicates the password that ZoneMinder should use to log in for transfer. If you are using certicate based logins for SFTP servers you can leave this option blank.', Category = 'upload', Readonly = '0', Requires = 'ZM_OPT_UPLOAD=1';
|
||||||
|
insert into Config set Id = 95, Name = 'ZM_UPLOAD_FTP_LOC_DIR', Value = '/tmp/zm', Type = 'string', DefaultValue = '/tmp/zm', Hint = '/absolute/path/to/somewhere', Pattern = '(?^:^((?:/[^/]*)+?)/?$)', Format = ' $1 ', Prompt = 'The local directory in which to create upload files', Help = 'You can use filters to instruct ZoneMinder to upload events to a remote ftp server. This option indicates the local directory that ZoneMinder should use for temporary upload files. These are files that are created from events, uploaded and then deleted.', Category = 'hidden', Readonly = '0', Requires = 'ZM_OPT_UPLOAD=1';
|
||||||
|
insert into Config set Id = 96, Name = 'ZM_UPLOAD_LOC_DIR', Value = '/tmp/zm', Type = 'string', DefaultValue = '/tmp/zm', Hint = '/absolute/path/to/somewhere', Pattern = '(?^:^((?:/[^/]*)+?)/?$)', Format = ' $1 ', Prompt = 'The local directory in which to create upload files', Help = 'You can use filters to instruct ZoneMinder to upload events to a remote server. This option indicates the local directory that ZoneMinder should use for temporary upload files. These are files that are created from events, uploaded and then deleted.', Category = 'upload', Readonly = '0', Requires = 'ZM_OPT_UPLOAD=1';
|
||||||
|
insert into Config set Id = 97, Name = 'ZM_UPLOAD_FTP_REM_DIR', Value = '', Type = 'string', DefaultValue = '', Hint = 'relative/path/to/somewhere', Pattern = '(?^:^((?:[^/].*)?)/?$)', Format = ' $1 ', Prompt = 'The remote directory to upload to', Help = 'You can use filters to instruct ZoneMinder to upload events to a remote ftp server. This option indicates the remote directory that ZoneMinder should use to upload event files to.', Category = 'hidden', Readonly = '0', Requires = 'ZM_OPT_UPLOAD=1';
|
||||||
|
insert into Config set Id = 98, Name = 'ZM_UPLOAD_REM_DIR', Value = '', Type = 'string', DefaultValue = '', Hint = 'relative/path/to/somewhere', Pattern = '(?^:^((?:[^/].*)?)/?$)', Format = ' $1 ', Prompt = 'The remote directory to upload to', Help = 'You can use filters to instruct ZoneMinder to upload events to a remote server. This option indicates the remote directory that ZoneMinder should use to upload event files to.', Category = 'upload', Readonly = '0', Requires = 'ZM_OPT_UPLOAD=1';
|
||||||
|
insert into Config set Id = 99, Name = 'ZM_UPLOAD_FTP_TIMEOUT', Value = '120', Type = 'integer', DefaultValue = '120', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How long to allow the transfer to take for each file', Help = 'You can use filters to instruct ZoneMinder to upload events to a remote ftp server. This option indicates the maximum ftp inactivity timeout (in seconds) that should be tolerated before ZoneMinder determines that the transfer has failed and closes down the connection.', Category = 'hidden', Readonly = '0', Requires = 'ZM_OPT_UPLOAD=1';
|
||||||
|
insert into Config set Id = 100, Name = 'ZM_UPLOAD_TIMEOUT', Value = '120', Type = 'integer', DefaultValue = '120', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How long to allow the transfer to take for each file', Help = 'You can use filters to instruct ZoneMinder to upload events to a remote server. This option indicates the maximum inactivity timeout (in seconds) that should be tolerated before ZoneMinder determines that the transfer has failed and closes down the connection.', Category = 'upload', Readonly = '0', Requires = 'ZM_OPT_UPLOAD=1';
|
||||||
|
insert into Config set Id = 101, Name = 'ZM_UPLOAD_FTP_PASSIVE', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Use passive ftp when uploading', Help = 'If your computer is behind a firewall or proxy you may need to set FTP to passive mode. In fact for simple transfers it makes little sense to do otherwise anyway but you can set this to \'No\' if you wish.', Category = 'upload', Readonly = '0', Requires = 'ZM_OPT_UPLOAD=1';
|
||||||
|
insert into Config set Id = 102, Name = 'ZM_UPLOAD_FTP_DEBUG', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Switch ftp debugging on', Help = 'You can use filters to instruct ZoneMinder to upload events to a remote ftp server. If you are having (or expecting) troubles with uploading events then setting this to \'yes\' permits additional information to be included in the zmfilter log file.', Category = 'hidden', Readonly = '0', Requires = 'ZM_OPT_UPLOAD=1';
|
||||||
|
insert into Config set Id = 103, Name = 'ZM_UPLOAD_DEBUG', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Switch upload debugging on', Help = 'You can use filters to instruct ZoneMinder to upload events to a remote server. If you are having (or expecting) troubles with uploading events then setting this to \'yes\' permits additional information to be generated by the underlying transfer modules and included in the logs.', Category = 'upload', Readonly = '0', Requires = 'ZM_OPT_UPLOAD=1';
|
||||||
|
insert into Config set Id = 104, Name = 'ZM_OPT_EMAIL', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Should ZoneMinder email you details of events that match corresponding filters', Help = 'In ZoneMinder you can create event filters that specify whether events that match certain criteria should have their details emailed to you at a designated email address. This will allow you to be notified of events as soon as they occur and also to quickly view the events directly. This option specifies whether this functionality should be available. The email created with this option can be any size and is intended to be sent to a regular email reader rather than a mobile device.', Category = 'mail', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 105, Name = 'ZM_EMAIL_ADDRESS', Value = '', Type = 'string', DefaultValue = '', Hint = 'your.name@your.domain', Pattern = '(?^:^([a-zA-Z0-9_.-]+)\@([a-zA-Z0-9_.-]+)$)', Format = ' $1\@$2 ', Prompt = 'The email address to send matching event details to', Help = 'This option is used to define the email address that any events that match the appropriate filters will be sent to.', Category = 'mail', Readonly = '0', Requires = 'ZM_OPT_EMAIL=1';
|
||||||
|
insert into Config set Id = 106, Name = 'ZM_EMAIL_TEXT', Value = 'subject = \"ZoneMinder: Alarm - %MN%-%EI% (%ESM% - %ESA% %EFA%)\"
|
||||||
|
body = \"
|
||||||
|
Hello,
|
||||||
|
|
||||||
|
An alarm has been detected on your installation of the ZoneMinder.
|
||||||
|
|
||||||
|
The details are as follows :-
|
||||||
|
|
||||||
|
Monitor : %MN%
|
||||||
|
Event Id : %EI%
|
||||||
|
Length : %EL%
|
||||||
|
Frames : %EF% (%EFA%)
|
||||||
|
Scores : t%EST% m%ESM% a%ESA%
|
||||||
|
|
||||||
|
This alarm was matched by the %FN% filter and can be viewed at %EPS%
|
||||||
|
|
||||||
|
ZoneMinder\"', Type = 'text', DefaultValue = 'subject = \"ZoneMinder: Alarm - %MN%-%EI% (%ESM% - %ESA% %EFA%)\"
|
||||||
|
body = \"
|
||||||
|
Hello,
|
||||||
|
|
||||||
|
An alarm has been detected on your installation of the ZoneMinder.
|
||||||
|
|
||||||
|
The details are as follows :-
|
||||||
|
|
||||||
|
Monitor : %MN%
|
||||||
|
Event Id : %EI%
|
||||||
|
Length : %EL%
|
||||||
|
Frames : %EF% (%EFA%)
|
||||||
|
Scores : t%EST% m%ESM% a%ESA%
|
||||||
|
|
||||||
|
This alarm was matched by the %FN% filter and can be viewed at %EPS%
|
||||||
|
|
||||||
|
ZoneMinder\"', Hint = 'free text', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'The text of the email used to send matching event details', Help = 'This option is used to define the content of the email that is sent for any events that match the appropriate filters.', Category = 'hidden', Readonly = '0', Requires = 'ZM_OPT_EMAIL=1';
|
||||||
|
insert into Config set Id = 107, Name = 'ZM_EMAIL_SUBJECT', Value = 'ZoneMinder: Alarm - %MN%-%EI% (%ESM% - %ESA% %EFA%)', Type = 'string', DefaultValue = 'ZoneMinder: Alarm - %MN%-%EI% (%ESM% - %ESA% %EFA%)', Hint = 'string', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'The subject of the email used to send matching event details', Help = 'This option is used to define the subject of the email that is sent for any events that match the appropriate filters.', Category = 'mail', Readonly = '0', Requires = 'ZM_OPT_EMAIL=1';
|
||||||
|
insert into Config set Id = 108, Name = 'ZM_EMAIL_BODY', Value = '
|
||||||
|
Hello,
|
||||||
|
|
||||||
|
An alarm has been detected on your installation of the ZoneMinder.
|
||||||
|
|
||||||
|
The details are as follows :-
|
||||||
|
|
||||||
|
Monitor : %MN%
|
||||||
|
Event Id : %EI%
|
||||||
|
Length : %EL%
|
||||||
|
Frames : %EF% (%EFA%)
|
||||||
|
Scores : t%EST% m%ESM% a%ESA%
|
||||||
|
|
||||||
|
This alarm was matched by the %FN% filter and can be viewed at %EPS%
|
||||||
|
|
||||||
|
ZoneMinder', Type = 'text', DefaultValue = '
|
||||||
|
Hello,
|
||||||
|
|
||||||
|
An alarm has been detected on your installation of the ZoneMinder.
|
||||||
|
|
||||||
|
The details are as follows :-
|
||||||
|
|
||||||
|
Monitor : %MN%
|
||||||
|
Event Id : %EI%
|
||||||
|
Length : %EL%
|
||||||
|
Frames : %EF% (%EFA%)
|
||||||
|
Scores : t%EST% m%ESM% a%ESA%
|
||||||
|
|
||||||
|
This alarm was matched by the %FN% filter and can be viewed at %EPS%
|
||||||
|
|
||||||
|
ZoneMinder', Hint = 'free text', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'The body of the email used to send matching event details', Help = 'This option is used to define the content of the email that is sent for any events that match the appropriate filters.', Category = 'mail', Readonly = '0', Requires = 'ZM_OPT_EMAIL=1';
|
||||||
|
insert into Config set Id = 109, Name = 'ZM_OPT_MESSAGE', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Should ZoneMinder message you with details of events that match corresponding filters', Help = 'In ZoneMinder you can create event filters that specify whether events that match certain criteria should have their details sent to you at a designated short message email address. This will allow you to be notified of events as soon as they occur. This option specifies whether this functionality should be available. The email created by this option will be brief and is intended to be sent to an SMS gateway or a minimal mail reader such as a mobile device or phone rather than a regular email reader.', Category = 'mail', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 110, Name = 'ZM_MESSAGE_ADDRESS', Value = '', Type = 'string', DefaultValue = '', Hint = 'your.name@your.domain', Pattern = '(?^:^([a-zA-Z0-9_.-]+)\@([a-zA-Z0-9_.-]+)$)', Format = ' $1\@$2 ', Prompt = 'The email address to send matching event details to', Help = 'This option is used to define the short message email address that any events that match the appropriate filters will be sent to.', Category = 'mail', Readonly = '0', Requires = 'ZM_OPT_MESSAGE=1';
|
||||||
|
insert into Config set Id = 111, Name = 'ZM_MESSAGE_TEXT', Value = 'subject = \"ZoneMinder: Alarm - %MN%-%EI%\"
|
||||||
|
body = \"ZM alarm detected - %EL% secs, %EF%/%EFA% frames, t%EST%/m%ESM%/a%ESA% score.\"', Type = 'text', DefaultValue = 'subject = \"ZoneMinder: Alarm - %MN%-%EI%\"
|
||||||
|
body = \"ZM alarm detected - %EL% secs, %EF%/%EFA% frames, t%EST%/m%ESM%/a%ESA% score.\"', Hint = 'free text', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'The text of the message used to send matching event details', Help = 'This option is used to define the content of the message that is sent for any events that match the appropriate filters.', Category = 'hidden', Readonly = '0', Requires = 'ZM_OPT_MESSAGE=1';
|
||||||
|
insert into Config set Id = 112, Name = 'ZM_MESSAGE_SUBJECT', Value = 'ZoneMinder: Alarm - %MN%-%EI%', Type = 'string', DefaultValue = 'ZoneMinder: Alarm - %MN%-%EI%', Hint = 'string', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'The subject of the message used to send matching event details', Help = 'This option is used to define the subject of the message that is sent for any events that match the appropriate filters.', Category = 'mail', Readonly = '0', Requires = 'ZM_OPT_MESSAGE=1';
|
||||||
|
insert into Config set Id = 113, Name = 'ZM_MESSAGE_BODY', Value = 'ZM alarm detected - %EL% secs, %EF%/%EFA% frames, t%EST%/m%ESM%/a%ESA% score.', Type = 'text', DefaultValue = 'ZM alarm detected - %EL% secs, %EF%/%EFA% frames, t%EST%/m%ESM%/a%ESA% score.', Hint = 'free text', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'The body of the message used to send matching event details', Help = 'This option is used to define the content of the message that is sent for any events that match the appropriate filters.', Category = 'mail', Readonly = '0', Requires = 'ZM_OPT_MESSAGE=1';
|
||||||
|
insert into Config set Id = 114, Name = 'ZM_NEW_MAIL_MODULES', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Use a newer perl method to send emails', Help = 'Traditionally ZoneMinder has used the MIME::Entity perl module to construct and send notification emails and messages. Some people have reported problems with this module not being present at all or flexible enough for their needs. If you are one of those people this option allows you to select a new mailing method using MIME::Lite and Net::SMTP instead. This method was contributed by Ross Melin and should work for everyone but has not been extensively tested so currently is not selected by default.', Category = 'mail', Readonly = '0', Requires = 'ZM_OPT_EMAIL=1;ZM_OPT_MESSAGE=1';
|
||||||
|
insert into Config set Id = 115, Name = 'ZM_EMAIL_HOST', Value = 'localhost', Type = 'string', DefaultValue = 'localhost', Hint = 'host.your.domain', Pattern = '(?^:^([a-zA-Z0-9_.-]+)$)', Format = ' $1 ', Prompt = 'The host address of your SMTP mail server', Help = 'If you have chosen SMTP as the method by which to send notification emails or messages then this option allows you to choose which SMTP server to use to send them. The default of localhost may work if you have the sendmail, exim or a similar daemon running however you may wish to enter your ISP\'s SMTP mail server here.', Category = 'mail', Readonly = '0', Requires = 'ZM_OPT_EMAIL=1;ZM_OPT_MESSAGE=1';
|
||||||
|
insert into Config set Id = 116, Name = 'ZM_FROM_EMAIL', Value = '', Type = 'string', DefaultValue = '', Hint = 'your.name@your.domain', Pattern = '(?^:^([a-zA-Z0-9_.-]+)\@([a-zA-Z0-9_.-]+)$)', Format = ' $1\@$2 ', Prompt = 'The email address you wish your event notifications to originate from', Help = 'The emails or messages that will be sent to you informing you of events can appear to come from a designated email address to help you with mail filtering etc. An address of something like ZoneMinder@your.domain is recommended.', Category = 'mail', Readonly = '0', Requires = 'ZM_OPT_EMAIL=1;ZM_OPT_MESSAGE=1';
|
||||||
|
insert into Config set Id = 117, Name = 'ZM_URL', Value = '', Type = 'string', DefaultValue = '', Hint = 'http://host.your.domain/', Pattern = '(?^:^(?:http://)?(.+)$)', Format = ' \"http://\".$1 ', Prompt = 'The URL of your ZoneMinder installation', Help = 'The emails or messages that will be sent to you informing you of events can include a link to the events themselves for easy viewing. If you intend to use this feature then set this option to the url of your installation as it would appear from where you read your email, e.g. http://host.your.domain/zm.php.', Category = 'mail', Readonly = '0', Requires = 'ZM_OPT_EMAIL=1;ZM_OPT_MESSAGE=1';
|
||||||
|
insert into Config set Id = 118, Name = 'ZM_MAX_RESTART_DELAY', Value = '600', Type = 'integer', DefaultValue = '600', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'Maximum delay (in seconds) for daemon restart attempts.', Help = 'The zmdc (zm daemon control) process controls when processeses are started or stopped and will attempt to restart any that fail. If a daemon fails frequently then a delay is introduced between each restart attempt. If the daemon stills fails then this delay is increased to prevent extra load being placed on the system by continual restarts. This option controls what this maximum delay is.', Category = 'system', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 119, Name = 'ZM_WATCH_CHECK_INTERVAL', Value = '10', Type = 'integer', DefaultValue = '10', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How often to check the capture daemons have not locked up', Help = 'The zmwatch daemon checks the image capture performance of the capture daemons to ensure that they have not locked up (rarely a sync error may occur which blocks indefinately). This option determines how often the daemons are checked.', Category = 'system', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 120, Name = 'ZM_WATCH_MAX_DELAY', Value = '5', Type = 'decimal', DefaultValue = '5', Hint = 'decimal', Pattern = '(?^:^(\d+(?:\.\d+)?)$)', Format = ' $1 ', Prompt = 'The maximum delay allowed since the last captured image', Help = 'The zmwatch daemon checks the image capture performance of the capture daemons to ensure that they have not locked up (rarely a sync error may occur which blocks indefinately). This option determines the maximum delay to allow since the last captured frame. The daemon will be restarted if it has not captured any images after this period though the actual restart may take slightly longer in conjunction with the check interval value above.', Category = 'system', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 121, Name = 'ZM_RUN_AUDIT', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Run zmaudit to check data consistency', Help = 'The zmaudit daemon exists to check that the saved information in the database and on the filesystem match and are consistent with each other. If an error occurs or if you are using \'fast deletes\' it may be that database records are deleted but files remain. In this case, and similar, zmaudit will remove redundant information to synchronise the two data stores. This option controls whether zmaudit is run in the background and performs these checks and fixes continuously. This is recommended for most systems however if you have a very large number of events the process of scanning the database and filesystem may take a long time and impact performance. In this case you may prefer to not have zmaudit running unconditionally and schedule occasional checks at other, more convenient, times.', Category = 'system', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 122, Name = 'ZM_AUDIT_CHECK_INTERVAL', Value = '900', Type = 'integer', DefaultValue = '900', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How often to check database and filesystem consistency', Help = 'The zmaudit daemon exists to check that the saved information in the database and on the filesystem match and are consistent with each other. If an error occurs or if you are using \'fast deletes\' it may be that database records are deleted but files remain. In this case, and similar, zmaudit will remove redundant information to synchronise the two data stores. The default check interval of 900 seconds (15 minutes) is fine for most systems however if you have a very large number of events the process of scanning the database and filesystem may take a long time and impact performance. In this case you may prefer to make this interval much larger to reduce the impact on your system. This option determines how often these checks are performed.', Category = 'system', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 123, Name = 'ZM_FORCED_ALARM_SCORE', Value = '255', Type = 'integer', DefaultValue = '255', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'Score to give forced alarms', Help = 'The \'zmu\' utility can be used to force an alarm on a monitor rather than rely on the motion detection algorithms. This option determines what score to give these alarms to distinguish them from regular ones. It must be 255 or less.', Category = 'config', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 124, Name = 'ZM_BULK_FRAME_INTERVAL', Value = '100', Type = 'integer', DefaultValue = '100', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How often a bulk frame should be written to the database', Help = 'Traditionally ZoneMinder writes an entry into the Frames database table for each frame that is captured and saved. This works well in motion detection scenarios but when in a DVR situation (\'Record\' or \'Mocord\' mode) this results in a huge number of frame writes and a lot of database and disk bandwidth for very little additional information. Setting this to a non-zero value will enabled ZoneMinder to group these non-alarm frames into one \'bulk\' frame entry which saves a lot of bandwidth and space. The only disadvantage of this is that timing information for individual frames is lost but in constant frame rate situations this is usually not significant. This setting is ignored in Modect mode and individual frames are still written if an alarm occurs in Mocord mode also.', Category = 'config', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 125, Name = 'ZM_EVENT_CLOSE_MODE', Value = 'idle', Type = 'string', DefaultValue = 'idle', Hint = 'time|idle|alarm', Pattern = '(?^i:^([tia]))', Format = ' ($1 =~ /^t/) ? \"time\" : ($1 =~ /^i/ ? \"idle\" : \"time\" ) ', Prompt = 'When continuous events are closed.', Help = 'When a monitor is running in a continuous recording mode (Record or Mocord) events are usually closed after a fixed period of time (the section length). However in Mocord mode it is possible that motion detection may occur near the end of a section. This option controls what happens when an alarm occurs in Mocord mode. The \'time\' setting means that the event will be closed at the end of the section regardless of alarm activity. The \'idle\' setting means that the event will be closed at the end of the section if there is no alarm activity occuring at the time otherwise it will be closed once the alarm is over meaning the event may end up being longer than the normal section length. The \'alarm\' setting means that if an alarm occurs during the event, the event will be closed once the alarm is over regardless of when this occurs. This has the effect of limiting the number of alarms to one per event and the events will be shorter than the section length if an alarm has occurred.', Category = 'config', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 126, Name = 'ZM_FORCE_CLOSE_EVENTS', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Close events at section ends.', Help = 'When a monitor is running in a continuous recording mode (Record or Mocord) events are usually closed after a fixed period of time (the section length). However in Mocord mode it is possible that motion detection may occur near the end of a section and ordinarily this will prevent the event being closed until the motion has ceased. Switching this option on will force the event closed at the specified time regardless of any motion activity.', Category = 'hidden', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 127, Name = 'ZM_CREATE_ANALYSIS_IMAGES', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Create analysed alarm images with motion outlined', Help = 'By default during an alarm ZoneMinder records both the raw captured image and one that has been analysed and had areas where motion was detected outlined. This can be very useful during zone configuration or in analysing why events occured. However it also incurs some overhead and in a stable system may no longer be necessary. This parameter allows you to switch the generation of these images off.', Category = 'config', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 128, Name = 'ZM_WEIGHTED_ALARM_CENTRES', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Use a weighted algorithm to calculate the centre of an alarm', Help = 'ZoneMinder will always calculate the centre point of an alarm in a zone to give some indication of where on the screen it is. This can be used by the experimental motion tracking feature or your own custom extensions. In the alarmed or filtered pixels mode this is a simple midpoint between the extents of the detected pxiesl. However in the blob method this can instead be calculated using weighted pixel locations to give more accurate positioning for irregularly shaped blobs. This method, while more precise is also slower and so is turned off by default.', Category = 'config', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 129, Name = 'ZM_EVENT_IMAGE_DIGITS', Value = '3', Type = 'integer', DefaultValue = '3', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How many significant digits are used in event image numbering', Help = 'As event images are captured they are stored to the filesystem with a numerical index. By default this index has three digits so the numbers start 001, 002 etc. This works works for most scenarios as events with more than 999 frames are rarely captured. However if you have extremely long events and use external applications then you may wish to increase this to ensure correct sorting of images in listings etc. Warning, increasing this value on a live system may render existing events unviewable as the event will have been saved with the previous scheme. Decreasing this value should have no ill effects.', Category = 'config', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 130, Name = 'ZM_DEFAULT_ASPECT_RATIO', Value = '4:3', Type = 'string', DefaultValue = '4:3', Hint = 'string', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'The default width:height aspect ratio used in monitors', Help = 'When specifying the dimensions of monitors you can click a checkbox to ensure that the width stays in the correct ratio to the height, or vice versa. This setting allows you to indicate what the ratio of these settings should be. This should be specified in the format <width value>:<height value> and the default of 4:3 normally be acceptable but 11:9 is another common setting. If the checkbox is not clicked when specifying monitor dimensions this setting has no effect.', Category = 'config', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 131, Name = 'ZM_USER_SELF_EDIT', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Allow unprivileged users to change their details', Help = 'Ordinarily only users with system edit privilege are able to change users details. Switching this option on allows ordinary users to change their passwords and their language settings', Category = 'config', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 132, Name = 'ZM_OPT_FRAME_SERVER', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Should analysis farm out the writing of images to disk', Help = 'In some circumstances it is possible for a slow disk to take so long writing images to disk that it causes the analysis daemon to fall behind especially during high frame rate events. Setting this option to yes enables a frame server daemon (zmf) which will be sent the images from the analysis daemon and will do the actual writing of images itself freeing up the analysis daemon to get on with other things. Should this transmission fail or other permanent or transient error occur, this function will fall back to the analysis daemon.', Category = 'system', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 133, Name = 'ZM_FRAME_SOCKET_SIZE', Value = '0', Type = 'integer', DefaultValue = '0', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'Specify the frame server socket buffer size if non-standard', Help = 'For large captured images it is possible for the writes from the analysis daemon to the frame server to fail as the amount to be written exceeds the default buffer size. While the images are then written by the analysis daemon so no data is lost, it defeats the object of the frame server daemon in the first place. You can use this option to indicate that a larger buffer size should be used. Note that you may have to change the existing maximum socket buffer size on your system via sysctl (or in /proc/sys/net/core/wmem_max) to allow this new size to be set. Alternatively you can change the default buffer size on your system in the same way in which case that will be used with no change necessary in this option', Category = 'system', Readonly = '0', Requires = 'ZM_OPT_FRAME_SERVER=1';
|
||||||
|
insert into Config set Id = 134, Name = 'ZM_OPT_CONTROL', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Support controllable (e.g. PTZ) cameras', Help = 'ZoneMinder includes limited support for controllable cameras. A number of sample protocols are included and others can easily be added. If you wish to control your cameras via ZoneMinder then select this option otherwise if you only have static cameras or use other control methods then leave this option off.', Category = 'system', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 135, Name = 'ZM_OPT_TRIGGERS', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Interface external event triggers via socket or device files', Help = 'ZoneMinder can interact with external systems which prompt or cancel alarms. This is done via the zmtrigger.pl script. This option indicates whether you want to use these external triggers. Most people will say no here.', Category = 'system', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 136, Name = 'ZM_CHECK_FOR_UPDATES', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Check with zoneminder.com for updated versions', Help = 'From ZoneMinder version 1.17.0 onwards new versions are expected to be more frequent. To save checking manually for each new version ZoneMinder can check with the zoneminder.com website to determine the most recent release. These checks are infrequent, about once per week, and no personal or system information is transmitted other than your current version number. If you do not wish these checks to take place or your ZoneMinder system has no internet access you can switch these check off with this configuration variable', Category = 'system', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 137, Name = 'ZM_UPDATE_CHECK_PROXY', Value = '', Type = 'string', DefaultValue = '', Hint = 'string', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'Proxy url if required to access zoneminder.com', Help = 'If you use a proxy to access the internet then ZoneMinder needs to know so it can access zoneminder.com to check for updates. If you do use a proxy enter the full proxy url here in the form of http://<proxy host>:<proxy port>/', Category = 'system', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 138, Name = 'ZM_SHM_KEY', Value = '0x7a6d0000', Type = 'hexadecimal', DefaultValue = '0x7a6d0000', Hint = 'hexadecimal', Pattern = '(?^:^(?:0x)?([0-9a-f]{1,8})$)', Format = ' \"0x\".$1 ', Prompt = 'Shared memory root key to use', Help = 'ZoneMinder uses shared memory to speed up communication between modules. To identify the right area to use shared memory keys are used. This option controls what the base key is, each monitor will have it\'s Id or\'ed with this to get the actual key used. You will not normally need to change this value unless it clashes with another instance of ZoneMinder on the same machine. Only the first four hex digits are used, the lower four will be masked out and ignored.', Category = 'system', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 139, Name = 'ZM_WEB_REFRESH_METHOD', Value = 'javascript', Type = 'string', DefaultValue = 'javascript', Hint = 'javascript|http', Pattern = '(?^i:^([jh]))', Format = ' $1 =~ /^j/ ? \"javascript\" : \"http\" ', Prompt = 'What method windows should use to refresh themselves', Help = 'Many windows in Javascript need to refresh themselves to keep their information current. This option determines what method they should use to do this. Choosing \'javascript\' means that each window will have a short JavaScript statement in with a timer to prompt the refresh. This is the most compatible method. Choosing \'http\' means the refresh instruction is put in the HTTP header. This is a cleaner method but refreshes are interrupted or cancelled when a link in the window is clicked meaning that the window will no longer refresh and this would have to be done manually.', Category = 'hidden', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 140, Name = 'ZM_WEB_EVENT_SORT_FIELD', Value = 'DateTime', Type = 'string', DefaultValue = 'DateTime', Hint = 'Id|Name|Cause|MonitorName|DateTime|Length|Frames|AlarmFrames|TotScore|AvgScore|MaxScore', Pattern = '(?^:.)', Format = ' $1 ', Prompt = 'Default field the event lists are sorted by', Help = 'Events in lists can be initially ordered in any way you want. This option controls what field is used to sort them. You can modify this ordering from filters or by clicking on headings in the lists themselves. Bear in mind however that the \'Prev\' and \'Next\' links, when scrolling through events, relate to the ordering in the lists and so not always to time based ordering.', Category = 'web', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 141, Name = 'ZM_WEB_EVENT_SORT_ORDER', Value = 'asc', Type = 'string', DefaultValue = 'asc', Hint = 'asc|desc', Pattern = '(?^i:^([ad]))', Format = ' $1 =~ /^a/i ? \"asc\" : \"desc\" ', Prompt = 'Default order the event lists are sorted by', Help = 'Events in lists can be initially ordered in any way you want. This option controls what order (ascending or descending) is used to sort them. You can modify this ordering from filters or by clicking on headings in the lists themselves. Bear in mind however that the \'Prev\' and \'Next\' links, when scrolling through events, relate to the ordering in the lists and so not always to time based ordering.', Category = 'web', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 142, Name = 'ZM_WEB_EVENTS_PER_PAGE', Value = '25', Type = 'integer', DefaultValue = '25', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How many events to list per page in paged mode', Help = 'In the event list view you can either list all events or just a page at a time. This option controls how many events are listed per page in paged mode and how often to repeat the column headers in non-paged mode.', Category = 'web', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 143, Name = 'ZM_WEB_LIST_THUMBS', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Display mini-thumbnails of event images in event lists', Help = 'Ordinarily the event lists just display text details of the events to save space and time. By switching this option on you can also display small thumbnails to help you identify events of interest. The size of these thumbnails is controlled by the following two options.', Category = 'web', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 144, Name = 'ZM_WEB_LIST_THUMB_WIDTH', Value = '48', Type = 'integer', DefaultValue = '48', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'The width of the thumbnails that appear in the event lists', Help = 'This options controls the width of the thumbnail images that appear in the event lists. It should be fairly small to fit in with the rest of the table. If you prefer you can specify a height instead in the next option but you should only use one of the width or height and the other option should be set to zero. If both width and height are specified then width will be used and height ignored.', Category = 'web', Readonly = '0', Requires = 'ZM_WEB_LIST_THUMBS=1';
|
||||||
|
insert into Config set Id = 145, Name = 'ZM_WEB_LIST_THUMB_HEIGHT', Value = '0', Type = 'integer', DefaultValue = '0', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'The height of the thumbnails that appear in the event lists', Help = 'This options controls the height of the thumbnail images that appear in the event lists. It should be fairly small to fit in with the rest of the table. If you prefer you can specify a width instead in the previous option but you should only use one of the width or height and the other option should be set to zero. If both width and height are specified then width will be used and height ignored.', Category = 'web', Readonly = '0', Requires = 'ZM_WEB_LIST_THUMBS=1';
|
||||||
|
insert into Config set Id = 146, Name = 'ZM_WEB_USE_OBJECT_TAGS', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Wrap embed in object tags for media content', Help = 'There are two methods of including media content in web pages. The most common way is use the EMBED tag which is able to give some indication of the type of content. However this is not a standard part of HTML. The official method is to use OBJECT tags which are able to give more information allowing the correct media viewers etc to be loaded. However these are less widely supported and content may be specifically tailored to a particular platform or player. This option controls whether media content is enclosed in EMBED tags only or whether, where appropriate, it is additionally wrapped in OBJECT tags. Currently OBJECT tags are only used in a limited number of circumstances but they may become more widespread in the future. It is suggested that you leave this option on unless you encounter problems playing some content.', Category = 'web', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 147, Name = 'ZM_WEB_H_REFRESH_MAIN', Value = '300', Type = 'integer', DefaultValue = '300', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How often (in seconds) the main console window should refresh itself', Help = 'The main console window lists a general status and the event totals for all monitors. This is not a trivial task and should not be repeated too frequently or it may affect the performance of the rest of the system.', Category = 'highband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 148, Name = 'ZM_WEB_H_REFRESH_CYCLE', Value = '10', Type = 'integer', DefaultValue = '10', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How often (in seconds) the cycle watch window swaps to the next monitor', Help = 'The cycle watch window is a method of continuously cycling between images from all of your monitors. This option determines how often to refresh with a new image.', Category = 'highband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 149, Name = 'ZM_WEB_H_REFRESH_IMAGE', Value = '5', Type = 'integer', DefaultValue = '5', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How often (in seconds) the watched image is refreshed (if not streaming)', Help = 'The live images from a monitor can be viewed in either streamed or stills mode. This option determines how often a stills image is refreshed, it has no effect if streaming is selected.', Category = 'highband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 150, Name = 'ZM_WEB_H_REFRESH_STATUS', Value = '3', Type = 'integer', DefaultValue = '3', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How often (in seconds) the status refreshes itself in the watch window', Help = 'The monitor window is actually made from several frames. The one in the middle merely contains a monitor status which needs to refresh fairly frequently to give a true indication. This option determines that frequency.', Category = 'highband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 151, Name = 'ZM_WEB_H_REFRESH_EVENTS', Value = '30', Type = 'integer', DefaultValue = '30', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How often (in seconds) the event listing is refreshed in the watch window', Help = 'The monitor window is actually made from several frames. The lower framme contains a listing of the last few events for easy access. This option determines how often this is refreshed.', Category = 'highband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 152, Name = 'ZM_WEB_H_CAN_STREAM', Value = 'auto', Type = 'string', DefaultValue = 'auto', Hint = 'auto|yes|no', Pattern = '(?^i:^([ayn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : ($1 =~ /^n/ ? \"no\" : \"auto\" ) ', Prompt = 'Override the automatic detection of browser streaming capability', Help = 'If you know that your browser can handle image streams of the type \'multipart/x-mixed-replace\' but ZoneMinder does not detect this correctly you can set this option to ensure that the stream is delivered with or without the use of the Cambozola plugin. Selecting \'yes\' will tell ZoneMinder that your browser can handle the streams natively, \'no\' means that it can\'t and so the plugin will be used while \'auto\' lets ZoneMinder decide.', Category = 'highband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 153, Name = 'ZM_WEB_H_STREAM_METHOD', Value = 'jpeg', Type = 'string', DefaultValue = 'jpeg', Hint = 'mpeg|jpeg', Pattern = '(?^i:^([mj]))', Format = ' $1 =~ /^m/ ? \"mpeg\" : \"jpeg\" ', Prompt = 'Which method should be used to send video streams to your browser.', Help = 'ZoneMinder can be configured to use either mpeg encoded video or a series or still jpeg images when sending video streams. This option defines which is used. If you choose mpeg you should ensure that you have the appropriate plugins available on your browser whereas choosing jpeg will work natively on Mozilla and related browsers and with a Java applet on Internet Explorer', Category = 'highband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 154, Name = 'ZM_WEB_H_DEFAULT_SCALE', Value = '100', Type = 'integer', DefaultValue = '100', Hint = '25|33|50|75|100|150|200|300|400', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'What the default scaling factor applied to \'live\' or \'event\' views is (%)', Help = 'Normally ZoneMinder will display \'live\' or \'event\' streams in their native size. However if you have monitors with large dimensions or a slow link you may prefer to reduce this size, alternatively for small monitors you can enlarge it. This options lets you specify what the default scaling factor will be. It is expressed as a percentage so 100 is normal size, 200 is double size etc.', Category = 'highband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 155, Name = 'ZM_WEB_H_DEFAULT_RATE', Value = '100', Type = 'integer', DefaultValue = '100', Hint = '25|50|100|150|200|400|1000|2500|5000|10000', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'What the default replay rate factor applied to \'event\' views is (%)', Help = 'Normally ZoneMinder will display \'event\' streams at their native rate, i.e. as close to real-time as possible. However if you have long events it is often convenient to replay them at a faster rate for review. This option lets you specify what the default replay rate will be. It is expressed as a percentage so 100 is normal rate, 200 is double speed etc.', Category = 'highband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 156, Name = 'ZM_WEB_H_VIDEO_BITRATE', Value = '150000', Type = 'integer', DefaultValue = '150000', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'What the bitrate of the video encoded stream should be set to', Help = 'When encoding real video via the ffmpeg library a bit rate can be specified which roughly corresponds to the available bandwidth used for the stream. This setting effectively corresponds to a \'quality\' setting for the video. A low value will result in a blocky image whereas a high value will produce a clearer view. Note that this setting does not control the frame rate of the video however the quality of the video produced is affected both by this setting and the frame rate that the video is produced at. A higher frame rate at a particular bit rate result in individual frames being at a lower quality.', Category = 'highband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 157, Name = 'ZM_WEB_H_VIDEO_MAXFPS', Value = '15', Type = 'integer', DefaultValue = '15', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'What the maximum frame rate for streamed video should be', Help = 'When using streamed video the main control is the bitrate which determines how much data can be transmitted. However a lower bitrate at high frame rates results in a lower quality image. This option allows you to limit the maximum frame rate to ensure that video quality is maintained. An additional advantage is that encoding video at high frame rates is a processor intensive task when for the most part a very high frame rate offers little perceptible improvement over one that has a more manageable resource requirement. Note, this option is implemented as a cap beyond which binary reduction takes place. So if you have a device capturing at 15fps and set this option to 10fps then the video is not produced at 10fps, but rather at 7.5fps (15 divided by 2) as the final frame rate must be the original divided by a power of 2.', Category = 'highband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 158, Name = 'ZM_WEB_H_SCALE_THUMBS', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Scale thumbnails in events, bandwidth versus cpu in rescaling', Help = 'If unset, this option sends the whole image to the browser which resizes it in the window. If set the image is scaled down on the server before sending a reduced size image to the browser to conserve bandwidth at the cost of cpu on the server. Note that ZM can only perform the resizing if the appropriate PHP graphics functionality is installed. This is usually available in the php-gd package.', Category = 'highband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 159, Name = 'ZM_WEB_H_EVENTS_VIEW', Value = 'events', Type = 'string', DefaultValue = 'events', Hint = 'events|timeline', Pattern = '(?^i:^([lt]))', Format = ' $1 =~ /^e/ ? \"events\" : \"timeline\" ', Prompt = 'What the default view of multiple events should be.', Help = 'Stored events can be viewed in either an events list format or in a timeline based one. This option sets the default view that will be used. Choosing one view here does not prevent the other view being used as it will always be selectable from whichever view is currently being used.', Category = 'highband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 160, Name = 'ZM_WEB_H_SHOW_PROGRESS', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Show the progress of replay in event view.', Help = 'When viewing events an event navigation panel and progress bar is shown below the event itself. This allows you to jump to specific points in the event, but can can also dynamically update to display the current progress of the event replay itself. This progress is calculated from the actual event duration and is not directly linked to the replay itself, so on limited bandwidth connections may be out of step with the replay. This option allows you to turn off the progress display, whilst still keeping the navigation aspect, where bandwidth prevents it functioning effectively.', Category = 'highband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 161, Name = 'ZM_WEB_H_AJAX_TIMEOUT', Value = '3000', Type = 'integer', DefaultValue = '3000', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How long to wait for Ajax request responses (ms)', Help = 'The newer versions of the live feed and event views use Ajax to request information from the server and populate the views dynamically. This option allows you to specify a timeout if required after which requests are abandoned. A timeout may be necessary if requests would overwise hang such as on a slow connection. This would tend to consume a lot of browser memory and make the interface unresponsive. Ordinarily no requests should timeout so this setting should be set to a value greater than the slowest expected response. This value is in milliseconds but if set to zero then no timeout will be used.', Category = 'highband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 162, Name = 'ZM_WEB_M_REFRESH_MAIN', Value = '300', Type = 'integer', DefaultValue = '300', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How often (in seconds) the main console window should refresh itself', Help = 'The main console window lists a general status and the event totals for all monitors. This is not a trivial task and should not be repeated too frequently or it may affect the performance of the rest of the system.', Category = 'medband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 163, Name = 'ZM_WEB_M_REFRESH_CYCLE', Value = '20', Type = 'integer', DefaultValue = '20', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How often (in seconds) the cycle watch window swaps to the next monitor', Help = 'The cycle watch window is a method of continuously cycling between images from all of your monitors. This option determines how often to refresh with a new image.', Category = 'medband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 164, Name = 'ZM_WEB_M_REFRESH_IMAGE', Value = '10', Type = 'integer', DefaultValue = '10', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How often (in seconds) the watched image is refreshed (if not streaming)', Help = 'The live images from a monitor can be viewed in either streamed or stills mode. This option determines how often a stills image is refreshed, it has no effect if streaming is selected.', Category = 'medband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 165, Name = 'ZM_WEB_M_REFRESH_STATUS', Value = '5', Type = 'integer', DefaultValue = '5', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How often (in seconds) the status refreshes itself in the watch window', Help = 'The monitor window is actually made from several frames. The one in the middle merely contains a monitor status which needs to refresh fairly frequently to give a true indication. This option determines that frequency.', Category = 'medband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 166, Name = 'ZM_WEB_M_REFRESH_EVENTS', Value = '60', Type = 'integer', DefaultValue = '60', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How often (in seconds) the event listing is refreshed in the watch window', Help = 'The monitor window is actually made from several frames. The lower framme contains a listing of the last few events for easy access. This option determines how often this is refreshed.', Category = 'medband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 167, Name = 'ZM_WEB_M_CAN_STREAM', Value = 'auto', Type = 'string', DefaultValue = 'auto', Hint = 'auto|yes|no', Pattern = '(?^i:^([ayn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : ($1 =~ /^n/ ? \"no\" : \"auto\" ) ', Prompt = 'Override the automatic detection of browser streaming capability', Help = 'If you know that your browser can handle image streams of the type \'multipart/x-mixed-replace\' but ZoneMinder does not detect this correctly you can set this option to ensure that the stream is delivered with or without the use of the Cambozola plugin. Selecting \'yes\' will tell ZoneMinder that your browser can handle the streams natively, \'no\' means that it can\'t and so the plugin will be used while \'auto\' lets ZoneMinder decide.', Category = 'medband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 168, Name = 'ZM_WEB_M_STREAM_METHOD', Value = 'jpeg', Type = 'string', DefaultValue = 'jpeg', Hint = 'mpeg|jpeg', Pattern = '(?^i:^([mj]))', Format = ' $1 =~ /^m/ ? \"mpeg\" : \"jpeg\" ', Prompt = 'Which method should be used to send video streams to your browser.', Help = 'ZoneMinder can be configured to use either mpeg encoded video or a series or still jpeg images when sending video streams. This option defines which is used. If you choose mpeg you should ensure that you have the appropriate plugins available on your browser whereas choosing jpeg will work natively on Mozilla and related browsers and with a Java applet on Internet Explorer', Category = 'medband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 169, Name = 'ZM_WEB_M_DEFAULT_SCALE', Value = '100', Type = 'integer', DefaultValue = '100', Hint = '25|33|50|75|100|150|200|300|400', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'What the default scaling factor applied to \'live\' or \'event\' views is (%)', Help = 'Normally ZoneMinder will display \'live\' or \'event\' streams in their native size. However if you have monitors with large dimensions or a slow link you may prefer to reduce this size, alternatively for small monitors you can enlarge it. This options lets you specify what the default scaling factor will be. It is expressed as a percentage so 100 is normal size, 200 is double size etc.', Category = 'medband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 170, Name = 'ZM_WEB_M_DEFAULT_RATE', Value = '100', Type = 'integer', DefaultValue = '100', Hint = '25|50|100|150|200|400|1000|2500|5000|10000', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'What the default replay rate factor applied to \'event\' views is (%)', Help = 'Normally ZoneMinder will display \'event\' streams at their native rate, i.e. as close to real-time as possible. However if you have long events it is often convenient to replay them at a faster rate for review. This option lets you specify what the default replay rate will be. It is expressed as a percentage so 100 is normal rate, 200 is double speed etc.', Category = 'medband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 171, Name = 'ZM_WEB_M_VIDEO_BITRATE', Value = '75000', Type = 'integer', DefaultValue = '75000', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'What the bitrate of the video encoded stream should be set to', Help = 'When encoding real video via the ffmpeg library a bit rate can be specified which roughly corresponds to the available bandwidth used for the stream. This setting effectively corresponds to a \'quality\' setting for the video. A low value will result in a blocky image whereas a high value will produce a clearer view. Note that this setting does not control the frame rate of the video however the quality of the video produced is affected both by this setting and the frame rate that the video is produced at. A higher frame rate at a particular bit rate result in individual frames being at a lower quality.', Category = 'medband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 172, Name = 'ZM_WEB_M_VIDEO_MAXFPS', Value = '10', Type = 'integer', DefaultValue = '10', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'What the maximum frame rate for streamed video should be', Help = 'When using streamed video the main control is the bitrate which determines how much data can be transmitted. However a lower bitrate at high frame rates results in a lower quality image. This option allows you to limit the maximum frame rate to ensure that video quality is maintained. An additional advantage is that encoding video at high frame rates is a processor intensive task when for the most part a very high frame rate offers little perceptible improvement over one that has a more manageable resource requirement. Note, this option is implemented as a cap beyond which binary reduction takes place. So if you have a device capturing at 15fps and set this option to 10fps then the video is not produced at 10fps, but rather at 7.5fps (15 divided by 2) as the final frame rate must be the original divided by a power of 2.', Category = 'medband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 173, Name = 'ZM_WEB_M_SCALE_THUMBS', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Scale thumbnails in events, bandwidth versus cpu in rescaling', Help = 'If unset, this option sends the whole image to the browser which resizes it in the window. If set the image is scaled down on the server before sending a reduced size image to the browser to conserve bandwidth at the cost of cpu on the server. Note that ZM can only perform the resizing if the appropriate PHP graphics functionality is installed. This is usually available in the php-gd package.', Category = 'medband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 174, Name = 'ZM_WEB_M_EVENTS_VIEW', Value = 'events', Type = 'string', DefaultValue = 'events', Hint = 'events|timeline', Pattern = '(?^i:^([lt]))', Format = ' $1 =~ /^e/ ? \"events\" : \"timeline\" ', Prompt = 'What the default view of multiple events should be.', Help = 'Stored events can be viewed in either an events list format or in a timeline based one. This option sets the default view that will be used. Choosing one view here does not prevent the other view being used as it will always be selectable from whichever view is currently being used.', Category = 'medband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 175, Name = 'ZM_WEB_M_SHOW_PROGRESS', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Show the progress of replay in event view.', Help = 'When viewing events an event navigation panel and progress bar is shown below the event itself. This allows you to jump to specific points in the event, but can can also dynamically update to display the current progress of the event replay itself. This progress is calculated from the actual event duration and is not directly linked to the replay itself, so on limited bandwidth connections may be out of step with the replay. This option allows you to turn off the progress display, whilst still keeping the navigation aspect, where bandwidth prevents it functioning effectively.', Category = 'medband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 176, Name = 'ZM_WEB_M_AJAX_TIMEOUT', Value = '5000', Type = 'integer', DefaultValue = '5000', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How long to wait for Ajax request responses (ms)', Help = 'The newer versions of the live feed and event views use Ajax to request information from the server and populate the views dynamically. This option allows you to specify a timeout if required after which requests are abandoned. A timeout may be necessary if requests would overwise hang such as on a slow connection. This would tend to consume a lot of browser memory and make the interface unresponsive. Ordinarily no requests should timeout so this setting should be set to a value greater than the slowest expected response. This value is in milliseconds but if set to zero then no timeout will be used.', Category = 'medband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 177, Name = 'ZM_WEB_L_REFRESH_MAIN', Value = '300', Type = 'integer', DefaultValue = '300', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How often (in seconds) the main console window should refresh itself', Help = 'The main console window lists a general status and the event totals for all monitors. This is not a trivial task and should not be repeated too frequently or it may affect the performance of the rest of the system.', Category = 'lowband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 178, Name = 'ZM_WEB_L_REFRESH_CYCLE', Value = '30', Type = 'integer', DefaultValue = '30', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How often (in seconds) the cycle watch window swaps to the next monitor', Help = 'The cycle watch window is a method of continuously cycling between images from all of your monitors. This option determines how often to refresh with a new image.', Category = 'lowband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 179, Name = 'ZM_WEB_L_REFRESH_IMAGE', Value = '15', Type = 'integer', DefaultValue = '15', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How often (in seconds) the watched image is refreshed (if not streaming)', Help = 'The live images from a monitor can be viewed in either streamed or stills mode. This option determines how often a stills image is refreshed, it has no effect if streaming is selected.', Category = 'lowband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 180, Name = 'ZM_WEB_L_REFRESH_STATUS', Value = '10', Type = 'integer', DefaultValue = '10', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How often (in seconds) the status refreshes itself in the watch window', Help = 'The monitor window is actually made from several frames. The one in the middle merely contains a monitor status which needs to refresh fairly frequently to give a true indication. This option determines that frequency.', Category = 'lowband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 181, Name = 'ZM_WEB_L_REFRESH_EVENTS', Value = '180', Type = 'integer', DefaultValue = '180', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How often (in seconds) the event listing is refreshed in the watch window', Help = 'The monitor window is actually made from several frames. The lower framme contains a listing of the last few events for easy access. This option determines how often this is refreshed.', Category = 'lowband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 182, Name = 'ZM_WEB_L_CAN_STREAM', Value = 'auto', Type = 'string', DefaultValue = 'auto', Hint = 'auto|yes|no', Pattern = '(?^i:^([ayn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : ($1 =~ /^n/ ? \"no\" : \"auto\" ) ', Prompt = 'Override the automatic detection of browser streaming capability', Help = 'If you know that your browser can handle image streams of the type \'multipart/x-mixed-replace\' but ZoneMinder does not detect this correctly you can set this option to ensure that the stream is delivered with or without the use of the Cambozola plugin. Selecting \'yes\' will tell ZoneMinder that your browser can handle the streams natively, \'no\' means that it can\'t and so the plugin will be used while \'auto\' lets ZoneMinder decide.', Category = 'lowband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 183, Name = 'ZM_WEB_L_STREAM_METHOD', Value = 'jpeg', Type = 'string', DefaultValue = 'jpeg', Hint = 'mpeg|jpeg', Pattern = '(?^i:^([mj]))', Format = ' $1 =~ /^m/ ? \"mpeg\" : \"jpeg\" ', Prompt = 'Which method should be used to send video streams to your browser.', Help = 'ZoneMinder can be configured to use either mpeg encoded video or a series or still jpeg images when sending video streams. This option defines which is used. If you choose mpeg you should ensure that you have the appropriate plugins available on your browser whereas choosing jpeg will work natively on Mozilla and related browsers and with a Java applet on Internet Explorer', Category = 'lowband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 184, Name = 'ZM_WEB_L_DEFAULT_SCALE', Value = '100', Type = 'integer', DefaultValue = '100', Hint = '25|33|50|75|100|150|200|300|400', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'What the default scaling factor applied to \'live\' or \'event\' views is (%)', Help = 'Normally ZoneMinder will display \'live\' or \'event\' streams in their native size. However if you have monitors with large dimensions or a slow link you may prefer to reduce this size, alternatively for small monitors you can enlarge it. This options lets you specify what the default scaling factor will be. It is expressed as a percentage so 100 is normal size, 200 is double size etc.', Category = 'lowband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 185, Name = 'ZM_WEB_L_DEFAULT_RATE', Value = '100', Type = 'integer', DefaultValue = '100', Hint = '25|50|100|150|200|400|1000|2500|5000|10000', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'What the default replay rate factor applied to \'event\' views is (%)', Help = 'Normally ZoneMinder will display \'event\' streams at their native rate, i.e. as close to real-time as possible. However if you have long events it is often convenient to replay them at a faster rate for review. This option lets you specify what the default replay rate will be. It is expressed as a percentage so 100 is normal rate, 200 is double speed etc.', Category = 'lowband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 186, Name = 'ZM_WEB_L_VIDEO_BITRATE', Value = '25000', Type = 'integer', DefaultValue = '25000', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'What the bitrate of the video encoded stream should be set to', Help = 'When encoding real video via the ffmpeg library a bit rate can be specified which roughly corresponds to the available bandwidth used for the stream. This setting effectively corresponds to a \'quality\' setting for the video. A low value will result in a blocky image whereas a high value will produce a clearer view. Note that this setting does not control the frame rate of the video however the quality of the video produced is affected both by this setting and the frame rate that the video is produced at. A higher frame rate at a particular bit rate result in individual frames being at a lower quality.', Category = 'lowband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 187, Name = 'ZM_WEB_L_VIDEO_MAXFPS', Value = '5', Type = 'integer', DefaultValue = '5', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'What the maximum frame rate for streamed video should be', Help = 'When using streamed video the main control is the bitrate which determines how much data can be transmitted. However a lower bitrate at high frame rates results in a lower quality image. This option allows you to limit the maximum frame rate to ensure that video quality is maintained. An additional advantage is that encoding video at high frame rates is a processor intensive task when for the most part a very high frame rate offers little perceptible improvement over one that has a more manageable resource requirement. Note, this option is implemented as a cap beyond which binary reduction takes place. So if you have a device capturing at 15fps and set this option to 10fps then the video is not produced at 10fps, but rather at 7.5fps (15 divided by 2) as the final frame rate must be the original divided by a power of 2.', Category = 'lowband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 188, Name = 'ZM_WEB_L_SCALE_THUMBS', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Scale thumbnails in events, bandwidth versus cpu in rescaling', Help = 'If unset, this option sends the whole image to the browser which resizes it in the window. If set the image is scaled down on the server before sending a reduced size image to the browser to conserve bandwidth at the cost of cpu on the server. Note that ZM can only perform the resizing if the appropriate PHP graphics functionality is installed. This is usually available in the php-gd package.', Category = 'lowband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 189, Name = 'ZM_WEB_L_EVENTS_VIEW', Value = 'events', Type = 'string', DefaultValue = 'events', Hint = 'events|timeline', Pattern = '(?^i:^([lt]))', Format = ' $1 =~ /^e/ ? \"events\" : \"timeline\" ', Prompt = 'What the default view of multiple events should be.', Help = 'Stored events can be viewed in either an events list format or in a timeline based one. This option sets the default view that will be used. Choosing one view here does not prevent the other view being used as it will always be selectable from whichever view is currently being used.', Category = 'lowband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 190, Name = 'ZM_WEB_L_SHOW_PROGRESS', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Show the progress of replay in event view.', Help = 'When viewing events an event navigation panel and progress bar is shown below the event itself. This allows you to jump to specific points in the event, but can can also dynamically update to display the current progress of the event replay itself. This progress is calculated from the actual event duration and is not directly linked to the replay itself, so on limited bandwidth connections may be out of step with the replay. This option allows you to turn off the progress display, whilst still keeping the navigation aspect, where bandwidth prevents it functioning effectively.', Category = 'lowband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 191, Name = 'ZM_WEB_L_AJAX_TIMEOUT', Value = '10000', Type = 'integer', DefaultValue = '10000', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How long to wait for Ajax request responses (ms)', Help = 'The newer versions of the live feed and event views use Ajax to request information from the server and populate the views dynamically. This option allows you to specify a timeout if required after which requests are abandoned. A timeout may be necessary if requests would overwise hang such as on a slow connection. This would tend to consume a lot of browser memory and make the interface unresponsive. Ordinarily no requests should timeout so this setting should be set to a value greater than the slowest expected response. This value is in milliseconds but if set to zero then no timeout will be used.', Category = 'lowband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 192, Name = 'ZM_WEB_P_CAN_STREAM', Value = 'auto', Type = 'string', DefaultValue = 'auto', Hint = 'auto|yes|no', Pattern = '(?^i:^([ayn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : ($1 =~ /^n/ ? \"no\" : \"auto\" ) ', Prompt = 'Override the automatic detection of browser streaming capability', Help = 'If you know that your browser can handle image streams of the type \'multipart/x-mixed-replace\' but ZoneMinder does not detect this correctly you can set this option to ensure that the stream is delivered with or without the use of the Cambozola plugin. Selecting \'yes\' will tell ZoneMinder that your browser can handle the streams natively, \'no\' means that it can\'t and so the plugin will be used while \'auto\' lets ZoneMinder decide.', Category = 'phoneband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 193, Name = 'ZM_WEB_P_STREAM_METHOD', Value = 'jpeg', Type = 'string', DefaultValue = 'jpeg', Hint = 'mpeg|jpeg', Pattern = '(?^i:^([mj]))', Format = ' $1 =~ /^m/ ? \"mpeg\" : \"jpeg\" ', Prompt = 'Which method should be used to send video streams to your browser.', Help = 'ZoneMinder can be configured to use either mpeg encoded video or a series or still jpeg images when sending video streams. This option defines which is used. If you choose mpeg you should ensure that you have the appropriate plugins available on your browser whereas choosing jpeg will work natively on Mozilla and related browsers and with a Java applet on Internet Explorer', Category = 'phoneband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 194, Name = 'ZM_WEB_P_DEFAULT_SCALE', Value = '100', Type = 'integer', DefaultValue = '100', Hint = '25|33|50|75|100|150|200|300|400', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'What the default scaling factor applied to \'live\' or \'event\' views is (%)', Help = 'Normally ZoneMinder will display \'live\' or \'event\' streams in their native size. However if you have monitors with large dimensions or a slow link you may prefer to reduce this size, alternatively for small monitors you can enlarge it. This options lets you specify what the default scaling factor will be. It is expressed as a percentage so 100 is normal size, 200 is double size etc.', Category = 'phoneband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 195, Name = 'ZM_WEB_P_DEFAULT_RATE', Value = '100', Type = 'integer', DefaultValue = '100', Hint = '25|50|100|150|200|400|1000|2500|5000|10000', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'What the default replay rate factor applied to \'event\' views is (%)', Help = 'Normally ZoneMinder will display \'event\' streams at their native rate, i.e. as close to real-time as possible. However if you have long events it is often convenient to replay them at a faster rate for review. This option lets you specify what the default replay rate will be. It is expressed as a percentage so 100 is normal rate, 200 is double speed etc.', Category = 'phoneband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 196, Name = 'ZM_WEB_P_VIDEO_BITRATE', Value = '8000', Type = 'integer', DefaultValue = '8000', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'What the bitrate of the video encoded stream should be set to', Help = 'When encoding real video via the ffmpeg library a bit rate can be specified which roughly corresponds to the available bandwidth used for the stream. This setting effectively corresponds to a \'quality\' setting for the video. A low value will result in a blocky image whereas a high value will produce a clearer view. Note that this setting does not control the frame rate of the video however the quality of the video produced is affected both by this setting and the frame rate that the video is produced at. A higher frame rate at a particular bit rate result in individual frames being at a lower quality.', Category = 'phoneband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 197, Name = 'ZM_WEB_P_VIDEO_MAXFPS', Value = '5', Type = 'integer', DefaultValue = '5', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'What the maximum frame rate for streamed video should be', Help = 'When using streamed video the main control is the bitrate which determines how much data can be transmitted. However a lower bitrate at high frame rates results in a lower quality image. This option allows you to limit the maximum frame rate to ensure that video quality is maintained. An additional advantage is that encoding video at high frame rates is a processor intensive task when for the most part a very high frame rate offers little perceptible improvement over one that has a more manageable resource requirement. Note, this option is implemented as a cap beyond which binary reduction takes place. So if you have a device capturing at 15fps and set this option to 10fps then the video is not produced at 10fps, but rather at 7.5fps (15 divided by 2) as the final frame rate must be the original divided by a power of 2.', Category = 'phoneband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 198, Name = 'ZM_WEB_P_SCALE_THUMBS', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Scale thumbnails in events, bandwidth versus cpu in rescaling', Help = 'If unset, this option sends the whole image to the browser which resizes it in the window. If set the image is scaled down on the server before sending a reduced size image to the browser to conserve bandwidth at the cost of cpu on the server. Note that ZM can only perform the resizing if the appropriate PHP graphics functionality is installed. This is usually available in the php-gd package.', Category = 'phoneband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 199, Name = 'ZM_WEB_P_AJAX_TIMEOUT', Value = '10000', Type = 'integer', DefaultValue = '10000', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'How long to wait for Ajax request responses (ms)', Help = 'The newer versions of the live feed and event views use Ajax to request information from the server and populate the views dynamically. This option allows you to specify a timeout if required after which requests are abandoned. A timeout may be necessary if requests would overwise hang such as on a slow connection. This would tend to consume a lot of browser memory and make the interface unresponsive. Ordinarily no requests should timeout so this setting should be set to a value greater than the slowest expected response. This value is in milliseconds but if set to zero then no timeout will be used.', Category = 'phoneband', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 200, Name = 'ZM_DYN_LAST_VERSION', Value = '', Type = 'string', DefaultValue = '', Hint = 'string', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'What the last version of ZoneMinder recorded from zoneminder.com is', Help = '', Category = 'dynamic', Readonly = '1', Requires = '';
|
||||||
|
insert into Config set Id = 201, Name = 'ZM_DYN_CURR_VERSION', Value = '1.25.0', Type = 'string', DefaultValue = '1.25.0', Hint = 'string', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'What the effective current version of ZoneMinder is, might be different from actual if versions ignored', Help = '', Category = 'dynamic', Readonly = '1', Requires = '';
|
||||||
|
insert into Config set Id = 202, Name = 'ZM_DYN_DB_VERSION', Value = '1.25.0', Type = 'string', DefaultValue = '1.25.0', Hint = 'string', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'What the version of the database is, from zmupdate', Help = '', Category = 'dynamic', Readonly = '1', Requires = '';
|
||||||
|
insert into Config set Id = 203, Name = 'ZM_DYN_LAST_CHECK', Value = '', Type = 'integer', DefaultValue = '', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'When the last check for version from zoneminder.com was', Help = '', Category = 'dynamic', Readonly = '1', Requires = '';
|
||||||
|
insert into Config set Id = 204, Name = 'ZM_DYN_NEXT_REMINDER', Value = '', Type = 'string', DefaultValue = '', Hint = 'string', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'When the earliest time to remind about versions will be', Help = '', Category = 'dynamic', Readonly = '1', Requires = '';
|
||||||
|
insert into Config set Id = 205, Name = 'ZM_DYN_DONATE_REMINDER_TIME', Value = '0', Type = 'integer', DefaultValue = '0', Hint = 'integer', Pattern = '(?^:^(\d+)$)', Format = ' $1 ', Prompt = 'When the earliest time to remind about donations will be', Help = '', Category = 'dynamic', Readonly = '1', Requires = '';
|
||||||
|
insert into Config set Id = 206, Name = 'ZM_DYN_SHOW_DONATE_REMINDER', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Remind about donations or not', Help = '', Category = 'dynamic', Readonly = '1', Requires = '';
|
||||||
|
insert into Config set Id = 207, Name = 'ZM_EYEZM_DEBUG', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Switch additional debugging on for eyeZm Plugin', Help = 'Enable or Disable extra debugging from the eyeZm Plugin. Extra debugging information will be displayed in it\'s own file (EYEZM_LOG_TO_FILE is set), or your Apache error log', Category = 'eyeZm', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 208, Name = 'ZM_EYEZM_LOG_TO_FILE', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'When eyeZm Debugging is enabled, enabling this logs output to it\'s own file', Help = 'When EYEZM_DEBUG is on and EYEZM_LOG_TO_FILE is on, output generated from the eyeZm Plugin will go to it\'s own file. Otherwise it will go to the apache error log.', Category = 'eyeZm', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 209, Name = 'ZM_EYEZM_LOG_FILE', Value = '/var/log/zm/zm_xml.log', Type = 'string', DefaultValue = '/var/log/zm/zm_xml.log', Hint = 'string', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'Default filename to use when logging eyeZm Output and EYEZM_LOG_TO_FILE is enabled', Help = 'This file will contain it\'s own output from the eyeZm Plugin when EYEZM_LOG_TO_FILE and EYEZM_DEBUG are both enabled', Category = 'eyeZm', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 210, Name = 'ZM_EYEZM_EVENT_VCODEC', Value = 'mpeg4', Type = 'string', DefaultValue = 'mpeg4', Hint = 'mpeg4|h264', Pattern = '(?^i:^([mh]))', Format = ' $1 =~ /^m/ ? \"mpeg4\" : \"h264\" ', Prompt = 'Default video-codec to use for encoding events', Help = 'The eyeZm Plugin calls FFMPEG externally to encode the captured images. If your FFMPEG is not built with support for H264, change this to MPEG-4. If using H264, please check http://www.eyezm.com for H264 requirements and that your eyeZm version supports H264 (v1.2+).', Category = 'eyeZm', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 211, Name = 'ZM_EYEZM_FEED_VCODEC', Value = 'mjpeg', Type = 'string', DefaultValue = 'mjpeg', Hint = 'mjpeg|h264', Pattern = '(?^i:^([mh]))', Format = ' $1 =~ /^m/ ? \"mjpeg\" : \"h264\" ', Prompt = 'Default video-codec to use for streaming the live feed', Help = 'Determines whether the live stream is generated using native MJPEG streaming with ZoneMinder, or H264 using FFMPEG and HTML-5 streaming. If using H264, please check http://www.eyezm.com for H264 requirements and that your eyeZm version supports H264 (v1.2+). This is just a default parameter, and can be overridden with eyeZm.', Category = 'eyeZm', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 212, Name = 'ZM_EYEZM_H264_DEFAULT_BR', Value = '96k', Type = 'string', DefaultValue = '96k', Hint = 'string', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'Default bit-rate to use with FFMPEG for H264 streaming', Help = 'When using the eyeZm Plugin to stream H264 data, FFMPEG requires a bitrate to control the quality and bandwidth of the video. This should be specified in a format acceptable to FFMPEG. The default value is sufficient for most installations. This is just a default parameter, and can be overridden with eyeZm.', Category = 'eyeZm', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 213, Name = 'ZM_EYEZM_H264_DEFAULT_EVBR', Value = '128k', Type = 'string', DefaultValue = '128k', Hint = 'string', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'Default bit-rate to use with FFMPEG for H264 event viewing', Help = 'When using the eyeZm Plugin to view events in H264, FFMPEG requires a bitrate to control the quality and bandwidth of the video. This should be specified in a format acceptable to FFMPEG. The default value is sufficient for most installations. This is just a default parameter, and can be overridden with eyeZm.', Category = 'eyeZm', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 214, Name = 'ZM_EYEZM_H264_TIMEOUT', Value = '20', Type = 'string', DefaultValue = '20', Hint = 'string', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'Timeout (sec) to wait for H264 stream to start before terminating', Help = 'The eyeZm Plugin will attempt to spawn an H264 stream when requested, and require that it complete within the timeout specified. If you have a slow system or find through the logs that the H264 stream is not starting because the timeout is expiring, even though FFMPEG is running, try increasing this value. If you have a fast system, decreasing this value can improve the responsiveness when there are issues starting H264 streams', Category = 'eyeZm', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 215, Name = 'ZM_EYEZM_SEG_DURATION', Value = '3', Type = 'string', DefaultValue = '3', Hint = 'string', Pattern = '(?^:^(.+)$)', Format = ' $1 ', Prompt = 'Segment duration used for streaming using HTTP-5 Streaming protocol', Help = 'The HTTP-5 Live Streaming Protocol segments the input video stream into small chunks of a duration specified by this parameter. Increasing the segment duration will help with choppy connections on the other end, but will increase the latency in starting a stream.', Category = 'eyeZm', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 216, Name = 'ZM_PATH_PLUGINS', Value = '/usr/share/zm', Type = 'string', DefaultValue = '/usr/share/zm', Hint = '/absolute/path/to/somewhere', Pattern = '(?^:^((?:/[^/]*)+?)/?$)', Format = ' $1 ', Prompt = 'Path to the plugin folder', Help = '3d-party plugins have to be placed here.', Category = 'paths', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 217, Name = 'ZM_PLUGIN_EXTENSION', Value = '.zmpl', Type = 'string', DefaultValue = '.zmpl', Hint = 'relative/path/to/somewhere', Pattern = '(?^:^((?:[^/].*)?)/?$)', Format = ' $1 ', Prompt = 'Default extension of plugins to found.', Help = 'Default extension of plugins to found.', Category = 'paths', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 218, Name = 'ZM_PLUGINS_CONFIG_PATH', Value = '/usr/share/zm/plugins.conf', Type = 'string', DefaultValue = '/usr/share/zm/plugins.conf', Hint = '/absolute/path/to/somewhere', Pattern = '(?^:^((?:/[^/]*)+?)/?$)', Format = ' $1 ', Prompt = 'Path to the config file for plugins.', Help = 'Path to the config file for plugins.', Category = 'paths', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 219, Name = 'ZM_LOAD_PLUGINS', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Load and use 3d-party plugins', Help = '3d-party plugins will be loaded and used for analysing.', Category = 'config', Readonly = '0', Requires = '';
|
||||||
|
insert into Config set Id = 220, Name = 'ZM_TURNOFF_NATIVE_ANALYSIS', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?^i:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Turn native ZM\'s image analysis possibility off', Help = 'Image analysis with ZM\'s motion detected function will be turned off. Only detection functions from loaded plugins will be used. Note, that if no plugins have be loaded, no detection will be done.', Category = 'config', Readonly = '0', Requires = '';
|
||||||
|
|
|
@ -0,0 +1,623 @@
|
||||||
|
-- MySQL dump 10.9
|
||||||
|
--
|
||||||
|
-- Host: localhost Database: @ZM_DB_NAME@
|
||||||
|
-- ------------------------------------------------------
|
||||||
|
-- Server version 4.1.16-log
|
||||||
|
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||||
|
/*!40101 SET NAMES utf8 */;
|
||||||
|
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||||
|
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||||
|
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||||
|
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Current Database: `@ZM_DB_NAME@`
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `@ZM_DB_NAME@`;
|
||||||
|
|
||||||
|
USE `@ZM_DB_NAME@`;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Config`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Config`;
|
||||||
|
CREATE TABLE `Config` (
|
||||||
|
`Id` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`Name` varchar(32) NOT NULL default '',
|
||||||
|
`Value` text NOT NULL,
|
||||||
|
`Type` tinytext NOT NULL,
|
||||||
|
`DefaultValue` tinytext,
|
||||||
|
`Hint` tinytext,
|
||||||
|
`Pattern` tinytext,
|
||||||
|
`Format` tinytext,
|
||||||
|
`Prompt` tinytext,
|
||||||
|
`Help` text,
|
||||||
|
`Category` varchar(32) NOT NULL default '',
|
||||||
|
`Readonly` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`Requires` text,
|
||||||
|
PRIMARY KEY (`Name`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `ControlPresets`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `ControlPresets`;
|
||||||
|
CREATE TABLE `ControlPresets` (
|
||||||
|
`MonitorId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Preset` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Label` varchar(64) NOT NULL default '',
|
||||||
|
PRIMARY KEY (`MonitorId`,`Preset`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Controls`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Controls`;
|
||||||
|
CREATE TABLE `Controls` (
|
||||||
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
|
`Name` varchar(64) NOT NULL default '',
|
||||||
|
`Type` enum('Local','Remote') NOT NULL default 'Local',
|
||||||
|
`Protocol` varchar(64) default NULL,
|
||||||
|
`CanWake` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanSleep` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanReset` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanZoom` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanAutoZoom` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanZoomAbs` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanZoomRel` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanZoomCon` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinZoomRange` int(10) unsigned default NULL,
|
||||||
|
`MaxZoomRange` int(10) unsigned default NULL,
|
||||||
|
`MinZoomStep` int(10) unsigned default NULL,
|
||||||
|
`MaxZoomStep` int(10) unsigned default NULL,
|
||||||
|
`HasZoomSpeed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinZoomSpeed` int(10) unsigned default NULL,
|
||||||
|
`MaxZoomSpeed` int(10) unsigned default NULL,
|
||||||
|
`CanFocus` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanAutoFocus` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanFocusAbs` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanFocusRel` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanFocusCon` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinFocusRange` int(10) unsigned default NULL,
|
||||||
|
`MaxFocusRange` int(10) unsigned default NULL,
|
||||||
|
`MinFocusStep` int(10) unsigned default NULL,
|
||||||
|
`MaxFocusStep` int(10) unsigned default NULL,
|
||||||
|
`HasFocusSpeed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinFocusSpeed` int(10) unsigned default NULL,
|
||||||
|
`MaxFocusSpeed` int(10) unsigned default NULL,
|
||||||
|
`CanIris` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanAutoIris` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanIrisAbs` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanIrisRel` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanIrisCon` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinIrisRange` int(10) unsigned default NULL,
|
||||||
|
`MaxIrisRange` int(10) unsigned default NULL,
|
||||||
|
`MinIrisStep` int(10) unsigned default NULL,
|
||||||
|
`MaxIrisStep` int(10) unsigned default NULL,
|
||||||
|
`HasIrisSpeed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinIrisSpeed` int(10) unsigned default NULL,
|
||||||
|
`MaxIrisSpeed` int(10) unsigned default NULL,
|
||||||
|
`CanGain` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanAutoGain` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanGainAbs` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanGainRel` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanGainCon` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinGainRange` int(10) unsigned default NULL,
|
||||||
|
`MaxGainRange` int(10) unsigned default NULL,
|
||||||
|
`MinGainStep` int(10) unsigned default NULL,
|
||||||
|
`MaxGainStep` int(10) unsigned default NULL,
|
||||||
|
`HasGainSpeed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinGainSpeed` int(10) unsigned default NULL,
|
||||||
|
`MaxGainSpeed` int(10) unsigned default NULL,
|
||||||
|
`CanWhite` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanAutoWhite` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanWhiteAbs` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanWhiteRel` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanWhiteCon` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinWhiteRange` int(10) unsigned default NULL,
|
||||||
|
`MaxWhiteRange` int(10) unsigned default NULL,
|
||||||
|
`MinWhiteStep` int(10) unsigned default NULL,
|
||||||
|
`MaxWhiteStep` int(10) unsigned default NULL,
|
||||||
|
`HasWhiteSpeed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinWhiteSpeed` int(10) unsigned default NULL,
|
||||||
|
`MaxWhiteSpeed` int(10) unsigned default NULL,
|
||||||
|
`HasPresets` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`NumPresets` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`HasHomePreset` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanSetPresets` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanMove` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanMoveDiag` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanMoveMap` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanMoveAbs` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanMoveRel` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanMoveCon` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanPan` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinPanRange` int(10) default NULL,
|
||||||
|
`MaxPanRange` int(10) default NULL,
|
||||||
|
`MinPanStep` int(10) default NULL,
|
||||||
|
`MaxPanStep` int(10) default NULL,
|
||||||
|
`HasPanSpeed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinPanSpeed` int(10) default NULL,
|
||||||
|
`MaxPanSpeed` int(10) default NULL,
|
||||||
|
`HasTurboPan` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`TurboPanSpeed` int(10) default NULL,
|
||||||
|
`CanTilt` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinTiltRange` int(10) default NULL,
|
||||||
|
`MaxTiltRange` int(10) default NULL,
|
||||||
|
`MinTiltStep` int(10) default NULL,
|
||||||
|
`MaxTiltStep` int(10) default NULL,
|
||||||
|
`HasTiltSpeed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinTiltSpeed` int(10) default NULL,
|
||||||
|
`MaxTiltSpeed` int(10) default NULL,
|
||||||
|
`HasTurboTilt` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`TurboTiltSpeed` int(10) default NULL,
|
||||||
|
`CanAutoScan` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`NumScanPaths` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
PRIMARY KEY (`Id`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Devices`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Devices`;
|
||||||
|
CREATE TABLE `Devices` (
|
||||||
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
|
`Name` tinytext NOT NULL,
|
||||||
|
`Type` enum('X10') NOT NULL default 'X10',
|
||||||
|
`KeyString` varchar(32) NOT NULL default '',
|
||||||
|
PRIMARY KEY (`Id`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Events`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Events`;
|
||||||
|
CREATE TABLE `Events` (
|
||||||
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
|
`MonitorId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Name` varchar(64) NOT NULL default '',
|
||||||
|
`Cause` varchar(32) NOT NULL default '',
|
||||||
|
`StartTime` datetime default NULL,
|
||||||
|
`EndTime` datetime default NULL,
|
||||||
|
`Width` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`Height` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`Length` decimal(10,2) NOT NULL default '0.00',
|
||||||
|
`Frames` int(10) unsigned default NULL,
|
||||||
|
`AlarmFrames` int(10) unsigned default NULL,
|
||||||
|
`TotScore` int(10) unsigned NOT NULL default '0',
|
||||||
|
`AvgScore` smallint(5) unsigned default '0',
|
||||||
|
`MaxScore` smallint(5) unsigned default '0',
|
||||||
|
`Archived` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`Videoed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`Uploaded` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`Emailed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`Messaged` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`Executed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`Notes` text,
|
||||||
|
PRIMARY KEY (`Id`,`MonitorId`),
|
||||||
|
KEY `MonitorId` (`MonitorId`),
|
||||||
|
KEY `StartTime` (`StartTime`),
|
||||||
|
KEY `Frames` (`Frames`),
|
||||||
|
KEY `Archived` (`Archived`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Filters`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Filters`;
|
||||||
|
CREATE TABLE `Filters` (
|
||||||
|
`Name` varchar(64) NOT NULL default '',
|
||||||
|
`Query` text NOT NULL,
|
||||||
|
`AutoArchive` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`AutoVideo` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`AutoUpload` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`AutoEmail` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`AutoMessage` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`AutoExecute` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`AutoExecuteCmd` tinytext,
|
||||||
|
`AutoDelete` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`Background` tinyint(1) unsigned NOT NULL default '0',
|
||||||
|
PRIMARY KEY (`Name`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Frames`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Frames`;
|
||||||
|
CREATE TABLE `Frames` (
|
||||||
|
`EventId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`FrameId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Type` enum('Normal','Bulk','Alarm') NOT NULL default 'Normal',
|
||||||
|
`TimeStamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
|
||||||
|
`Delta` decimal(8,2) NOT NULL default '0.00',
|
||||||
|
`Score` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
PRIMARY KEY (`EventId`,`FrameId`),
|
||||||
|
KEY `Type` (`Type`),
|
||||||
|
KEY `TimeStamp` (`TimeStamp`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Groups`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Groups`;
|
||||||
|
CREATE TABLE `Groups` (
|
||||||
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
|
`Name` varchar(64) NOT NULL default '',
|
||||||
|
`MonitorIds` tinytext NOT NULL,
|
||||||
|
PRIMARY KEY (`Id`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Logs`
|
||||||
|
--
|
||||||
|
CREATE TABLE `Logs` (
|
||||||
|
`TimeKey` decimal(16,6) NOT NULL,
|
||||||
|
`Component` varchar(32) NOT NULL,
|
||||||
|
`Pid` smallint(6) DEFAULT NULL,
|
||||||
|
`Level` tinyint(3) NOT NULL,
|
||||||
|
`Code` char(3) NOT NULL,
|
||||||
|
`Message` varchar(255) NOT NULL,
|
||||||
|
`File` varchar(255) DEFAULT NULL,
|
||||||
|
`Line` smallint(5) unsigned DEFAULT NULL,
|
||||||
|
KEY `TimeKey` (`TimeKey`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `MonitorPresets`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `MonitorPresets`;
|
||||||
|
CREATE TABLE `MonitorPresets` (
|
||||||
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
|
`Name` varchar(64) NOT NULL default '',
|
||||||
|
`Type` enum('Local','Remote','File','Ffmpeg') NOT NULL default 'Local',
|
||||||
|
`Device` tinytext,
|
||||||
|
`Channel` tinyint(3) unsigned default NULL,
|
||||||
|
`Format` int(10) unsigned default NULL,
|
||||||
|
`Protocol` varchar(16) default NULL,
|
||||||
|
`Method` varchar(16) default NULL,
|
||||||
|
`Host` varchar(64) default NULL,
|
||||||
|
`Port` varchar(8) default NULL,
|
||||||
|
`Path` varchar(255) default NULL,
|
||||||
|
`SubPath` varchar(64) default NULL,
|
||||||
|
`Width` smallint(5) unsigned default NULL,
|
||||||
|
`Height` smallint(5) unsigned default NULL,
|
||||||
|
`Palette` int(10) unsigned default NULL,
|
||||||
|
`MaxFPS` decimal(5,2) default NULL,
|
||||||
|
`Controllable` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`ControlId` varchar(16) default NULL,
|
||||||
|
`ControlDevice` varchar(255) default NULL,
|
||||||
|
`ControlAddress` varchar(255) default NULL,
|
||||||
|
`DefaultRate` smallint(5) unsigned NOT NULL default '100',
|
||||||
|
`DefaultScale` smallint(5) unsigned NOT NULL default '100',
|
||||||
|
PRIMARY KEY (`Id`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Monitors`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Monitors`;
|
||||||
|
CREATE TABLE `Monitors` (
|
||||||
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
|
`Name` varchar(64) NOT NULL default '',
|
||||||
|
`Type` enum('Local','Remote','File','Ffmpeg') NOT NULL default 'Local',
|
||||||
|
`Function` enum('None','Monitor','Modect','Record','Mocord','Nodect') NOT NULL default 'Monitor',
|
||||||
|
`Enabled` tinyint(3) unsigned NOT NULL default '1',
|
||||||
|
`LinkedMonitors` varchar(255) NOT NULL default '',
|
||||||
|
`Triggers` set('X10') NOT NULL default '',
|
||||||
|
`Device` varchar(64) NOT NULL default '',
|
||||||
|
`Channel` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`Format` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Protocol` varchar(16) NOT NULL default '',
|
||||||
|
`Method` varchar(16) NOT NULL default '',
|
||||||
|
`Host` varchar(64) NOT NULL default '',
|
||||||
|
`Port` varchar(8) NOT NULL default '',
|
||||||
|
`SubPath` varchar(64) NOT NULL default '',
|
||||||
|
`Path` varchar(255) NOT NULL default '',
|
||||||
|
`Width` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`Height` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`Colours` tinyint(3) unsigned NOT NULL default '1',
|
||||||
|
`Palette` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Orientation` enum('0','90','180','270','hori','vert') NOT NULL default '0',
|
||||||
|
`Deinterlacing` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Brightness` mediumint(7) NOT NULL default '-1',
|
||||||
|
`Contrast` mediumint(7) NOT NULL default '-1',
|
||||||
|
`Hue` mediumint(7) NOT NULL default '-1',
|
||||||
|
`Colour` mediumint(7) NOT NULL default '-1',
|
||||||
|
`EventPrefix` varchar(32) NOT NULL default 'Event-',
|
||||||
|
`LabelFormat` varchar(64) NOT NULL default '%N - %y/%m/%d %H:%M:%S',
|
||||||
|
`LabelX` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`LabelY` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`ImageBufferCount` smallint(5) unsigned NOT NULL default '100',
|
||||||
|
`WarmupCount` smallint(5) unsigned NOT NULL default '25',
|
||||||
|
`PreEventCount` smallint(5) unsigned NOT NULL default '10',
|
||||||
|
`PostEventCount` smallint(5) unsigned NOT NULL default '10',
|
||||||
|
`StreamReplayBuffer` int(10) unsigned NOT NULL default '1000',
|
||||||
|
`AlarmFrameCount` smallint(5) unsigned NOT NULL default '1',
|
||||||
|
`SectionLength` int(10) unsigned NOT NULL default '600',
|
||||||
|
`FrameSkip` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`MaxFPS` decimal(5,2) default NULL,
|
||||||
|
`AlarmMaxFPS` decimal(5,2) default NULL,
|
||||||
|
`FPSReportInterval` smallint(5) unsigned NOT NULL default '250',
|
||||||
|
`RefBlendPerc` tinyint(3) unsigned NOT NULL default '10',
|
||||||
|
`Controllable` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`ControlId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`ControlDevice` varchar(255) default NULL,
|
||||||
|
`ControlAddress` varchar(255) default NULL,
|
||||||
|
`AutoStopTimeout` decimal(5,2) default NULL,
|
||||||
|
`TrackMotion` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`TrackDelay` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`ReturnLocation` tinyint(3) NOT NULL default '-1',
|
||||||
|
`ReturnDelay` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`DefaultView` enum('Events','Control') NOT NULL default 'Events',
|
||||||
|
`DefaultRate` smallint(5) unsigned NOT NULL default '100',
|
||||||
|
`DefaultScale` smallint(5) unsigned NOT NULL default '100',
|
||||||
|
`SignalCheckColour` varchar(32) NOT NULL default '#0000BE',
|
||||||
|
`WebColour` varchar(32) NOT NULL default 'red',
|
||||||
|
`Sequence` smallint(5) unsigned default NULL,
|
||||||
|
`UsedPl` varchar(88) NOT NULL default '',
|
||||||
|
`DoNativeMotDet` tinyint(3) unsigned NOT NULL default '1',
|
||||||
|
PRIMARY KEY (`Id`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `States`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `States`;
|
||||||
|
CREATE TABLE `States` (
|
||||||
|
`Name` varchar(64) NOT NULL default '',
|
||||||
|
`Definition` text NOT NULL,
|
||||||
|
PRIMARY KEY (`Name`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Stats`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Stats`;
|
||||||
|
CREATE TABLE `Stats` (
|
||||||
|
`MonitorId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`ZoneId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`EventId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`FrameId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`PixelDiff` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`AlarmPixels` int(10) unsigned NOT NULL default '0',
|
||||||
|
`FilterPixels` int(10) unsigned NOT NULL default '0',
|
||||||
|
`BlobPixels` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Blobs` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`MinBlobSize` int(10) unsigned NOT NULL default '0',
|
||||||
|
`MaxBlobSize` int(10) unsigned NOT NULL default '0',
|
||||||
|
`MinX` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`MaxX` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`MinY` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`MaxY` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`Score` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
KEY `EventId` (`EventId`),
|
||||||
|
KEY `MonitorId` (`MonitorId`),
|
||||||
|
KEY `ZoneId` (`ZoneId`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `TriggersX10`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `TriggersX10`;
|
||||||
|
CREATE TABLE `TriggersX10` (
|
||||||
|
`MonitorId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Activation` varchar(32) default NULL,
|
||||||
|
`AlarmInput` varchar(32) default NULL,
|
||||||
|
`AlarmOutput` varchar(32) default NULL,
|
||||||
|
PRIMARY KEY (`MonitorId`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Users`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Users`;
|
||||||
|
CREATE TABLE `Users` (
|
||||||
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
|
`Username` varchar(32) character set latin1 collate latin1_bin NOT NULL default '',
|
||||||
|
`Password` varchar(64) NOT NULL default '',
|
||||||
|
`Language` varchar(8) NOT NULL default '',
|
||||||
|
`Enabled` tinyint(3) unsigned NOT NULL default '1',
|
||||||
|
`Stream` enum('None','View') NOT NULL default 'None',
|
||||||
|
`Events` enum('None','View','Edit') NOT NULL default 'None',
|
||||||
|
`Control` enum('None','View','Edit') NOT NULL default 'None',
|
||||||
|
`Monitors` enum('None','View','Edit') NOT NULL default 'None',
|
||||||
|
`Devices` enum('None','View','Edit') NOT NULL default 'None',
|
||||||
|
`System` enum('None','View','Edit') NOT NULL default 'None',
|
||||||
|
`MaxBandwidth` varchar(16) NOT NULL default '',
|
||||||
|
`MonitorIds` tinytext NOT NULL,
|
||||||
|
PRIMARY KEY (`Id`),
|
||||||
|
UNIQUE KEY `UC_Username` (`Username`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `ZonePresets`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `ZonePresets`;
|
||||||
|
CREATE TABLE `ZonePresets` (
|
||||||
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
|
`Name` varchar(64) NOT NULL default '',
|
||||||
|
`Type` enum('Active','Inclusive','Exclusive','Preclusive','Inactive') NOT NULL default 'Active',
|
||||||
|
`Units` enum('Pixels','Percent') NOT NULL default 'Pixels',
|
||||||
|
`CheckMethod` enum('AlarmedPixels','FilteredPixels','Blobs') NOT NULL default 'Blobs',
|
||||||
|
`MinPixelThreshold` smallint(5) unsigned default NULL,
|
||||||
|
`MaxPixelThreshold` smallint(5) unsigned default NULL,
|
||||||
|
`MinAlarmPixels` int(10) unsigned default NULL,
|
||||||
|
`MaxAlarmPixels` int(10) unsigned default NULL,
|
||||||
|
`FilterX` tinyint(3) unsigned default NULL,
|
||||||
|
`FilterY` tinyint(3) unsigned default NULL,
|
||||||
|
`MinFilterPixels` int(10) unsigned default NULL,
|
||||||
|
`MaxFilterPixels` int(10) unsigned default NULL,
|
||||||
|
`MinBlobPixels` int(10) unsigned default NULL,
|
||||||
|
`MaxBlobPixels` int(10) unsigned default NULL,
|
||||||
|
`MinBlobs` smallint(5) unsigned default NULL,
|
||||||
|
`MaxBlobs` smallint(5) unsigned default NULL,
|
||||||
|
`OverloadFrames` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
PRIMARY KEY (`Id`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Zones`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Zones`;
|
||||||
|
CREATE TABLE `Zones` (
|
||||||
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
|
`MonitorId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Name` varchar(64) NOT NULL default '',
|
||||||
|
`Type` enum('Active','Inclusive','Exclusive','Preclusive','Inactive') NOT NULL default 'Active',
|
||||||
|
`Units` enum('Pixels','Percent') NOT NULL default 'Pixels',
|
||||||
|
`NumCoords` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`Coords` tinytext NOT NULL,
|
||||||
|
`Area` int(10) unsigned NOT NULL default '0',
|
||||||
|
`AlarmRGB` int(10) unsigned default '0',
|
||||||
|
`CheckMethod` enum('AlarmedPixels','FilteredPixels','Blobs') NOT NULL default 'Blobs',
|
||||||
|
`MinPixelThreshold` smallint(5) unsigned default NULL,
|
||||||
|
`MaxPixelThreshold` smallint(5) unsigned default NULL,
|
||||||
|
`MinAlarmPixels` int(10) unsigned default NULL,
|
||||||
|
`MaxAlarmPixels` int(10) unsigned default NULL,
|
||||||
|
`FilterX` tinyint(3) unsigned default NULL,
|
||||||
|
`FilterY` tinyint(3) unsigned default NULL,
|
||||||
|
`MinFilterPixels` int(10) unsigned default NULL,
|
||||||
|
`MaxFilterPixels` int(10) unsigned default NULL,
|
||||||
|
`MinBlobPixels` int(10) unsigned default NULL,
|
||||||
|
`MaxBlobPixels` int(10) unsigned default NULL,
|
||||||
|
`MinBlobs` smallint(5) unsigned default NULL,
|
||||||
|
`MaxBlobs` smallint(5) unsigned default NULL,
|
||||||
|
`OverloadFrames` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
PRIMARY KEY (`Id`),
|
||||||
|
KEY `MonitorId` (`MonitorId`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||||
|
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||||
|
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||||
|
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||||
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Initial data to be loaded into ZoneMinder database
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Create a default admin user.
|
||||||
|
--
|
||||||
|
insert into Users values ('','admin',password('admin'),'',1,'View','Edit','Edit','Edit','Edit','Edit','','');
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add a sample filter to purge the oldest 5 events when the disk is 95% full, delete is disabled though
|
||||||
|
--
|
||||||
|
insert into Filters values ('PurgeWhenFull','{"sort_field":"Id","terms":[{"val":0,"attr":"Archived","op":"="},{"cnj":"and","val":95,"attr":"DiskPercent","op":">="}],"limit":5,"sort_asc":1}',0,0,0,0,0,0,'',1,0);
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add in some sample control protocol definitions
|
||||||
|
--
|
||||||
|
insert into Controls values (1,'Pelco-D','Local','PelcoD',1,1,0,1,1,0,0,1,NULL,NULL,NULL,NULL,1,0,3,1,1,0,0,1,NULL,NULL,NULL,NULL,0,NULL,NULL,1,1,0,1,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,1,0,1,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,20,1,1,1,1,0,0,0,1,1,NULL,NULL,NULL,NULL,1,0,63,1,254,1,NULL,NULL,NULL,NULL,1,0,63,1,254,0,0);
|
||||||
|
insert into Controls values (2,'Pelco-P','Local','PelcoP',1,1,0,1,1,0,0,1,NULL,NULL,NULL,NULL,1,0,3,1,1,0,0,1,NULL,NULL,NULL,NULL,0,NULL,NULL,1,1,0,1,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,1,0,1,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,20,1,1,1,1,0,0,0,1,1,NULL,NULL,NULL,NULL,1,0,63,1,254,1,NULL,NULL,NULL,NULL,1,0,63,1,254,0,0);
|
||||||
|
insert into Controls values (3,'Sony VISCA','Local','Visca',1,1,0,1,0,0,0,1,0,16384,10,4000,1,1,6,1,1,1,0,1,0,1536,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,3,1,1,1,1,0,1,1,0,1,-15578,15578,100,10000,1,1,50,1,254,1,-7789,7789,100,5000,1,1,50,1,254,0,0);
|
||||||
|
INSERT INTO Controls VALUES (4,'Axis API v2','Remote','AxisV2',0,0,0,1,0,0,1,0,0,9999,10,2500,0,NULL,NULL,1,1,0,1,0,0,9999,10,2500,0,NULL,NULL,1,1,0,1,0,0,9999,10,2500,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,12,1,1,1,1,1,0,1,0,1,-360,360,1,90,0,NULL,NULL,0,NULL,1,-360,360,1,90,0,NULL,NULL,0,NULL,0,0);
|
||||||
|
insert into Controls values (5,'Panasonic IP','Remote','PanasonicIP',0,0,0,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,8,1,1,1,0,1,0,0,1,1,NULL,NULL,NULL,NULL,0,NULL,NULL,0,NULL,1,NULL,NULL,NULL,NULL,0,NULL,NULL,0,NULL,0,0);
|
||||||
|
insert into Controls values (6,'Neu-Fusion NCS370','Remote','Ncs370',0,0,0,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,24,1,0,1,1,0,0,0,1,1,NULL,NULL,NULL,NULL,0,NULL,NULL,0,NULL,1,NULL,NULL,NULL,NULL,0,NULL,NULL,0,NULL,0,0);
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add some monitor preset values
|
||||||
|
--
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 320x240, mpjpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=320x240',NULL,320,240,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 320x240, mpjpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=320x240&req_fps=5',NULL,320,240,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 320x240, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=320x240',NULL,320,240,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 320x240, jpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=320x240',NULL,320,240,3,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 640x480, mpjpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=640x480',NULL,640,480,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 640x480, mpjpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=640x480&req_fps=5',NULL,640,480,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 640x480, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=640x480',NULL,640,480,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 640x480, jpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=640x480',NULL,640,480,3,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 320x240, mpjpeg, B&W','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=320x240&color=0',NULL,320,240,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 640x480, mpjpeg, B&W','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=640x480&color=0',NULL,640,480,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 320x240, mpjpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=320x240',NULL,320,240,3,NULL,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 320x240, mpjpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=320x240&req_fps=5',NULL,320,240,3,NULL,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 320x240, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=320x240',NULL,320,240,3,NULL,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 320x240, jpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=320x240',NULL,320,240,3,5.0,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 640x480, mpjpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=640x480',NULL,640,480,3,NULL,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 640x480, mpjpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=640x480&req_fps=5',NULL,640,480,3,NULL,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 640x480, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=640x480',NULL,640,480,3,NULL,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 640x480, jpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=640x480',NULL,640,480,3,5.0,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT into MonitorPresets VALUES ('','Axis IP, mpeg4, unicast','Remote',NULL,NULL,NULL,'rtsp','rtpUni','<ip-address>',554,'/mpeg4/media.amp','/trackID=',NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT into MonitorPresets VALUES ('','Axis IP, mpeg4, multicast','Remote',NULL,NULL,NULL,'rtsp','rtpMulti','<ip-address>',554,'/mpeg4/media.amp','/trackID=',NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT into MonitorPresets VALUES ('','Axis IP, mpeg4, RTP/RTSP','Remote',NULL,NULL,NULL,'rtsp','rtpRtsp','<ip-address>',554,'/mpeg4/media.amp','/trackID=',NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT into MonitorPresets VALUES ('','Axis IP, mpeg4, RTP/RTSP/HTTP','Remote',NULL,NULL,NULL,'rtsp','rtpRtspHttp','<ip-address>',554,'/mpeg4/media.amp','/trackID=',NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP, 320x240, mpjpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/nphMotionJpeg?Resolution=320x240&Quality=Standard',NULL,320,240,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP, 320x240, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=320x240&Quality=Standard',NULL,320,240,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP, 320x240, jpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=320x240&Quality=Standard',NULL,320,240,3,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP, 640x480, mpjpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/nphMotionJpeg?Resolution=640x480&Quality=Standard',NULL,640,480,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP, 640x480, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=640x480&Quality=Standard',NULL,640,480,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP, 640x480, jpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=640x480&Quality=Standard',NULL,640,480,3,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP PTZ, 320x240, mpjpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/nphMotionJpeg?Resolution=320x240&Quality=Standard',NULL,320,240,3,NULL,1,5,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP PTZ, 320x240, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=320x240&Quality=Standard',NULL,320,240,3,NULL,1,5,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP PTZ, 320x240, jpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=320x240&Quality=Standard',NULL,320,240,3,5.0,1,5,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP PTZ, 640x480, mpjpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/nphMotionJpeg?Resolution=640x480&Quality=Standard',NULL,640,480,3,NULL,1,5,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP PTZ, 640x480, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=640x480&Quality=Standard',NULL,640,480,3,NULL,1,5,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP PTZ, 640x480, jpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=640x480&Quality=Standard',NULL,640,480,3,5.0,1,5,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Gadspot IP, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/Jpeg/CamImg.jpg',NULL,NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Gadspot IP, jpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/Jpeg/CamImg.jpg',NULL,NULL,NULL,3,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Gadspot IP, mpjpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/GetData.cgi',NULL,NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Gadspot IP, mpjpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/Jpeg/CamImg.jpg',NULL,NULL,NULL,3,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','VEO Observer, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/Jpeg/CamImg.jpg',NULL,NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Blue Net Video Server, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/cgi-bin/image.cgi?control=0&id=admin&passwd=admin',NULL,320,240,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT into MonitorPresets VALUES ('','ACTi IP, mpeg4, unicast','Remote',NULL,NULL,NULL,'rtsp','rtpUni','<ip-address>',7070,'','/track',NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis FFMPEG H.264','Ffmpeg',NULL,NULL,NULL,NULL,NULL,'rtsp://<host/address>/axis-media/media.amp?videocodec=h264',NULL,NULL,NULL,640,480,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Vivotek FFMPEG','Ffmpeg',NULL,NULL,NULL,NULL,NULL,'rtsp://<host/address>:554/live.sdp',NULL,NULL,NULL,352,240,NULL,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis FFMPEG','Ffmpeg',NULL,NULL,NULL,NULL,NULL,'rtsp://<host/address>/axis-media/media.amp',NULL,NULL,NULL,640,480,NULL,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','ACTi TCM FFMPEG','Ffmpeg',NULL,NULL,NULL,NULL,NULL,'rtsp://admin:123456@<host/address>:7070',NULL,NULL,NULL,320,240,NULL,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), PAL, 320x240','Local','/dev/video<?>','<?>',255,NULL,'v4l2',NULL,NULL,NULL,NULL,320,240,1345466932,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), PAL, 320x240, max 5 FPS','Local','/dev/video<?>','<?>',255,NULL,'v4l2',NULL,NULL,NULL,NULL,320,240,1345466932,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), PAL, 640x480','Local','/dev/video<?>','<?>',255,NULL,'v4l2',NULL,NULL,NULL,NULL,640,480,1345466932,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), PAL, 640x480, max 5 FPS','Local','/dev/video<?>','<?>',255,NULL,'v4l2',NULL,NULL,NULL,NULL,640,480,1345466932,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), NTSC, 320x240','Local','/dev/video<?>','<?>',45056,NULL,'v4l2',NULL,NULL,NULL,NULL,320,240,1345466932,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), NTSC, 320x240, max 5 FPS','Local','/dev/video<?>','<?>',45056,NULL,'v4l2',NULL,NULL,NULL,NULL,320,240,1345466932,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), NTSC, 640x480','Local','/dev/video<?>','<?>',45056,NULL,'v4l2',NULL,NULL,NULL,NULL,640,480,1345466932,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), NTSC, 640x480, max 5 FPS','Local','/dev/video<?>','<?>',45056,NULL,'v4l2',NULL,NULL,NULL,NULL,640,480,1345466932,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), PAL, 320x240','Local','/dev/video<?>','<?>',0,NULL,'v4l1',NULL,NULL,NULL,NULL,320,240,13,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), PAL, 320x240, max 5 FPS','Local','/dev/video<?>','<?>',0,NULL,'v4l1',NULL,NULL,NULL,NULL,320,240,13,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), PAL, 640x480','Local','/dev/video<?>','<?>',0,NULL,'v4l1',NULL,NULL,NULL,NULL,640,480,13,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), PAL, 640x480, max 5 FPS','Local','/dev/video<?>','<?>',0,NULL,'v4l1',NULL,NULL,NULL,NULL,640,480,13,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), NTSC, 320x240','Local','/dev/video<?>','<?>',1,NULL,'v4l1',NULL,NULL,NULL,NULL,320,240,13,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), NTSC, 320x240, max 5 FPS','Local','/dev/video<?>','<?>',1,NULL,'v4l1',NULL,NULL,NULL,NULL,320,240,13,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), NTSC, 640x480','Local','/dev/video<?>','<?>',1,NULL,'v4l1',NULL,NULL,NULL,NULL,640,480,13,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), NTSC, 640x480, max 5 FPS','Local','/dev/video<?>','<?>',1,NULL,'v4l1',NULL,NULL,NULL,NULL,640,480,13,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Remote ZoneMinder','Remote',NULL,NULL,NULL,'http','simple','<ip-address>',80,'/cgi-bin/nph-zms?mode=jpeg&monitor=<monitor-id>&scale=100&maxfps=5&buffer=0',NULL,NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add some zone preset values
|
||||||
|
--
|
||||||
|
INSERT INTO ZonePresets VALUES (1,'Fast, low sensitivity','Active','Percent','AlarmedPixels',60,NULL,20,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||||
|
INSERT INTO ZonePresets VALUES (2,'Fast, medium sensitivity','Active','Percent','AlarmedPixels',40,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||||
|
INSERT INTO ZonePresets VALUES (3,'Fast, high sensitivity','Active','Percent','AlarmedPixels',20,NULL,5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||||
|
INSERT INTO ZonePresets VALUES (4,'Best, low sensitivity','Active','Percent','Blobs',60,NULL,36,NULL,7,7,24,NULL,20,NULL,1,NULL,0);
|
||||||
|
INSERT INTO ZonePresets VALUES (5,'Best, medium sensitivity','Active','Percent','Blobs',40,NULL,16,NULL,5,5,12,NULL,10,NULL,1,NULL,0);
|
||||||
|
INSERT INTO ZonePresets VALUES (6,'Best, high sensitivity','Active','Percent','Blobs',20,NULL,8,NULL,3,3,6,NULL,5,NULL,1,NULL,0);
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Apply the initial configuration
|
||||||
|
--
|
||||||
|
-- This section is autogenerated by zmconfgen.pl
|
||||||
|
-- Do not edit this file as any changes will be overwritten
|
||||||
|
--
|
|
@ -0,0 +1,621 @@
|
||||||
|
-- MySQL dump 10.9
|
||||||
|
--
|
||||||
|
-- Host: localhost Database: @ZM_DB_NAME@
|
||||||
|
-- ------------------------------------------------------
|
||||||
|
-- Server version 4.1.16-log
|
||||||
|
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||||
|
/*!40101 SET NAMES utf8 */;
|
||||||
|
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||||
|
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||||
|
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||||
|
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Current Database: `@ZM_DB_NAME@`
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `@ZM_DB_NAME@`;
|
||||||
|
|
||||||
|
USE `@ZM_DB_NAME@`;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Config`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Config`;
|
||||||
|
CREATE TABLE `Config` (
|
||||||
|
`Id` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`Name` varchar(32) NOT NULL default '',
|
||||||
|
`Value` text NOT NULL,
|
||||||
|
`Type` tinytext NOT NULL,
|
||||||
|
`DefaultValue` tinytext,
|
||||||
|
`Hint` tinytext,
|
||||||
|
`Pattern` tinytext,
|
||||||
|
`Format` tinytext,
|
||||||
|
`Prompt` tinytext,
|
||||||
|
`Help` text,
|
||||||
|
`Category` varchar(32) NOT NULL default '',
|
||||||
|
`Readonly` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`Requires` text,
|
||||||
|
PRIMARY KEY (`Name`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `ControlPresets`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `ControlPresets`;
|
||||||
|
CREATE TABLE `ControlPresets` (
|
||||||
|
`MonitorId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Preset` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Label` varchar(64) NOT NULL default '',
|
||||||
|
PRIMARY KEY (`MonitorId`,`Preset`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Controls`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Controls`;
|
||||||
|
CREATE TABLE `Controls` (
|
||||||
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
|
`Name` varchar(64) NOT NULL default '',
|
||||||
|
`Type` enum('Local','Remote') NOT NULL default 'Local',
|
||||||
|
`Protocol` varchar(64) default NULL,
|
||||||
|
`CanWake` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanSleep` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanReset` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanZoom` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanAutoZoom` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanZoomAbs` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanZoomRel` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanZoomCon` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinZoomRange` int(10) unsigned default NULL,
|
||||||
|
`MaxZoomRange` int(10) unsigned default NULL,
|
||||||
|
`MinZoomStep` int(10) unsigned default NULL,
|
||||||
|
`MaxZoomStep` int(10) unsigned default NULL,
|
||||||
|
`HasZoomSpeed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinZoomSpeed` int(10) unsigned default NULL,
|
||||||
|
`MaxZoomSpeed` int(10) unsigned default NULL,
|
||||||
|
`CanFocus` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanAutoFocus` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanFocusAbs` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanFocusRel` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanFocusCon` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinFocusRange` int(10) unsigned default NULL,
|
||||||
|
`MaxFocusRange` int(10) unsigned default NULL,
|
||||||
|
`MinFocusStep` int(10) unsigned default NULL,
|
||||||
|
`MaxFocusStep` int(10) unsigned default NULL,
|
||||||
|
`HasFocusSpeed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinFocusSpeed` int(10) unsigned default NULL,
|
||||||
|
`MaxFocusSpeed` int(10) unsigned default NULL,
|
||||||
|
`CanIris` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanAutoIris` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanIrisAbs` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanIrisRel` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanIrisCon` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinIrisRange` int(10) unsigned default NULL,
|
||||||
|
`MaxIrisRange` int(10) unsigned default NULL,
|
||||||
|
`MinIrisStep` int(10) unsigned default NULL,
|
||||||
|
`MaxIrisStep` int(10) unsigned default NULL,
|
||||||
|
`HasIrisSpeed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinIrisSpeed` int(10) unsigned default NULL,
|
||||||
|
`MaxIrisSpeed` int(10) unsigned default NULL,
|
||||||
|
`CanGain` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanAutoGain` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanGainAbs` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanGainRel` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanGainCon` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinGainRange` int(10) unsigned default NULL,
|
||||||
|
`MaxGainRange` int(10) unsigned default NULL,
|
||||||
|
`MinGainStep` int(10) unsigned default NULL,
|
||||||
|
`MaxGainStep` int(10) unsigned default NULL,
|
||||||
|
`HasGainSpeed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinGainSpeed` int(10) unsigned default NULL,
|
||||||
|
`MaxGainSpeed` int(10) unsigned default NULL,
|
||||||
|
`CanWhite` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanAutoWhite` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanWhiteAbs` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanWhiteRel` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanWhiteCon` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinWhiteRange` int(10) unsigned default NULL,
|
||||||
|
`MaxWhiteRange` int(10) unsigned default NULL,
|
||||||
|
`MinWhiteStep` int(10) unsigned default NULL,
|
||||||
|
`MaxWhiteStep` int(10) unsigned default NULL,
|
||||||
|
`HasWhiteSpeed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinWhiteSpeed` int(10) unsigned default NULL,
|
||||||
|
`MaxWhiteSpeed` int(10) unsigned default NULL,
|
||||||
|
`HasPresets` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`NumPresets` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`HasHomePreset` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanSetPresets` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanMove` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanMoveDiag` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanMoveMap` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanMoveAbs` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanMoveRel` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanMoveCon` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`CanPan` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinPanRange` int(10) default NULL,
|
||||||
|
`MaxPanRange` int(10) default NULL,
|
||||||
|
`MinPanStep` int(10) default NULL,
|
||||||
|
`MaxPanStep` int(10) default NULL,
|
||||||
|
`HasPanSpeed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinPanSpeed` int(10) default NULL,
|
||||||
|
`MaxPanSpeed` int(10) default NULL,
|
||||||
|
`HasTurboPan` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`TurboPanSpeed` int(10) default NULL,
|
||||||
|
`CanTilt` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinTiltRange` int(10) default NULL,
|
||||||
|
`MaxTiltRange` int(10) default NULL,
|
||||||
|
`MinTiltStep` int(10) default NULL,
|
||||||
|
`MaxTiltStep` int(10) default NULL,
|
||||||
|
`HasTiltSpeed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`MinTiltSpeed` int(10) default NULL,
|
||||||
|
`MaxTiltSpeed` int(10) default NULL,
|
||||||
|
`HasTurboTilt` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`TurboTiltSpeed` int(10) default NULL,
|
||||||
|
`CanAutoScan` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`NumScanPaths` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
PRIMARY KEY (`Id`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Devices`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Devices`;
|
||||||
|
CREATE TABLE `Devices` (
|
||||||
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
|
`Name` tinytext NOT NULL,
|
||||||
|
`Type` enum('X10') NOT NULL default 'X10',
|
||||||
|
`KeyString` varchar(32) NOT NULL default '',
|
||||||
|
PRIMARY KEY (`Id`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Events`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Events`;
|
||||||
|
CREATE TABLE `Events` (
|
||||||
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
|
`MonitorId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Name` varchar(64) NOT NULL default '',
|
||||||
|
`Cause` varchar(32) NOT NULL default '',
|
||||||
|
`StartTime` datetime default NULL,
|
||||||
|
`EndTime` datetime default NULL,
|
||||||
|
`Width` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`Height` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`Length` decimal(10,2) NOT NULL default '0.00',
|
||||||
|
`Frames` int(10) unsigned default NULL,
|
||||||
|
`AlarmFrames` int(10) unsigned default NULL,
|
||||||
|
`TotScore` int(10) unsigned NOT NULL default '0',
|
||||||
|
`AvgScore` smallint(5) unsigned default '0',
|
||||||
|
`MaxScore` smallint(5) unsigned default '0',
|
||||||
|
`Archived` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`Videoed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`Uploaded` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`Emailed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`Messaged` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`Executed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`Notes` text,
|
||||||
|
PRIMARY KEY (`Id`,`MonitorId`),
|
||||||
|
KEY `MonitorId` (`MonitorId`),
|
||||||
|
KEY `StartTime` (`StartTime`),
|
||||||
|
KEY `Frames` (`Frames`),
|
||||||
|
KEY `Archived` (`Archived`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Filters`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Filters`;
|
||||||
|
CREATE TABLE `Filters` (
|
||||||
|
`Name` varchar(64) NOT NULL default '',
|
||||||
|
`Query` text NOT NULL,
|
||||||
|
`AutoArchive` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`AutoVideo` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`AutoUpload` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`AutoEmail` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`AutoMessage` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`AutoExecute` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`AutoExecuteCmd` tinytext,
|
||||||
|
`AutoDelete` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`Background` tinyint(1) unsigned NOT NULL default '0',
|
||||||
|
PRIMARY KEY (`Name`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Frames`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Frames`;
|
||||||
|
CREATE TABLE `Frames` (
|
||||||
|
`EventId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`FrameId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Type` enum('Normal','Bulk','Alarm') NOT NULL default 'Normal',
|
||||||
|
`TimeStamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
|
||||||
|
`Delta` decimal(8,2) NOT NULL default '0.00',
|
||||||
|
`Score` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
PRIMARY KEY (`EventId`,`FrameId`),
|
||||||
|
KEY `Type` (`Type`),
|
||||||
|
KEY `TimeStamp` (`TimeStamp`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Groups`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Groups`;
|
||||||
|
CREATE TABLE `Groups` (
|
||||||
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
|
`Name` varchar(64) NOT NULL default '',
|
||||||
|
`MonitorIds` tinytext NOT NULL,
|
||||||
|
PRIMARY KEY (`Id`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Logs`
|
||||||
|
--
|
||||||
|
CREATE TABLE `Logs` (
|
||||||
|
`TimeKey` decimal(16,6) NOT NULL,
|
||||||
|
`Component` varchar(32) NOT NULL,
|
||||||
|
`Pid` smallint(6) DEFAULT NULL,
|
||||||
|
`Level` tinyint(3) NOT NULL,
|
||||||
|
`Code` char(3) NOT NULL,
|
||||||
|
`Message` varchar(255) NOT NULL,
|
||||||
|
`File` varchar(255) DEFAULT NULL,
|
||||||
|
`Line` smallint(5) unsigned DEFAULT NULL,
|
||||||
|
KEY `TimeKey` (`TimeKey`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `MonitorPresets`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `MonitorPresets`;
|
||||||
|
CREATE TABLE `MonitorPresets` (
|
||||||
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
|
`Name` varchar(64) NOT NULL default '',
|
||||||
|
`Type` enum('Local','Remote','File','Ffmpeg') NOT NULL default 'Local',
|
||||||
|
`Device` tinytext,
|
||||||
|
`Channel` tinyint(3) unsigned default NULL,
|
||||||
|
`Format` int(10) unsigned default NULL,
|
||||||
|
`Protocol` varchar(16) default NULL,
|
||||||
|
`Method` varchar(16) default NULL,
|
||||||
|
`Host` varchar(64) default NULL,
|
||||||
|
`Port` varchar(8) default NULL,
|
||||||
|
`Path` varchar(255) default NULL,
|
||||||
|
`SubPath` varchar(64) default NULL,
|
||||||
|
`Width` smallint(5) unsigned default NULL,
|
||||||
|
`Height` smallint(5) unsigned default NULL,
|
||||||
|
`Palette` int(10) unsigned default NULL,
|
||||||
|
`MaxFPS` decimal(5,2) default NULL,
|
||||||
|
`Controllable` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`ControlId` varchar(16) default NULL,
|
||||||
|
`ControlDevice` varchar(255) default NULL,
|
||||||
|
`ControlAddress` varchar(255) default NULL,
|
||||||
|
`DefaultRate` smallint(5) unsigned NOT NULL default '100',
|
||||||
|
`DefaultScale` smallint(5) unsigned NOT NULL default '100',
|
||||||
|
PRIMARY KEY (`Id`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Monitors`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Monitors`;
|
||||||
|
CREATE TABLE `Monitors` (
|
||||||
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
|
`Name` varchar(64) NOT NULL default '',
|
||||||
|
`Type` enum('Local','Remote','File','Ffmpeg') NOT NULL default 'Local',
|
||||||
|
`Function` enum('None','Monitor','Modect','Record','Mocord','Nodect') NOT NULL default 'Monitor',
|
||||||
|
`Enabled` tinyint(3) unsigned NOT NULL default '1',
|
||||||
|
`LinkedMonitors` varchar(255) NOT NULL default '',
|
||||||
|
`Triggers` set('X10') NOT NULL default '',
|
||||||
|
`Device` varchar(64) NOT NULL default '',
|
||||||
|
`Channel` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`Format` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Protocol` varchar(16) NOT NULL default '',
|
||||||
|
`Method` varchar(16) NOT NULL default '',
|
||||||
|
`Host` varchar(64) NOT NULL default '',
|
||||||
|
`Port` varchar(8) NOT NULL default '',
|
||||||
|
`SubPath` varchar(64) NOT NULL default '',
|
||||||
|
`Path` varchar(255) NOT NULL default '',
|
||||||
|
`Width` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`Height` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`Colours` tinyint(3) unsigned NOT NULL default '1',
|
||||||
|
`Palette` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Orientation` enum('0','90','180','270','hori','vert') NOT NULL default '0',
|
||||||
|
`Deinterlacing` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Brightness` mediumint(7) NOT NULL default '-1',
|
||||||
|
`Contrast` mediumint(7) NOT NULL default '-1',
|
||||||
|
`Hue` mediumint(7) NOT NULL default '-1',
|
||||||
|
`Colour` mediumint(7) NOT NULL default '-1',
|
||||||
|
`EventPrefix` varchar(32) NOT NULL default 'Event-',
|
||||||
|
`LabelFormat` varchar(64) NOT NULL default '%N - %y/%m/%d %H:%M:%S',
|
||||||
|
`LabelX` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`LabelY` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`ImageBufferCount` smallint(5) unsigned NOT NULL default '100',
|
||||||
|
`WarmupCount` smallint(5) unsigned NOT NULL default '25',
|
||||||
|
`PreEventCount` smallint(5) unsigned NOT NULL default '10',
|
||||||
|
`PostEventCount` smallint(5) unsigned NOT NULL default '10',
|
||||||
|
`StreamReplayBuffer` int(10) unsigned NOT NULL default '1000',
|
||||||
|
`AlarmFrameCount` smallint(5) unsigned NOT NULL default '1',
|
||||||
|
`SectionLength` int(10) unsigned NOT NULL default '600',
|
||||||
|
`FrameSkip` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`MaxFPS` decimal(5,2) default NULL,
|
||||||
|
`AlarmMaxFPS` decimal(5,2) default NULL,
|
||||||
|
`FPSReportInterval` smallint(5) unsigned NOT NULL default '250',
|
||||||
|
`RefBlendPerc` tinyint(3) unsigned NOT NULL default '10',
|
||||||
|
`Controllable` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`ControlId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`ControlDevice` varchar(255) default NULL,
|
||||||
|
`ControlAddress` varchar(255) default NULL,
|
||||||
|
`AutoStopTimeout` decimal(5,2) default NULL,
|
||||||
|
`TrackMotion` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`TrackDelay` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`ReturnLocation` tinyint(3) NOT NULL default '-1',
|
||||||
|
`ReturnDelay` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`DefaultView` enum('Events','Control') NOT NULL default 'Events',
|
||||||
|
`DefaultRate` smallint(5) unsigned NOT NULL default '100',
|
||||||
|
`DefaultScale` smallint(5) unsigned NOT NULL default '100',
|
||||||
|
`SignalCheckColour` varchar(32) NOT NULL default '#0000BE',
|
||||||
|
`WebColour` varchar(32) NOT NULL default 'red',
|
||||||
|
`Sequence` smallint(5) unsigned default NULL,
|
||||||
|
PRIMARY KEY (`Id`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `States`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `States`;
|
||||||
|
CREATE TABLE `States` (
|
||||||
|
`Name` varchar(64) NOT NULL default '',
|
||||||
|
`Definition` text NOT NULL,
|
||||||
|
PRIMARY KEY (`Name`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Stats`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Stats`;
|
||||||
|
CREATE TABLE `Stats` (
|
||||||
|
`MonitorId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`ZoneId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`EventId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`FrameId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`PixelDiff` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`AlarmPixels` int(10) unsigned NOT NULL default '0',
|
||||||
|
`FilterPixels` int(10) unsigned NOT NULL default '0',
|
||||||
|
`BlobPixels` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Blobs` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`MinBlobSize` int(10) unsigned NOT NULL default '0',
|
||||||
|
`MaxBlobSize` int(10) unsigned NOT NULL default '0',
|
||||||
|
`MinX` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`MaxX` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`MinY` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`MaxY` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
`Score` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
KEY `EventId` (`EventId`),
|
||||||
|
KEY `MonitorId` (`MonitorId`),
|
||||||
|
KEY `ZoneId` (`ZoneId`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `TriggersX10`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `TriggersX10`;
|
||||||
|
CREATE TABLE `TriggersX10` (
|
||||||
|
`MonitorId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Activation` varchar(32) default NULL,
|
||||||
|
`AlarmInput` varchar(32) default NULL,
|
||||||
|
`AlarmOutput` varchar(32) default NULL,
|
||||||
|
PRIMARY KEY (`MonitorId`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Users`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Users`;
|
||||||
|
CREATE TABLE `Users` (
|
||||||
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
|
`Username` varchar(32) character set latin1 collate latin1_bin NOT NULL default '',
|
||||||
|
`Password` varchar(64) NOT NULL default '',
|
||||||
|
`Language` varchar(8) NOT NULL default '',
|
||||||
|
`Enabled` tinyint(3) unsigned NOT NULL default '1',
|
||||||
|
`Stream` enum('None','View') NOT NULL default 'None',
|
||||||
|
`Events` enum('None','View','Edit') NOT NULL default 'None',
|
||||||
|
`Control` enum('None','View','Edit') NOT NULL default 'None',
|
||||||
|
`Monitors` enum('None','View','Edit') NOT NULL default 'None',
|
||||||
|
`Devices` enum('None','View','Edit') NOT NULL default 'None',
|
||||||
|
`System` enum('None','View','Edit') NOT NULL default 'None',
|
||||||
|
`MaxBandwidth` varchar(16) NOT NULL default '',
|
||||||
|
`MonitorIds` tinytext NOT NULL,
|
||||||
|
PRIMARY KEY (`Id`),
|
||||||
|
UNIQUE KEY `UC_Username` (`Username`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `ZonePresets`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `ZonePresets`;
|
||||||
|
CREATE TABLE `ZonePresets` (
|
||||||
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
|
`Name` varchar(64) NOT NULL default '',
|
||||||
|
`Type` enum('Active','Inclusive','Exclusive','Preclusive','Inactive') NOT NULL default 'Active',
|
||||||
|
`Units` enum('Pixels','Percent') NOT NULL default 'Pixels',
|
||||||
|
`CheckMethod` enum('AlarmedPixels','FilteredPixels','Blobs') NOT NULL default 'Blobs',
|
||||||
|
`MinPixelThreshold` smallint(5) unsigned default NULL,
|
||||||
|
`MaxPixelThreshold` smallint(5) unsigned default NULL,
|
||||||
|
`MinAlarmPixels` int(10) unsigned default NULL,
|
||||||
|
`MaxAlarmPixels` int(10) unsigned default NULL,
|
||||||
|
`FilterX` tinyint(3) unsigned default NULL,
|
||||||
|
`FilterY` tinyint(3) unsigned default NULL,
|
||||||
|
`MinFilterPixels` int(10) unsigned default NULL,
|
||||||
|
`MaxFilterPixels` int(10) unsigned default NULL,
|
||||||
|
`MinBlobPixels` int(10) unsigned default NULL,
|
||||||
|
`MaxBlobPixels` int(10) unsigned default NULL,
|
||||||
|
`MinBlobs` smallint(5) unsigned default NULL,
|
||||||
|
`MaxBlobs` smallint(5) unsigned default NULL,
|
||||||
|
`OverloadFrames` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
PRIMARY KEY (`Id`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Zones`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Zones`;
|
||||||
|
CREATE TABLE `Zones` (
|
||||||
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
|
`MonitorId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Name` varchar(64) NOT NULL default '',
|
||||||
|
`Type` enum('Active','Inclusive','Exclusive','Preclusive','Inactive') NOT NULL default 'Active',
|
||||||
|
`Units` enum('Pixels','Percent') NOT NULL default 'Pixels',
|
||||||
|
`NumCoords` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
`Coords` tinytext NOT NULL,
|
||||||
|
`Area` int(10) unsigned NOT NULL default '0',
|
||||||
|
`AlarmRGB` int(10) unsigned default '0',
|
||||||
|
`CheckMethod` enum('AlarmedPixels','FilteredPixels','Blobs') NOT NULL default 'Blobs',
|
||||||
|
`MinPixelThreshold` smallint(5) unsigned default NULL,
|
||||||
|
`MaxPixelThreshold` smallint(5) unsigned default NULL,
|
||||||
|
`MinAlarmPixels` int(10) unsigned default NULL,
|
||||||
|
`MaxAlarmPixels` int(10) unsigned default NULL,
|
||||||
|
`FilterX` tinyint(3) unsigned default NULL,
|
||||||
|
`FilterY` tinyint(3) unsigned default NULL,
|
||||||
|
`MinFilterPixels` int(10) unsigned default NULL,
|
||||||
|
`MaxFilterPixels` int(10) unsigned default NULL,
|
||||||
|
`MinBlobPixels` int(10) unsigned default NULL,
|
||||||
|
`MaxBlobPixels` int(10) unsigned default NULL,
|
||||||
|
`MinBlobs` smallint(5) unsigned default NULL,
|
||||||
|
`MaxBlobs` smallint(5) unsigned default NULL,
|
||||||
|
`OverloadFrames` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
PRIMARY KEY (`Id`),
|
||||||
|
KEY `MonitorId` (`MonitorId`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||||
|
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||||
|
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||||
|
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||||
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Initial data to be loaded into ZoneMinder database
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Create a default admin user.
|
||||||
|
--
|
||||||
|
insert into Users values ('','admin',password('admin'),'',1,'View','Edit','Edit','Edit','Edit','Edit','','');
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add a sample filter to purge the oldest 5 events when the disk is 95% full, delete is disabled though
|
||||||
|
--
|
||||||
|
insert into Filters values ('PurgeWhenFull','{"sort_field":"Id","terms":[{"val":0,"attr":"Archived","op":"="},{"cnj":"and","val":95,"attr":"DiskPercent","op":">="}],"limit":5,"sort_asc":1}',0,0,0,0,0,0,'',1,0);
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add in some sample control protocol definitions
|
||||||
|
--
|
||||||
|
insert into Controls values (1,'Pelco-D','Local','PelcoD',1,1,0,1,1,0,0,1,NULL,NULL,NULL,NULL,1,0,3,1,1,0,0,1,NULL,NULL,NULL,NULL,0,NULL,NULL,1,1,0,1,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,1,0,1,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,20,1,1,1,1,0,0,0,1,1,NULL,NULL,NULL,NULL,1,0,63,1,254,1,NULL,NULL,NULL,NULL,1,0,63,1,254,0,0);
|
||||||
|
insert into Controls values (2,'Pelco-P','Local','PelcoP',1,1,0,1,1,0,0,1,NULL,NULL,NULL,NULL,1,0,3,1,1,0,0,1,NULL,NULL,NULL,NULL,0,NULL,NULL,1,1,0,1,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,1,0,1,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,20,1,1,1,1,0,0,0,1,1,NULL,NULL,NULL,NULL,1,0,63,1,254,1,NULL,NULL,NULL,NULL,1,0,63,1,254,0,0);
|
||||||
|
insert into Controls values (3,'Sony VISCA','Local','Visca',1,1,0,1,0,0,0,1,0,16384,10,4000,1,1,6,1,1,1,0,1,0,1536,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,3,1,1,1,1,0,1,1,0,1,-15578,15578,100,10000,1,1,50,1,254,1,-7789,7789,100,5000,1,1,50,1,254,0,0);
|
||||||
|
INSERT INTO Controls VALUES (4,'Axis API v2','Remote','AxisV2',0,0,0,1,0,0,1,0,0,9999,10,2500,0,NULL,NULL,1,1,0,1,0,0,9999,10,2500,0,NULL,NULL,1,1,0,1,0,0,9999,10,2500,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,12,1,1,1,1,1,0,1,0,1,-360,360,1,90,0,NULL,NULL,0,NULL,1,-360,360,1,90,0,NULL,NULL,0,NULL,0,0);
|
||||||
|
insert into Controls values (5,'Panasonic IP','Remote','PanasonicIP',0,0,0,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,8,1,1,1,0,1,0,0,1,1,NULL,NULL,NULL,NULL,0,NULL,NULL,0,NULL,1,NULL,NULL,NULL,NULL,0,NULL,NULL,0,NULL,0,0);
|
||||||
|
insert into Controls values (6,'Neu-Fusion NCS370','Remote','Ncs370',0,0,0,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,24,1,0,1,1,0,0,0,1,1,NULL,NULL,NULL,NULL,0,NULL,NULL,0,NULL,1,NULL,NULL,NULL,NULL,0,NULL,NULL,0,NULL,0,0);
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add some monitor preset values
|
||||||
|
--
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 320x240, mpjpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=320x240',NULL,320,240,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 320x240, mpjpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=320x240&req_fps=5',NULL,320,240,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 320x240, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=320x240',NULL,320,240,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 320x240, jpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=320x240',NULL,320,240,3,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 640x480, mpjpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=640x480',NULL,640,480,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 640x480, mpjpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=640x480&req_fps=5',NULL,640,480,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 640x480, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=640x480',NULL,640,480,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 640x480, jpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=640x480',NULL,640,480,3,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 320x240, mpjpeg, B&W','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=320x240&color=0',NULL,320,240,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 640x480, mpjpeg, B&W','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=640x480&color=0',NULL,640,480,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 320x240, mpjpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=320x240',NULL,320,240,3,NULL,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 320x240, mpjpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=320x240&req_fps=5',NULL,320,240,3,NULL,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 320x240, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=320x240',NULL,320,240,3,NULL,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 320x240, jpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=320x240',NULL,320,240,3,5.0,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 640x480, mpjpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=640x480',NULL,640,480,3,NULL,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 640x480, mpjpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=640x480&req_fps=5',NULL,640,480,3,NULL,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 640x480, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=640x480',NULL,640,480,3,NULL,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 640x480, jpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=640x480',NULL,640,480,3,5.0,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT into MonitorPresets VALUES ('','Axis IP, mpeg4, unicast','Remote',NULL,NULL,NULL,'rtsp','rtpUni','<ip-address>',554,'/mpeg4/media.amp','/trackID=',NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT into MonitorPresets VALUES ('','Axis IP, mpeg4, multicast','Remote',NULL,NULL,NULL,'rtsp','rtpMulti','<ip-address>',554,'/mpeg4/media.amp','/trackID=',NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT into MonitorPresets VALUES ('','Axis IP, mpeg4, RTP/RTSP','Remote',NULL,NULL,NULL,'rtsp','rtpRtsp','<ip-address>',554,'/mpeg4/media.amp','/trackID=',NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT into MonitorPresets VALUES ('','Axis IP, mpeg4, RTP/RTSP/HTTP','Remote',NULL,NULL,NULL,'rtsp','rtpRtspHttp','<ip-address>',554,'/mpeg4/media.amp','/trackID=',NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP, 320x240, mpjpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/nphMotionJpeg?Resolution=320x240&Quality=Standard',NULL,320,240,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP, 320x240, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=320x240&Quality=Standard',NULL,320,240,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP, 320x240, jpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=320x240&Quality=Standard',NULL,320,240,3,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP, 640x480, mpjpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/nphMotionJpeg?Resolution=640x480&Quality=Standard',NULL,640,480,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP, 640x480, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=640x480&Quality=Standard',NULL,640,480,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP, 640x480, jpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=640x480&Quality=Standard',NULL,640,480,3,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP PTZ, 320x240, mpjpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/nphMotionJpeg?Resolution=320x240&Quality=Standard',NULL,320,240,3,NULL,1,5,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP PTZ, 320x240, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=320x240&Quality=Standard',NULL,320,240,3,NULL,1,5,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP PTZ, 320x240, jpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=320x240&Quality=Standard',NULL,320,240,3,5.0,1,5,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP PTZ, 640x480, mpjpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/nphMotionJpeg?Resolution=640x480&Quality=Standard',NULL,640,480,3,NULL,1,5,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP PTZ, 640x480, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=640x480&Quality=Standard',NULL,640,480,3,NULL,1,5,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP PTZ, 640x480, jpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=640x480&Quality=Standard',NULL,640,480,3,5.0,1,5,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Gadspot IP, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/Jpeg/CamImg.jpg',NULL,NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Gadspot IP, jpeg, max 5 FPS','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/Jpeg/CamImg.jpg',NULL,NULL,NULL,3,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Gadspot IP, mpjpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/GetData.cgi',NULL,NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Gadspot IP, mpjpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/Jpeg/CamImg.jpg',NULL,NULL,NULL,3,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','VEO Observer, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/Jpeg/CamImg.jpg',NULL,NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Blue Net Video Server, jpeg','Remote','http','simple',NULL,NULL,NULL,'<ip-address>',80,'/cgi-bin/image.cgi?control=0&id=admin&passwd=admin',NULL,320,240,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT into MonitorPresets VALUES ('','ACTi IP, mpeg4, unicast','Remote',NULL,NULL,NULL,'rtsp','rtpUni','<ip-address>',7070,'','/track',NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis FFMPEG H.264','Ffmpeg',NULL,NULL,NULL,NULL,NULL,'rtsp://<host/address>/axis-media/media.amp?videocodec=h264',NULL,NULL,NULL,640,480,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Vivotek FFMPEG','Ffmpeg',NULL,NULL,NULL,NULL,NULL,'rtsp://<host/address>:554/live.sdp',NULL,NULL,NULL,352,240,NULL,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis FFMPEG','Ffmpeg',NULL,NULL,NULL,NULL,NULL,'rtsp://<host/address>/axis-media/media.amp',NULL,NULL,NULL,640,480,NULL,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','ACTi TCM FFMPEG','Ffmpeg',NULL,NULL,NULL,NULL,NULL,'rtsp://admin:123456@<host/address>:7070',NULL,NULL,NULL,320,240,NULL,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), PAL, 320x240','Local','/dev/video<?>','<?>',255,NULL,'v4l2',NULL,NULL,NULL,NULL,320,240,1345466932,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), PAL, 320x240, max 5 FPS','Local','/dev/video<?>','<?>',255,NULL,'v4l2',NULL,NULL,NULL,NULL,320,240,1345466932,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), PAL, 640x480','Local','/dev/video<?>','<?>',255,NULL,'v4l2',NULL,NULL,NULL,NULL,640,480,1345466932,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), PAL, 640x480, max 5 FPS','Local','/dev/video<?>','<?>',255,NULL,'v4l2',NULL,NULL,NULL,NULL,640,480,1345466932,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), NTSC, 320x240','Local','/dev/video<?>','<?>',45056,NULL,'v4l2',NULL,NULL,NULL,NULL,320,240,1345466932,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), NTSC, 320x240, max 5 FPS','Local','/dev/video<?>','<?>',45056,NULL,'v4l2',NULL,NULL,NULL,NULL,320,240,1345466932,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), NTSC, 640x480','Local','/dev/video<?>','<?>',45056,NULL,'v4l2',NULL,NULL,NULL,NULL,640,480,1345466932,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), NTSC, 640x480, max 5 FPS','Local','/dev/video<?>','<?>',45056,NULL,'v4l2',NULL,NULL,NULL,NULL,640,480,1345466932,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), PAL, 320x240','Local','/dev/video<?>','<?>',0,NULL,'v4l1',NULL,NULL,NULL,NULL,320,240,13,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), PAL, 320x240, max 5 FPS','Local','/dev/video<?>','<?>',0,NULL,'v4l1',NULL,NULL,NULL,NULL,320,240,13,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), PAL, 640x480','Local','/dev/video<?>','<?>',0,NULL,'v4l1',NULL,NULL,NULL,NULL,640,480,13,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), PAL, 640x480, max 5 FPS','Local','/dev/video<?>','<?>',0,NULL,'v4l1',NULL,NULL,NULL,NULL,640,480,13,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), NTSC, 320x240','Local','/dev/video<?>','<?>',1,NULL,'v4l1',NULL,NULL,NULL,NULL,320,240,13,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), NTSC, 320x240, max 5 FPS','Local','/dev/video<?>','<?>',1,NULL,'v4l1',NULL,NULL,NULL,NULL,320,240,13,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), NTSC, 640x480','Local','/dev/video<?>','<?>',1,NULL,'v4l1',NULL,NULL,NULL,NULL,640,480,13,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), NTSC, 640x480, max 5 FPS','Local','/dev/video<?>','<?>',1,NULL,'v4l1',NULL,NULL,NULL,NULL,640,480,13,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Remote ZoneMinder','Remote',NULL,NULL,NULL,'http','simple','<ip-address>',80,'/cgi-bin/nph-zms?mode=jpeg&monitor=<monitor-id>&scale=100&maxfps=5&buffer=0',NULL,NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add some zone preset values
|
||||||
|
--
|
||||||
|
INSERT INTO ZonePresets VALUES (1,'Fast, low sensitivity','Active','Percent','AlarmedPixels',60,NULL,20,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||||
|
INSERT INTO ZonePresets VALUES (2,'Fast, medium sensitivity','Active','Percent','AlarmedPixels',40,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||||
|
INSERT INTO ZonePresets VALUES (3,'Fast, high sensitivity','Active','Percent','AlarmedPixels',20,NULL,5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||||
|
INSERT INTO ZonePresets VALUES (4,'Best, low sensitivity','Active','Percent','Blobs',60,NULL,36,NULL,7,7,24,NULL,20,NULL,1,NULL,0);
|
||||||
|
INSERT INTO ZonePresets VALUES (5,'Best, medium sensitivity','Active','Percent','Blobs',40,NULL,16,NULL,5,5,12,NULL,10,NULL,1,NULL,0);
|
||||||
|
INSERT INTO ZonePresets VALUES (6,'Best, high sensitivity','Active','Percent','Blobs',20,NULL,8,NULL,3,3,6,NULL,5,NULL,1,NULL,0);
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Apply the initial configuration
|
||||||
|
--
|
||||||
|
-- This section is autogenerated by zmconfgen.pl
|
||||||
|
-- Do not edit this file as any changes will be overwritten
|
||||||
|
--
|
|
@ -0,0 +1,62 @@
|
||||||
|
--
|
||||||
|
-- This updates a 0.0.1 database to 0.9.7
|
||||||
|
--
|
||||||
|
alter table Monitors modify Device tinyint unsigned NOT NULL default '0';
|
||||||
|
alter table Monitors modify Format tinyint unsigned NOT NULL;
|
||||||
|
alter table Monitors drop column WarmUpCount;
|
||||||
|
alter table Monitors drop column PreEventCount;
|
||||||
|
alter table Monitors drop column PostEventCount;
|
||||||
|
alter table Monitors modify LabelFormat varchar(32) not null default '%%s - %y/%m/%d %H:%M:%S';
|
||||||
|
alter table Monitors modify LabelX smallint unsigned not null;
|
||||||
|
alter table Monitors modify LabelY smallint unsigned not null;
|
||||||
|
alter table Monitors add column ImageBufferCount smallint unsigned NOT NULL default '100';
|
||||||
|
alter table Monitors add column WarmupCount smallint unsigned NOT NULL default '25';
|
||||||
|
alter table Monitors add column PreEventCount smallint unsigned NOT NULL default '10';
|
||||||
|
alter table Monitors add column PostEventCount smallint unsigned NOT NULL default '10';
|
||||||
|
alter table Monitors add column AlarmFrameCount smallint unsigned NOT NULL default '1';
|
||||||
|
alter table Monitors add column FPSReportInterval smallint unsigned NOT NULL default '250';
|
||||||
|
alter table Monitors add column RefBlendPerc tinyint unsigned NOT NULL default '10';
|
||||||
|
alter table Monitors add column X10Activation char(32);
|
||||||
|
alter table Monitors add column X10AlarmInput char(32);
|
||||||
|
alter table Monitors add column X10AlarmOutput char(32);
|
||||||
|
alter table Monitors modify column Function enum('None','Passive','Active','X10') default 'Passive' not null;
|
||||||
|
update Monitors set LabelFormat = '%%s - %y/%m/%d %H:%M:%S';
|
||||||
|
update Monitors set LabelX = 0;
|
||||||
|
update Monitors set LabelY = Height-8;
|
||||||
|
alter table Events add column TotScore int unsigned not null default 0 after AlarmFrames;
|
||||||
|
update Events set TotScore = AlarmFrames * AvgScore where TotScore = 0;
|
||||||
|
alter table Events modify column Archived tinyint unsigned not null default 0;
|
||||||
|
alter table Events add column Uploaded tinyint unsigned not null default 0 after Archived;
|
||||||
|
alter table Events add column LearnState char(1) default '' after Uploaded;
|
||||||
|
CREATE TABLE Filters (
|
||||||
|
Id int(10) unsigned NOT NULL auto_increment,
|
||||||
|
MonitorId int(10) unsigned NOT NULL default '0',
|
||||||
|
Name varchar(64) NOT NULL default '',
|
||||||
|
Query text NOT NULL,
|
||||||
|
AutoDelete tinyint(4) unsigned NOT NULL default '0',
|
||||||
|
AutoUpload tinyint(4) unsigned NOT NULL default '0',
|
||||||
|
PRIMARY KEY (Id),
|
||||||
|
UNIQUE KEY FilterIDX (MonitorId,Name)
|
||||||
|
) TYPE=MyISAM;
|
||||||
|
CREATE TABLE Stats (
|
||||||
|
MonitorId int(10) unsigned NOT NULL default '0',
|
||||||
|
ZoneId int(10) unsigned NOT NULL default '0',
|
||||||
|
EventId int(10) unsigned NOT NULL default '0',
|
||||||
|
FrameId int(10) unsigned NOT NULL default '0',
|
||||||
|
AlarmPixels int(10) unsigned NOT NULL default '0',
|
||||||
|
FilterPixels int(10) unsigned NOT NULL default '0',
|
||||||
|
BlobPixels int(10) unsigned NOT NULL default '0',
|
||||||
|
Blobs smallint(5) unsigned NOT NULL default '0',
|
||||||
|
MinBlobSize smallint(5) unsigned NOT NULL default '0',
|
||||||
|
MaxBlobSize smallint(5) unsigned NOT NULL default '0',
|
||||||
|
MinX smallint(5) unsigned NOT NULL default '0',
|
||||||
|
MaxX smallint(5) unsigned NOT NULL default '0',
|
||||||
|
MinY smallint(5) unsigned NOT NULL default '0',
|
||||||
|
MaxY smallint(5) unsigned NOT NULL default '0',
|
||||||
|
Score smallint(5) unsigned NOT NULL default '0',
|
||||||
|
KEY EventId (EventId),
|
||||||
|
KEY MonitorId (MonitorId),
|
||||||
|
KEY ZoneId (ZoneId)
|
||||||
|
) TYPE=MyISAM;
|
||||||
|
-- Not a problem if this fails
|
||||||
|
drop table Alarms;
|
|
@ -0,0 +1,15 @@
|
||||||
|
--
|
||||||
|
-- This updates a 0.9.10 database to 0.9.11
|
||||||
|
--
|
||||||
|
alter table Monitors change column Colours Palette tinyint(3) unsigned NOT NULL default '1';
|
||||||
|
update Monitors set Palette = 1 where Palette = 8;
|
||||||
|
update Monitors set Palette = 4 where Palette = 24;
|
||||||
|
alter table Zones modify column Type enum('Active','Inclusive','Exclusive','Preclusive','Inactive') not null default 'Active';
|
||||||
|
alter table Filters add column AutoArchive tinyint unsigned not null default 0 after Query;
|
||||||
|
-- These are optional, it just seemed a good time...
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,11 @@
|
||||||
|
--
|
||||||
|
-- This updates a 0.9.11 database to 0.9.12
|
||||||
|
--
|
||||||
|
alter table Monitors add column Orientation enum('0','90','180','270') not null default '0' after Palette;
|
||||||
|
-- These are optional, it just seemed a good time...
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,26 @@
|
||||||
|
--
|
||||||
|
-- This updates a 0.9.12 database to 0.9.13
|
||||||
|
--
|
||||||
|
CREATE TABLE Users (
|
||||||
|
Id int(10) unsigned NOT NULL auto_increment,
|
||||||
|
Username varchar(32) NOT NULL default '',
|
||||||
|
Password varchar(32) NOT NULL default '',
|
||||||
|
Enabled tinyint(3) unsigned NOT NULL default '1',
|
||||||
|
Stream enum('None','View') NOT NULL default 'None',
|
||||||
|
Events enum('None','View','Edit') NOT NULL default 'None',
|
||||||
|
Monitors enum('None','View','Edit') NOT NULL default 'None',
|
||||||
|
System enum('None','View','Edit') NOT NULL default 'None',
|
||||||
|
MonitorIds tinytext,
|
||||||
|
PRIMARY KEY (Id),
|
||||||
|
UNIQUE KEY UC_Id (Id),
|
||||||
|
UNIQUE KEY UC_Username (Username)
|
||||||
|
) TYPE=MyISAM;
|
||||||
|
insert into Users values ('','admin',password('admin'),1,'View','Edit','Edit','Edit',NULL);
|
||||||
|
--
|
||||||
|
-- These are optional, it just seemed a good time...
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,28 @@
|
||||||
|
--
|
||||||
|
-- This updates a 0.9.13 database to 0.9.14
|
||||||
|
--
|
||||||
|
CREATE TABLE Config (
|
||||||
|
Id smallint(5) unsigned NOT NULL default '0',
|
||||||
|
Name varchar(32) NOT NULL default '',
|
||||||
|
Value text NOT NULL,
|
||||||
|
Type tinytext NOT NULL,
|
||||||
|
DefaultValue tinytext,
|
||||||
|
Hint tinytext,
|
||||||
|
Pattern tinytext,
|
||||||
|
Format tinytext,
|
||||||
|
Prompt tinytext,
|
||||||
|
Help text,
|
||||||
|
Category varchar(32) NOT NULL default '',
|
||||||
|
Readonly tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
Requires text,
|
||||||
|
PRIMARY KEY (Name),
|
||||||
|
UNIQUE KEY UC_Name (Name)
|
||||||
|
) TYPE=MyISAM;
|
||||||
|
--
|
||||||
|
-- These are optional, but we might as well
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,57 @@
|
||||||
|
--
|
||||||
|
-- This updates a 0.9.15 database to 0.9.16
|
||||||
|
--
|
||||||
|
-- Make changes to Monitor table
|
||||||
|
--
|
||||||
|
alter table Monitors change column Function OldFunction enum('None','Passive','Active','X10') NOT NULL default 'Passive';
|
||||||
|
alter table Monitors add column Function enum('None','Monitor','Modect','Record','Mocord') NOT NULL default 'Monitor';
|
||||||
|
alter table Monitors add column RunMode enum('Continuous','Triggered') NOT NULL default 'Continuous' after Function;
|
||||||
|
alter table Monitors add column Triggers set('X10') NOT NULL after RunMode;
|
||||||
|
alter table Monitors add column SectionLength int(10) unsigned not null default 600 after PostEventCount;
|
||||||
|
alter table Monitors add column FrameSkip smallint unsigned not null default 0 after SectionLength;
|
||||||
|
--
|
||||||
|
-- Update to reflect existing setup
|
||||||
|
--
|
||||||
|
update Monitors set Function = 'Monitor' where OldFunction = 'Passive';
|
||||||
|
update Monitors set Function = 'Modect' where OldFunction = 'Active';
|
||||||
|
update Monitors set Function = 'Modect' where OldFunction = 'X10';
|
||||||
|
update Monitors set RunMode = 'Triggered' where OldFunction = 'X10';
|
||||||
|
update Monitors set Triggers = 'X10' where OldFunction = 'X10';
|
||||||
|
--
|
||||||
|
-- Create the X10 triggers table
|
||||||
|
--
|
||||||
|
CREATE TABLE TriggersX10 (
|
||||||
|
MonitorId int(10) unsigned NOT NULL default '0',
|
||||||
|
Activation varchar(32) default NULL,
|
||||||
|
AlarmInput varchar(32) default NULL,
|
||||||
|
AlarmOutput varchar(32) default NULL,
|
||||||
|
PRIMARY KEY (MonitorId)
|
||||||
|
) TYPE=MyISAM;
|
||||||
|
--
|
||||||
|
-- Update to reflect existing setup
|
||||||
|
--
|
||||||
|
insert into TriggersX10 select Id, X10Activation, X10AlarmInput, X10AlarmOutput from Monitors where Function = 'X10';
|
||||||
|
--
|
||||||
|
-- Clean up temporary and unused columns
|
||||||
|
--
|
||||||
|
alter table Monitors drop column OldFunction ;
|
||||||
|
alter table Monitors drop column X10Activation ;
|
||||||
|
alter table Monitors drop column X10AlarmInput ;
|
||||||
|
alter table Monitors drop column X10AlarmOutput ;
|
||||||
|
--
|
||||||
|
-- Table structure for table `States`
|
||||||
|
--
|
||||||
|
CREATE TABLE States (
|
||||||
|
Name varchar(32) NOT NULL default '',
|
||||||
|
Definition tinytext NOT NULL,
|
||||||
|
PRIMARY KEY (Name)
|
||||||
|
) TYPE=MyISAM;
|
||||||
|
--
|
||||||
|
-- These are optional, but we might as well
|
||||||
|
--
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,15 @@
|
||||||
|
--
|
||||||
|
-- This updates a 0.9.16 database to 0.9.17
|
||||||
|
--
|
||||||
|
-- Make changes to Users table
|
||||||
|
--
|
||||||
|
alter table Users add column Language varchar(8) not null default "" after Password;
|
||||||
|
--
|
||||||
|
-- These are optional, but we might as well
|
||||||
|
--
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,9 @@
|
||||||
|
--
|
||||||
|
-- This updates a 0.9.7 database to 0.9.8
|
||||||
|
--
|
||||||
|
alter table Filters modify column AutoDelete tinyint unsigned not null default 0;
|
||||||
|
alter table Filters modify column AutoUpload tinyint unsigned not null default 0;
|
||||||
|
alter table Filters add column AutoEmail tinyint unsigned not null default 0;
|
||||||
|
alter table Filters add column AutoMessage tinyint unsigned not null default 0;
|
||||||
|
alter table Events add column Emailed tinyint unsigned not null default 0 after Uploaded;
|
||||||
|
alter table Events add column Messaged tinyint unsigned not null default 0 after Emailed;
|
|
@ -0,0 +1,8 @@
|
||||||
|
--
|
||||||
|
-- This updates a 0.9.8 database to 0.9.9
|
||||||
|
--
|
||||||
|
update Monitors set Colours = Colours * 8;
|
||||||
|
optimize table Events;
|
||||||
|
alter table Events modify column Length numeric( 10, 2 ) not null default 0.00;
|
||||||
|
optimize table Frames;
|
||||||
|
alter table Frames add column Delta numeric( 8, 2 ) not null default 0.00 after TimeStamp;
|
|
@ -0,0 +1,15 @@
|
||||||
|
--
|
||||||
|
-- This updates a 0.9.9 database to 0.9.10
|
||||||
|
--
|
||||||
|
alter table Monitors add column Type enum('Local','Remote') NOT NULL default 'Local' after Name;
|
||||||
|
alter table Monitors add column Host varchar(64) default NULL after Format;
|
||||||
|
alter table Monitors add column Port varchar(8) default '80' after Host;
|
||||||
|
alter table Monitors add column Path varchar(255) default NULL after Port;
|
||||||
|
alter table Monitors add column MaxFPS decimal( 5, 2) not null default 0.0 after AlarmFrameCount;
|
||||||
|
alter table Monitors drop column AlarmFrameCount;
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,17 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.17.1 database to 1.17.2
|
||||||
|
--
|
||||||
|
-- Make changes to Zones table
|
||||||
|
--
|
||||||
|
alter table Zones change column AlarmThreshold MinPixelThreshold smallint unsigned;
|
||||||
|
alter table Zones add column MaxPixelThreshold smallint unsigned after MinPixelThreshold;
|
||||||
|
alter table Events drop column ImagePath;
|
||||||
|
--
|
||||||
|
-- These are optional, but we might as well
|
||||||
|
--
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,18 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.17.2 database to 1.18.0
|
||||||
|
--
|
||||||
|
-- Make changes to Filter table
|
||||||
|
--
|
||||||
|
alter table Zones add column CheckMethod enum('AlarmedPixels','FilteredPixels','Blobs') NOT NULL default 'Blobs' after AlarmRGB;
|
||||||
|
alter table Filters drop index FilterIDX;
|
||||||
|
alter table Filters drop column MonitorId;
|
||||||
|
update Filters set AutoArchive = 0, AutoDelete = 0, AutoUpload = 0, AutoEmail = 0, AutoMessage = 0;
|
||||||
|
--
|
||||||
|
-- These are optional, but we might as well
|
||||||
|
--
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,3 @@
|
||||||
|
--
|
||||||
|
-- There are no updates from a 1.18.0 database to 1.18.1
|
||||||
|
--
|
|
@ -0,0 +1,22 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.18.1 database to 1.19.0
|
||||||
|
--
|
||||||
|
-- Make changes to Frames table
|
||||||
|
--
|
||||||
|
alter table Frames add column Type enum('Normal','Bulk','Alarm') NOT NULL default 'Normal' after FrameId;
|
||||||
|
update Frames set Type = 'Alarm' where AlarmFrame = 1;
|
||||||
|
alter table Frames drop column AlarmFrame;
|
||||||
|
--
|
||||||
|
-- Make changes to Filters table
|
||||||
|
update Filters set Name = concat( Name, '_', Id );
|
||||||
|
alter table Filters drop column Id;
|
||||||
|
alter table Filters add primary key(Name);
|
||||||
|
--
|
||||||
|
-- These are optional, but we might as well
|
||||||
|
--
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,3 @@
|
||||||
|
--
|
||||||
|
-- There are no updates from a 1.19.0 database to 1.19.1
|
||||||
|
--
|
|
@ -0,0 +1,23 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.19.1 database to 1.19.2
|
||||||
|
--
|
||||||
|
-- Make changes to Events table
|
||||||
|
--
|
||||||
|
alter table Events add column Executed tinyint(3) unsigned not null default 0 after Messaged;
|
||||||
|
--
|
||||||
|
-- Make changes to Filters table
|
||||||
|
--
|
||||||
|
alter table Filters add column AutoExecute tinytext default '';
|
||||||
|
--
|
||||||
|
-- Add in a sample filter to purge the oldest 5 events when the disk is 99% full, delete is disabled though
|
||||||
|
--
|
||||||
|
insert into Filters values ('PurgeWhenFull','trms=2&obr1=&cbr1=&attr1=Archived&op1=&val1=0&cnj2=and&obr2=&cbr2=&attr2=DiskPercent&op2=>=&val2=99&sort_field=Id&sort_asc=1&limit=5',0,0,0,0,0,'');
|
||||||
|
--
|
||||||
|
-- These are optional, but we might as well
|
||||||
|
--
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,15 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.19.2 database to 1.19.3
|
||||||
|
--
|
||||||
|
-- Make changes to Users table
|
||||||
|
--
|
||||||
|
alter table Users modify column Password varchar(64) not null default '';
|
||||||
|
--
|
||||||
|
-- These are optional, but we might as well
|
||||||
|
--
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,3 @@
|
||||||
|
--
|
||||||
|
-- There are no updates from a 1.19.3 database to 1.19.4
|
||||||
|
--
|
|
@ -0,0 +1,20 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.19.4 database to 1.19.5
|
||||||
|
--
|
||||||
|
-- Make changes to Monitors table
|
||||||
|
--
|
||||||
|
alter table Monitors add column EventPrefix varchar(32) not null default 'Event-' after Orientation;
|
||||||
|
alter table Monitors add column AlarmFrameCount smallint(5) unsigned not null default '1' after PostEventCount;
|
||||||
|
alter table Monitors add column Brightness mediumint(7) NOT NULL default '-1' after Orientation;
|
||||||
|
alter table Monitors add column Contrast mediumint(7) NOT NULL default '-1' after Brightness;
|
||||||
|
alter table Monitors add column Hue mediumint(7) NOT NULL default '-1' after Contrast;
|
||||||
|
alter table Monitors add column Colour mediumint(7) NOT NULL default '-1' after Hue;
|
||||||
|
--
|
||||||
|
-- These are optional, but we might as well do it now
|
||||||
|
--
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,44 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.19.5 database to 1.20.0
|
||||||
|
--
|
||||||
|
-- Create the Groups table
|
||||||
|
--
|
||||||
|
CREATE TABLE Groups (
|
||||||
|
Id int(10) unsigned NOT NULL auto_increment,
|
||||||
|
Name varchar(64) NOT NULL,
|
||||||
|
MonitorIds tinytext NOT NULL,
|
||||||
|
PRIMARY KEY (Id)
|
||||||
|
) TYPE=MyISAM;
|
||||||
|
--
|
||||||
|
-- Make changes to Users table
|
||||||
|
--
|
||||||
|
alter table Users modify MonitorIds tinytext not null default '';
|
||||||
|
--
|
||||||
|
-- Make changes to Monitors table
|
||||||
|
--
|
||||||
|
alter table Monitors modify column Function enum('None','Monitor','Modect','Record','Mocord','Nodect') NOT NULL default 'Monitor';
|
||||||
|
--
|
||||||
|
-- Make changes to Events table
|
||||||
|
--
|
||||||
|
alter table Events add column Cause varchar(32) not null default '' after Name;
|
||||||
|
alter table Events add column Notes tinytext after LearnState;
|
||||||
|
--
|
||||||
|
-- Add a new index to the Events table
|
||||||
|
--
|
||||||
|
alter table Events add index (Frames);
|
||||||
|
--
|
||||||
|
-- Rationalise some of the name columns
|
||||||
|
alter table Events modify column Name varchar(64) not null;
|
||||||
|
alter table Filters modify column Name varchar(64) not null;
|
||||||
|
alter table Monitors modify column Name varchar(64) not null;
|
||||||
|
alter table States modify column Name varchar(64) not null;
|
||||||
|
alter table Zones modify column Name varchar(64) not null;
|
||||||
|
--
|
||||||
|
-- These are optional, but we might as well do it now
|
||||||
|
--
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,15 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.20.0 database to 1.20.1
|
||||||
|
--
|
||||||
|
-- Make changes to Users table
|
||||||
|
--
|
||||||
|
alter table Users modify column Username varchar(32) BINARY NOT NULL default '';
|
||||||
|
--
|
||||||
|
-- These are optional, but we might as well do it now
|
||||||
|
--
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,148 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.20.0 database to 1.20.1
|
||||||
|
--
|
||||||
|
-- Make changes to Monitors table
|
||||||
|
--
|
||||||
|
alter table Monitors add column Controllable tinyint(3) unsigned NOT NULL default '0';
|
||||||
|
alter table Monitors add column ControlId int(10) unsigned NOT NULL default '0';
|
||||||
|
alter table Monitors add column ControlDevice varchar(255) default NULL;
|
||||||
|
alter table Monitors add column ControlAddress varchar(255) default NULL;
|
||||||
|
alter table Monitors add column TrackMotion tinyint(3) unsigned NOT NULL default '0';
|
||||||
|
alter table Monitors add column TrackDelay smallint(5) unsigned NOT NULL default '0';
|
||||||
|
alter table Monitors add column ReturnLocation tinyint(3) NOT NULL default '-1';
|
||||||
|
alter table Monitors add column ReturnDelay smallint(5) unsigned NOT NULL default '0';
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add new table `Controls`
|
||||||
|
--
|
||||||
|
CREATE TABLE Controls (
|
||||||
|
Id int(10) unsigned NOT NULL auto_increment,
|
||||||
|
Name varchar(64) NOT NULL default '',
|
||||||
|
Type enum('Local','Remote') NOT NULL default 'Local',
|
||||||
|
Command varchar(255) default NULL,
|
||||||
|
|
||||||
|
CanWake tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
CanSleep tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
CanReset tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
|
||||||
|
CanZoom tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
CanAutoZoom tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
CanZoomAbs tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
CanZoomRel tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
CanZoomCon tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
MinZoomRange int(10) unsigned default NULL,
|
||||||
|
MaxZoomRange int(10) unsigned default NULL,
|
||||||
|
MinZoomStep int(10) unsigned default NULL,
|
||||||
|
MaxZoomStep int(10) unsigned default NULL,
|
||||||
|
HasZoomSpeed tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
MinZoomSpeed int(10) unsigned default NULL,
|
||||||
|
MaxZoomSpeed int(10) unsigned default NULL,
|
||||||
|
|
||||||
|
CanFocus tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
CanAutoFocus tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
CanFocusAbs tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
CanFocusRel tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
CanFocusCon tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
MinFocusRange int(10) unsigned default NULL,
|
||||||
|
MaxFocusRange int(10) unsigned default NULL,
|
||||||
|
MinFocusStep int(10) unsigned default NULL,
|
||||||
|
MaxFocusStep int(10) unsigned default NULL,
|
||||||
|
HasFocusSpeed tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
MinFocusSpeed int(10) unsigned default NULL,
|
||||||
|
MaxFocusSpeed int(10) unsigned default NULL,
|
||||||
|
|
||||||
|
CanIris tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
CanAutoIris tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
CanIrisAbs tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
CanIrisRel tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
CanIrisCon tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
MinIrisRange int(10) unsigned default NULL,
|
||||||
|
MaxIrisRange int(10) unsigned default NULL,
|
||||||
|
MinIrisStep int(10) unsigned default NULL,
|
||||||
|
MaxIrisStep int(10) unsigned default NULL,
|
||||||
|
HasIrisSpeed tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
MinIrisSpeed int(10) unsigned default NULL,
|
||||||
|
MaxIrisSpeed int(10) unsigned default NULL,
|
||||||
|
|
||||||
|
CanGain tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
CanAutoGain tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
CanGainAbs tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
CanGainRel tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
CanGainCon tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
MinGainRange int(10) unsigned default NULL,
|
||||||
|
MaxGainRange int(10) unsigned default NULL,
|
||||||
|
MinGainStep int(10) unsigned default NULL,
|
||||||
|
MaxGainStep int(10) unsigned default NULL,
|
||||||
|
HasGainSpeed tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
MinGainSpeed int(10) unsigned default NULL,
|
||||||
|
MaxGainSpeed int(10) unsigned default NULL,
|
||||||
|
|
||||||
|
CanWhite tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
CanAutoWhite tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
CanWhiteAbs tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
CanWhiteRel tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
CanWhiteCon tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
MinWhiteRange int(10) unsigned default NULL,
|
||||||
|
MaxWhiteRange int(10) unsigned default NULL,
|
||||||
|
MinWhiteStep int(10) unsigned default NULL,
|
||||||
|
MaxWhiteStep int(10) unsigned default NULL,
|
||||||
|
HasWhiteSpeed tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
MinWhiteSpeed int(10) unsigned default NULL,
|
||||||
|
MaxWhiteSpeed int(10) unsigned default NULL,
|
||||||
|
|
||||||
|
HasPresets tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
NumPresets tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
HasHomePreset tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
CanSetPresets tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
|
||||||
|
CanMove tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
CanMoveDiag tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
CanMoveMap tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
CanMoveAbs tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
CanMoveRel tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
CanMoveCon tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
CanPan tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
MinPanRange int(10) default NULL,
|
||||||
|
MaxPanRange int(10) default NULL,
|
||||||
|
MinPanStep int(10) default NULL,
|
||||||
|
MaxPanStep int(10) default NULL,
|
||||||
|
HasPanSpeed tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
MinPanSpeed int(10) default NULL,
|
||||||
|
MaxPanSpeed int(10) default NULL,
|
||||||
|
HasTurboPan tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
TurboPanSpeed int(10) default NULL,
|
||||||
|
CanTilt tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
MinTiltRange int(10) default NULL,
|
||||||
|
MaxTiltRange int(10) default NULL,
|
||||||
|
MinTiltStep int(10) default NULL,
|
||||||
|
MaxTiltStep int(10) default NULL,
|
||||||
|
HasTiltSpeed tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
MinTiltSpeed int(10) default NULL,
|
||||||
|
MaxTiltSpeed int(10) default NULL,
|
||||||
|
HasTurboTilt tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
TurboTiltSpeed int(10) default NULL,
|
||||||
|
|
||||||
|
CanAutoScan tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
NumScanPaths tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
|
||||||
|
PRIMARY KEY (Id),
|
||||||
|
UNIQUE KEY UC_Id (Id)
|
||||||
|
) TYPE=MyISAM;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Some sample control protocol definitions
|
||||||
|
--
|
||||||
|
insert into Controls values (1,'pelco-d','Local','/usr/local/bin/zmcontrol-pelco-d.pl',1,1,0,1,1,0,0,1,NULL,NULL,NULL,NULL,1,0,3,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,20,1,1,1,1,0,0,0,1,1,NULL,NULL,NULL,NULL,1,0,63,1,254,1,NULL,NULL,NULL,NULL,1,0,63,1,254,0,0);
|
||||||
|
insert into Controls values (2,'visca','Local','/usr/local/bin/zmcontrol-visca.pl',1,1,0,1,0,0,0,1,0,16384,10,4000,1,1,6,1,1,1,0,1,0,1536,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,3,1,1,1,1,0,1,1,0,1,-15578,15578,100,10000,1,1,50,1,254,1,-7789,7789,100,5000,1,1,50,1,254,0,0);
|
||||||
|
insert into Controls values (3,'KX-HCM10','Remote','/usr/local/bin/zmcontrol-kx-hcm10.pl',0,0,0,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,8,1,1,1,0,1,0,0,1,1,NULL,NULL,NULL,NULL,0,NULL,NULL,0,NULL,1,NULL,NULL,NULL,NULL,0,NULL,NULL,0,NULL,0,0);
|
||||||
|
insert into Controls values (4,'pelco-d-full','Local','/usr/local/bin/zmcontrol-pelco-d.pl',1,1,0,1,1,0,0,1,NULL,NULL,NULL,NULL,1,0,3,1,1,0,0,1,NULL,NULL,NULL,NULL,0,NULL,NULL,1,1,0,1,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,1,0,1,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,20,1,1,1,1,0,0,0,1,1,NULL,NULL,NULL,NULL,1,0,63,1,254,1,NULL,NULL,NULL,NULL,1,0,63,1,254,0,0);
|
||||||
|
|
||||||
|
--
|
||||||
|
-- These are optional, but we might as well do it now
|
||||||
|
--
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,31 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.21.0 database to 1.21.1
|
||||||
|
--
|
||||||
|
-- Make changes to Monitors table
|
||||||
|
--
|
||||||
|
alter table Monitors modify column Orientation enum('0','90','180','270','hori','vert') NOT NULL default '0';
|
||||||
|
alter table Monitors add column AutoStopTimeout decimal(5,2) default NULL after ControlAddress;
|
||||||
|
--
|
||||||
|
-- Make changes to Stats table
|
||||||
|
--
|
||||||
|
alter table Stats modify column MinBlobSize int(10) unsigned NOT NULL default '0';
|
||||||
|
alter table Stats modify column MaxBlobSize int(10) unsigned NOT NULL default '0';
|
||||||
|
--
|
||||||
|
-- Make changes to Zones table
|
||||||
|
--
|
||||||
|
alter table Zones modify column MinBlobPixels int(10) unsigned default NULL;
|
||||||
|
alter table Zones modify column MaxBlobPixels int(10) unsigned default NULL;
|
||||||
|
--
|
||||||
|
-- Add in extra PTZ protocol
|
||||||
|
--
|
||||||
|
insert into Controls values (0,'PELCO-P','Local','/usr/local/bin/zmcontrol-pelco-p.pl',1,1,0,1,1,0,0,1,NULL,NULL,NULL,NULL,1,0,3,1,1,0,0,1,NULL,NULL,NULL,NULL,0,NULL,NULL,1,1,0,1,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,1,0,1,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,20,1,1,1,1,0,0,0,1,1,NULL,NULL,NULL,NULL,1,0,63,1,254,1,NULL,NULL,NULL,NULL,1,0,63,1,254,0,0);
|
||||||
|
INSERT INTO Controls VALUES (0,'Axis API v2','Remote','/usr/local/bin/zmcontrol-axis-v2.pl',0,0,0,1,0,0,1,0,0,9999,10,2500,0,NULL,NULL,1,1,0,1,0,0,9999,10,2500,0,NULL,NULL,1,1,0,1,0,0,9999,10,2500,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,12,1,1,1,1,1,0,1,0,1,-360,360,1,90,0,NULL,NULL,0,NULL,1,-360,360,1,90,0,NULL,NULL,0,NULL,0,0);
|
||||||
|
--
|
||||||
|
-- These are optional, but we might as well do it now
|
||||||
|
--
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,13 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.21.1 database to 1.21.2
|
||||||
|
--
|
||||||
|
-- No changes required
|
||||||
|
--
|
||||||
|
-- These are optional, but we might as well do it now
|
||||||
|
--
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,13 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.21.2 database to 1.21.3
|
||||||
|
--
|
||||||
|
-- No changes required
|
||||||
|
--
|
||||||
|
-- These are optional, but we might as well do it now
|
||||||
|
--
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,25 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.21.3 database to 1.21.4
|
||||||
|
--
|
||||||
|
alter table Monitors add column WebColour varchar(32) not null default 'red';
|
||||||
|
update Monitors set WebColour = concat( '#', hex(14*rand()),hex(15*rand()),hex(14*rand()),hex(15*rand()),hex(14*rand()),hex(15*rand()) );
|
||||||
|
alter table Monitors add column Sequence smallint unsigned;
|
||||||
|
alter table Monitors modify column Device tinytext;
|
||||||
|
update Monitors set Device = concat( "/dev/video", Device );
|
||||||
|
update Monitors set Device = NULL where Type = "Remote";
|
||||||
|
alter table Monitors add column DefaultScale smallint unsigned after ReturnDelay;
|
||||||
|
alter table Monitors modify column Type enum('Local','Remote','File') NOT NULL default 'Local';
|
||||||
|
alter table Events add column Height smallint(5) unsigned not null default '0' after EndTime;
|
||||||
|
alter table Events add column Width smallint(5) unsigned not null default '0' after EndTime;
|
||||||
|
alter table Users add column Control enum('None','View','Edit') NOT NULL default 'None' after Events;
|
||||||
|
update Users set Control = System;
|
||||||
|
alter table Users add column MaxBandwidth varchar(16) not null default '' after System;
|
||||||
|
--
|
||||||
|
-- These are optional, but we might as well do it now
|
||||||
|
--
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,134 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.21.4 database to 1.22.0
|
||||||
|
--
|
||||||
|
alter table Monitors change column RunMode Enabled tinyint(3) unsigned NOT NULL default '1';
|
||||||
|
alter table Monitors add column DefaultRate smallint unsigned not null default 100 after ReturnDelay;
|
||||||
|
--
|
||||||
|
alter table Events add column Videoed tinyint unsigned not null default 0 after Archived;
|
||||||
|
alter table Filters add column AutoVideo tinyint unsigned not null default 0 after AutoArchive;
|
||||||
|
alter table Filters add column Temp tinyint unsigned not null default 0;
|
||||||
|
update Filters set Temp = AutoDelete;
|
||||||
|
alter table Filters drop column AutoDelete;
|
||||||
|
alter table Filters change column Temp AutoDelete tinyint unsigned not null default 0;
|
||||||
|
alter table Filters change column AutoExecute AutoExecuteCmd tinytext;
|
||||||
|
alter table Filters add column AutoExecute tinyint unsigned not null default 0 after AutoMessage;
|
||||||
|
update Filters set AutoExecute = if(isnull(AutoExecuteCmd)||AutoExecuteCmd='', 0, 1 );
|
||||||
|
--
|
||||||
|
alter table Zones add column NumCoords tinyint(3) unsigned NOT NULL default '0' after Units;
|
||||||
|
alter table Zones add column Coords tinytext NOT NULL after NumCoords;
|
||||||
|
alter table Zones add column Area int(10) unsigned not null default 0 after Coords;
|
||||||
|
alter table Zones modify column AlarmRGB int(10) unsigned default '0';
|
||||||
|
alter table Zones add index MonitorId (MonitorId);
|
||||||
|
--
|
||||||
|
insert into Controls values ('','Neu-Fusion NCS370','Remote','zmcontrol-ncs370.pl',0,0,0,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,0,NULL,NULL,1,24,1,0,1,1,0,0,0,1,1,NULL,NULL,NULL,NULL,0,NULL,NULL,0,NULL,1,NULL,NULL,NULL,NULL,0,NULL,NULL,0,NULL,0,0);
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `MonitorPresets`
|
||||||
|
--
|
||||||
|
CREATE TABLE MonitorPresets (
|
||||||
|
Id int(10) unsigned NOT NULL auto_increment,
|
||||||
|
Name varchar(64) NOT NULL,
|
||||||
|
Type enum('Local','Remote','File') NOT NULL default 'Local',
|
||||||
|
Device tinytext,
|
||||||
|
Channel varchar(32) default NULL,
|
||||||
|
Format varchar(32) default NULL,
|
||||||
|
Host varchar(64) default NULL,
|
||||||
|
Port varchar(8) default NULL,
|
||||||
|
Path varchar(255) default NULL,
|
||||||
|
Width smallint(5) unsigned default NULL,
|
||||||
|
Height smallint(5) unsigned default NULL,
|
||||||
|
Palette tinyint(3) unsigned default NULL,
|
||||||
|
MaxFPS decimal(5,2) default NULL,
|
||||||
|
Controllable tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
ControlId varchar(16) default NULL,
|
||||||
|
ControlDevice varchar(255) default NULL,
|
||||||
|
ControlAddress varchar(255) default NULL,
|
||||||
|
DefaultRate smallint(5) unsigned NOT NULL default '100',
|
||||||
|
DefaultScale smallint(5) unsigned NOT NULL default '100',
|
||||||
|
PRIMARY KEY (Id)
|
||||||
|
) TYPE=MyISAM;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Dumping data for table `MonitorPresets`
|
||||||
|
--
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video, PAL, 320x240','Local','/dev/video<?>','<?>','0',NULL,NULL,NULL,320,240,4,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video, PAL, 320x240, max 5 FPS','Local','/dev/video<?>','<?>','0',NULL,NULL,NULL,320,240,4,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video, PAL, 640x480','Local','/dev/video<?>','<?>','0',NULL,NULL,NULL,640,480,4,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video, PAL, 640x480, max 5 FPS','Local','/dev/video<?>','<?>','0',NULL,NULL,NULL,640,480,4,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video, NTSC, 320x240','Local','/dev/video<?>','<?>','1',NULL,NULL,NULL,320,240,4,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video, NTSC, 320x240, max 5 FPS','Local','/dev/video<?>','<?>','1',NULL,NULL,NULL,320,240,4,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video, NTSC, 640x480','Local','/dev/video<?>','<?>','1',NULL,NULL,NULL,640,480,4,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video, NTSC, 640x480, max 5 FPS','Local','/dev/video<?>','<?>','1',NULL,NULL,NULL,640,480,4,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 320x240, mpjpeg','Remote',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=320x240',320,240,4,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 320x240, mpjpeg, max 5 FPS','Remote',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=320x240&req_fps=5',320,240,4,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 320x240, jpeg','Remote',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=320x240',320,240,4,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 320x240, jpeg, max 5 FPS','Remote',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=320x240',320,240,4,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 640x480, mpjpeg','Remote',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=640x480',640,480,4,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 640x480, mpjpeg, max 5 FPS','Remote',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=640x480&req_fps=5',640,480,4,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 640x480, jpeg','Remote',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=640x480',640,480,4,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 640x480, jpeg, max 5 FPS','Remote',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=640x480',640,480,4,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 320x240, mpjpeg','Remote',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=320x240',320,240,4,NULL,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 320x240, mpjpeg, max 5 FPS','Remote',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=320x240&req_fps=5',320,240,4,NULL,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 320x240, jpeg','Remote',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=320x240',320,240,4,NULL,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 320x240, jpeg, max 5 FPS','Remote',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=320x240',320,240,4,5.0,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 640x480, mpjpeg','Remote',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=640x480',640,480,4,NULL,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 640x480, mpjpeg, max 5 FPS','Remote',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=640x480&req_fps=5',640,480,4,NULL,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 640x480, jpeg','Remote',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=640x480',640,480,4,NULL,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP PTZ, 640x480, jpeg, max 5 FPS','Remote',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/jpg/image.cgi?resolution=640x480',640,480,4,5.0,1,4,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP, 320x240, mpjpeg','Remote',NULL,NULL,NULL,'<ip-address>',80,'/nphMotionJpeg?Resolution=320x240&Quality=Standard',320,240,4,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP, 320x240, jpeg','Remote',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=320x240&Quality=Standard',320,240,4,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP, 320x240, jpeg, max 5 FPS','Remote',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=320x240&Quality=Standard',320,240,4,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP, 640x480, mpjpeg','Remote',NULL,NULL,NULL,'<ip-address>',80,'/nphMotionJpeg?Resolution=640x480&Quality=Standard',640,480,4,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP, 640x480, jpeg','Remote',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=640x480&Quality=Standard',640,480,4,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP, 640x480, jpeg, max 5 FPS','Remote',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=640x480&Quality=Standard',640,480,4,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP PTZ, 320x240, mpjpeg','Remote',NULL,NULL,NULL,'<ip-address>',80,'/nphMotionJpeg?Resolution=320x240&Quality=Standard',320,240,4,NULL,1,5,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP PTZ, 320x240, jpeg','Remote',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=320x240&Quality=Standard',320,240,4,NULL,1,5,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP PTZ, 320x240, jpeg, max 5 FPS','Remote',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=320x240&Quality=Standard',320,240,4,5.0,1,5,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP PTZ, 640x480, mpjpeg','Remote',NULL,NULL,NULL,'<ip-address>',80,'/nphMotionJpeg?Resolution=640x480&Quality=Standard',640,480,4,NULL,1,5,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP PTZ, 640x480, jpeg','Remote',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=640x480&Quality=Standard',640,480,4,NULL,1,5,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Panasonic IP PTZ, 640x480, jpeg, max 5 FPS','Remote',NULL,NULL,NULL,'<ip-address>',80,'/SnapshotJPEG?Resolution=640x480&Quality=Standard',640,480,4,5.0,1,5,NULL,'<ip-address>:<port>',100,100);
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `ZonePresets`
|
||||||
|
--
|
||||||
|
CREATE TABLE ZonePresets (
|
||||||
|
Id int(10) unsigned NOT NULL auto_increment,
|
||||||
|
Name varchar(64) NOT NULL default '',
|
||||||
|
Type enum('Active','Inclusive','Exclusive','Preclusive','Inactive') NOT NULL default 'Active',
|
||||||
|
Units enum('Pixels','Percent') NOT NULL default 'Pixels',
|
||||||
|
CheckMethod enum('AlarmedPixels','FilteredPixels','Blobs') NOT NULL default 'Blobs',
|
||||||
|
MinPixelThreshold smallint(5) unsigned default NULL,
|
||||||
|
MaxPixelThreshold smallint(5) unsigned default NULL,
|
||||||
|
MinAlarmPixels int(10) unsigned default NULL,
|
||||||
|
MaxAlarmPixels int(10) unsigned default NULL,
|
||||||
|
FilterX tinyint(3) unsigned default NULL,
|
||||||
|
FilterY tinyint(3) unsigned default NULL,
|
||||||
|
MinFilterPixels int(10) unsigned default NULL,
|
||||||
|
MaxFilterPixels int(10) unsigned default NULL,
|
||||||
|
MinBlobPixels int(10) unsigned default NULL,
|
||||||
|
MaxBlobPixels int(10) unsigned default NULL,
|
||||||
|
MinBlobs smallint(5) unsigned default NULL,
|
||||||
|
MaxBlobs smallint(5) unsigned default NULL,
|
||||||
|
PRIMARY KEY (Id),
|
||||||
|
UNIQUE KEY UC_Id (Id)
|
||||||
|
) TYPE=MyISAM;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Dumping data for table `ZonePresets`
|
||||||
|
--
|
||||||
|
INSERT INTO ZonePresets VALUES (1,'Fast, low sensitivity','Active','Percent','AlarmedPixels',25,NULL,20,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
|
||||||
|
INSERT INTO ZonePresets VALUES (2,'Fast, medium sensitivity','Active','Percent','AlarmedPixels',15,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
|
||||||
|
INSERT INTO ZonePresets VALUES (3,'Fast, high sensitivity','Active','Percent','AlarmedPixels',10,NULL,5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
|
||||||
|
INSERT INTO ZonePresets VALUES (4,'Best, low sensitivity','Active','Percent','Blobs',25,NULL,36,NULL,7,7,24,NULL,20,NULL,1,NULL);
|
||||||
|
INSERT INTO ZonePresets VALUES (5,'Best, medium sensitivity','Active','Percent','Blobs',15,NULL,16,NULL,5,5,12,NULL,10,NULL,1,NULL);
|
||||||
|
INSERT INTO ZonePresets VALUES (6,'Best, high sensitivity','Active','Percent','Blobs',10,NULL,8,NULL,3,3,6,NULL,5,NULL,1,NULL);
|
||||||
|
|
||||||
|
--
|
||||||
|
-- These are optional, but we might as well do it now
|
||||||
|
--
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,56 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.22.0 database to 1.22.1
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add support for linked monitors
|
||||||
|
--
|
||||||
|
alter table Monitors add column LinkedMonitors varchar(255) NOT NULL default '' after Enabled;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Revise some defaults and sizes
|
||||||
|
--
|
||||||
|
alter table Monitors modify column Device varchar(64) not null default '';
|
||||||
|
alter table Monitors modify column Host varchar(64) not null default '';
|
||||||
|
alter table Monitors modify column Port varchar(8) not null default '';
|
||||||
|
alter table Monitors modify column Path varchar(255) not null default '';
|
||||||
|
alter table Monitors modify column LabelX smallint(5) unsigned not null default 0;
|
||||||
|
alter table Monitors modify column LabelY smallint(5) unsigned not null default 0;
|
||||||
|
alter table Monitors modify column MaxFPS decimal(5,2) default NULL;
|
||||||
|
update Monitors set MaxFPS = NULL where MaxFPS = 0.00;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add monitor specific alarm max FPS
|
||||||
|
--
|
||||||
|
alter table Monitors add column AlarmMaxFPS decimal(5,2) default NULL after MaxFPS;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add average pixel difference to stats
|
||||||
|
--
|
||||||
|
alter table Stats add column PixelDiff tinyint(3) unsigned NOT NULL default '0' after FrameId;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add some new monitor presets
|
||||||
|
--
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 320x240, mpjpeg, B&W','Remote',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=320x240&color=0',320,240,4,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Axis IP, 640x480, mpjpeg, B&W','Remote',NULL,NULL,NULL,'<ip-address>',80,'/axis-cgi/mjpg/video.cgi?resolution=640x480&color=0',640,480,4,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Gadspot IP, jpeg, max 5 FPS','Remote',NULL,NULL,NULL,'<ip-address>',80,'/Jpeg/CamImg.jpg',NULL,NULL,4,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Gadspot IP, mpjpeg','Remote',NULL,NULL,NULL,'<ip-address>',80,'/GetData.cgi',NULL,NULL,4,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','Gadspot IP, mpjpeg','Remote',NULL,NULL,NULL,'<ip-address>',80,'/Jpeg/CamImg.jpg',NULL,NULL,4,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Modify zone presets a bit
|
||||||
|
--
|
||||||
|
UPDATE ZonePresets SET MinPixelThreshold = 60 WHERE Id = 1 OR Id = 4;
|
||||||
|
UPDATE ZonePresets SET MinPixelThreshold = 40 WHERE Id = 2 OR Id = 5;
|
||||||
|
UPDATE ZonePresets SET MinPixelThreshold = 20 WHERE Id = 3 OR Id = 6;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- These are optional, but we might as well do it now
|
||||||
|
--
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,26 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.22.1 database to 1.22.2
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add missing Zone Preset
|
||||||
|
--
|
||||||
|
replace into ZonePresets values (6,'Best, high sensitivity','Active','Percent','Blobs',20,NULL,8,NULL,3,3,6,NULL,5,NULL,1,NULL);
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Remove redundant Zone columns
|
||||||
|
--
|
||||||
|
alter table Zones drop column LoX;
|
||||||
|
alter table Zones drop column HiX;
|
||||||
|
alter table Zones drop column LoY;
|
||||||
|
alter table Zones drop column HiY;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- These are optional, but we might as well do it now
|
||||||
|
--
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,63 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.22.2 database to 1.22.3
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add new Background column into Filters
|
||||||
|
--
|
||||||
|
alter table Filters add column Background tinyint(1) unsigned not null default 0;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Set the Background flag for any filters currently saved with Auto tasks
|
||||||
|
--
|
||||||
|
update Filters set Background = 1 where (AutoArchive = 1 or AutoVideo = 1 or AutoUpload = 1 or AutoEmail = 1 or AutoMessage = 1 or AutoExecute = 1 or AutoDelete = 1);
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add default view column into Monitors
|
||||||
|
--
|
||||||
|
alter table Monitors add column DefaultView enum ('Events','Control') not null default 'Events' after ReturnDelay;
|
||||||
|
alter table Monitors modify LabelFormat varchar(64) NOT NULL default '%%s - %y/%m/%d %H:%M:%S';
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add device permissions column into Users, set the permissions for existing users to
|
||||||
|
-- be the same as for Monitors as a default
|
||||||
|
--
|
||||||
|
alter table Users add column Devices enum('None','View','Edit') NOT NULL default 'None' after Monitors;
|
||||||
|
update Users set Devices = Monitors;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Increase size of Notes field in Events
|
||||||
|
--
|
||||||
|
alter table Events modify column Notes text;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Create new preset labels table
|
||||||
|
--
|
||||||
|
CREATE TABLE `ControlPresets` (
|
||||||
|
`MonitorId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Preset` int(10) unsigned NOT NULL default '0',
|
||||||
|
`Label` varchar(64) NOT NULL default '',
|
||||||
|
PRIMARY KEY (`MonitorId`,`Preset`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Create new devices table
|
||||||
|
--
|
||||||
|
CREATE TABLE `Devices` (
|
||||||
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
|
`Name` tinytext NOT NULL,
|
||||||
|
`Type` enum('X10') NOT NULL default 'X10',
|
||||||
|
`KeyString` varchar(32) NOT NULL default '',
|
||||||
|
PRIMARY KEY (`Id`),
|
||||||
|
UNIQUE KEY `UC_Id` (`Id`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- These are optional, but we might as well do it now
|
||||||
|
--
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,70 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.22.3 database to 1.23.0
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add a column for buffer replay streams
|
||||||
|
--
|
||||||
|
alter table Monitors add column `StreamReplayBuffer` int(10) unsigned NOT NULL default '1000' after PostEventCount;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Change the default timestamp format
|
||||||
|
--
|
||||||
|
alter table Monitors modify column `LabelFormat` varchar(64) NOT NULL default '%N - %y/%m/%d %H:%M:%S';
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add a column for signal check colour
|
||||||
|
--
|
||||||
|
alter table Monitors add column `SignalCheckColour` varchar(32) NOT NULL default '#0100BE' after DefaultScale;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Increase the size of the run state definition column
|
||||||
|
--
|
||||||
|
alter table States modify column Definition text;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add overload shutout to zones and presets
|
||||||
|
--
|
||||||
|
alter table Zones add column OverloadFrames smallint(5) unsigned NOT NULL default '0' after MaxBlobs;
|
||||||
|
alter table ZonePresets add column OverloadFrames smallint(5) unsigned NOT NULL default '0' after MaxBlobs;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Change control command to protocol module
|
||||||
|
--
|
||||||
|
alter table Controls add column Protocol varchar(32) after Command;
|
||||||
|
update Controls set Protocol = "PelcoD" where Command like "%zmcontrol-pelco-d.pl";
|
||||||
|
update Controls set Protocol = "PelcoP" where Command like "%zmcontrol-pelco-p.pl";
|
||||||
|
update Controls set Protocol = "Visca" where Command like "%zmcontrol-visca.pl";
|
||||||
|
update Controls set Protocol = "PanasonicIP" where Command like "%zmcontrol-panasonic-ip.pl";
|
||||||
|
update Controls set Protocol = "AxisV2" where Command like "%zmcontrol-axis-v2.pl";
|
||||||
|
update Controls set Protocol = "Ncs370" where Command like "%zmcontrol-ncs370.pl";
|
||||||
|
update Controls set Protocol = "VclTP" where Command like "%zmcontrol-vcltp.pl";
|
||||||
|
alter table Controls drop column Command;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Drop some duplicate/redundant indices
|
||||||
|
--
|
||||||
|
alter table Config drop index `UC_Name`;
|
||||||
|
alter table Controls drop index `UC_Id`;
|
||||||
|
alter table Devices drop index `UC_Id`;
|
||||||
|
alter table Events drop index `UC_Id`;
|
||||||
|
alter table Frames drop index `UC_Id`;
|
||||||
|
alter table Users drop index `UC_Id`;
|
||||||
|
alter table ZonePresets drop index `UC_Id`;
|
||||||
|
alter table Zones drop index `UC_Id`;
|
||||||
|
alter table Events drop primary key;
|
||||||
|
alter table Events add primary key ( `Id`, `MonitorId` );
|
||||||
|
alter table Events drop index `Id`;
|
||||||
|
alter table Frames drop column `Id`;
|
||||||
|
alter table Frames drop index `EventId`;
|
||||||
|
alter table Frames add primary key ( `EventId`, `FrameId` );
|
||||||
|
|
||||||
|
--
|
||||||
|
-- These are optional, but we might as well do it now
|
||||||
|
--
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,18 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.23.0 database to 1.23.1
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Change protocol field slightly
|
||||||
|
--
|
||||||
|
alter table Controls modify Protocol varchar(64);
|
||||||
|
|
||||||
|
--
|
||||||
|
-- These are optional, but we might as well do it now
|
||||||
|
--
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,19 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.23.1 database to 1.23.2
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Rename and fix typo version of PurgeWhenFull
|
||||||
|
--
|
||||||
|
update Filters set Name = "PurgeWhenFull" where Name = "xPurgeWhenFull";
|
||||||
|
update Filters set Query = 'a:4:{s:5:"terms";a:2:{i:0;a:3:{s:3:"val";s:1:"0";s:4:"attr";s:8:"Archived";s:2:"op";s:1:"=";}i:1;a:4:{s:3:"cnj";s:3:"and";s:3:"val";s:2:"95";s:4:"attr";s:11:"DiskPercent";s:2:"op";s:2:">=";}}s:10:"sort_field";s:2:"Id";s:8:"sort_asc";s:1:"1";s:5:"limit";s:2:"5";}' where Name = "PurgeWhenFull" and Query like "trms=%";
|
||||||
|
|
||||||
|
--
|
||||||
|
-- These are optional, but we might as well do it now
|
||||||
|
--
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,18 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.23.2 database to 1.23.3
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Rename and fix typo version of PurgeWhenFull
|
||||||
|
--
|
||||||
|
update Filters set Query = 'a:4:{s:5:"terms";a:2:{i:0;a:3:{s:3:"val";s:1:"0";s:4:"attr";s:8:"Archived";s:2:"op";s:1:"=";}i:1;a:4:{s:3:"cnj";s:3:"and";s:3:"val";s:2:"95";s:4:"attr";s:11:"DiskPercent";s:2:"op";s:2:">=";}}s:10:"sort_field";s:2:"Id";s:8:"sort_asc";s:1:"1";s:5:"limit";s:1:"5";}' where Name = "PurgeWhenFull" and Query = 'a:4:{s:5:"terms";a:2:{i:0;a:3:{s:3:"val";s:1:"0";s:4:"attr";s:8:"Archived";s:2:"op";s:1:"=";}i:1;a:4:{s:3:"cnj";s:3:"and";s:3:"val";s:2:"95";s:4:"attr";s:11:"DiskPercent";s:2:"op";s:2:">=";}}s:10:"sort_field";s:2:"Id";s:8:"sort_asc";s:1:"1";s:5:"limit";s:2:"5";}';
|
||||||
|
|
||||||
|
--
|
||||||
|
-- These are optional, but we might as well do it now
|
||||||
|
--
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,83 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.23.3 database to 1.24.0
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add protocol column for monitors
|
||||||
|
--
|
||||||
|
alter table Monitors add column `Protocol` varchar(16) not null default '' after `Format`;
|
||||||
|
alter table MonitorPresets add column `Protocol` varchar(16) default NULL after `Format`;
|
||||||
|
update Monitors set Protocol = "http" where Type = "Remote";
|
||||||
|
update MonitorPresets set Protocol = "http" where Type = "Remote";
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add method column for monitors;
|
||||||
|
--
|
||||||
|
alter table Monitors add column `Method` varchar(16) not null default '' after `Protocol`;
|
||||||
|
alter table MonitorPresets add column `Method` varchar(16) default NULL after `Protocol`;
|
||||||
|
update Monitors set Method = "simple" where Type = "Remote" and ( select Value from Config where Name = "ZM_NETCAM_REGEXPS" ) = 0;
|
||||||
|
update Monitors set Method = "regexp" where Type = "Remote" and ( select Value from Config where Name = "ZM_NETCAM_REGEXPS" ) = 1;
|
||||||
|
update MonitorPresets set Method = "simple" where Type = "Remote" and ( select Value from Config where Name = "ZM_NETCAM_REGEXPS" ) = 0;
|
||||||
|
update MonitorPresets set Method = "regexp" where Type = "Remote" and ( select Value from Config where Name = "ZM_NETCAM_REGEXPS" ) = 1;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add subpath for remote RTSP monitors (only for now at least)
|
||||||
|
--
|
||||||
|
alter table Monitors add column `SubPath` varchar(64) not null default '' after `Path`;
|
||||||
|
alter table MonitorPresets add column `SubPath` varchar(64) default NULL after `Path`;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Update Palette for new meaning as Colours for non-Local monitors
|
||||||
|
--
|
||||||
|
update Monitors set Palette = 3 where Type != 'Local' and Palette = 4;
|
||||||
|
update MonitorPresets set Palette = 3 where Type != 'Local' and Palette = 4;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Update Method for Local monitors
|
||||||
|
--
|
||||||
|
update Monitors set Method = "v4l1" where Type = 'Local';
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add monitor type for FFMPEG cameras
|
||||||
|
--
|
||||||
|
alter table Monitors modify column `Type` enum('Local','Remote','File','Ffmpeg') NOT NULL default 'Local';
|
||||||
|
alter table MonitorPresets modify column `Type` enum('Local','Remote','File','Ffmpeg') NOT NULL default 'Local';
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Fix columns to fit V4L2 formats and palettes
|
||||||
|
--
|
||||||
|
alter table Monitors modify column `Format` int(10) unsigned NOT NULL default '0';
|
||||||
|
alter table Monitors modify column `Palette` int(10) unsigned NOT NULL default '0';
|
||||||
|
alter table MonitorPresets modify column `Channel` tinyint(3) unsigned default NULL;
|
||||||
|
alter table MonitorPresets modify column `Format` int(10) unsigned default NULL;
|
||||||
|
alter table MonitorPresets modify column `Palette` int(10) unsigned default NULL;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add in new MPEG presets
|
||||||
|
--
|
||||||
|
insert into MonitorPresets values ('','Axis IP, mpeg4, unicast','Remote',NULL,NULL,NULL,'rtsp','rtpUni','<ip-address>',554,'/mpeg4/media.amp','/trackID=',NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
insert into MonitorPresets values ('','Axis IP, mpeg4, multicast','Remote',NULL,NULL,NULL,'rtsp','rtpMulti','<ip-address>',554,'/mpeg4/media.amp','/trackID=',NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
insert into MonitorPresets values ('','Axis IP, mpeg4, RTP/RTSP','Remote',NULL,NULL,NULL,'rtsp','rtpRtsp','<ip-address>',554,'/mpeg4/media.amp','/trackID=',NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
insert into MonitorPresets values ('','Axis IP, mpeg4, RTP/RTSP/HTTP','Remote',NULL,NULL,NULL,'rtsp','rtpRtspHttp','<ip-address>',554,'/mpeg4/media.amp','/trackID=',NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
insert into MonitorPresets values ('','ACTi IP, mpeg4, unicast','Remote',NULL,NULL,NULL,'rtsp','rtpUni','<ip-address>',7070,'','/track',NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Get rid of never used columnn Learn State
|
||||||
|
--
|
||||||
|
alter table Events drop column LearnState;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Update for new event close mode
|
||||||
|
--
|
||||||
|
update Config set Value = "time" where Name = "ZM_EVENT_CLOSE_MODE" and ( select Value from ( select * from Config ) as TempConfig where Name = "ZM_FORCE_CLOSE_EVENTS" ) = 1;
|
||||||
|
update Config set Value = "idle" where Name = "ZM_EVENT_CLOSE_MODE" and ( select Value from ( select * from Config ) as TempConfig where Name = "ZM_FORCE_CLOSE_EVENTS" ) = 0;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- These are optional, but we might as well do it now
|
||||||
|
--
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,17 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.24.0 database to 1.24.1
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- No database changes
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- These are optional, but we might as well do it now
|
||||||
|
--
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,34 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.24.1 database to the next version
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Replace local presets with V4L versioned ones
|
||||||
|
--
|
||||||
|
delete from MonitorPresets where Type = 'Local';
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), PAL, 320x240','Local','/dev/video<?>','<?>',255,NULL,'v4l2',NULL,NULL,NULL,NULL,320,240,1345466932,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), PAL, 320x240, max 5 FPS','Local','/dev/video<?>','<?>',255,NULL,'v4l2',NULL,NULL,NULL,NULL,320,240,1345466932,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), PAL, 640x480','Local','/dev/video<?>','<?>',255,NULL,'v4l2',NULL,NULL,NULL,NULL,640,480,1345466932,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), PAL, 640x480, max 5 FPS','Local','/dev/video<?>','<?>',255,NULL,'v4l2',NULL,NULL,NULL,NULL,640,480,1345466932,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), NTSC, 320x240','Local','/dev/video<?>','<?>',45056,NULL,'v4l2',NULL,NULL,NULL,NULL,320,240,1345466932,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), NTSC, 320x240, max 5 FPS','Local','/dev/video<?>','<?>',45056,NULL,'v4l2',NULL,NULL,NULL,NULL,320,240,1345466932,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), NTSC, 640x480','Local','/dev/video<?>','<?>',45056,NULL,'v4l2',NULL,NULL,NULL,NULL,640,480,1345466932,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L2), NTSC, 640x480, max 5 FPS','Local','/dev/video<?>','<?>',45056,NULL,'v4l2',NULL,NULL,NULL,NULL,640,480,1345466932,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), PAL, 320x240','Local','/dev/video<?>','<?>',0,NULL,'v4l1',NULL,NULL,NULL,NULL,320,240,13,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), PAL, 320x240, max 5 FPS','Local','/dev/video<?>','<?>',0,NULL,'v4l1',NULL,NULL,NULL,NULL,320,240,13,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), PAL, 640x480','Local','/dev/video<?>','<?>',0,NULL,'v4l1',NULL,NULL,NULL,NULL,640,480,13,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), PAL, 640x480, max 5 FPS','Local','/dev/video<?>','<?>',0,NULL,'v4l1',NULL,NULL,NULL,NULL,640,480,13,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), NTSC, 320x240','Local','/dev/video<?>','<?>',1,NULL,'v4l1',NULL,NULL,NULL,NULL,320,240,13,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), NTSC, 320x240, max 5 FPS','Local','/dev/video<?>','<?>',1,NULL,'v4l1',NULL,NULL,NULL,NULL,320,240,13,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), NTSC, 640x480','Local','/dev/video<?>','<?>',1,NULL,'v4l1',NULL,NULL,NULL,NULL,640,480,13,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES ('','BTTV Video (V4L1), NTSC, 640x480, max 5 FPS','Local','/dev/video<?>','<?>',1,NULL,'v4l1',NULL,NULL,NULL,NULL,640,480,13,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
|
||||||
|
--
|
||||||
|
-- These are optional, but we might as well do it now
|
||||||
|
--
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,22 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.24.2 database to the next version
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add in remote ZoneMinder preset.
|
||||||
|
--
|
||||||
|
INSERT INTO `MonitorPresets` VALUES ('','Axis FFMPEG H.264','Ffmpeg',NULL,NULL,NULL,NULL,NULL,'rtsp://<host/address>/axis-media/media.amp?videocodec=h264',NULL,NULL,NULL,640,480,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO `MonitorPresets` VALUES ('','Vivotek FFMPEG','Ffmpeg',NULL,NULL,NULL,NULL,NULL,'rtsp://<host/address>:554/live.sdp',NULL,NULL,NULL,352,240,NULL,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO `MonitorPresets` VALUES ('','Axis FFMPEG','Ffmpeg',NULL,NULL,NULL,NULL,NULL,'rtsp://<host/address>/axis-media/media.amp',NULL,NULL,NULL,640,480,NULL,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO `MonitorPresets` VALUES ('','ACTi TCM FFMPEG','Ffmpeg',NULL,NULL,NULL,NULL,NULL,'rtsp://admin:123456@<host/address>:7070',NULL,NULL,NULL,320,240,NULL,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO `MonitorPresets` VALUES ('','Remote ZoneMinder','Remote',NULL,NULL,NULL,'http','simple','<ip-address>',80,'/cgi-bin/nph-zms?mode=jpeg&monitor=<monitor-id>&scale=100&maxfps=5&buffer=0',NULL,NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
|
||||||
|
--
|
||||||
|
-- These are optional, but we might as well do it now
|
||||||
|
--
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,13 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.24.3 database to the next version
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- These are optional, but we might as well do it now
|
||||||
|
--
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,30 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.24.4 database to the next version
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Create Logs table
|
||||||
|
-- TODO - defaults to MyISAM as not easy to import selected engine
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE TABLE `Logs` (
|
||||||
|
`TimeKey` decimal(16,6) NOT NULL,
|
||||||
|
`Component` varchar(32) NOT NULL,
|
||||||
|
`Pid` smallint(6) DEFAULT NULL,
|
||||||
|
`Level` tinyint(3) NOT NULL,
|
||||||
|
`Code` char(3) NOT NULL,
|
||||||
|
`Message` varchar(255) NOT NULL,
|
||||||
|
`File` varchar(255) DEFAULT NULL,
|
||||||
|
`Line` smallint(5) unsigned DEFAULT NULL,
|
||||||
|
KEY `TimeKey` (`TimeKey`)
|
||||||
|
) ENGINE=MyISAM;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- These are optional, but we might as well do it now
|
||||||
|
--
|
||||||
|
optimize table Frames;
|
||||||
|
optimize table Events;
|
||||||
|
optimize table Filters;
|
||||||
|
optimize table Zones;
|
||||||
|
optimize table Monitors;
|
||||||
|
optimize table Stats;
|
|
@ -0,0 +1,24 @@
|
||||||
|
--
|
||||||
|
-- Table structure for table `PluginsConfig`
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `PluginsConfig` (
|
||||||
|
`Id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
`Name` varchar(32) NOT NULL DEFAULT '',
|
||||||
|
`Value` text NOT NULL,
|
||||||
|
`Type` tinytext NOT NULL,
|
||||||
|
`Choices` text NOT NULL,
|
||||||
|
`MonitorId` int(10) unsigned NOT NULL,
|
||||||
|
`ZoneId` int(10) unsigned NOT NULL,
|
||||||
|
`pluginName` tinytext NOT NULL,
|
||||||
|
PRIMARY KEY (`Id`),
|
||||||
|
KEY `ZoneId` (`ZoneId`),
|
||||||
|
KEY `MonitorId` (`MonitorId`),
|
||||||
|
KEY `Name` (`Name`),
|
||||||
|
FULLTEXT KEY `pluginName` (`pluginName`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE `Monitors` ADD `UsedPl` varchar(88) NOT NULL default '' AFTER `Sequence`;
|
||||||
|
ALTER TABLE `Monitors` ADD `DoNativeMotDet` varchar(5) NOT NULL default 'yes' AFTER `UsedPl`;
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
--
|
||||||
|
-- Table structure for table `PluginsConfig`
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `PluginsConfig` (
|
||||||
|
`Id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
`Name` varchar(32) NOT NULL DEFAULT '',
|
||||||
|
`Value` text NOT NULL,
|
||||||
|
`Type` tinytext NOT NULL,
|
||||||
|
`Choices` text NOT NULL,
|
||||||
|
`MonitorId` int(10) unsigned NOT NULL,
|
||||||
|
`ZoneId` int(10) unsigned NOT NULL,
|
||||||
|
`pluginName` tinytext NOT NULL,
|
||||||
|
PRIMARY KEY (`Id`),
|
||||||
|
KEY `ZoneId` (`ZoneId`),
|
||||||
|
KEY `MonitorId` (`MonitorId`),
|
||||||
|
KEY `Name` (`Name`),
|
||||||
|
FULLTEXT KEY `pluginName` (`pluginName`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE `Monitors` ADD `UsedPl` varchar(88) NOT NULL default '' AFTER `Sequence`;
|
||||||
|
ALTER TABLE `Monitors` ADD `DoNativeMotDet` varchar(5) NOT NULL default 'yes' AFTER `UsedPl`;
|
||||||
|
ALTER TABLE `Monitors` ADD `Colours` TINYINT UNSIGNED NOT NULL DEFAULT '1' AFTER `Height`;
|
||||||
|
ALTER TABLE `Monitors` ADD `Deinterlacing` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `Orientation`;
|
||||||
|
|
|
@ -0,0 +1,423 @@
|
||||||
|
#! /bin/sh
|
||||||
|
|
||||||
|
# depcomp - compile a program generating dependencies as side-effects
|
||||||
|
# Copyright 1999, 2000 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||||
|
# 02111-1307, USA.
|
||||||
|
|
||||||
|
# As a special exception to the GNU General Public License, if you
|
||||||
|
# distribute this file as part of a program that contains a
|
||||||
|
# configuration script generated by Autoconf, you may include it under
|
||||||
|
# the same distribution terms that you use for the rest of that program.
|
||||||
|
|
||||||
|
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
|
||||||
|
|
||||||
|
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
|
||||||
|
echo "depcomp: Variables source, object and depmode must be set" 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
# `libtool' can also be set to `yes' or `no'.
|
||||||
|
|
||||||
|
if test -z "$depfile"; then
|
||||||
|
base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'`
|
||||||
|
dir=`echo "$object" | sed 's,/.*$,/,'`
|
||||||
|
if test "$dir" = "$object"; then
|
||||||
|
dir=
|
||||||
|
fi
|
||||||
|
# FIXME: should be _deps on DOS.
|
||||||
|
depfile="$dir.deps/$base"
|
||||||
|
fi
|
||||||
|
|
||||||
|
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
|
||||||
|
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
|
||||||
|
# Some modes work just like other modes, but use different flags. We
|
||||||
|
# parameterize here, but still list the modes in the big case below,
|
||||||
|
# to make depend.m4 easier to write. Note that we *cannot* use a case
|
||||||
|
# here, because this file can only contain one case statement.
|
||||||
|
if test "$depmode" = hp; then
|
||||||
|
# HP compiler uses -M and no extra arg.
|
||||||
|
gccflag=-M
|
||||||
|
depmode=gcc
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$depmode" = dashXmstdout; then
|
||||||
|
# This is just like dashmstdout with a different argument.
|
||||||
|
dashmflag=-xM
|
||||||
|
depmode=dashmstdout
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$depmode" in
|
||||||
|
gcc3)
|
||||||
|
## gcc 3 implements dependency tracking that does exactly what
|
||||||
|
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
|
||||||
|
## it if -MD -MP comes after the -MF stuff. Hmm.
|
||||||
|
"$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
|
||||||
|
stat=$?
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
mv "$tmpdepfile" "$depfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
gcc)
|
||||||
|
## There are various ways to get dependency output from gcc. Here's
|
||||||
|
## why we pick this rather obscure method:
|
||||||
|
## - Don't want to use -MD because we'd like the dependencies to end
|
||||||
|
## up in a subdir. Having to rename by hand is ugly.
|
||||||
|
## (We might end up doing this anyway to support other compilers.)
|
||||||
|
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
|
||||||
|
## -MM, not -M (despite what the docs say).
|
||||||
|
## - Using -M directly means running the compiler twice (even worse
|
||||||
|
## than renaming).
|
||||||
|
if test -z "$gccflag"; then
|
||||||
|
gccflag=-MD,
|
||||||
|
fi
|
||||||
|
"$@" -Wp,"$gccflag$tmpdepfile"
|
||||||
|
stat=$?
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
|
||||||
|
## The second -e expression handles DOS-style file names with drive letters.
|
||||||
|
sed -e 's/^[^:]*: / /' \
|
||||||
|
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
|
||||||
|
## This next piece of magic avoids the `deleted header file' problem.
|
||||||
|
## The problem is that when a header file which appears in a .P file
|
||||||
|
## is deleted, the dependency causes make to die (because there is
|
||||||
|
## typically no way to rebuild the header). We avoid this by adding
|
||||||
|
## dummy dependencies for each header file. Too bad gcc doesn't do
|
||||||
|
## this for us directly.
|
||||||
|
tr ' ' '
|
||||||
|
' < "$tmpdepfile" |
|
||||||
|
## Some versions of gcc put a space before the `:'. On the theory
|
||||||
|
## that the space means something, we add a space to the output as
|
||||||
|
## well.
|
||||||
|
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||||
|
## correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
hp)
|
||||||
|
# This case exists only to let depend.m4 do its work. It works by
|
||||||
|
# looking at the text of this script. This case will never be run,
|
||||||
|
# since it is checked for above.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
sgi)
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
"$@" "-Wp,-MDupdate,$tmpdepfile"
|
||||||
|
else
|
||||||
|
"$@" -MDupdate "$tmpdepfile"
|
||||||
|
fi
|
||||||
|
stat=$?
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
|
||||||
|
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
|
||||||
|
# Clip off the initial element (the dependent). Don't try to be
|
||||||
|
# clever and replace this with sed code, as IRIX sed won't handle
|
||||||
|
# lines with more than a fixed number of characters (4096 in
|
||||||
|
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
|
||||||
|
# the IRIX cc adds comments like `#:fec' to the end of the
|
||||||
|
# dependency line.
|
||||||
|
tr ' ' '
|
||||||
|
' < "$tmpdepfile" \
|
||||||
|
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
|
||||||
|
tr '
|
||||||
|
' ' ' >> $depfile
|
||||||
|
echo >> $depfile
|
||||||
|
|
||||||
|
# The second pass generates a dummy entry for each header file.
|
||||||
|
tr ' ' '
|
||||||
|
' < "$tmpdepfile" \
|
||||||
|
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
|
||||||
|
>> $depfile
|
||||||
|
else
|
||||||
|
# The sourcefile does not contain any dependencies, so just
|
||||||
|
# store a dummy comment line, to avoid errors with the Makefile
|
||||||
|
# "include basename.Plo" scheme.
|
||||||
|
echo "#dummy" > "$depfile"
|
||||||
|
fi
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
aix)
|
||||||
|
# The C for AIX Compiler uses -M and outputs the dependencies
|
||||||
|
# in a .u file. This file always lives in the current directory.
|
||||||
|
# Also, the AIX compiler puts `$object:' at the start of each line;
|
||||||
|
# $object doesn't have directory information.
|
||||||
|
stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'`
|
||||||
|
tmpdepfile="$stripped.u"
|
||||||
|
outname="$stripped.o"
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
"$@" -Wc,-M
|
||||||
|
else
|
||||||
|
"$@" -M
|
||||||
|
fi
|
||||||
|
|
||||||
|
stat=$?
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -f "$tmpdepfile"; then
|
||||||
|
# Each line is of the form `foo.o: dependent.h'.
|
||||||
|
# Do two passes, one to just change these to
|
||||||
|
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||||
|
sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
|
||||||
|
sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
|
||||||
|
else
|
||||||
|
# The sourcefile does not contain any dependencies, so just
|
||||||
|
# store a dummy comment line, to avoid errors with the Makefile
|
||||||
|
# "include basename.Plo" scheme.
|
||||||
|
echo "#dummy" > "$depfile"
|
||||||
|
fi
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
tru64)
|
||||||
|
# The Tru64 compiler uses -MD to generate dependencies as a side
|
||||||
|
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
|
||||||
|
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
|
||||||
|
# dependencies in `foo.d' instead, so we check for that too.
|
||||||
|
# Subdirectories are respected.
|
||||||
|
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||||
|
test "x$dir" = "x$object" && dir=
|
||||||
|
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||||
|
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
tmpdepfile1="$dir.libs/$base.lo.d"
|
||||||
|
tmpdepfile2="$dir.libs/$base.d"
|
||||||
|
"$@" -Wc,-MD
|
||||||
|
else
|
||||||
|
tmpdepfile1="$dir$base.o.d"
|
||||||
|
tmpdepfile2="$dir$base.d"
|
||||||
|
"$@" -MD
|
||||||
|
fi
|
||||||
|
|
||||||
|
stat=$?
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile1" "$tmpdepfile2"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -f "$tmpdepfile1"; then
|
||||||
|
tmpdepfile="$tmpdepfile1"
|
||||||
|
else
|
||||||
|
tmpdepfile="$tmpdepfile2"
|
||||||
|
fi
|
||||||
|
if test -f "$tmpdepfile"; then
|
||||||
|
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
|
||||||
|
# That's a space and a tab in the [].
|
||||||
|
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
|
||||||
|
else
|
||||||
|
echo "#dummy" > "$depfile"
|
||||||
|
fi
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
#nosideeffect)
|
||||||
|
# This comment above is used by automake to tell side-effect
|
||||||
|
# dependency tracking mechanisms from slower ones.
|
||||||
|
|
||||||
|
dashmstdout)
|
||||||
|
# Important note: in order to support this mode, a compiler *must*
|
||||||
|
# always write the proprocessed file to stdout, regardless of -o.
|
||||||
|
"$@" || exit $?
|
||||||
|
|
||||||
|
# Remove the call to Libtool.
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test $1 != '--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove `-o $object'. We will use -o /dev/null later,
|
||||||
|
# however we can't do the remplacement now because
|
||||||
|
# `-o $object' might simply not be used
|
||||||
|
IFS=" "
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
-o)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
$object)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"
|
||||||
|
shift # fnord
|
||||||
|
shift # $arg
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
test -z "$dashmflag" && dashmflag=-M
|
||||||
|
"$@" -o /dev/null $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
|
||||||
|
rm -f "$depfile"
|
||||||
|
cat < "$tmpdepfile" > "$depfile"
|
||||||
|
tr ' ' '
|
||||||
|
' < "$tmpdepfile" | \
|
||||||
|
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||||
|
## correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
dashXmstdout)
|
||||||
|
# This case only exists to satisfy depend.m4. It is never actually
|
||||||
|
# run, as this mode is specially recognized in the preamble.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
makedepend)
|
||||||
|
"$@" || exit $?
|
||||||
|
# X makedepend
|
||||||
|
shift
|
||||||
|
cleared=no
|
||||||
|
for arg in "$@"; do
|
||||||
|
case $cleared in
|
||||||
|
no)
|
||||||
|
set ""; shift
|
||||||
|
cleared=yes ;;
|
||||||
|
esac
|
||||||
|
case "$arg" in
|
||||||
|
-D*|-I*)
|
||||||
|
set fnord "$@" "$arg"; shift ;;
|
||||||
|
-*)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"; shift ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
obj_suffix="`echo $object | sed 's/^.*\././'`"
|
||||||
|
touch "$tmpdepfile"
|
||||||
|
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
|
||||||
|
rm -f "$depfile"
|
||||||
|
cat < "$tmpdepfile" > "$depfile"
|
||||||
|
sed '1,2d' "$tmpdepfile" | tr ' ' '
|
||||||
|
' | \
|
||||||
|
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||||
|
## correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile" "$tmpdepfile".bak
|
||||||
|
;;
|
||||||
|
|
||||||
|
cpp)
|
||||||
|
# Important note: in order to support this mode, a compiler *must*
|
||||||
|
# always write the proprocessed file to stdout.
|
||||||
|
"$@" || exit $?
|
||||||
|
|
||||||
|
# Remove the call to Libtool.
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test $1 != '--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove `-o $object'.
|
||||||
|
IFS=" "
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
-o)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
$object)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"
|
||||||
|
shift # fnord
|
||||||
|
shift # $arg
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
"$@" -E |
|
||||||
|
sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
|
||||||
|
sed '$ s: \\$::' > "$tmpdepfile"
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
cat < "$tmpdepfile" >> "$depfile"
|
||||||
|
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
msvisualcpp)
|
||||||
|
# Important note: in order to support this mode, a compiler *must*
|
||||||
|
# always write the proprocessed file to stdout, regardless of -o,
|
||||||
|
# because we must use -o when running libtool.
|
||||||
|
"$@" || exit $?
|
||||||
|
IFS=" "
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case "$arg" in
|
||||||
|
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
|
||||||
|
set fnord "$@"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
"$@" -E |
|
||||||
|
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
|
||||||
|
echo " " >> "$depfile"
|
||||||
|
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
none)
|
||||||
|
exec "$@"
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "Unknown depmode $depmode" 1>&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
|
@ -0,0 +1 @@
|
||||||
|
Zoneminder with kfir performances patches and plugin patches from UnixMedia
|
|
@ -0,0 +1,6 @@
|
||||||
|
ZoneMinder - A Linux based camera monitoring and analysis tool.
|
||||||
|
|
||||||
|
This project was imagined and created by Philip Coombes in
|
||||||
|
September 2002, shortly after being burglarised of his power tools.
|
||||||
|
|
||||||
|
mailto:philip.coombes@zoneminder.com
|
|
@ -0,0 +1 @@
|
||||||
|
Please see README file.
|
|
@ -0,0 +1,340 @@
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||||
|
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your
|
||||||
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
License is intended to guarantee your freedom to share and change free
|
||||||
|
software--to make sure the software is free for all its users. This
|
||||||
|
General Public License applies to most of the Free Software
|
||||||
|
Foundation's software and to any other program whose authors commit to
|
||||||
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
|
the GNU Library General Public License instead.) You can apply it to
|
||||||
|
your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
this service if you wish), that you receive source code or can get it
|
||||||
|
if you want it, that you can change the software or use pieces of it
|
||||||
|
in new free programs; and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid
|
||||||
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
|
These restrictions translate to certain responsibilities for you if you
|
||||||
|
distribute copies of the software, or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether
|
||||||
|
gratis or for a fee, you must give the recipients all the rights that
|
||||||
|
you have. You must make sure that they, too, receive or can get the
|
||||||
|
source code. And you must show them these terms so they know their
|
||||||
|
rights.
|
||||||
|
|
||||||
|
We protect your rights with two steps: (1) copyright the software, and
|
||||||
|
(2) offer you this license which gives you legal permission to copy,
|
||||||
|
distribute and/or modify the software.
|
||||||
|
|
||||||
|
Also, for each author's protection and ours, we want to make certain
|
||||||
|
that everyone understands that there is no warranty for this free
|
||||||
|
software. If the software is modified by someone else and passed on, we
|
||||||
|
want its recipients to know that what they have is not the original, so
|
||||||
|
that any problems introduced by others will not reflect on the original
|
||||||
|
authors' reputations.
|
||||||
|
|
||||||
|
Finally, any free program is threatened constantly by software
|
||||||
|
patents. We wish to avoid the danger that redistributors of a free
|
||||||
|
program will individually obtain patent licenses, in effect making the
|
||||||
|
program proprietary. To prevent this, we have made it clear that any
|
||||||
|
patent must be licensed for everyone's free use or not licensed at all.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License applies to any program or other work which contains
|
||||||
|
a notice placed by the copyright holder saying it may be distributed
|
||||||
|
under the terms of this General Public License. The "Program", below,
|
||||||
|
refers to any such program or work, and a "work based on the Program"
|
||||||
|
means either the Program or any derivative work under copyright law:
|
||||||
|
that is to say, a work containing the Program or a portion of it,
|
||||||
|
either verbatim or with modifications and/or translated into another
|
||||||
|
language. (Hereinafter, translation is included without limitation in
|
||||||
|
the term "modification".) Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running the Program is not restricted, and the output from the Program
|
||||||
|
is covered only if its contents constitute a work based on the
|
||||||
|
Program (independent of having been made by running the Program).
|
||||||
|
Whether that is true depends on what the Program does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Program's
|
||||||
|
source code as you receive it, in any medium, provided that you
|
||||||
|
conspicuously and appropriately publish on each copy an appropriate
|
||||||
|
copyright notice and disclaimer of warranty; keep intact all the
|
||||||
|
notices that refer to this License and to the absence of any warranty;
|
||||||
|
and give any other recipients of the Program a copy of this License
|
||||||
|
along with the Program.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and
|
||||||
|
you may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Program or any portion
|
||||||
|
of it, thus forming a work based on the Program, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) You must cause the modified files to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
b) You must cause any work that you distribute or publish, that in
|
||||||
|
whole or in part contains or is derived from the Program or any
|
||||||
|
part thereof, to be licensed as a whole at no charge to all third
|
||||||
|
parties under the terms of this License.
|
||||||
|
|
||||||
|
c) If the modified program normally reads commands interactively
|
||||||
|
when run, you must cause it, when started running for such
|
||||||
|
interactive use in the most ordinary way, to print or display an
|
||||||
|
announcement including an appropriate copyright notice and a
|
||||||
|
notice that there is no warranty (or else, saying that you provide
|
||||||
|
a warranty) and that users may redistribute the program under
|
||||||
|
these conditions, and telling the user how to view a copy of this
|
||||||
|
License. (Exception: if the Program itself is interactive but
|
||||||
|
does not normally print such an announcement, your work based on
|
||||||
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Program,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Program, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Program.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Program
|
||||||
|
with the Program (or with a work based on the Program) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may copy and distribute the Program (or a work based on it,
|
||||||
|
under Section 2) in object code or executable form under the terms of
|
||||||
|
Sections 1 and 2 above provided that you also do one of the following:
|
||||||
|
|
||||||
|
a) Accompany it with the complete corresponding machine-readable
|
||||||
|
source code, which must be distributed under the terms of Sections
|
||||||
|
1 and 2 above on a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
|
b) Accompany it with a written offer, valid for at least three
|
||||||
|
years, to give any third party, for a charge no more than your
|
||||||
|
cost of physically performing source distribution, a complete
|
||||||
|
machine-readable copy of the corresponding source code, to be
|
||||||
|
distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
|
customarily used for software interchange; or,
|
||||||
|
|
||||||
|
c) Accompany it with the information you received as to the offer
|
||||||
|
to distribute corresponding source code. (This alternative is
|
||||||
|
allowed only for noncommercial distribution and only if you
|
||||||
|
received the program in object code or executable form with such
|
||||||
|
an offer, in accord with Subsection b above.)
|
||||||
|
|
||||||
|
The source code for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For an executable work, complete source
|
||||||
|
code means all the source code for all modules it contains, plus any
|
||||||
|
associated interface definition files, plus the scripts used to
|
||||||
|
control compilation and installation of the executable. However, as a
|
||||||
|
special exception, the source code distributed need not include
|
||||||
|
anything that is normally distributed (in either source or binary
|
||||||
|
form) with the major components (compiler, kernel, and so on) of the
|
||||||
|
operating system on which the executable runs, unless that component
|
||||||
|
itself accompanies the executable.
|
||||||
|
|
||||||
|
If distribution of executable or object code is made by offering
|
||||||
|
access to copy from a designated place, then offering equivalent
|
||||||
|
access to copy the source code from the same place counts as
|
||||||
|
distribution of the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
|
except as expressly provided under this License. Any attempt
|
||||||
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
|
void, and will automatically terminate your rights under this License.
|
||||||
|
However, parties who have received copies, or rights, from you under
|
||||||
|
this License will not have their licenses terminated so long as such
|
||||||
|
parties remain in full compliance.
|
||||||
|
|
||||||
|
5. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Program or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Program (or any work based on the
|
||||||
|
Program), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Program or works based on it.
|
||||||
|
|
||||||
|
6. Each time you redistribute the Program (or any work based on the
|
||||||
|
Program), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute or modify the Program subject to
|
||||||
|
these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties to
|
||||||
|
this License.
|
||||||
|
|
||||||
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Program at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Program by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Program.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under
|
||||||
|
any particular circumstance, the balance of the section is intended to
|
||||||
|
apply and the section as a whole is intended to apply in other
|
||||||
|
circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system, which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Program under this License
|
||||||
|
may add an explicit geographical distribution limitation excluding
|
||||||
|
those countries, so that distribution is permitted only in or among
|
||||||
|
countries not thus excluded. In such case, this License incorporates
|
||||||
|
the limitation as if written in the body of this License.
|
||||||
|
|
||||||
|
9. The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program
|
||||||
|
specifies a version number of this License which applies to it and "any
|
||||||
|
later version", you have the option of following the terms and conditions
|
||||||
|
either of that version or of any later version published by the Free
|
||||||
|
Software Foundation. If the Program does not specify a version number of
|
||||||
|
this License, you may choose any version ever published by the Free Software
|
||||||
|
Foundation.
|
||||||
|
|
||||||
|
10. If you wish to incorporate parts of the Program into other free
|
||||||
|
programs whose distribution conditions are different, write to the author
|
||||||
|
to ask for permission. For software which is copyrighted by the Free
|
||||||
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||||
|
make exceptions for this. Our decision will be guided by the two goals
|
||||||
|
of preserving the free status of all derivatives of our free software and
|
||||||
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||||
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||||
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||||
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||||
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||||
|
REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||||
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||||
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||||
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||||
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||||
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest
|
||||||
|
possible use to the public, the best way to achieve this is to make it
|
||||||
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively
|
||||||
|
convey the exclusion of warranty; and each file should have at least
|
||||||
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program is interactive, make it output a short notice like this
|
||||||
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
|
Gnomovision version 69, Copyright (C) year name of author
|
||||||
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
|
This is free software, and you are welcome to redistribute it
|
||||||
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, the commands you use may
|
||||||
|
be called something other than `show w' and `show c'; they could even be
|
||||||
|
mouse-clicks or menu items--whatever suits your program.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your
|
||||||
|
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||||
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||||
|
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
|
<signature of Ty Coon>, 1 April 1989
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
This General Public License does not permit incorporating your program into
|
||||||
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
|
consider it more useful to permit linking proprietary applications with the
|
||||||
|
library. If this is what you want to do, use the GNU Library General
|
||||||
|
Public License instead of this License.
|
|
@ -0,0 +1 @@
|
||||||
|
Please see README file.
|
|
@ -0,0 +1,185 @@
|
||||||
|
Basic Installation
|
||||||
|
==================
|
||||||
|
|
||||||
|
These are generic installation instructions.
|
||||||
|
|
||||||
|
Please see http://www.zoneminder.com/wiki/index.php/Documentation
|
||||||
|
for full details.
|
||||||
|
|
||||||
|
The `configure' shell script attempts to guess correct values for
|
||||||
|
various system-dependent variables used during compilation. It uses
|
||||||
|
those values to create a `Makefile' in each directory of the package.
|
||||||
|
It may also create one or more `.h' files containing system-dependent
|
||||||
|
definitions. Finally, it creates a shell script `config.status' that
|
||||||
|
you can run in the future to recreate the current configuration, a file
|
||||||
|
`config.cache' that saves the results of its tests to speed up
|
||||||
|
reconfiguring, and a file `config.log' containing compiler output
|
||||||
|
(useful mainly for debugging `configure').
|
||||||
|
|
||||||
|
If you need to do unusual things to compile the package, please try
|
||||||
|
to figure out how `configure' could check whether to do them, and mail
|
||||||
|
diffs or instructions to the address given in the `README' so they can
|
||||||
|
be considered for the next release. If at some point `config.cache'
|
||||||
|
contains results you don't want to keep, you may remove or edit it.
|
||||||
|
|
||||||
|
The file `configure.in' is used to create `configure' by a program
|
||||||
|
called `autoconf'. You only need `configure.in' if you want to change
|
||||||
|
it or regenerate `configure' using a newer version of `autoconf'.
|
||||||
|
|
||||||
|
The simplest way to compile this package is:
|
||||||
|
|
||||||
|
1. `cd' to the directory containing the package's source code and type
|
||||||
|
`./configure' to configure the package for your system. If you're
|
||||||
|
using `csh' on an old version of System V, you might need to type
|
||||||
|
`sh ./configure' instead to prevent `csh' from trying to execute
|
||||||
|
`configure' itself.
|
||||||
|
|
||||||
|
Running `configure' takes awhile. While running, it prints some
|
||||||
|
messages telling which features it is checking for.
|
||||||
|
|
||||||
|
2. Type `make' to compile the package.
|
||||||
|
|
||||||
|
3. Optionally, type `make check' to run any self-tests that come with
|
||||||
|
the package.
|
||||||
|
|
||||||
|
4. Type `make install' to install the programs and any data files and
|
||||||
|
documentation.
|
||||||
|
|
||||||
|
5. You can remove the program binaries and object files from the
|
||||||
|
source code directory by typing `make clean'. To also remove the
|
||||||
|
files that `configure' created (so you can compile the package for
|
||||||
|
a different kind of computer), type `make distclean'. There is
|
||||||
|
also a `make maintainer-clean' target, but that is intended mainly
|
||||||
|
for the package's developers. If you use it, you may have to get
|
||||||
|
all sorts of other programs in order to regenerate files that came
|
||||||
|
with the distribution.
|
||||||
|
|
||||||
|
Compilers and Options
|
||||||
|
=====================
|
||||||
|
|
||||||
|
Some systems require unusual options for compilation or linking that
|
||||||
|
the `configure' script does not know about. You can give `configure'
|
||||||
|
initial values for variables by setting them in the environment. Using
|
||||||
|
a Bourne-compatible shell, you can do that on the command line like
|
||||||
|
this:
|
||||||
|
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
|
||||||
|
|
||||||
|
Or on systems that have the `env' program, you can do it like this:
|
||||||
|
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
|
||||||
|
|
||||||
|
Compiling For Multiple Architectures
|
||||||
|
====================================
|
||||||
|
|
||||||
|
You can compile the package for more than one kind of computer at the
|
||||||
|
same time, by placing the object files for each architecture in their
|
||||||
|
own directory. To do this, you must use a version of `make' that
|
||||||
|
supports the `VPATH' variable, such as GNU `make'. `cd' to the
|
||||||
|
directory where you want the object files and executables to go and run
|
||||||
|
the `configure' script. `configure' automatically checks for the
|
||||||
|
source code in the directory that `configure' is in and in `..'.
|
||||||
|
|
||||||
|
If you have to use a `make' that does not supports the `VPATH'
|
||||||
|
variable, you have to compile the package for one architecture at a time
|
||||||
|
in the source code directory. After you have installed the package for
|
||||||
|
one architecture, use `make distclean' before reconfiguring for another
|
||||||
|
architecture.
|
||||||
|
|
||||||
|
Installation Names
|
||||||
|
==================
|
||||||
|
|
||||||
|
By default, `make install' will install the package's files in
|
||||||
|
`/usr/local/bin', `/usr/local/man', etc. You can specify an
|
||||||
|
installation prefix other than `/usr/local' by giving `configure' the
|
||||||
|
option `--prefix=PATH'.
|
||||||
|
|
||||||
|
You can specify separate installation prefixes for
|
||||||
|
architecture-specific files and architecture-independent files. If you
|
||||||
|
give `configure' the option `--exec-prefix=PATH', the package will use
|
||||||
|
PATH as the prefix for installing programs and libraries.
|
||||||
|
Documentation and other data files will still use the regular prefix.
|
||||||
|
|
||||||
|
In addition, if you use an unusual directory layout you can give
|
||||||
|
options like `--bindir=PATH' to specify different values for particular
|
||||||
|
kinds of files. Run `configure --help' for a list of the directories
|
||||||
|
you can set and what kinds of files go in them.
|
||||||
|
|
||||||
|
If the package supports it, you can cause programs to be installed
|
||||||
|
with an extra prefix or suffix on their names by giving `configure' the
|
||||||
|
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
||||||
|
|
||||||
|
Optional Features
|
||||||
|
=================
|
||||||
|
|
||||||
|
Some packages pay attention to `--enable-FEATURE' options to
|
||||||
|
`configure', where FEATURE indicates an optional part of the package.
|
||||||
|
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
||||||
|
is something like `gnu-as' or `x' (for the X Window System). The
|
||||||
|
`README' should mention any `--enable-' and `--with-' options that the
|
||||||
|
package recognizes.
|
||||||
|
|
||||||
|
For packages that use the X Window System, `configure' can usually
|
||||||
|
find the X include and library files automatically, but if it doesn't,
|
||||||
|
you can use the `configure' options `--x-includes=DIR' and
|
||||||
|
`--x-libraries=DIR' to specify their locations.
|
||||||
|
|
||||||
|
Specifying the System Type
|
||||||
|
==========================
|
||||||
|
|
||||||
|
There may be some features `configure' can not figure out
|
||||||
|
automatically, but needs to determine by the type of host the package
|
||||||
|
will run on. Usually `configure' can figure that out, but if it prints
|
||||||
|
a message saying it can not guess the host type, give it the
|
||||||
|
`--host=TYPE' option. TYPE can either be a short name for the system
|
||||||
|
type, such as `sun4', or a canonical name with three fields:
|
||||||
|
CPU-COMPANY-SYSTEM
|
||||||
|
|
||||||
|
See the file `config.sub' for the possible values of each field. If
|
||||||
|
`config.sub' isn't included in this package, then this package doesn't
|
||||||
|
need to know the host type.
|
||||||
|
|
||||||
|
If you are building compiler tools for cross-compiling, you can also
|
||||||
|
use the `--target=TYPE' option to select the type of system they will
|
||||||
|
produce code for and the `--build=TYPE' option to select the type of
|
||||||
|
system on which you are compiling the package.
|
||||||
|
|
||||||
|
Sharing Defaults
|
||||||
|
================
|
||||||
|
|
||||||
|
If you want to set default values for `configure' scripts to share,
|
||||||
|
you can create a site shell script called `config.site' that gives
|
||||||
|
default values for variables like `CC', `cache_file', and `prefix'.
|
||||||
|
`configure' looks for `PREFIX/share/config.site' if it exists, then
|
||||||
|
`PREFIX/etc/config.site' if it exists. Or, you can set the
|
||||||
|
`CONFIG_SITE' environment variable to the location of the site script.
|
||||||
|
A warning: not all `configure' scripts look for a site script.
|
||||||
|
|
||||||
|
Operation Controls
|
||||||
|
==================
|
||||||
|
|
||||||
|
`configure' recognizes the following options to control how it
|
||||||
|
operates.
|
||||||
|
|
||||||
|
`--cache-file=FILE'
|
||||||
|
Use and save the results of the tests in FILE instead of
|
||||||
|
`./config.cache'. Set FILE to `/dev/null' to disable caching, for
|
||||||
|
debugging `configure'.
|
||||||
|
|
||||||
|
`--help'
|
||||||
|
Print a summary of the options to `configure', and exit.
|
||||||
|
|
||||||
|
`--quiet'
|
||||||
|
`--silent'
|
||||||
|
`-q'
|
||||||
|
Do not print messages saying which checks are being made. To
|
||||||
|
suppress all normal output, redirect it to `/dev/null' (any error
|
||||||
|
messages will still be shown).
|
||||||
|
|
||||||
|
`--srcdir=DIR'
|
||||||
|
Look for the package's source code in directory DIR. Usually
|
||||||
|
`configure' can determine that directory automatically.
|
||||||
|
|
||||||
|
`--version'
|
||||||
|
Print the version of Autoconf used to generate the `configure'
|
||||||
|
script, and exit.
|
||||||
|
|
||||||
|
`configure' also accepts some other, not widely useful, options.
|
|
@ -0,0 +1 @@
|
||||||
|
Please see README file.
|
|
@ -0,0 +1,5 @@
|
||||||
|
|
||||||
|
All documentation for ZoneMinder is now online at
|
||||||
|
|
||||||
|
http://www.zoneminder.com/wiki/index.php/Documentation
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
Please see README file.
|
||||||
|
|
|
@ -0,0 +1,251 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# install - install a program, script, or datafile
|
||||||
|
# This comes from X11R5 (mit/util/scripts/install.sh).
|
||||||
|
#
|
||||||
|
# Copyright 1991 by the Massachusetts Institute of Technology
|
||||||
|
#
|
||||||
|
# Permission to use, copy, modify, distribute, and sell this software and its
|
||||||
|
# documentation for any purpose is hereby granted without fee, provided that
|
||||||
|
# the above copyright notice appear in all copies and that both that
|
||||||
|
# copyright notice and this permission notice appear in supporting
|
||||||
|
# documentation, and that the name of M.I.T. not be used in advertising or
|
||||||
|
# publicity pertaining to distribution of the software without specific,
|
||||||
|
# written prior permission. M.I.T. makes no representations about the
|
||||||
|
# suitability of this software for any purpose. It is provided "as is"
|
||||||
|
# without express or implied warranty.
|
||||||
|
#
|
||||||
|
# Calling this script install-sh is preferred over install.sh, to prevent
|
||||||
|
# `make' implicit rules from creating a file called install from it
|
||||||
|
# when there is no Makefile.
|
||||||
|
#
|
||||||
|
# This script is compatible with the BSD install script, but was written
|
||||||
|
# from scratch. It can only install one file at a time, a restriction
|
||||||
|
# shared with many OS's install programs.
|
||||||
|
|
||||||
|
|
||||||
|
# set DOITPROG to echo to test this script
|
||||||
|
|
||||||
|
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||||
|
doit="${DOITPROG-}"
|
||||||
|
|
||||||
|
|
||||||
|
# put in absolute paths if you don't have them in your path; or use env. vars.
|
||||||
|
|
||||||
|
mvprog="${MVPROG-mv}"
|
||||||
|
cpprog="${CPPROG-cp}"
|
||||||
|
chmodprog="${CHMODPROG-chmod}"
|
||||||
|
chownprog="${CHOWNPROG-chown}"
|
||||||
|
chgrpprog="${CHGRPPROG-chgrp}"
|
||||||
|
stripprog="${STRIPPROG-strip}"
|
||||||
|
rmprog="${RMPROG-rm}"
|
||||||
|
mkdirprog="${MKDIRPROG-mkdir}"
|
||||||
|
|
||||||
|
transformbasename=""
|
||||||
|
transform_arg=""
|
||||||
|
instcmd="$mvprog"
|
||||||
|
chmodcmd="$chmodprog 0755"
|
||||||
|
chowncmd=""
|
||||||
|
chgrpcmd=""
|
||||||
|
stripcmd=""
|
||||||
|
rmcmd="$rmprog -f"
|
||||||
|
mvcmd="$mvprog"
|
||||||
|
src=""
|
||||||
|
dst=""
|
||||||
|
dir_arg=""
|
||||||
|
|
||||||
|
while [ x"$1" != x ]; do
|
||||||
|
case $1 in
|
||||||
|
-c) instcmd="$cpprog"
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-d) dir_arg=true
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-m) chmodcmd="$chmodprog $2"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-o) chowncmd="$chownprog $2"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-g) chgrpcmd="$chgrpprog $2"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-s) stripcmd="$stripprog"
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
*) if [ x"$src" = x ]
|
||||||
|
then
|
||||||
|
src=$1
|
||||||
|
else
|
||||||
|
# this colon is to work around a 386BSD /bin/sh bug
|
||||||
|
:
|
||||||
|
dst=$1
|
||||||
|
fi
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ x"$src" = x ]
|
||||||
|
then
|
||||||
|
echo "install: no input file specified"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
true
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ x"$dir_arg" != x ]; then
|
||||||
|
dst=$src
|
||||||
|
src=""
|
||||||
|
|
||||||
|
if [ -d $dst ]; then
|
||||||
|
instcmd=:
|
||||||
|
chmodcmd=""
|
||||||
|
else
|
||||||
|
instcmd=mkdir
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
|
||||||
|
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
|
||||||
|
# might cause directories to be created, which would be especially bad
|
||||||
|
# if $src (and thus $dsttmp) contains '*'.
|
||||||
|
|
||||||
|
if [ -f $src -o -d $src ]
|
||||||
|
then
|
||||||
|
true
|
||||||
|
else
|
||||||
|
echo "install: $src does not exist"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ x"$dst" = x ]
|
||||||
|
then
|
||||||
|
echo "install: no destination specified"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
true
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If destination is a directory, append the input filename; if your system
|
||||||
|
# does not like double slashes in filenames, you may need to add some logic
|
||||||
|
|
||||||
|
if [ -d $dst ]
|
||||||
|
then
|
||||||
|
dst="$dst"/`basename $src`
|
||||||
|
else
|
||||||
|
true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
## this sed command emulates the dirname command
|
||||||
|
dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
|
||||||
|
|
||||||
|
# Make sure that the destination directory exists.
|
||||||
|
# this part is taken from Noah Friedman's mkinstalldirs script
|
||||||
|
|
||||||
|
# Skip lots of stat calls in the usual case.
|
||||||
|
if [ ! -d "$dstdir" ]; then
|
||||||
|
defaultIFS='
|
||||||
|
'
|
||||||
|
IFS="${IFS-${defaultIFS}}"
|
||||||
|
|
||||||
|
oIFS="${IFS}"
|
||||||
|
# Some sh's can't handle IFS=/ for some reason.
|
||||||
|
IFS='%'
|
||||||
|
set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
|
||||||
|
IFS="${oIFS}"
|
||||||
|
|
||||||
|
pathcomp=''
|
||||||
|
|
||||||
|
while [ $# -ne 0 ] ; do
|
||||||
|
pathcomp="${pathcomp}${1}"
|
||||||
|
shift
|
||||||
|
|
||||||
|
if [ ! -d "${pathcomp}" ] ;
|
||||||
|
then
|
||||||
|
$mkdirprog "${pathcomp}"
|
||||||
|
else
|
||||||
|
true
|
||||||
|
fi
|
||||||
|
|
||||||
|
pathcomp="${pathcomp}/"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ x"$dir_arg" != x ]
|
||||||
|
then
|
||||||
|
$doit $instcmd $dst &&
|
||||||
|
|
||||||
|
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
|
||||||
|
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
|
||||||
|
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
|
||||||
|
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
|
||||||
|
else
|
||||||
|
|
||||||
|
# If we're going to rename the final executable, determine the name now.
|
||||||
|
|
||||||
|
if [ x"$transformarg" = x ]
|
||||||
|
then
|
||||||
|
dstfile=`basename $dst`
|
||||||
|
else
|
||||||
|
dstfile=`basename $dst $transformbasename |
|
||||||
|
sed $transformarg`$transformbasename
|
||||||
|
fi
|
||||||
|
|
||||||
|
# don't allow the sed command to completely eliminate the filename
|
||||||
|
|
||||||
|
if [ x"$dstfile" = x ]
|
||||||
|
then
|
||||||
|
dstfile=`basename $dst`
|
||||||
|
else
|
||||||
|
true
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make a temp file name in the proper directory.
|
||||||
|
|
||||||
|
dsttmp=$dstdir/#inst.$$#
|
||||||
|
|
||||||
|
# Move or copy the file name to the temp name
|
||||||
|
|
||||||
|
$doit $instcmd $src $dsttmp &&
|
||||||
|
|
||||||
|
trap "rm -f ${dsttmp}" 0 &&
|
||||||
|
|
||||||
|
# and set any options; do chmod last to preserve setuid bits
|
||||||
|
|
||||||
|
# If any of these fail, we abort the whole thing. If we want to
|
||||||
|
# ignore errors from any of these, just make sure not to ignore
|
||||||
|
# errors from the above "$doit $instcmd $src $dsttmp" command.
|
||||||
|
|
||||||
|
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
|
||||||
|
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
|
||||||
|
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
|
||||||
|
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
|
||||||
|
|
||||||
|
# Now rename the file to the real destination.
|
||||||
|
|
||||||
|
$doit $rmcmd -f $dstdir/$dstfile &&
|
||||||
|
$doit $mvcmd $dsttmp $dstdir/$dstfile
|
||||||
|
|
||||||
|
fi &&
|
||||||
|
|
||||||
|
|
||||||
|
exit 0
|
|
@ -0,0 +1,6 @@
|
||||||
|
AUTOMAKE_OPTIONS = gnu
|
||||||
|
|
||||||
|
EXTRA_DIST = \
|
||||||
|
apache.conf.in \
|
||||||
|
logrotate.conf.in \
|
||||||
|
syslog.conf.in
|
|
@ -0,0 +1,406 @@
|
||||||
|
# Makefile.in generated by automake 1.11.6 from Makefile.am.
|
||||||
|
# @configure_input@
|
||||||
|
|
||||||
|
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||||
|
# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
|
||||||
|
# Foundation, Inc.
|
||||||
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||||
|
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
# PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
@SET_MAKE@
|
||||||
|
VPATH = @srcdir@
|
||||||
|
am__make_dryrun = \
|
||||||
|
{ \
|
||||||
|
am__dry=no; \
|
||||||
|
case $$MAKEFLAGS in \
|
||||||
|
*\\[\ \ ]*) \
|
||||||
|
echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
|
||||||
|
| grep '^AM OK$$' >/dev/null || am__dry=yes;; \
|
||||||
|
*) \
|
||||||
|
for am__flg in $$MAKEFLAGS; do \
|
||||||
|
case $$am__flg in \
|
||||||
|
*=*|--*) ;; \
|
||||||
|
*n*) am__dry=yes; break;; \
|
||||||
|
esac; \
|
||||||
|
done;; \
|
||||||
|
esac; \
|
||||||
|
test $$am__dry = yes; \
|
||||||
|
}
|
||||||
|
pkgdatadir = $(datadir)/@PACKAGE@
|
||||||
|
pkgincludedir = $(includedir)/@PACKAGE@
|
||||||
|
pkglibdir = $(libdir)/@PACKAGE@
|
||||||
|
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||||
|
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||||
|
install_sh_DATA = $(install_sh) -c -m 644
|
||||||
|
install_sh_PROGRAM = $(install_sh) -c
|
||||||
|
install_sh_SCRIPT = $(install_sh) -c
|
||||||
|
INSTALL_HEADER = $(INSTALL_DATA)
|
||||||
|
transform = $(program_transform_name)
|
||||||
|
NORMAL_INSTALL = :
|
||||||
|
PRE_INSTALL = :
|
||||||
|
POST_INSTALL = :
|
||||||
|
NORMAL_UNINSTALL = :
|
||||||
|
PRE_UNINSTALL = :
|
||||||
|
POST_UNINSTALL = :
|
||||||
|
subdir = misc
|
||||||
|
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
|
||||||
|
$(srcdir)/apache.conf.in $(srcdir)/logrotate.conf.in \
|
||||||
|
$(srcdir)/syslog.conf.in
|
||||||
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
|
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||||
|
$(top_srcdir)/configure.ac
|
||||||
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
|
$(ACLOCAL_M4)
|
||||||
|
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||||
|
CONFIG_HEADER = $(top_builddir)/config.h
|
||||||
|
CONFIG_CLEAN_FILES = apache.conf logrotate.conf syslog.conf
|
||||||
|
CONFIG_CLEAN_VPATH_FILES =
|
||||||
|
SOURCES =
|
||||||
|
DIST_SOURCES =
|
||||||
|
am__can_run_installinfo = \
|
||||||
|
case $$AM_UPDATE_INFO_DIR in \
|
||||||
|
n|no|NO) false;; \
|
||||||
|
*) (install-info --version) >/dev/null 2>&1;; \
|
||||||
|
esac
|
||||||
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
ACLOCAL = @ACLOCAL@
|
||||||
|
ALLOCA = @ALLOCA@
|
||||||
|
AMTAR = @AMTAR@
|
||||||
|
AUTOCONF = @AUTOCONF@
|
||||||
|
AUTOHEADER = @AUTOHEADER@
|
||||||
|
AUTOMAKE = @AUTOMAKE@
|
||||||
|
AWK = @AWK@
|
||||||
|
BINDIR = @BINDIR@
|
||||||
|
CC = @CC@
|
||||||
|
CCDEPMODE = @CCDEPMODE@
|
||||||
|
CFLAGS = @CFLAGS@
|
||||||
|
CGI_PREFIX = @CGI_PREFIX@
|
||||||
|
CPPFLAGS = @CPPFLAGS@
|
||||||
|
CXX = @CXX@
|
||||||
|
CXXCPP = @CXXCPP@
|
||||||
|
CXXDEPMODE = @CXXDEPMODE@
|
||||||
|
CXXFLAGS = @CXXFLAGS@
|
||||||
|
CYGPATH_W = @CYGPATH_W@
|
||||||
|
DEFS = @DEFS@
|
||||||
|
DEPDIR = @DEPDIR@
|
||||||
|
ECHO_C = @ECHO_C@
|
||||||
|
ECHO_N = @ECHO_N@
|
||||||
|
ECHO_T = @ECHO_T@
|
||||||
|
EGREP = @EGREP@
|
||||||
|
ENABLE_MMAP = @ENABLE_MMAP@
|
||||||
|
EXEEXT = @EXEEXT@
|
||||||
|
EXTRA_LIBS = @EXTRA_LIBS@
|
||||||
|
EXTRA_PERL_LIB = @EXTRA_PERL_LIB@
|
||||||
|
FFMPEG_CFLAGS = @FFMPEG_CFLAGS@
|
||||||
|
FFMPEG_LIBS = @FFMPEG_LIBS@
|
||||||
|
FFMPEG_PREFIX = @FFMPEG_PREFIX@
|
||||||
|
GREP = @GREP@
|
||||||
|
INSTALL = @INSTALL@
|
||||||
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
|
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||||
|
LDFLAGS = @LDFLAGS@
|
||||||
|
LIBDIR = @LIBDIR@
|
||||||
|
LIBOBJS = @LIBOBJS@
|
||||||
|
LIBS = @LIBS@
|
||||||
|
LIB_ARCH = @LIB_ARCH@
|
||||||
|
LN_S = @LN_S@
|
||||||
|
LTLIBOBJS = @LTLIBOBJS@
|
||||||
|
MAKEINFO = @MAKEINFO@
|
||||||
|
MKDIR_P = @MKDIR_P@
|
||||||
|
MYSQL_CFLAGS = @MYSQL_CFLAGS@
|
||||||
|
MYSQL_LIBS = @MYSQL_LIBS@
|
||||||
|
MYSQL_PREFIX = @MYSQL_PREFIX@
|
||||||
|
OBJEXT = @OBJEXT@
|
||||||
|
OPT_FFMPEG = @OPT_FFMPEG@
|
||||||
|
OPT_NETPBM = @OPT_NETPBM@
|
||||||
|
PACKAGE = @PACKAGE@
|
||||||
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
|
PACKAGE_NAME = @PACKAGE_NAME@
|
||||||
|
PACKAGE_STRING = @PACKAGE_STRING@
|
||||||
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
|
PACKAGE_URL = @PACKAGE_URL@
|
||||||
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
|
PATH_BUILD = @PATH_BUILD@
|
||||||
|
PATH_FFMPEG = @PATH_FFMPEG@
|
||||||
|
PATH_NETPBM = @PATH_NETPBM@
|
||||||
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
|
PERL = @PERL@
|
||||||
|
PERL_MM_PARMS = @PERL_MM_PARMS@
|
||||||
|
POW_LIB = @POW_LIB@
|
||||||
|
RANLIB = @RANLIB@
|
||||||
|
SET_MAKE = @SET_MAKE@
|
||||||
|
SHELL = @SHELL@
|
||||||
|
STRIP = @STRIP@
|
||||||
|
SYSCONFDIR = @SYSCONFDIR@
|
||||||
|
TIME_BUILD = @TIME_BUILD@
|
||||||
|
VERSION = @VERSION@
|
||||||
|
WEB_GROUP = @WEB_GROUP@
|
||||||
|
WEB_HOST = @WEB_HOST@
|
||||||
|
WEB_PREFIX = @WEB_PREFIX@
|
||||||
|
WEB_USER = @WEB_USER@
|
||||||
|
ZM_CONFIG = @ZM_CONFIG@
|
||||||
|
ZM_DB_HOST = @ZM_DB_HOST@
|
||||||
|
ZM_DB_NAME = @ZM_DB_NAME@
|
||||||
|
ZM_DB_PASS = @ZM_DB_PASS@
|
||||||
|
ZM_DB_USER = @ZM_DB_USER@
|
||||||
|
ZM_HAS_GNUTLS = @ZM_HAS_GNUTLS@
|
||||||
|
ZM_HAS_GNUTLS_OPENSSL = @ZM_HAS_GNUTLS_OPENSSL@
|
||||||
|
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||||
|
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||||
|
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||||
|
ZM_LOGDIR = @ZM_LOGDIR@
|
||||||
|
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||||
|
ZM_PCRE = @ZM_PCRE@
|
||||||
|
ZM_PID = @ZM_PID@
|
||||||
|
ZM_RUNDIR = @ZM_RUNDIR@
|
||||||
|
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||||
|
ZM_TMPDIR = @ZM_TMPDIR@
|
||||||
|
abs_builddir = @abs_builddir@
|
||||||
|
abs_srcdir = @abs_srcdir@
|
||||||
|
abs_top_builddir = @abs_top_builddir@
|
||||||
|
abs_top_srcdir = @abs_top_srcdir@
|
||||||
|
ac_ct_CC = @ac_ct_CC@
|
||||||
|
ac_ct_CXX = @ac_ct_CXX@
|
||||||
|
am__include = @am__include@
|
||||||
|
am__leading_dot = @am__leading_dot@
|
||||||
|
am__quote = @am__quote@
|
||||||
|
am__tar = @am__tar@
|
||||||
|
am__untar = @am__untar@
|
||||||
|
bindir = @bindir@
|
||||||
|
build_alias = @build_alias@
|
||||||
|
builddir = @builddir@
|
||||||
|
datadir = @datadir@
|
||||||
|
datarootdir = @datarootdir@
|
||||||
|
docdir = @docdir@
|
||||||
|
dvidir = @dvidir@
|
||||||
|
exec_prefix = @exec_prefix@
|
||||||
|
host_alias = @host_alias@
|
||||||
|
htmldir = @htmldir@
|
||||||
|
includedir = @includedir@
|
||||||
|
infodir = @infodir@
|
||||||
|
install_sh = @install_sh@
|
||||||
|
libdir = @libdir@
|
||||||
|
libexecdir = @libexecdir@
|
||||||
|
localedir = @localedir@
|
||||||
|
localstatedir = @localstatedir@
|
||||||
|
mandir = @mandir@
|
||||||
|
mkdir_p = @mkdir_p@
|
||||||
|
oldincludedir = @oldincludedir@
|
||||||
|
pdfdir = @pdfdir@
|
||||||
|
prefix = @prefix@
|
||||||
|
program_transform_name = @program_transform_name@
|
||||||
|
psdir = @psdir@
|
||||||
|
sbindir = @sbindir@
|
||||||
|
sharedstatedir = @sharedstatedir@
|
||||||
|
srcdir = @srcdir@
|
||||||
|
sysconfdir = @sysconfdir@
|
||||||
|
target_alias = @target_alias@
|
||||||
|
top_build_prefix = @top_build_prefix@
|
||||||
|
top_builddir = @top_builddir@
|
||||||
|
top_srcdir = @top_srcdir@
|
||||||
|
AUTOMAKE_OPTIONS = gnu
|
||||||
|
EXTRA_DIST = \
|
||||||
|
apache.conf.in \
|
||||||
|
logrotate.conf.in \
|
||||||
|
syslog.conf.in
|
||||||
|
|
||||||
|
all: all-am
|
||||||
|
|
||||||
|
.SUFFIXES:
|
||||||
|
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||||
|
@for dep in $?; do \
|
||||||
|
case '$(am__configure_deps)' in \
|
||||||
|
*$$dep*) \
|
||||||
|
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||||
|
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||||
|
exit 1;; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu misc/Makefile'; \
|
||||||
|
$(am__cd) $(top_srcdir) && \
|
||||||
|
$(AUTOMAKE) --gnu misc/Makefile
|
||||||
|
.PRECIOUS: Makefile
|
||||||
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||||
|
@case '$?' in \
|
||||||
|
*config.status*) \
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||||
|
*) \
|
||||||
|
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||||
|
esac;
|
||||||
|
|
||||||
|
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
|
||||||
|
$(top_srcdir)/configure: $(am__configure_deps)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
$(am__aclocal_m4_deps):
|
||||||
|
apache.conf: $(top_builddir)/config.status $(srcdir)/apache.conf.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||||
|
logrotate.conf: $(top_builddir)/config.status $(srcdir)/logrotate.conf.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||||
|
syslog.conf: $(top_builddir)/config.status $(srcdir)/syslog.conf.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||||
|
tags: TAGS
|
||||||
|
TAGS:
|
||||||
|
|
||||||
|
ctags: CTAGS
|
||||||
|
CTAGS:
|
||||||
|
|
||||||
|
|
||||||
|
distdir: $(DISTFILES)
|
||||||
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
|
list='$(DISTFILES)'; \
|
||||||
|
dist_files=`for file in $$list; do echo $$file; done | \
|
||||||
|
sed -e "s|^$$srcdirstrip/||;t" \
|
||||||
|
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||||
|
case $$dist_files in \
|
||||||
|
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||||
|
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||||
|
sort -u` ;; \
|
||||||
|
esac; \
|
||||||
|
for file in $$dist_files; do \
|
||||||
|
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||||
|
if test -d $$d/$$file; then \
|
||||||
|
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
|
if test -d "$(distdir)/$$file"; then \
|
||||||
|
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||||
|
fi; \
|
||||||
|
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||||
|
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||||
|
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||||
|
fi; \
|
||||||
|
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||||
|
else \
|
||||||
|
test -f "$(distdir)/$$file" \
|
||||||
|
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||||
|
|| exit 1; \
|
||||||
|
fi; \
|
||||||
|
done
|
||||||
|
check-am: all-am
|
||||||
|
check: check-am
|
||||||
|
all-am: Makefile
|
||||||
|
installdirs:
|
||||||
|
install: install-am
|
||||||
|
install-exec: install-exec-am
|
||||||
|
install-data: install-data-am
|
||||||
|
uninstall: uninstall-am
|
||||||
|
|
||||||
|
install-am: all-am
|
||||||
|
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||||
|
|
||||||
|
installcheck: installcheck-am
|
||||||
|
install-strip:
|
||||||
|
if test -z '$(STRIP)'; then \
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||||
|
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||||
|
install; \
|
||||||
|
else \
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||||
|
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||||
|
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||||
|
fi
|
||||||
|
mostlyclean-generic:
|
||||||
|
|
||||||
|
clean-generic:
|
||||||
|
|
||||||
|
distclean-generic:
|
||||||
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||||
|
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||||
|
|
||||||
|
maintainer-clean-generic:
|
||||||
|
@echo "This command is intended for maintainers to use"
|
||||||
|
@echo "it deletes files that may require special tools to rebuild."
|
||||||
|
clean: clean-am
|
||||||
|
|
||||||
|
clean-am: clean-generic mostlyclean-am
|
||||||
|
|
||||||
|
distclean: distclean-am
|
||||||
|
-rm -f Makefile
|
||||||
|
distclean-am: clean-am distclean-generic
|
||||||
|
|
||||||
|
dvi: dvi-am
|
||||||
|
|
||||||
|
dvi-am:
|
||||||
|
|
||||||
|
html: html-am
|
||||||
|
|
||||||
|
html-am:
|
||||||
|
|
||||||
|
info: info-am
|
||||||
|
|
||||||
|
info-am:
|
||||||
|
|
||||||
|
install-data-am:
|
||||||
|
|
||||||
|
install-dvi: install-dvi-am
|
||||||
|
|
||||||
|
install-dvi-am:
|
||||||
|
|
||||||
|
install-exec-am:
|
||||||
|
|
||||||
|
install-html: install-html-am
|
||||||
|
|
||||||
|
install-html-am:
|
||||||
|
|
||||||
|
install-info: install-info-am
|
||||||
|
|
||||||
|
install-info-am:
|
||||||
|
|
||||||
|
install-man:
|
||||||
|
|
||||||
|
install-pdf: install-pdf-am
|
||||||
|
|
||||||
|
install-pdf-am:
|
||||||
|
|
||||||
|
install-ps: install-ps-am
|
||||||
|
|
||||||
|
install-ps-am:
|
||||||
|
|
||||||
|
installcheck-am:
|
||||||
|
|
||||||
|
maintainer-clean: maintainer-clean-am
|
||||||
|
-rm -f Makefile
|
||||||
|
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||||
|
|
||||||
|
mostlyclean: mostlyclean-am
|
||||||
|
|
||||||
|
mostlyclean-am: mostlyclean-generic
|
||||||
|
|
||||||
|
pdf: pdf-am
|
||||||
|
|
||||||
|
pdf-am:
|
||||||
|
|
||||||
|
ps: ps-am
|
||||||
|
|
||||||
|
ps-am:
|
||||||
|
|
||||||
|
uninstall-am:
|
||||||
|
|
||||||
|
.MAKE: install-am install-strip
|
||||||
|
|
||||||
|
.PHONY: all all-am check check-am clean clean-generic distclean \
|
||||||
|
distclean-generic distdir dvi dvi-am html html-am info info-am \
|
||||||
|
install install-am install-data install-data-am install-dvi \
|
||||||
|
install-dvi-am install-exec install-exec-am install-html \
|
||||||
|
install-html-am install-info install-info-am install-man \
|
||||||
|
install-pdf install-pdf-am install-ps install-ps-am \
|
||||||
|
install-strip installcheck installcheck-am installdirs \
|
||||||
|
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||||
|
mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
|
||||||
|
|
||||||
|
|
||||||
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
.NOEXPORT:
|
|
@ -0,0 +1,39 @@
|
||||||
|
#
|
||||||
|
# PLEASE NOTE THAT THIS FILE IS INTENDED FOR GUIDANCE ONLY AND MAY NOT BE APPROPRIATE FOR YOUR DISTRIBUTION
|
||||||
|
#
|
||||||
|
# Sample configuration file for running ZoneMinder as name based virtual host
|
||||||
|
# Some values may need to manually adjusted to suit your setup
|
||||||
|
#
|
||||||
|
<VirtualHost *:80>
|
||||||
|
ServerName zm.local
|
||||||
|
ServerAdmin webmaster@localhost
|
||||||
|
|
||||||
|
DocumentRoot "/usr/share/zoneminder"
|
||||||
|
<Directory "/usr/share/zoneminder">
|
||||||
|
Options FollowSymLinks
|
||||||
|
AllowOverride All
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
ScriptAlias /cgi-bin/ "/usr/lib/cgi-bin"
|
||||||
|
<Directory "/usr/lib/cgi-bin">
|
||||||
|
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
|
||||||
|
AllowOverride All
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
# Use the first option to have Apache logs written to the general log
|
||||||
|
# directory, or the second to have them written to the regular Apache
|
||||||
|
# directory (you may have to change the path to that used on your system)
|
||||||
|
ErrorLog /var/log/zm/apache-error.log
|
||||||
|
ErrorLog /var/log/httpd/zm-error.log
|
||||||
|
|
||||||
|
# Possible values include: debug, info, notice, warn, error, crit,
|
||||||
|
# alert, emerg.
|
||||||
|
LogLevel warn
|
||||||
|
|
||||||
|
# Use the first option to have Apache logs written to the general log
|
||||||
|
# directory, or the second to have them written to the regular Apache
|
||||||
|
# directory (you may have to change the path to that used on your system)
|
||||||
|
CustomLog /var/log/zm/apache-access.log combined
|
||||||
|
CustomLog /var/log/httpd/zm-access.log combined
|
||||||
|
|
||||||
|
</VirtualHost>
|
|
@ -0,0 +1,39 @@
|
||||||
|
#
|
||||||
|
# PLEASE NOTE THAT THIS FILE IS INTENDED FOR GUIDANCE ONLY AND MAY NOT BE APPROPRIATE FOR YOUR DISTRIBUTION
|
||||||
|
#
|
||||||
|
# Sample configuration file for running ZoneMinder as name based virtual host
|
||||||
|
# Some values may need to manually adjusted to suit your setup
|
||||||
|
#
|
||||||
|
<VirtualHost *:80>
|
||||||
|
ServerName @WEB_HOST@
|
||||||
|
ServerAdmin webmaster@localhost
|
||||||
|
|
||||||
|
DocumentRoot "@WEB_PREFIX@"
|
||||||
|
<Directory "@WEB_PREFIX@">
|
||||||
|
Options FollowSymLinks
|
||||||
|
AllowOverride All
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
ScriptAlias /cgi-bin/ "@CGI_PREFIX@"
|
||||||
|
<Directory "@CGI_PREFIX@">
|
||||||
|
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
|
||||||
|
AllowOverride All
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
# Use the first option to have Apache logs written to the general log
|
||||||
|
# directory, or the second to have them written to the regular Apache
|
||||||
|
# directory (you may have to change the path to that used on your system)
|
||||||
|
ErrorLog @ZM_LOGDIR@/apache-error.log
|
||||||
|
ErrorLog /var/log/httpd/zm-error.log
|
||||||
|
|
||||||
|
# Possible values include: debug, info, notice, warn, error, crit,
|
||||||
|
# alert, emerg.
|
||||||
|
LogLevel warn
|
||||||
|
|
||||||
|
# Use the first option to have Apache logs written to the general log
|
||||||
|
# directory, or the second to have them written to the regular Apache
|
||||||
|
# directory (you may have to change the path to that used on your system)
|
||||||
|
CustomLog @ZM_LOGDIR@/apache-access.log combined
|
||||||
|
CustomLog /var/log/httpd/zm-access.log combined
|
||||||
|
|
||||||
|
</VirtualHost>
|
|
@ -0,0 +1,19 @@
|
||||||
|
#
|
||||||
|
# PLEASE NOTE THAT THIS FILE IS INTENDED FOR GUIDANCE ONLY AND MAY NOT BE APPROPRIATE FOR YOUR DISTRIBUTION
|
||||||
|
#
|
||||||
|
# Sample logrotate file for ZoneMinder. Copy this to /etc/logrotate.d/zm or similar
|
||||||
|
# if you wish your system to prevent your log files from growing too large.
|
||||||
|
# You can remove the 'kill' of syslogd if you have another logrotate file that does
|
||||||
|
# this but in that case you will want this file run first, so it will need to be
|
||||||
|
# named something lexically ahead of the other logrotate file, for example 0zm to
|
||||||
|
# ensure it is executed first.
|
||||||
|
#
|
||||||
|
/var/log/zm/*.log {
|
||||||
|
missingok
|
||||||
|
notifempty
|
||||||
|
sharedscripts
|
||||||
|
postrotate
|
||||||
|
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
|
||||||
|
/usr/bin/zmpkg.pl logrot 2> /dev/null > /dev/null || true
|
||||||
|
endscript
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
#
|
||||||
|
# PLEASE NOTE THAT THIS FILE IS INTENDED FOR GUIDANCE ONLY AND MAY NOT BE APPROPRIATE FOR YOUR DISTRIBUTION
|
||||||
|
#
|
||||||
|
# Sample logrotate file for ZoneMinder. Copy this to /etc/logrotate.d/zm or similar
|
||||||
|
# if you wish your system to prevent your log files from growing too large.
|
||||||
|
# You can remove the 'kill' of syslogd if you have another logrotate file that does
|
||||||
|
# this but in that case you will want this file run first, so it will need to be
|
||||||
|
# named something lexically ahead of the other logrotate file, for example 0zm to
|
||||||
|
# ensure it is executed first.
|
||||||
|
#
|
||||||
|
@ZM_LOGDIR@/*.log {
|
||||||
|
missingok
|
||||||
|
notifempty
|
||||||
|
sharedscripts
|
||||||
|
postrotate
|
||||||
|
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
|
||||||
|
@BINDIR@/zmpkg.pl logrot 2> /dev/null > /dev/null || true
|
||||||
|
endscript
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
#
|
||||||
|
# PLEASE NOTE THAT THIS FILE IS INTENDED FOR GUIDANCE ONLY AND MAY NOT BE APPROPRIATE FOR YOUR DISTRIBUTION
|
||||||
|
#
|
||||||
|
# Sample instruction to put in /etc/syslog.conf (or rsyslog.conf) to redirect
|
||||||
|
# ZoneMinder syslog message to a separate file, apart from warnings and errors.
|
||||||
|
# This is done by assigning ZoneMinder messages to one of the user logging facilities
|
||||||
|
# which are local0-7. In this example local1 is used but if this is used by other
|
||||||
|
# packages then this can be changed to another which is unused (e.g. local3).
|
||||||
|
#
|
||||||
|
|
||||||
|
# Save ZoneMinder messages to zm.log, this uses the local1 facility,
|
||||||
|
local1.* /var/log/zm/zm.log
|
||||||
|
|
||||||
|
# You will need to edit the existing config line that directs to /var/log/messages
|
||||||
|
# or /var/log/syslog and insert the 'local1.!*;local1.warning' directives. This
|
||||||
|
# first excludes all local1 messages, and then re-enables local1 messages of warning
|
||||||
|
# level or above. Remove the second part if you want no ZoneMinder messages to go
|
||||||
|
# to your system logs at all.
|
||||||
|
*.info;local1.!*;local1.warning;mail.none;news.none;authpriv.none;cron.none /var/log/messages
|
|
@ -0,0 +1,19 @@
|
||||||
|
#
|
||||||
|
# PLEASE NOTE THAT THIS FILE IS INTENDED FOR GUIDANCE ONLY AND MAY NOT BE APPROPRIATE FOR YOUR DISTRIBUTION
|
||||||
|
#
|
||||||
|
# Sample instruction to put in /etc/syslog.conf (or rsyslog.conf) to redirect
|
||||||
|
# ZoneMinder syslog message to a separate file, apart from warnings and errors.
|
||||||
|
# This is done by assigning ZoneMinder messages to one of the user logging facilities
|
||||||
|
# which are local0-7. In this example local1 is used but if this is used by other
|
||||||
|
# packages then this can be changed to another which is unused (e.g. local3).
|
||||||
|
#
|
||||||
|
|
||||||
|
# Save ZoneMinder messages to zm.log, this uses the local1 facility,
|
||||||
|
local1.* @ZM_LOGDIR@/zm.log
|
||||||
|
|
||||||
|
# You will need to edit the existing config line that directs to /var/log/messages
|
||||||
|
# or /var/log/syslog and insert the 'local1.!*;local1.warning' directives. This
|
||||||
|
# first excludes all local1 messages, and then re-enables local1 messages of warning
|
||||||
|
# level or above. Remove the second part if you want no ZoneMinder messages to go
|
||||||
|
# to your system logs at all.
|
||||||
|
*.info;local1.!*;local1.warning;mail.none;news.none;authpriv.none;cron.none /var/log/messages
|
|
@ -0,0 +1,336 @@
|
||||||
|
#! /bin/sh
|
||||||
|
# Common stub for a few missing GNU programs while installing.
|
||||||
|
# Copyright (C) 1996, 1997, 1999, 2000, 2002 Free Software Foundation, Inc.
|
||||||
|
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
||||||
|
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||||
|
# 02111-1307, USA.
|
||||||
|
|
||||||
|
# As a special exception to the GNU General Public License, if you
|
||||||
|
# distribute this file as part of a program that contains a
|
||||||
|
# configuration script generated by Autoconf, you may include it under
|
||||||
|
# the same distribution terms that you use for the rest of that program.
|
||||||
|
|
||||||
|
if test $# -eq 0; then
|
||||||
|
echo 1>&2 "Try \`$0 --help' for more information"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
run=:
|
||||||
|
|
||||||
|
# In the cases where this matters, `missing' is being run in the
|
||||||
|
# srcdir already.
|
||||||
|
if test -f configure.ac; then
|
||||||
|
configure_ac=configure.ac
|
||||||
|
else
|
||||||
|
configure_ac=configure.in
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
--run)
|
||||||
|
# Try to run requested program, and just exit if it succeeds.
|
||||||
|
run=
|
||||||
|
shift
|
||||||
|
"$@" && exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# If it does not exist, or fails to run (possibly an outdated version),
|
||||||
|
# try to emulate it.
|
||||||
|
case "$1" in
|
||||||
|
|
||||||
|
-h|--h|--he|--hel|--help)
|
||||||
|
echo "\
|
||||||
|
$0 [OPTION]... PROGRAM [ARGUMENT]...
|
||||||
|
|
||||||
|
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
|
||||||
|
error status if there is no known handling for PROGRAM.
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-h, --help display this help and exit
|
||||||
|
-v, --version output version information and exit
|
||||||
|
--run try to run the given command, and emulate it if it fails
|
||||||
|
|
||||||
|
Supported PROGRAM values:
|
||||||
|
aclocal touch file \`aclocal.m4'
|
||||||
|
autoconf touch file \`configure'
|
||||||
|
autoheader touch file \`config.h.in'
|
||||||
|
automake touch all \`Makefile.in' files
|
||||||
|
bison create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||||
|
flex create \`lex.yy.c', if possible, from existing .c
|
||||||
|
help2man touch the output file
|
||||||
|
lex create \`lex.yy.c', if possible, from existing .c
|
||||||
|
makeinfo touch the output file
|
||||||
|
tar try tar, gnutar, gtar, then tar without non-portable flags
|
||||||
|
yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
|
||||||
|
;;
|
||||||
|
|
||||||
|
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
|
||||||
|
echo "missing 0.4 - GNU automake"
|
||||||
|
;;
|
||||||
|
|
||||||
|
-*)
|
||||||
|
echo 1>&2 "$0: Unknown \`$1' option"
|
||||||
|
echo 1>&2 "Try \`$0 --help' for more information"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
aclocal*)
|
||||||
|
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||||
|
# We have it, but it failed.
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is missing on your system. You should only need it if
|
||||||
|
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
|
||||||
|
to install the \`Automake' and \`Perl' packages. Grab them from
|
||||||
|
any GNU archive site."
|
||||||
|
touch aclocal.m4
|
||||||
|
;;
|
||||||
|
|
||||||
|
autoconf)
|
||||||
|
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||||
|
# We have it, but it failed.
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is missing on your system. You should only need it if
|
||||||
|
you modified \`${configure_ac}'. You might want to install the
|
||||||
|
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
|
||||||
|
archive site."
|
||||||
|
touch configure
|
||||||
|
;;
|
||||||
|
|
||||||
|
autoheader)
|
||||||
|
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||||
|
# We have it, but it failed.
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is missing on your system. You should only need it if
|
||||||
|
you modified \`acconfig.h' or \`${configure_ac}'. You might want
|
||||||
|
to install the \`Autoconf' and \`GNU m4' packages. Grab them
|
||||||
|
from any GNU archive site."
|
||||||
|
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
|
||||||
|
test -z "$files" && files="config.h"
|
||||||
|
touch_files=
|
||||||
|
for f in $files; do
|
||||||
|
case "$f" in
|
||||||
|
*:*) touch_files="$touch_files "`echo "$f" |
|
||||||
|
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
|
||||||
|
*) touch_files="$touch_files $f.in";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
touch $touch_files
|
||||||
|
;;
|
||||||
|
|
||||||
|
automake*)
|
||||||
|
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||||
|
# We have it, but it failed.
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is missing on your system. You should only need it if
|
||||||
|
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
|
||||||
|
You might want to install the \`Automake' and \`Perl' packages.
|
||||||
|
Grab them from any GNU archive site."
|
||||||
|
find . -type f -name Makefile.am -print |
|
||||||
|
sed 's/\.am$/.in/' |
|
||||||
|
while read f; do touch "$f"; done
|
||||||
|
;;
|
||||||
|
|
||||||
|
autom4te)
|
||||||
|
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||||
|
# We have it, but it failed.
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is needed, and you do not seem to have it handy on your
|
||||||
|
system. You might have modified some files without having the
|
||||||
|
proper tools for further handling them.
|
||||||
|
You can get \`$1Help2man' as part of \`Autoconf' from any GNU
|
||||||
|
archive site."
|
||||||
|
|
||||||
|
file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
|
||||||
|
test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
|
||||||
|
if test -f "$file"; then
|
||||||
|
touch $file
|
||||||
|
else
|
||||||
|
test -z "$file" || exec >$file
|
||||||
|
echo "#! /bin/sh"
|
||||||
|
echo "# Created by GNU Automake missing as a replacement of"
|
||||||
|
echo "# $ $@"
|
||||||
|
echo "exit 0"
|
||||||
|
chmod +x $file
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
bison|yacc)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is missing on your system. You should only need it if
|
||||||
|
you modified a \`.y' file. You may need the \`Bison' package
|
||||||
|
in order for those modifications to take effect. You can get
|
||||||
|
\`Bison' from any GNU archive site."
|
||||||
|
rm -f y.tab.c y.tab.h
|
||||||
|
if [ $# -ne 1 ]; then
|
||||||
|
eval LASTARG="\${$#}"
|
||||||
|
case "$LASTARG" in
|
||||||
|
*.y)
|
||||||
|
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
|
||||||
|
if [ -f "$SRCFILE" ]; then
|
||||||
|
cp "$SRCFILE" y.tab.c
|
||||||
|
fi
|
||||||
|
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
|
||||||
|
if [ -f "$SRCFILE" ]; then
|
||||||
|
cp "$SRCFILE" y.tab.h
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
if [ ! -f y.tab.h ]; then
|
||||||
|
echo >y.tab.h
|
||||||
|
fi
|
||||||
|
if [ ! -f y.tab.c ]; then
|
||||||
|
echo 'main() { return 0; }' >y.tab.c
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
lex|flex)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is missing on your system. You should only need it if
|
||||||
|
you modified a \`.l' file. You may need the \`Flex' package
|
||||||
|
in order for those modifications to take effect. You can get
|
||||||
|
\`Flex' from any GNU archive site."
|
||||||
|
rm -f lex.yy.c
|
||||||
|
if [ $# -ne 1 ]; then
|
||||||
|
eval LASTARG="\${$#}"
|
||||||
|
case "$LASTARG" in
|
||||||
|
*.l)
|
||||||
|
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
|
||||||
|
if [ -f "$SRCFILE" ]; then
|
||||||
|
cp "$SRCFILE" lex.yy.c
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
if [ ! -f lex.yy.c ]; then
|
||||||
|
echo 'main() { return 0; }' >lex.yy.c
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
help2man)
|
||||||
|
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||||
|
# We have it, but it failed.
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is missing on your system. You should only need it if
|
||||||
|
you modified a dependency of a manual page. You may need the
|
||||||
|
\`Help2man' package in order for those modifications to take
|
||||||
|
effect. You can get \`Help2man' from any GNU archive site."
|
||||||
|
|
||||||
|
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
|
||||||
|
if test -z "$file"; then
|
||||||
|
file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
|
||||||
|
fi
|
||||||
|
if [ -f "$file" ]; then
|
||||||
|
touch $file
|
||||||
|
else
|
||||||
|
test -z "$file" || exec >$file
|
||||||
|
echo ".ab help2man is required to generate this page"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
makeinfo)
|
||||||
|
if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
|
||||||
|
# We have makeinfo, but it failed.
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is missing on your system. You should only need it if
|
||||||
|
you modified a \`.texi' or \`.texinfo' file, or any other file
|
||||||
|
indirectly affecting the aspect of the manual. The spurious
|
||||||
|
call might also be the consequence of using a buggy \`make' (AIX,
|
||||||
|
DU, IRIX). You might want to install the \`Texinfo' package or
|
||||||
|
the \`GNU make' package. Grab either from any GNU archive site."
|
||||||
|
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
|
||||||
|
if test -z "$file"; then
|
||||||
|
file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
|
||||||
|
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
|
||||||
|
fi
|
||||||
|
touch $file
|
||||||
|
;;
|
||||||
|
|
||||||
|
tar)
|
||||||
|
shift
|
||||||
|
if test -n "$run"; then
|
||||||
|
echo 1>&2 "ERROR: \`tar' requires --run"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# We have already tried tar in the generic part.
|
||||||
|
# Look for gnutar/gtar before invocation to avoid ugly error
|
||||||
|
# messages.
|
||||||
|
if (gnutar --version > /dev/null 2>&1); then
|
||||||
|
gnutar "$@" && exit 0
|
||||||
|
fi
|
||||||
|
if (gtar --version > /dev/null 2>&1); then
|
||||||
|
gtar "$@" && exit 0
|
||||||
|
fi
|
||||||
|
firstarg="$1"
|
||||||
|
if shift; then
|
||||||
|
case "$firstarg" in
|
||||||
|
*o*)
|
||||||
|
firstarg=`echo "$firstarg" | sed s/o//`
|
||||||
|
tar "$firstarg" "$@" && exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
case "$firstarg" in
|
||||||
|
*h*)
|
||||||
|
firstarg=`echo "$firstarg" | sed s/h//`
|
||||||
|
tar "$firstarg" "$@" && exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: I can't seem to be able to run \`tar' with the given arguments.
|
||||||
|
You may want to install GNU tar or Free paxutils, or check the
|
||||||
|
command line arguments."
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is needed, and you do not seem to have it handy on your
|
||||||
|
system. You might have modified some files without having the
|
||||||
|
proper tools for further handling them. Check the \`README' file,
|
||||||
|
it often tells you about the needed prerequirements for installing
|
||||||
|
this package. You may also peek at any GNU archive site, in case
|
||||||
|
some other package would contain this missing \`$1' program."
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
|
@ -0,0 +1,40 @@
|
||||||
|
#! /bin/sh
|
||||||
|
# mkinstalldirs --- make directory hierarchy
|
||||||
|
# Author: Noah Friedman <friedman@prep.ai.mit.edu>
|
||||||
|
# Created: 1993-05-16
|
||||||
|
# Public domain
|
||||||
|
|
||||||
|
# $Id$
|
||||||
|
|
||||||
|
errstatus=0
|
||||||
|
|
||||||
|
for file
|
||||||
|
do
|
||||||
|
set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
|
||||||
|
shift
|
||||||
|
|
||||||
|
pathcomp=
|
||||||
|
for d
|
||||||
|
do
|
||||||
|
pathcomp="$pathcomp$d"
|
||||||
|
case "$pathcomp" in
|
||||||
|
-* ) pathcomp=./$pathcomp ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if test ! -d "$pathcomp"; then
|
||||||
|
echo "mkdir $pathcomp"
|
||||||
|
|
||||||
|
mkdir "$pathcomp" || lasterr=$?
|
||||||
|
|
||||||
|
if test ! -d "$pathcomp"; then
|
||||||
|
errstatus=$lasterr
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
pathcomp="$pathcomp/"
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
exit $errstatus
|
||||||
|
|
||||||
|
# mkinstalldirs ends here
|
Binary file not shown.
|
@ -0,0 +1,60 @@
|
||||||
|
#/***********************************************************************
|
||||||
|
# This file is part of libzm_anpr_plugin, License Plate REcognition.
|
||||||
|
#
|
||||||
|
# Copyright (C) 2012 Franco (nextime) Lanza <nextime@nexlab.it>
|
||||||
|
#
|
||||||
|
# LiPRec is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# LiPRec is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with LiPRec. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
OBJECTS = anpr_plugin.o
|
||||||
|
SOBJ=anpr_plugin.so
|
||||||
|
|
||||||
|
ZMSRC = zm_detector.cpp zm_config.cpp zm_poly.cpp zm_zone.cpp zm_image.cpp zm_db.cpp
|
||||||
|
ZMSRC+= zm_logger.cpp zm_utils.cpp zm_thread.cpp zm_jpeg.cpp
|
||||||
|
ZMOBJ = $(ZMSRC:.cpp=.o)
|
||||||
|
|
||||||
|
#CPPFLAGS= -fpermissive -O3 -march=native -Wall -lliprec -msse2
|
||||||
|
CPPFLAGS= -fpermissive -O3 -Wall -lliprec -msse2
|
||||||
|
CPPFLAGS+=-D__STDC_CONSTANT_MACROS -DZM_FFMPEG_CVS -DHAVE_LIBCRYPTO
|
||||||
|
CPPFLAGS+=-DJPEG_INCLUDE_DIR=../../../../../libjpeg-turbo-1.2.1/.libs/
|
||||||
|
LDFLAGS=-L. -L../../../../../libjpeg-turbo-1.2.1/.libs/
|
||||||
|
LDFLAGS+=-I../../src/ -I../../ -I./
|
||||||
|
LDFLAGS+=-L/usr/lib -I/usr/include -I../../../../../libjpeg-turbo-1.2.1/
|
||||||
|
LDFLAGS+=$(shell pkg-config --cflags opencv)
|
||||||
|
|
||||||
|
LINKFLAGS=$(shell pkg-config --libs opencv)
|
||||||
|
LINKFLAGS+= -lliprec -lboost_program_options -lmysqlclient -lpthread -ljpeg -lz
|
||||||
|
|
||||||
|
|
||||||
|
all: anpr_plugin.o $(SOBJ)
|
||||||
|
|
||||||
|
|
||||||
|
$(ZMOBJ): %.o : ../../src/%.cpp
|
||||||
|
$(CXX) $^ -fPIC -c -o $@ ${LDFLAGS} $(CPPFLAGS)
|
||||||
|
|
||||||
|
anpr_plugin.o: anpr_plugin.cpp
|
||||||
|
$(CXX) anpr_plugin.cpp -fPIC -c -o anpr_plugin.o ${LDFLAGS} $(CPPFLAGS)
|
||||||
|
|
||||||
|
anpr_plugin.so: $(ZMOBJ) anpr_plugin.o
|
||||||
|
$(CXX) -o anpr_plugin.so -Wall anpr_plugin.o -shared $(ZMOBJ) $(LINKFLAGS)
|
||||||
|
cp anpr_plugin.so libzm_plugin_anpr.zmpl
|
||||||
|
|
||||||
|
install: anpr_plugin.o $(SOBJ)
|
||||||
|
install -m 0644 libzm_plugin_anpr.zmpl /usr/share/zm/libzm_plugin_anpr.zmpl
|
||||||
|
$(shell cat plugin.conf >> /usr/share/zm/plugin.conf)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f $(OBJECTS) $(ZMOBJ) $(SOBJ) libzm_plugin_anpr.zmpl
|
||||||
|
|
|
@ -0,0 +1,250 @@
|
||||||
|
/***********************************************************************
|
||||||
|
This file is part of libzm_anpr_plugin, License Plate REcognition.
|
||||||
|
|
||||||
|
Copyright (C) 2012 Franco (nextime) Lanza <nextime@nexlab.it>
|
||||||
|
|
||||||
|
LiPRec is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Affero General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
LiPRec is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Affero General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Affero General Public License
|
||||||
|
along with LiPRec. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
#define LIST LIPREC_LIST // This is a workaround to avoid the conflict
|
||||||
|
#include <liprec.h> // of typedef LIST in both mysql and tesseract headers...
|
||||||
|
//#include "opencv2/highgui/highgui.hpp"
|
||||||
|
#undef LIST
|
||||||
|
#include "anpr_plugin.h"
|
||||||
|
|
||||||
|
//! Retrieve the engine version we're going to expect
|
||||||
|
extern "C" int getEngineVersion()
|
||||||
|
{
|
||||||
|
return ZM_ENGINE_VERSION;
|
||||||
|
}
|
||||||
|
|
||||||
|
//! Tells us to register our functionality to an engine kernel
|
||||||
|
extern "C" void registerPlugin(PluginManager &PlM, string sPluginName)
|
||||||
|
{
|
||||||
|
PlM.getImageAnalyser().addDetector(
|
||||||
|
auto_ptr<Detector>(new ANPRPlugin(sPluginName))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
using namespace cv;
|
||||||
|
//using namespace liprec;
|
||||||
|
|
||||||
|
ANPRPlugin::ANPRPlugin()
|
||||||
|
: Detector(),
|
||||||
|
m_nMinObjSize(DEFAULT_DETECTOR_MIN_OBJECT_SIZE),
|
||||||
|
m_nMaxObjSize(DEFAULT_DETECTOR_MAX_OBJECT_SIZE)
|
||||||
|
{
|
||||||
|
m_sDetectionCause = DETECTED_CAUSE;
|
||||||
|
m_sLogPrefix = LOG_PREFIX;
|
||||||
|
|
||||||
|
|
||||||
|
log(LOG_NOTICE, "License Plate Recognition Plugin\'s Object has been created.");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ANPRPlugin::ANPRPlugin(string sPluginName)
|
||||||
|
: Detector(sPluginName),
|
||||||
|
m_nMinObjSize(DEFAULT_DETECTOR_MIN_OBJECT_SIZE),
|
||||||
|
m_nMaxObjSize(DEFAULT_DETECTOR_MAX_OBJECT_SIZE)
|
||||||
|
{
|
||||||
|
m_sDetectionCause = DETECTED_CAUSE;
|
||||||
|
m_sLogPrefix = LOG_PREFIX;
|
||||||
|
|
||||||
|
log(LOG_NOTICE, "License Plate Recognition Plugin\'s Object has been created.");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*! \fn ANPRPlugin::loadConfig(string sConfigFileName)
|
||||||
|
* \param sConfigFileName is path to configuration to load parameters from
|
||||||
|
*/
|
||||||
|
void ANPRPlugin::loadConfig(string sConfigFileName)
|
||||||
|
{
|
||||||
|
options_description config_file("Configuration file options.");
|
||||||
|
variables_map vm;
|
||||||
|
config_file.add_options()
|
||||||
|
((m_sConfigSectionName + string(".min-obj-size")).c_str(),
|
||||||
|
value<int>()->default_value(DEFAULT_DETECTOR_MIN_OBJECT_SIZE))
|
||||||
|
((m_sConfigSectionName + string(".max-obj-size")).c_str(),
|
||||||
|
value<int>()->default_value(DEFAULT_DETECTOR_MAX_OBJECT_SIZE))
|
||||||
|
((m_sConfigSectionName + string(".alarm-score")).c_str(),
|
||||||
|
value<int>()->default_value(DEFAULT_ALARM_SCORE))
|
||||||
|
((m_sConfigSectionName + string(".det-cause")).c_str(),
|
||||||
|
value<string>()->default_value(DETECTED_CAUSE))
|
||||||
|
((m_sConfigSectionName + string(".log-prefix")).c_str(),
|
||||||
|
value<string>()->default_value(LOG_PREFIX))
|
||||||
|
;
|
||||||
|
ifstream ifs(sConfigFileName.c_str());
|
||||||
|
store(parse_config_file(ifs, config_file, true), vm);
|
||||||
|
notify(vm);
|
||||||
|
|
||||||
|
m_nMinObjSize = vm[(m_sConfigSectionName + string(".min-obj-size")).c_str()].as<int>();
|
||||||
|
m_nMaxObjSize = vm[(m_sConfigSectionName + string(".max-obj-size")).c_str()].as<int>();
|
||||||
|
m_nAlarmScore = vm[(m_sConfigSectionName + string(".alarm-score")).c_str()].as<int>();
|
||||||
|
|
||||||
|
m_sDetectionCause = vm[(m_sConfigSectionName + string(".det-cause")).c_str()].as<string>();
|
||||||
|
m_sLogPrefix = vm[(m_sConfigSectionName + string(".log-prefix")).c_str()].as<string>();
|
||||||
|
zmLoadConfig();
|
||||||
|
log(LOG_NOTICE, "License Plate Recognition Plugin\'s Object is configured.");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ANPRPlugin::~ANPRPlugin()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*! \fn ANPRPlugin::ANPRPlugin(const ANPRPlugin& source)
|
||||||
|
* \param source is the object for copying
|
||||||
|
*/
|
||||||
|
ANPRPlugin::ANPRPlugin(const ANPRPlugin& source)
|
||||||
|
: Detector(source),
|
||||||
|
m_nMinObjSize(source.m_nMinObjSize),
|
||||||
|
m_nMaxObjSize(source.m_nMaxObjSize)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*! \fn ANPRPlugin:: operator=(const ANPRPlugin& source)
|
||||||
|
* \param source is the object for copying
|
||||||
|
*/
|
||||||
|
ANPRPlugin & ANPRPlugin:: operator=(const ANPRPlugin& source)
|
||||||
|
{
|
||||||
|
Detector::operator=(source);
|
||||||
|
m_nMinObjSize = source.m_nMinObjSize;
|
||||||
|
m_nMaxObjSize = source.m_nMaxObjSize;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*! \fn ANPRPlugin::checkZone(Zone *zone, const Image *zmImage)
|
||||||
|
* \param zone is a zone where faces will be detected
|
||||||
|
* \param zmImage is an image to perform face detection (in the form of ZM' Image)
|
||||||
|
* \return true if there were objects detected in given image and
|
||||||
|
* false otherwise
|
||||||
|
*/
|
||||||
|
bool ANPRPlugin::checkZone(Zone *zone, const Image *zmImage)
|
||||||
|
{
|
||||||
|
|
||||||
|
double score;
|
||||||
|
Polygon zone_polygon = Polygon(zone->GetPolygon()); // Polygon of interest of the processed zone.
|
||||||
|
|
||||||
|
Image *pMaskImage = new Image(zmImage->Width(), zmImage->Height(), ZM_COLOUR_GRAY8, ZM_SUBPIX_ORDER_NONE );
|
||||||
|
pMaskImage->Fill(BLACK);
|
||||||
|
// An temporary image in the form of ZM for making from it CvMat.
|
||||||
|
// If don't use temp image, after rgb->bgr it will change.
|
||||||
|
Image *tempZmImage = new Image(*zmImage);
|
||||||
|
int imgtype=CV_8UC1;
|
||||||
|
if (tempZmImage->Colours() == ZM_COLOUR_RGB24)
|
||||||
|
imgtype=CV_8UC3;
|
||||||
|
Mat cvInputImage = Mat(
|
||||||
|
tempZmImage->Height(),
|
||||||
|
tempZmImage->Width(),
|
||||||
|
imgtype, (unsigned char*)tempZmImage->Buffer()).clone();
|
||||||
|
//Mat cvInputImage = cvtmpInputImage.reshape(0, tempZmImage->Colours());
|
||||||
|
//Mat cvInputImage = cvtmpInputImage.reshape(0, tempZmImage->Height());
|
||||||
|
if (tempZmImage->Colours() == ZM_COLOUR_RGB24)
|
||||||
|
{
|
||||||
|
cvtColor(cvInputImage, cvInputImage, CV_RGB2BGR);
|
||||||
|
}
|
||||||
|
//imwrite("/tmp/sarca.jpg", cvInputImage);
|
||||||
|
//Process image
|
||||||
|
liprec::LiPRec plateDetector;
|
||||||
|
liprec::PlatesImage plates;
|
||||||
|
plateDetector.detectPlates(cvInputImage, &plates);
|
||||||
|
score = 0;
|
||||||
|
if(plates.plates.size() > 0) {
|
||||||
|
log(LOG_INFO, "PLATES WERE DETECTED");
|
||||||
|
for(unsigned int i=0;i<plates.plates.size();i++) {
|
||||||
|
|
||||||
|
// Check if object's rectangle is inside zone's polygon of interest.
|
||||||
|
int x1 = plates.plates[i].rect.x, x2 = int(plates.plates[i].rect.x+plates.plates[i].rect.width);
|
||||||
|
int y1 = plates.plates[i].rect.y, y2 = int(plates.plates[i].rect.y+plates.plates[i].rect.height);
|
||||||
|
Coord rectVertCoords[4] = {Coord(x1, y1), Coord(x1, y2), Coord(x2, y1), Coord(x2, y2)};
|
||||||
|
int nNumVertInside = 0;
|
||||||
|
for (int p = 0; p < 4; p++)
|
||||||
|
{
|
||||||
|
nNumVertInside += zone_polygon.isInside(rectVertCoords[p]);
|
||||||
|
}
|
||||||
|
if (nNumVertInside < 3)
|
||||||
|
// if at least three rectangle coordinates are inside polygon,
|
||||||
|
// consider rectangle as belonging to the zone
|
||||||
|
// otherwise process next object
|
||||||
|
continue;
|
||||||
|
log(LOG_INFO, plates.plates[i].platetxt);
|
||||||
|
// Fill a box with object in the mask
|
||||||
|
Box *plateBox = new Box(x1, y1, x2, y2);
|
||||||
|
pMaskImage->Fill(WHITE, plateBox);
|
||||||
|
score=m_nAlarmScore;
|
||||||
|
delete plateBox;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (score == 0)
|
||||||
|
{
|
||||||
|
//log(LOG_DEBUG, "No objects found. Exit.");
|
||||||
|
delete pMaskImage;
|
||||||
|
delete tempZmImage;
|
||||||
|
|
||||||
|
// XXX We need to delete Mats?
|
||||||
|
|
||||||
|
return( false );
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
else
|
||||||
|
{
|
||||||
|
zone->SetOverloadCount(zone->GetOverloadFrames());
|
||||||
|
delete pMaskImage;
|
||||||
|
delete tempZmImage;
|
||||||
|
|
||||||
|
return( false );
|
||||||
|
}*/
|
||||||
|
|
||||||
|
|
||||||
|
zone->SetScore((int)score);
|
||||||
|
|
||||||
|
//Get mask by highlighting contours of objects and overlaying them with previous contours.
|
||||||
|
Rgb alarm_colour = RGB_GREEN;
|
||||||
|
Image *hlZmImage = pMaskImage->HighlightEdges(alarm_colour, ZM_COLOUR_RGB24,
|
||||||
|
ZM_SUBPIX_ORDER_RGB, &zone_polygon.Extent());
|
||||||
|
|
||||||
|
if (zone->Alarmed())
|
||||||
|
{
|
||||||
|
// if there were previous detection and they have already set up alarm image
|
||||||
|
// then overlay it with current mask
|
||||||
|
Image* pPrevZoneMask = new Image(*(zone->AlarmImage()));
|
||||||
|
pPrevZoneMask->Overlay(*hlZmImage);
|
||||||
|
zone->SetAlarmImage(pPrevZoneMask);
|
||||||
|
delete pPrevZoneMask;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
zone->SetAlarmImage(hlZmImage);
|
||||||
|
|
||||||
|
delete pMaskImage;
|
||||||
|
delete hlZmImage;
|
||||||
|
delete tempZmImage;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,89 @@
|
||||||
|
/***********************************************************************
|
||||||
|
This file is part of libzm_anpr_plugin, License Plate REcognition.
|
||||||
|
|
||||||
|
Copyright (C) 2012 Franco (nextime) Lanza <nextime@nexlab.it>
|
||||||
|
|
||||||
|
LiPRec is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Affero General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
LiPRec is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Affero General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Affero General Public License
|
||||||
|
along with LiPRec. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
************************************************************************/
|
||||||
|
|
||||||
|
#ifndef ANPR_PLUGIN_H
|
||||||
|
#define ANPR_PLUGIN_H
|
||||||
|
|
||||||
|
#include <cv.h>
|
||||||
|
//#include <liprec.h>
|
||||||
|
#include <stdexcept>
|
||||||
|
#include <fstream>
|
||||||
|
#include <algorithm>
|
||||||
|
|
||||||
|
|
||||||
|
#include <boost/program_options.hpp>
|
||||||
|
#include <boost/program_options/option.hpp>
|
||||||
|
#include <boost/program_options/options_description.hpp>
|
||||||
|
#include <boost/program_options/errors.hpp>
|
||||||
|
|
||||||
|
#include "zm_plugin_manager.h"
|
||||||
|
#include "zm_detector.h"
|
||||||
|
#include "zm_rgb.h"
|
||||||
|
|
||||||
|
#define DETECTED_CAUSE "Plate Detected"
|
||||||
|
#define LOG_PREFIX "ZM PLATEDEC PLUGIN"
|
||||||
|
|
||||||
|
|
||||||
|
#define DEFAULT_DETECTOR_MIN_OBJECT_SIZE 600
|
||||||
|
#define DEFAULT_DETECTOR_MAX_OBJECT_SIZE 6000
|
||||||
|
#define DEFAULT_ALARM_SCORE 99
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
using namespace boost::program_options;
|
||||||
|
|
||||||
|
|
||||||
|
//! Face detector plugin class.
|
||||||
|
/*! The class derived from Detector.
|
||||||
|
* This class provides face detection based on OpenCV's implementation of Haar cascade classifier detector.
|
||||||
|
*/
|
||||||
|
class ANPRPlugin : public Detector {
|
||||||
|
public:
|
||||||
|
|
||||||
|
//! Default Constructor.
|
||||||
|
ANPRPlugin();
|
||||||
|
|
||||||
|
//! Constructor.
|
||||||
|
ANPRPlugin(string sConfigSectionName);
|
||||||
|
|
||||||
|
//! Destructor.
|
||||||
|
virtual ~ANPRPlugin();
|
||||||
|
|
||||||
|
//! Copy constructor.
|
||||||
|
ANPRPlugin(const ANPRPlugin& source);
|
||||||
|
|
||||||
|
//! Overloaded operator=.
|
||||||
|
ANPRPlugin& operator=(const ANPRPlugin& source);
|
||||||
|
|
||||||
|
void loadConfig(string sConfigFileName);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
bool checkZone(Zone *zone, const Image *zmImage);
|
||||||
|
|
||||||
|
int m_nMinObjSize;
|
||||||
|
int m_nMaxObjSize;
|
||||||
|
|
||||||
|
int m_nAlarmScore;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif // ANPR_PLUGIN_H
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
[libzm_plugin_anpr]
|
||||||
|
|
||||||
|
min-obj-size = 600
|
||||||
|
max-obj-size = 6000
|
||||||
|
alarm-score = 99
|
||||||
|
det-cause = Plate Detected
|
||||||
|
log-prefix = PLATEDET PLUGIN
|
||||||
|
|
Binary file not shown.
|
@ -0,0 +1,78 @@
|
||||||
|
import os, glob, sys
|
||||||
|
env = Environment()
|
||||||
|
|
||||||
|
# Short messages while compiling and linking.
|
||||||
|
if ARGUMENTS.get('VERBOSE') != "1":
|
||||||
|
env.Append(CXXCOMSTR = "Compiling static object $TARGET")
|
||||||
|
env.Append(LINKCOMSTR = "Linking $TARGET")
|
||||||
|
env.Append(SHCXXCOMSTR = "Compiling shared object $TARGET")
|
||||||
|
env.Append(SHLINKCOMSTR = "Linking shared $TARGET" )
|
||||||
|
|
||||||
|
|
||||||
|
# CXXFLAGS
|
||||||
|
if ARGUMENTS.get('debug', 0):
|
||||||
|
env.Append(CXXFLAGS = ['-g'])
|
||||||
|
build_dir = 'debug/'
|
||||||
|
else:
|
||||||
|
build_dir = 'release/'
|
||||||
|
|
||||||
|
env.BuildDir(build_dir, 'src/', duplicate=0)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
env.Append(CXXFLAGS=['-msse2', '-march=native','-Wno-write-strings','-D__STDC_CONSTANT_MACROS'])
|
||||||
|
env.Append(CXXFLAGS=['-DZM_FFMPEG_CVS','-DHAVE_LIBCRYPTO','-DJPEG_INCLUDE_DIR=../../../../../libjpeg-turbo-1.2.1/'])
|
||||||
|
env.Append(LINKFLAGS = ['-Wl,--no-undefined'])
|
||||||
|
env.Append(LDFLAGS = [" -L../../../../../libjpeg-turbo-1.2.1/.libs "])
|
||||||
|
|
||||||
|
|
||||||
|
# Headers and libs
|
||||||
|
env['CPPPATH'] = [ build_dir,
|
||||||
|
'src',
|
||||||
|
'../../src',
|
||||||
|
'../../',
|
||||||
|
'../../../../../libjpeg-turbo-1.2.1/',
|
||||||
|
'/usr/include/opencv', '/usr/local/include/opencv',
|
||||||
|
'/usr/local/include/boost',
|
||||||
|
'.'
|
||||||
|
]
|
||||||
|
|
||||||
|
env['LIBPATH'] = [
|
||||||
|
'../../../../../libjpeg-turbo-1.2.1/.libs/',
|
||||||
|
'/usr/local/lib',
|
||||||
|
'/usr/lib',
|
||||||
|
'./']
|
||||||
|
|
||||||
|
env['LIBS'] = [
|
||||||
|
'opencv_core',
|
||||||
|
'opencv_highgui',
|
||||||
|
'opencv_objdetect',
|
||||||
|
'opencv_imgproc',
|
||||||
|
'boost_program_options',
|
||||||
|
'mysqlclient',
|
||||||
|
'pthread',
|
||||||
|
'jpeg',
|
||||||
|
'z'
|
||||||
|
]
|
||||||
|
|
||||||
|
# Common sources.
|
||||||
|
# common_src = env.Glob( build_dir + '*.cpp')
|
||||||
|
|
||||||
|
zoneminder_src = env.Glob('../../src/' + 'zm_detector.cpp')
|
||||||
|
zoneminder_src += env.Glob('../../src/' + 'zm_config.cpp')
|
||||||
|
zoneminder_src += env.Glob('../../src/' + 'zm_poly.cpp')
|
||||||
|
zoneminder_src += env.Glob('../../src/' + 'zm_zone.cpp')
|
||||||
|
zoneminder_src += env.Glob('../../src/' + 'zm_image.cpp')
|
||||||
|
zoneminder_src += env.Glob('../../src/' + 'zm_db.cpp')
|
||||||
|
zoneminder_src += env.Glob('../../src/' + 'zm_jpeg.cpp')
|
||||||
|
zoneminder_src += env.Glob('../../src/' + 'zm_logger.cpp')
|
||||||
|
zoneminder_src += env.Glob('../../src/' + 'zm_utils.cpp')
|
||||||
|
zoneminder_src += env.Glob('../../src/' + 'zm_thread.cpp')
|
||||||
|
|
||||||
|
|
||||||
|
# Face detector sources.
|
||||||
|
face_haar_src = env.Glob( build_dir + 'face_detector_plugin.cpp')
|
||||||
|
|
||||||
|
# Shared lib
|
||||||
|
env.SharedLibrary(target = 'zm_plugin_face_haar', source = [face_haar_src, zoneminder_src])
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,14 @@
|
||||||
|
[libzm_plugin_face_haar]
|
||||||
|
|
||||||
|
cascade = /usr/share/zm/haarcascades/haarcascade_frontalface_alt2.xml
|
||||||
|
scale = 1.15
|
||||||
|
flag = 1
|
||||||
|
min-nbrs = 5
|
||||||
|
min-obj-width = 4.5
|
||||||
|
min-obj-height = 5.5
|
||||||
|
min-alarm-score = 0.4
|
||||||
|
max-alarm-score = 99
|
||||||
|
image-scale-factor = 0.5
|
||||||
|
det-cause = Face Detected
|
||||||
|
log-prefix = FACEDET PLUGIN
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,400 @@
|
||||||
|
#include "face_detector_plugin.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//! Retrieve the engine version we're going to expect
|
||||||
|
extern "C" int getEngineVersion()
|
||||||
|
{
|
||||||
|
return ZM_ENGINE_VERSION;
|
||||||
|
}
|
||||||
|
|
||||||
|
//! Tells us to register our functionality to an engine kernel
|
||||||
|
extern "C" void registerPlugin(PluginManager &PlM, string sPluginName)
|
||||||
|
{
|
||||||
|
PlM.getImageAnalyser().addDetector(
|
||||||
|
auto_ptr<Detector>(new FaceDetectorPlugin(sPluginName))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
FaceDetectorPlugin::FaceDetectorPlugin()
|
||||||
|
: Detector(),
|
||||||
|
m_fScaleFactor(DEFAULT_HAAR_SCALE_FACTOR),
|
||||||
|
m_nMinNeighbors(DEFAULT_HAAR_MIN_NEIGHBORS),
|
||||||
|
m_nFlag(DEFAULT_HAAR_FLAG),
|
||||||
|
m_fMinObjWidth(DEFAULT_DETECTOR_MIN_OBJECT_SIZE_WIDTH),
|
||||||
|
m_fMinObjHeight(DEFAULT_DETECTOR_MIN_OBJECT_SIZE_HEIGHT),
|
||||||
|
m_cascade(NULL),
|
||||||
|
m_sHaarCascadePath(DEFAULT_HAAR_FACE_CASCADE_PATH)
|
||||||
|
{
|
||||||
|
m_sDetectionCause = DETECTED_CAUSE;
|
||||||
|
m_sLogPrefix = LOG_PREFIX;
|
||||||
|
|
||||||
|
//openlog(m_sLogPrefix.c_str(), LOG_PID|LOG_CONS, LOG_USER);
|
||||||
|
m_pStorage = cvCreateMemStorage(0);
|
||||||
|
//_loadHaarCascade(m_sHaarCascadePath);
|
||||||
|
log(LOG_NOTICE, "Face Detector Plugin\'s Object has been created.");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
FaceDetectorPlugin::FaceDetectorPlugin(string sPluginName)
|
||||||
|
: Detector(sPluginName),
|
||||||
|
m_fScaleFactor(DEFAULT_HAAR_SCALE_FACTOR),
|
||||||
|
m_nMinNeighbors(DEFAULT_HAAR_MIN_NEIGHBORS),
|
||||||
|
m_nFlag(DEFAULT_HAAR_FLAG),
|
||||||
|
m_fMinObjWidth(DEFAULT_DETECTOR_MIN_OBJECT_SIZE_WIDTH),
|
||||||
|
m_fMinObjHeight(DEFAULT_DETECTOR_MIN_OBJECT_SIZE_HEIGHT),
|
||||||
|
m_cascade(NULL),
|
||||||
|
m_sHaarCascadePath(DEFAULT_HAAR_FACE_CASCADE_PATH)
|
||||||
|
{
|
||||||
|
m_sDetectionCause = DETECTED_CAUSE;
|
||||||
|
m_sLogPrefix = LOG_PREFIX;
|
||||||
|
|
||||||
|
//openlog(m_sLogPrefix.c_str(), LOG_PID|LOG_CONS, LOG_USER);
|
||||||
|
m_pStorage = cvCreateMemStorage(0);
|
||||||
|
//_loadHaarCascade(m_sHaarCascadePath);
|
||||||
|
log(LOG_NOTICE, "Face Detector Plugin\'s Object has been created.");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*! \fn FaceDetectorPlugin::loadConfig(string sConfigFileName)
|
||||||
|
* \param sConfigFileName is path to configuration to load parameters from
|
||||||
|
*/
|
||||||
|
void FaceDetectorPlugin::loadConfig(string sConfigFileName)
|
||||||
|
{
|
||||||
|
options_description config_file("Configuration file options.");
|
||||||
|
variables_map vm;
|
||||||
|
config_file.add_options()
|
||||||
|
// Haar face detector options
|
||||||
|
((m_sConfigSectionName + string(".cascade")).c_str(),
|
||||||
|
value<string>()->default_value(DEFAULT_HAAR_FACE_CASCADE_PATH))
|
||||||
|
((m_sConfigSectionName + string(".scale")).c_str(),
|
||||||
|
value<double>()->default_value(DEFAULT_HAAR_SCALE_FACTOR))
|
||||||
|
((m_sConfigSectionName + string(".flag")).c_str(),
|
||||||
|
value<int>()->default_value(DEFAULT_HAAR_FLAG))
|
||||||
|
((m_sConfigSectionName + string(".min-nbrs")).c_str(),
|
||||||
|
value<int>()->default_value(DEFAULT_HAAR_MIN_NEIGHBORS))
|
||||||
|
((m_sConfigSectionName + string(".min-obj-width")).c_str(),
|
||||||
|
value<double>()->default_value(DEFAULT_DETECTOR_MIN_OBJECT_SIZE_WIDTH))
|
||||||
|
((m_sConfigSectionName + string(".min-obj-height")).c_str(),
|
||||||
|
value<double>()->default_value(DEFAULT_DETECTOR_MIN_OBJECT_SIZE_HEIGHT))
|
||||||
|
((m_sConfigSectionName + string(".min-alarm-score")).c_str(),
|
||||||
|
value<double>()->default_value(DEFAULT_MIN_ALARM_SCORE))
|
||||||
|
((m_sConfigSectionName + string(".max-alarm-score")).c_str(),
|
||||||
|
value<double>()->default_value(DEFAULT_MAX_ALARM_SCORE))
|
||||||
|
((m_sConfigSectionName + string(".image-scale-factor")).c_str(),
|
||||||
|
value<double>()->default_value(DEFAULT_IMAGE_SCALE_FACTOR))
|
||||||
|
((m_sConfigSectionName + string(".det-cause")).c_str(),
|
||||||
|
value<string>()->default_value(DETECTED_CAUSE))
|
||||||
|
((m_sConfigSectionName + string(".log-prefix")).c_str(),
|
||||||
|
value<string>()->default_value(LOG_PREFIX))
|
||||||
|
;
|
||||||
|
ifstream ifs(sConfigFileName.c_str());
|
||||||
|
store(parse_config_file(ifs, config_file, true), vm);
|
||||||
|
notify(vm);
|
||||||
|
|
||||||
|
m_fScaleFactor = vm[(m_sConfigSectionName + string(".scale")).c_str()].as<double>();
|
||||||
|
m_nMinNeighbors = vm[(m_sConfigSectionName + string(".min-nbrs")).c_str()].as<int>();
|
||||||
|
m_nFlag = vm[(m_sConfigSectionName + string(".flag")).c_str()].as<int>();
|
||||||
|
m_fMinObjWidth = vm[(m_sConfigSectionName + string(".min-obj-width")).c_str()].as<double>();
|
||||||
|
m_fMinObjHeight = vm[(m_sConfigSectionName + string(".min-obj-height")).c_str()].as<double>();
|
||||||
|
m_fMinAlarmScore = vm[(m_sConfigSectionName + string(".min-alarm-score")).c_str()].as<double>();
|
||||||
|
m_fMaxAlarmScore = vm[(m_sConfigSectionName + string(".max-alarm-score")).c_str()].as<double>();
|
||||||
|
m_fImageScaleFactor = vm[(m_sConfigSectionName + string(".image-scale-factor")).c_str()].as<double>();
|
||||||
|
|
||||||
|
m_sDetectionCause = vm[(m_sConfigSectionName + string(".det-cause")).c_str()].as<string>();
|
||||||
|
m_sLogPrefix = vm[(m_sConfigSectionName + string(".log-prefix")).c_str()].as<string>();
|
||||||
|
|
||||||
|
// if (m_sHaarCascadePath != vm[(m_sConfigSectionName + string(".cascade")).c_str()].as<string>())
|
||||||
|
// {
|
||||||
|
m_sHaarCascadePath = vm[(m_sConfigSectionName + string(".cascade")).c_str()].as<string>();
|
||||||
|
_loadHaarCascade(m_sHaarCascadePath);
|
||||||
|
// }
|
||||||
|
zmLoadConfig();
|
||||||
|
log(LOG_NOTICE, "Face Detector Plugin\'s Object is configured.");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
FaceDetectorPlugin::~FaceDetectorPlugin()
|
||||||
|
{
|
||||||
|
cvReleaseMemStorage(&m_pStorage);
|
||||||
|
cvReleaseHaarClassifierCascade(&m_cascade);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*! \fn FaceDetectorPlugin::FaceDetectorPlugin(const FaceDetectorPlugin& source)
|
||||||
|
* \param source is the object for copying
|
||||||
|
*/
|
||||||
|
FaceDetectorPlugin::FaceDetectorPlugin(const FaceDetectorPlugin& source)
|
||||||
|
: Detector(source),
|
||||||
|
m_fScaleFactor(source.m_fScaleFactor),
|
||||||
|
m_nMinNeighbors(source.m_nMinNeighbors),
|
||||||
|
m_nFlag(source.m_nFlag),
|
||||||
|
m_fMinObjWidth(source.m_fMinObjWidth),
|
||||||
|
m_fMinObjHeight(source.m_fMinObjHeight),
|
||||||
|
m_cascade(NULL),
|
||||||
|
m_sHaarCascadePath(source.m_sHaarCascadePath)
|
||||||
|
{
|
||||||
|
m_pStorage = cvCreateMemStorage(0);
|
||||||
|
if (m_sHaarCascadePath != string())
|
||||||
|
_loadHaarCascade(m_sHaarCascadePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*! \fn FaceDetectorPlugin:: operator=(const FaceDetectorPlugin& source)
|
||||||
|
* \param source is the object for copying
|
||||||
|
*/
|
||||||
|
FaceDetectorPlugin & FaceDetectorPlugin:: operator=(const FaceDetectorPlugin& source)
|
||||||
|
{
|
||||||
|
Detector::operator=(source);
|
||||||
|
m_fScaleFactor = source.m_fScaleFactor;
|
||||||
|
m_nMinNeighbors = source.m_nMinNeighbors;
|
||||||
|
m_nFlag = source.m_nFlag;
|
||||||
|
m_fMinObjWidth = source.m_fMinObjWidth;
|
||||||
|
m_fMinObjHeight = source.m_fMinObjHeight;
|
||||||
|
m_cascade = NULL;
|
||||||
|
m_sHaarCascadePath = source.m_sHaarCascadePath;
|
||||||
|
|
||||||
|
m_pStorage = cvCreateMemStorage(0);
|
||||||
|
|
||||||
|
if (m_sHaarCascadePath != string())
|
||||||
|
_loadHaarCascade(m_sHaarCascadePath);
|
||||||
|
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*! \fn FaceDetectorPlugin::_loadHaarCascade(string sConfigPath)
|
||||||
|
* \param sConfigPath is path to xml Haar classifier cascade.
|
||||||
|
*/
|
||||||
|
void FaceDetectorPlugin::_loadHaarCascade(string sConfigPath)
|
||||||
|
{
|
||||||
|
m_sHaarCascadePath = sConfigPath;
|
||||||
|
if (m_cascade != NULL)
|
||||||
|
cvReleaseHaarClassifierCascade(&m_cascade);
|
||||||
|
|
||||||
|
m_cascade = (CvHaarClassifierCascade*)cvLoad(sConfigPath.c_str());
|
||||||
|
if (m_cascade == NULL)
|
||||||
|
throw invalid_argument((string("Couldn't load xml data: ") + sConfigPath + ".").c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*! \fn FaceDetectorPlugin::_opencvHaarDetect(const CvMat* pMatImage)
|
||||||
|
* \param pMatImage is an image to perform face detection (in the form of OpenCv' CvMat)
|
||||||
|
*/
|
||||||
|
vector<CvRect> FaceDetectorPlugin::_opencvHaarDetect(const CvMat* pMatImage)
|
||||||
|
{
|
||||||
|
CvSize minObjSize = cvSize((int) pMatImage->width * m_fMinObjWidth / 100.0, (int) pMatImage->height * m_fMinObjHeight / 100.0);
|
||||||
|
//char szMessage[50];
|
||||||
|
//sprintf(szMessage, "IMAGE SIZE IS %d x %d \nMIN OBJ SIZE IS %d x %d", pMatImage->width, pMatImage->height, minObjSize.width, minObjSize.height);
|
||||||
|
//log(LOG_WARNING, szMessage);
|
||||||
|
|
||||||
|
CvSeq* haarObjects = cvHaarDetectObjects(pMatImage,
|
||||||
|
m_cascade,
|
||||||
|
m_pStorage,
|
||||||
|
m_fScaleFactor,
|
||||||
|
m_nMinNeighbors,
|
||||||
|
m_nFlag,
|
||||||
|
minObjSize);
|
||||||
|
vector<CvRect> objects;
|
||||||
|
for (int i = 0; i < haarObjects->total; i++)
|
||||||
|
{
|
||||||
|
CvRect* pHaarRect = (CvRect*)cvGetSeqElem(haarObjects, i);
|
||||||
|
objects.push_back(*pHaarRect);
|
||||||
|
}
|
||||||
|
return objects;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*! \fn FaceDetectorPlugin::checkZone(Zone *zone, const Image *zmImage)
|
||||||
|
* \param zone is a zone where faces will be detected
|
||||||
|
* \param zmImage is an image to perform face detection (in the form of ZM' Image)
|
||||||
|
* \return true if there were objects detected in given image and
|
||||||
|
* false otherwise
|
||||||
|
*/
|
||||||
|
bool FaceDetectorPlugin::checkZone(Zone *zone, const Image *zmImage)
|
||||||
|
{
|
||||||
|
//log(LOG_DEBUG, "Entering checkZone.");
|
||||||
|
double score;
|
||||||
|
Polygon zone_polygon = Polygon(zone->GetPolygon()); // Polygon of interest of the processed zone.
|
||||||
|
//char szMessage[50];
|
||||||
|
//sprintf(szMessage, "Polygon of the zone has %d vertices.", zone_polygon.getNumCoords());
|
||||||
|
//log(LOG_WARNING, szMessage);
|
||||||
|
|
||||||
|
//zone->ResetStats();
|
||||||
|
|
||||||
|
/*
|
||||||
|
log(LOG_WARNING, "precheck");
|
||||||
|
if ( !zone->CheckOverloadCount() )
|
||||||
|
{
|
||||||
|
log(LOG_WARNING, "CheckOverloadCount() return false, we'll return false.");
|
||||||
|
return(false);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
//zmLoadConfig();
|
||||||
|
// An image for highlighting detected objects.
|
||||||
|
Image *pMaskImage = new Image(zmImage->Width(), zmImage->Height(), ZM_COLOUR_GRAY8, ZM_SUBPIX_ORDER_NONE );
|
||||||
|
pMaskImage->Fill(BLACK);
|
||||||
|
|
||||||
|
//log(LOG_WARNING, "FILLBLACK.");
|
||||||
|
// An temporary image in the form of ZM for making from it CvMat.
|
||||||
|
// If don't use temp image, after rgb->bgr it will change.
|
||||||
|
Image *tempZmImage = new Image(*zmImage);
|
||||||
|
CvMat* cvInputImage = NULL;
|
||||||
|
CvMat* pScaledImage = NULL;
|
||||||
|
|
||||||
|
bool bDoResizing = (m_fImageScaleFactor != 1.0); // resize image or not
|
||||||
|
|
||||||
|
if (tempZmImage->Colours() == ZM_COLOUR_GRAY8)
|
||||||
|
{
|
||||||
|
// if image is not colored, create an one-channel CvMat.
|
||||||
|
cvInputImage = cvCreateMat(tempZmImage->Height(), tempZmImage->Width(), CV_8UC1);
|
||||||
|
unsigned char *buffer = (unsigned char*)tempZmImage->Buffer();
|
||||||
|
cvSetData(cvInputImage, buffer, tempZmImage->Width());
|
||||||
|
}
|
||||||
|
// NEXTIME XXX TODO: manage also 32 bit images!
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// otherwise create a three-channel CvMat and then convert colors from RGB to BGR.
|
||||||
|
cvInputImage = cvCreateMat(tempZmImage->Height(), tempZmImage->Width(), CV_8UC3);
|
||||||
|
unsigned char *buffer = (unsigned char*)tempZmImage->Buffer();
|
||||||
|
cvSetData(cvInputImage, buffer, tempZmImage->Width() * 3);
|
||||||
|
cvCvtColor(cvInputImage, cvInputImage, CV_RGB2BGR);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bDoResizing)
|
||||||
|
{
|
||||||
|
int nNewWidth = int (m_fImageScaleFactor * zmImage->Width());
|
||||||
|
int nNewHeight = int (m_fImageScaleFactor * tempZmImage->Height());
|
||||||
|
int nImageElemType = cvGetElemType(cvInputImage);
|
||||||
|
pScaledImage = cvCreateMat(nNewHeight, nNewWidth, nImageElemType);
|
||||||
|
cvResize(cvInputImage, pScaledImage, CV_INTER_LINEAR);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Process image
|
||||||
|
|
||||||
|
vector<CvRect> foundObjects;
|
||||||
|
if (bDoResizing)
|
||||||
|
foundObjects = _opencvHaarDetect(pScaledImage);
|
||||||
|
else
|
||||||
|
foundObjects = _opencvHaarDetect(cvInputImage);
|
||||||
|
|
||||||
|
if (foundObjects.size() > 0)
|
||||||
|
log(LOG_INFO, "OBJECTS WERE DETECTED");
|
||||||
|
|
||||||
|
score = 0;
|
||||||
|
for (vector<CvRect>::iterator it = foundObjects.begin(); it < foundObjects.end(); it++)
|
||||||
|
{
|
||||||
|
// Process found objects.
|
||||||
|
|
||||||
|
// Scale object's coordinates back if image has been scaled.
|
||||||
|
int x1 = int(it->x/m_fImageScaleFactor), x2 = int((it->x + it->width)/m_fImageScaleFactor), y1 = int(it->y/m_fImageScaleFactor), y2 = int((it->y + it->height)/m_fImageScaleFactor);
|
||||||
|
|
||||||
|
// Check if object's rectangle is inside zone's polygon of interest.
|
||||||
|
Coord rectVertCoords[4] = {Coord(x1, y1), Coord(x1, y2), Coord(x2, y1), Coord(x2, y2)};
|
||||||
|
int nNumVertInside = 0;
|
||||||
|
for (int i = 0; i < 4; i++)
|
||||||
|
{
|
||||||
|
nNumVertInside += zone_polygon.isInside(rectVertCoords[i]);
|
||||||
|
}
|
||||||
|
if (nNumVertInside < 3)
|
||||||
|
// if at least three rectangle coordinates are inside polygon, consider rectangle as belonging to the zone
|
||||||
|
// otherwise process next object
|
||||||
|
continue;
|
||||||
|
|
||||||
|
// Fill a box with object in the mask
|
||||||
|
Box *faceBox = new Box(x1, y1, x2, y2);
|
||||||
|
pMaskImage->Fill(WHITE, faceBox);
|
||||||
|
// Calculate score as portion of object area in the image
|
||||||
|
score += (100.0*(it->width)*(it->height)/m_fImageScaleFactor/m_fImageScaleFactor)/zone_polygon.Area();
|
||||||
|
delete faceBox;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (score == 0)
|
||||||
|
{
|
||||||
|
//log(LOG_DEBUG, "No objects found. Exit.");
|
||||||
|
delete pMaskImage;
|
||||||
|
delete tempZmImage;
|
||||||
|
|
||||||
|
if (cvInputImage)
|
||||||
|
cvReleaseMat(&cvInputImage);
|
||||||
|
if (pScaledImage)
|
||||||
|
cvReleaseMat(&pScaledImage);
|
||||||
|
|
||||||
|
return( false );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if ( m_fMinAlarmScore && ( score < m_fMinAlarmScore) )
|
||||||
|
{
|
||||||
|
delete pMaskImage;
|
||||||
|
delete tempZmImage;
|
||||||
|
|
||||||
|
if (cvInputImage)
|
||||||
|
cvReleaseMat(&cvInputImage);
|
||||||
|
if (pScaledImage)
|
||||||
|
cvReleaseMat(&pScaledImage);
|
||||||
|
|
||||||
|
return( false );
|
||||||
|
}
|
||||||
|
if ( m_fMaxAlarmScore && (score > m_fMaxAlarmScore) )
|
||||||
|
{
|
||||||
|
zone->SetOverloadCount(zone->GetOverloadFrames());
|
||||||
|
delete pMaskImage;
|
||||||
|
delete tempZmImage;
|
||||||
|
|
||||||
|
if (cvInputImage)
|
||||||
|
cvReleaseMat(&cvInputImage);
|
||||||
|
if (pScaledImage)
|
||||||
|
cvReleaseMat(&pScaledImage);
|
||||||
|
|
||||||
|
return( false );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
zone->SetScore(max(1, (int)score));
|
||||||
|
|
||||||
|
//Get mask by highlighting contours of objects and overlaying them with previous contours.
|
||||||
|
Rgb alarm_colour = RGB_GREEN;
|
||||||
|
Image *hlZmImage = pMaskImage->HighlightEdges(alarm_colour, ZM_COLOUR_RGB24,
|
||||||
|
ZM_SUBPIX_ORDER_RGB, &zone_polygon.Extent());
|
||||||
|
|
||||||
|
if (zone->Alarmed())
|
||||||
|
{
|
||||||
|
// if there were previous detection and they have already set up alarm image
|
||||||
|
// then overlay it with current mask
|
||||||
|
Image* pPrevZoneMask = new Image(*(zone->AlarmImage()));
|
||||||
|
pPrevZoneMask->Overlay(*hlZmImage);
|
||||||
|
zone->SetAlarmImage(pPrevZoneMask);
|
||||||
|
delete pPrevZoneMask;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
zone->SetAlarmImage(hlZmImage);
|
||||||
|
|
||||||
|
delete pMaskImage;
|
||||||
|
delete hlZmImage;
|
||||||
|
delete tempZmImage;
|
||||||
|
|
||||||
|
if (cvInputImage)
|
||||||
|
cvReleaseMat(&cvInputImage);
|
||||||
|
if (pScaledImage)
|
||||||
|
cvReleaseMat(&pScaledImage);
|
||||||
|
|
||||||
|
//log(LOG_DEBUG, "Leaving checkZone.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,102 @@
|
||||||
|
#ifndef HAAR_DETECTOR_PLUGIN_H
|
||||||
|
#define HAAR_DETECTOR_PLUGIN_H
|
||||||
|
|
||||||
|
|
||||||
|
#include <cv.h>
|
||||||
|
#include <stdexcept>
|
||||||
|
#include <fstream>
|
||||||
|
#include <algorithm>
|
||||||
|
|
||||||
|
|
||||||
|
#include <boost/program_options.hpp>
|
||||||
|
#include <boost/program_options/option.hpp>
|
||||||
|
#include <boost/program_options/options_description.hpp>
|
||||||
|
#include <boost/program_options/errors.hpp>
|
||||||
|
|
||||||
|
#include "zm_plugin_manager.h"
|
||||||
|
#include "zm_detector.h"
|
||||||
|
#include "zm_rgb.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define DETECTED_CAUSE "Face Detected"
|
||||||
|
#define LOG_PREFIX "ZM FACEDET PLUGIN"
|
||||||
|
|
||||||
|
|
||||||
|
#define DEFAULT_HAAR_SCALE_FACTOR 1.1
|
||||||
|
#define DEFAULT_HAAR_MIN_NEIGHBORS 3
|
||||||
|
#define DEFAULT_HAAR_FLAG CV_HAAR_DO_CANNY_PRUNING
|
||||||
|
#define DEFAULT_DETECTOR_MIN_OBJECT_SIZE_WIDTH 5.0
|
||||||
|
#define DEFAULT_DETECTOR_MIN_OBJECT_SIZE_HEIGHT 6.0
|
||||||
|
#define DEFAULT_HAAR_FACE_CASCADE_PATH "/usr/local/share/opencv/haarcascades/haarcascade_frontalface_alt2.xml"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
using namespace boost::program_options;
|
||||||
|
|
||||||
|
|
||||||
|
//! Face detector plugin class.
|
||||||
|
/*! The class derived from Detector.
|
||||||
|
* This class provides face detection based on OpenCV's implementation of Haar cascade classifier detector.
|
||||||
|
*/
|
||||||
|
class FaceDetectorPlugin : public Detector {
|
||||||
|
public:
|
||||||
|
|
||||||
|
//! Default Constructor.
|
||||||
|
FaceDetectorPlugin();
|
||||||
|
|
||||||
|
//! Constructor.
|
||||||
|
FaceDetectorPlugin(string sConfigSectionName);
|
||||||
|
|
||||||
|
//! Destructor.
|
||||||
|
virtual ~FaceDetectorPlugin();
|
||||||
|
|
||||||
|
//! Copy constructor.
|
||||||
|
FaceDetectorPlugin(const FaceDetectorPlugin& source);
|
||||||
|
|
||||||
|
//! Overloaded operator=.
|
||||||
|
FaceDetectorPlugin& operator=(const FaceDetectorPlugin& source);
|
||||||
|
|
||||||
|
void loadConfig(string sConfigFileName);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
bool checkZone(Zone *zone, const Image *zmImage);
|
||||||
|
|
||||||
|
//! Path to the xml file with cascade.
|
||||||
|
string m_sHaarCascadePath;
|
||||||
|
|
||||||
|
//! Cascade of classifiers.
|
||||||
|
CvHaarClassifierCascade* m_cascade;
|
||||||
|
|
||||||
|
//! Scale factor.
|
||||||
|
double m_fScaleFactor;
|
||||||
|
|
||||||
|
//! Minimum number (minus 1) of neighbors rectangles that makes up an object.
|
||||||
|
size_t m_nMinNeighbors;
|
||||||
|
|
||||||
|
//! Mode of operation.
|
||||||
|
int m_nFlag;
|
||||||
|
|
||||||
|
//! Minimal object's sizes.
|
||||||
|
double m_fMinObjWidth;
|
||||||
|
double m_fMinObjHeight;
|
||||||
|
|
||||||
|
//! Pointer to storage for calculations.
|
||||||
|
CvMemStorage* m_pStorage;
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
//! Load xml Haar cascade file.
|
||||||
|
void _loadHaarCascade(string sConfigPath);
|
||||||
|
|
||||||
|
//! Detect faces on OpenCV' CvMat image.
|
||||||
|
vector<CvRect> _opencvHaarDetect(const CvMat* pMatImage);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif //HAAR_DETECTOR_PLUGIN_H
|
||||||
|
|
|
@ -0,0 +1,75 @@
|
||||||
|
AUTOMAKE_OPTIONS = gnu
|
||||||
|
|
||||||
|
# Ack! Nasty hack to get modules Makefile regenerated if wiped with make clean
|
||||||
|
all-local: ZoneMinder/Makefile
|
||||||
|
|
||||||
|
ZoneMinder/Makefile: ZoneMinder/Makefile.PL
|
||||||
|
( cd ZoneMinder; perl Makefile.PL )
|
||||||
|
|
||||||
|
bin_SCRIPTS = \
|
||||||
|
zmdc.pl \
|
||||||
|
zmaudit.pl \
|
||||||
|
zmfilter.pl \
|
||||||
|
zmtrigger.pl \
|
||||||
|
zmx10.pl \
|
||||||
|
zmwatch.pl \
|
||||||
|
zmpkg.pl \
|
||||||
|
zmupdate.pl \
|
||||||
|
zmvideo.pl \
|
||||||
|
zmcontrol.pl \
|
||||||
|
zmtrack.pl
|
||||||
|
|
||||||
|
SUBDIRS = \
|
||||||
|
. \
|
||||||
|
ZoneMinder
|
||||||
|
|
||||||
|
EXTRA_DIST = \
|
||||||
|
zmdc.pl.in \
|
||||||
|
zmaudit.pl.in \
|
||||||
|
zmfilter.pl.in \
|
||||||
|
zmtrigger.pl.in \
|
||||||
|
zmx10.pl.in \
|
||||||
|
zmwatch.pl.in \
|
||||||
|
zmpkg.pl.in \
|
||||||
|
zmupdate.pl.in \
|
||||||
|
zmvideo.pl.in \
|
||||||
|
zmcontrol.pl.in \
|
||||||
|
zmtrack.pl.in \
|
||||||
|
ZoneMinder/Makefile.PL \
|
||||||
|
ZoneMinder/README \
|
||||||
|
ZoneMinder/Changes \
|
||||||
|
ZoneMinder/META.yml \
|
||||||
|
ZoneMinder/MANIFEST \
|
||||||
|
ZoneMinder/t/ZoneMinder.t \
|
||||||
|
ZoneMinder/lib/ZoneMinder.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Base.pm.in \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Config.pm.in \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Logger.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/General.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Database.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Memory.pm.in \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Memory/Shared.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Memory/Mapped.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/ConfigAdmin.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/ConfigData.pm.in \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Control.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Control/PelcoD.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Control/AxisV2.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Control/PanasonicIP.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Control/Visca.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Control/Ncs370.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Control/mjpgStreamer.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Trigger/Channel.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Trigger/Channel/Handle.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Trigger/Channel/Spawning.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Trigger/Channel/Inet.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Trigger/Channel/Unix.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Trigger/Channel/File.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Trigger/Channel/Serial.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Trigger/Connection.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Trigger/Connection/Example.pm \
|
||||||
|
zm.in \
|
||||||
|
zmdbbackup.in \
|
||||||
|
zmdbrestore.in \
|
||||||
|
zmeventdump.in \
|
||||||
|
zmlogrotate.conf.in
|
|
@ -0,0 +1,778 @@
|
||||||
|
# Makefile.in generated by automake 1.11.6 from Makefile.am.
|
||||||
|
# @configure_input@
|
||||||
|
|
||||||
|
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||||
|
# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
|
||||||
|
# Foundation, Inc.
|
||||||
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||||
|
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
# PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
@SET_MAKE@
|
||||||
|
|
||||||
|
VPATH = @srcdir@
|
||||||
|
am__make_dryrun = \
|
||||||
|
{ \
|
||||||
|
am__dry=no; \
|
||||||
|
case $$MAKEFLAGS in \
|
||||||
|
*\\[\ \ ]*) \
|
||||||
|
echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
|
||||||
|
| grep '^AM OK$$' >/dev/null || am__dry=yes;; \
|
||||||
|
*) \
|
||||||
|
for am__flg in $$MAKEFLAGS; do \
|
||||||
|
case $$am__flg in \
|
||||||
|
*=*|--*) ;; \
|
||||||
|
*n*) am__dry=yes; break;; \
|
||||||
|
esac; \
|
||||||
|
done;; \
|
||||||
|
esac; \
|
||||||
|
test $$am__dry = yes; \
|
||||||
|
}
|
||||||
|
pkgdatadir = $(datadir)/@PACKAGE@
|
||||||
|
pkgincludedir = $(includedir)/@PACKAGE@
|
||||||
|
pkglibdir = $(libdir)/@PACKAGE@
|
||||||
|
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||||
|
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||||
|
install_sh_DATA = $(install_sh) -c -m 644
|
||||||
|
install_sh_PROGRAM = $(install_sh) -c
|
||||||
|
install_sh_SCRIPT = $(install_sh) -c
|
||||||
|
INSTALL_HEADER = $(INSTALL_DATA)
|
||||||
|
transform = $(program_transform_name)
|
||||||
|
NORMAL_INSTALL = :
|
||||||
|
PRE_INSTALL = :
|
||||||
|
POST_INSTALL = :
|
||||||
|
NORMAL_UNINSTALL = :
|
||||||
|
PRE_UNINSTALL = :
|
||||||
|
POST_UNINSTALL = :
|
||||||
|
subdir = scripts
|
||||||
|
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
|
||||||
|
$(srcdir)/zm.in $(srcdir)/zmaudit.pl.in \
|
||||||
|
$(srcdir)/zmcontrol.pl.in $(srcdir)/zmdbbackup.in \
|
||||||
|
$(srcdir)/zmdbrestore.in $(srcdir)/zmdc.pl.in \
|
||||||
|
$(srcdir)/zmeventdump.in $(srcdir)/zmfilter.pl.in \
|
||||||
|
$(srcdir)/zmlogrotate.conf.in $(srcdir)/zmpkg.pl.in \
|
||||||
|
$(srcdir)/zmtrack.pl.in $(srcdir)/zmtrigger.pl.in \
|
||||||
|
$(srcdir)/zmupdate.pl.in $(srcdir)/zmvideo.pl.in \
|
||||||
|
$(srcdir)/zmwatch.pl.in $(srcdir)/zmx10.pl.in
|
||||||
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
|
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||||
|
$(top_srcdir)/configure.ac
|
||||||
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
|
$(ACLOCAL_M4)
|
||||||
|
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||||
|
CONFIG_HEADER = $(top_builddir)/config.h
|
||||||
|
CONFIG_CLEAN_FILES = zm zmaudit.pl zmcontrol.pl zmdc.pl zmfilter.pl \
|
||||||
|
zmpkg.pl zmtrack.pl zmtrigger.pl zmupdate.pl zmvideo.pl \
|
||||||
|
zmwatch.pl zmx10.pl zmdbbackup zmdbrestore zmeventdump \
|
||||||
|
zmlogrotate.conf
|
||||||
|
CONFIG_CLEAN_VPATH_FILES =
|
||||||
|
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||||
|
am__vpath_adj = case $$p in \
|
||||||
|
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||||
|
*) f=$$p;; \
|
||||||
|
esac;
|
||||||
|
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
||||||
|
am__install_max = 40
|
||||||
|
am__nobase_strip_setup = \
|
||||||
|
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
||||||
|
am__nobase_strip = \
|
||||||
|
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
||||||
|
am__nobase_list = $(am__nobase_strip_setup); \
|
||||||
|
for p in $$list; do echo "$$p $$p"; done | \
|
||||||
|
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||||
|
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||||
|
if (++n[$$2] == $(am__install_max)) \
|
||||||
|
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||||
|
END { for (dir in files) print dir, files[dir] }'
|
||||||
|
am__base_list = \
|
||||||
|
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||||
|
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||||
|
am__uninstall_files_from_dir = { \
|
||||||
|
test -z "$$files" \
|
||||||
|
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
||||||
|
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
||||||
|
$(am__cd) "$$dir" && rm -f $$files; }; \
|
||||||
|
}
|
||||||
|
am__installdirs = "$(DESTDIR)$(bindir)"
|
||||||
|
SCRIPTS = $(bin_SCRIPTS)
|
||||||
|
SOURCES =
|
||||||
|
DIST_SOURCES =
|
||||||
|
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||||
|
html-recursive info-recursive install-data-recursive \
|
||||||
|
install-dvi-recursive install-exec-recursive \
|
||||||
|
install-html-recursive install-info-recursive \
|
||||||
|
install-pdf-recursive install-ps-recursive install-recursive \
|
||||||
|
installcheck-recursive installdirs-recursive pdf-recursive \
|
||||||
|
ps-recursive uninstall-recursive
|
||||||
|
am__can_run_installinfo = \
|
||||||
|
case $$AM_UPDATE_INFO_DIR in \
|
||||||
|
n|no|NO) false;; \
|
||||||
|
*) (install-info --version) >/dev/null 2>&1;; \
|
||||||
|
esac
|
||||||
|
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
||||||
|
distclean-recursive maintainer-clean-recursive
|
||||||
|
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
|
||||||
|
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
|
||||||
|
distdir
|
||||||
|
ETAGS = etags
|
||||||
|
CTAGS = ctags
|
||||||
|
DIST_SUBDIRS = $(SUBDIRS)
|
||||||
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
am__relativize = \
|
||||||
|
dir0=`pwd`; \
|
||||||
|
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
|
||||||
|
sed_rest='s,^[^/]*/*,,'; \
|
||||||
|
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
|
||||||
|
sed_butlast='s,/*[^/]*$$,,'; \
|
||||||
|
while test -n "$$dir1"; do \
|
||||||
|
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
|
||||||
|
if test "$$first" != "."; then \
|
||||||
|
if test "$$first" = ".."; then \
|
||||||
|
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
|
||||||
|
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
|
||||||
|
else \
|
||||||
|
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
|
||||||
|
if test "$$first2" = "$$first"; then \
|
||||||
|
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
|
||||||
|
else \
|
||||||
|
dir2="../$$dir2"; \
|
||||||
|
fi; \
|
||||||
|
dir0="$$dir0"/"$$first"; \
|
||||||
|
fi; \
|
||||||
|
fi; \
|
||||||
|
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
|
||||||
|
done; \
|
||||||
|
reldir="$$dir2"
|
||||||
|
ACLOCAL = @ACLOCAL@
|
||||||
|
ALLOCA = @ALLOCA@
|
||||||
|
AMTAR = @AMTAR@
|
||||||
|
AUTOCONF = @AUTOCONF@
|
||||||
|
AUTOHEADER = @AUTOHEADER@
|
||||||
|
AUTOMAKE = @AUTOMAKE@
|
||||||
|
AWK = @AWK@
|
||||||
|
BINDIR = @BINDIR@
|
||||||
|
CC = @CC@
|
||||||
|
CCDEPMODE = @CCDEPMODE@
|
||||||
|
CFLAGS = @CFLAGS@
|
||||||
|
CGI_PREFIX = @CGI_PREFIX@
|
||||||
|
CPPFLAGS = @CPPFLAGS@
|
||||||
|
CXX = @CXX@
|
||||||
|
CXXCPP = @CXXCPP@
|
||||||
|
CXXDEPMODE = @CXXDEPMODE@
|
||||||
|
CXXFLAGS = @CXXFLAGS@
|
||||||
|
CYGPATH_W = @CYGPATH_W@
|
||||||
|
DEFS = @DEFS@
|
||||||
|
DEPDIR = @DEPDIR@
|
||||||
|
ECHO_C = @ECHO_C@
|
||||||
|
ECHO_N = @ECHO_N@
|
||||||
|
ECHO_T = @ECHO_T@
|
||||||
|
EGREP = @EGREP@
|
||||||
|
ENABLE_MMAP = @ENABLE_MMAP@
|
||||||
|
EXEEXT = @EXEEXT@
|
||||||
|
EXTRA_LIBS = @EXTRA_LIBS@
|
||||||
|
EXTRA_PERL_LIB = @EXTRA_PERL_LIB@
|
||||||
|
FFMPEG_CFLAGS = @FFMPEG_CFLAGS@
|
||||||
|
FFMPEG_LIBS = @FFMPEG_LIBS@
|
||||||
|
FFMPEG_PREFIX = @FFMPEG_PREFIX@
|
||||||
|
GREP = @GREP@
|
||||||
|
INSTALL = @INSTALL@
|
||||||
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
|
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||||
|
LDFLAGS = @LDFLAGS@
|
||||||
|
LIBDIR = @LIBDIR@
|
||||||
|
LIBOBJS = @LIBOBJS@
|
||||||
|
LIBS = @LIBS@
|
||||||
|
LIB_ARCH = @LIB_ARCH@
|
||||||
|
LN_S = @LN_S@
|
||||||
|
LTLIBOBJS = @LTLIBOBJS@
|
||||||
|
MAKEINFO = @MAKEINFO@
|
||||||
|
MKDIR_P = @MKDIR_P@
|
||||||
|
MYSQL_CFLAGS = @MYSQL_CFLAGS@
|
||||||
|
MYSQL_LIBS = @MYSQL_LIBS@
|
||||||
|
MYSQL_PREFIX = @MYSQL_PREFIX@
|
||||||
|
OBJEXT = @OBJEXT@
|
||||||
|
OPT_FFMPEG = @OPT_FFMPEG@
|
||||||
|
OPT_NETPBM = @OPT_NETPBM@
|
||||||
|
PACKAGE = @PACKAGE@
|
||||||
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
|
PACKAGE_NAME = @PACKAGE_NAME@
|
||||||
|
PACKAGE_STRING = @PACKAGE_STRING@
|
||||||
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
|
PACKAGE_URL = @PACKAGE_URL@
|
||||||
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
|
PATH_BUILD = @PATH_BUILD@
|
||||||
|
PATH_FFMPEG = @PATH_FFMPEG@
|
||||||
|
PATH_NETPBM = @PATH_NETPBM@
|
||||||
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
|
PERL = @PERL@
|
||||||
|
PERL_MM_PARMS = @PERL_MM_PARMS@
|
||||||
|
POW_LIB = @POW_LIB@
|
||||||
|
RANLIB = @RANLIB@
|
||||||
|
SET_MAKE = @SET_MAKE@
|
||||||
|
SHELL = @SHELL@
|
||||||
|
STRIP = @STRIP@
|
||||||
|
SYSCONFDIR = @SYSCONFDIR@
|
||||||
|
TIME_BUILD = @TIME_BUILD@
|
||||||
|
VERSION = @VERSION@
|
||||||
|
WEB_GROUP = @WEB_GROUP@
|
||||||
|
WEB_HOST = @WEB_HOST@
|
||||||
|
WEB_PREFIX = @WEB_PREFIX@
|
||||||
|
WEB_USER = @WEB_USER@
|
||||||
|
ZM_CONFIG = @ZM_CONFIG@
|
||||||
|
ZM_DB_HOST = @ZM_DB_HOST@
|
||||||
|
ZM_DB_NAME = @ZM_DB_NAME@
|
||||||
|
ZM_DB_PASS = @ZM_DB_PASS@
|
||||||
|
ZM_DB_USER = @ZM_DB_USER@
|
||||||
|
ZM_HAS_GNUTLS = @ZM_HAS_GNUTLS@
|
||||||
|
ZM_HAS_GNUTLS_OPENSSL = @ZM_HAS_GNUTLS_OPENSSL@
|
||||||
|
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||||
|
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||||
|
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||||
|
ZM_LOGDIR = @ZM_LOGDIR@
|
||||||
|
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||||
|
ZM_PCRE = @ZM_PCRE@
|
||||||
|
ZM_PID = @ZM_PID@
|
||||||
|
ZM_RUNDIR = @ZM_RUNDIR@
|
||||||
|
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||||
|
ZM_TMPDIR = @ZM_TMPDIR@
|
||||||
|
abs_builddir = @abs_builddir@
|
||||||
|
abs_srcdir = @abs_srcdir@
|
||||||
|
abs_top_builddir = @abs_top_builddir@
|
||||||
|
abs_top_srcdir = @abs_top_srcdir@
|
||||||
|
ac_ct_CC = @ac_ct_CC@
|
||||||
|
ac_ct_CXX = @ac_ct_CXX@
|
||||||
|
am__include = @am__include@
|
||||||
|
am__leading_dot = @am__leading_dot@
|
||||||
|
am__quote = @am__quote@
|
||||||
|
am__tar = @am__tar@
|
||||||
|
am__untar = @am__untar@
|
||||||
|
bindir = @bindir@
|
||||||
|
build_alias = @build_alias@
|
||||||
|
builddir = @builddir@
|
||||||
|
datadir = @datadir@
|
||||||
|
datarootdir = @datarootdir@
|
||||||
|
docdir = @docdir@
|
||||||
|
dvidir = @dvidir@
|
||||||
|
exec_prefix = @exec_prefix@
|
||||||
|
host_alias = @host_alias@
|
||||||
|
htmldir = @htmldir@
|
||||||
|
includedir = @includedir@
|
||||||
|
infodir = @infodir@
|
||||||
|
install_sh = @install_sh@
|
||||||
|
libdir = @libdir@
|
||||||
|
libexecdir = @libexecdir@
|
||||||
|
localedir = @localedir@
|
||||||
|
localstatedir = @localstatedir@
|
||||||
|
mandir = @mandir@
|
||||||
|
mkdir_p = @mkdir_p@
|
||||||
|
oldincludedir = @oldincludedir@
|
||||||
|
pdfdir = @pdfdir@
|
||||||
|
prefix = @prefix@
|
||||||
|
program_transform_name = @program_transform_name@
|
||||||
|
psdir = @psdir@
|
||||||
|
sbindir = @sbindir@
|
||||||
|
sharedstatedir = @sharedstatedir@
|
||||||
|
srcdir = @srcdir@
|
||||||
|
sysconfdir = @sysconfdir@
|
||||||
|
target_alias = @target_alias@
|
||||||
|
top_build_prefix = @top_build_prefix@
|
||||||
|
top_builddir = @top_builddir@
|
||||||
|
top_srcdir = @top_srcdir@
|
||||||
|
AUTOMAKE_OPTIONS = gnu
|
||||||
|
bin_SCRIPTS = \
|
||||||
|
zmdc.pl \
|
||||||
|
zmaudit.pl \
|
||||||
|
zmfilter.pl \
|
||||||
|
zmtrigger.pl \
|
||||||
|
zmx10.pl \
|
||||||
|
zmwatch.pl \
|
||||||
|
zmpkg.pl \
|
||||||
|
zmupdate.pl \
|
||||||
|
zmvideo.pl \
|
||||||
|
zmcontrol.pl \
|
||||||
|
zmtrack.pl
|
||||||
|
|
||||||
|
SUBDIRS = \
|
||||||
|
. \
|
||||||
|
ZoneMinder
|
||||||
|
|
||||||
|
EXTRA_DIST = \
|
||||||
|
zmdc.pl.in \
|
||||||
|
zmaudit.pl.in \
|
||||||
|
zmfilter.pl.in \
|
||||||
|
zmtrigger.pl.in \
|
||||||
|
zmx10.pl.in \
|
||||||
|
zmwatch.pl.in \
|
||||||
|
zmpkg.pl.in \
|
||||||
|
zmupdate.pl.in \
|
||||||
|
zmvideo.pl.in \
|
||||||
|
zmcontrol.pl.in \
|
||||||
|
zmtrack.pl.in \
|
||||||
|
ZoneMinder/Makefile.PL \
|
||||||
|
ZoneMinder/README \
|
||||||
|
ZoneMinder/Changes \
|
||||||
|
ZoneMinder/META.yml \
|
||||||
|
ZoneMinder/MANIFEST \
|
||||||
|
ZoneMinder/t/ZoneMinder.t \
|
||||||
|
ZoneMinder/lib/ZoneMinder.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Base.pm.in \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Config.pm.in \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Logger.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/General.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Database.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Memory.pm.in \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Memory/Shared.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Memory/Mapped.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/ConfigAdmin.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/ConfigData.pm.in \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Control.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Control/PelcoD.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Control/AxisV2.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Control/PanasonicIP.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Control/Visca.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Control/Ncs370.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Control/mjpgStreamer.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Trigger/Channel.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Trigger/Channel/Handle.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Trigger/Channel/Spawning.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Trigger/Channel/Inet.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Trigger/Channel/Unix.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Trigger/Channel/File.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Trigger/Channel/Serial.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Trigger/Connection.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Trigger/Connection/Example.pm \
|
||||||
|
zm.in \
|
||||||
|
zmdbbackup.in \
|
||||||
|
zmdbrestore.in \
|
||||||
|
zmeventdump.in \
|
||||||
|
zmlogrotate.conf.in
|
||||||
|
|
||||||
|
all: all-recursive
|
||||||
|
|
||||||
|
.SUFFIXES:
|
||||||
|
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||||
|
@for dep in $?; do \
|
||||||
|
case '$(am__configure_deps)' in \
|
||||||
|
*$$dep*) \
|
||||||
|
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||||
|
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||||
|
exit 1;; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu scripts/Makefile'; \
|
||||||
|
$(am__cd) $(top_srcdir) && \
|
||||||
|
$(AUTOMAKE) --gnu scripts/Makefile
|
||||||
|
.PRECIOUS: Makefile
|
||||||
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||||
|
@case '$?' in \
|
||||||
|
*config.status*) \
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||||
|
*) \
|
||||||
|
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||||
|
esac;
|
||||||
|
|
||||||
|
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
|
||||||
|
$(top_srcdir)/configure: $(am__configure_deps)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
$(am__aclocal_m4_deps):
|
||||||
|
zm: $(top_builddir)/config.status $(srcdir)/zm.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||||
|
zmaudit.pl: $(top_builddir)/config.status $(srcdir)/zmaudit.pl.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||||
|
zmcontrol.pl: $(top_builddir)/config.status $(srcdir)/zmcontrol.pl.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||||
|
zmdc.pl: $(top_builddir)/config.status $(srcdir)/zmdc.pl.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||||
|
zmfilter.pl: $(top_builddir)/config.status $(srcdir)/zmfilter.pl.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||||
|
zmpkg.pl: $(top_builddir)/config.status $(srcdir)/zmpkg.pl.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||||
|
zmtrack.pl: $(top_builddir)/config.status $(srcdir)/zmtrack.pl.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||||
|
zmtrigger.pl: $(top_builddir)/config.status $(srcdir)/zmtrigger.pl.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||||
|
zmupdate.pl: $(top_builddir)/config.status $(srcdir)/zmupdate.pl.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||||
|
zmvideo.pl: $(top_builddir)/config.status $(srcdir)/zmvideo.pl.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||||
|
zmwatch.pl: $(top_builddir)/config.status $(srcdir)/zmwatch.pl.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||||
|
zmx10.pl: $(top_builddir)/config.status $(srcdir)/zmx10.pl.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||||
|
zmdbbackup: $(top_builddir)/config.status $(srcdir)/zmdbbackup.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||||
|
zmdbrestore: $(top_builddir)/config.status $(srcdir)/zmdbrestore.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||||
|
zmeventdump: $(top_builddir)/config.status $(srcdir)/zmeventdump.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||||
|
zmlogrotate.conf: $(top_builddir)/config.status $(srcdir)/zmlogrotate.conf.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||||
|
install-binSCRIPTS: $(bin_SCRIPTS)
|
||||||
|
@$(NORMAL_INSTALL)
|
||||||
|
@list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
|
||||||
|
if test -n "$$list"; then \
|
||||||
|
echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
|
||||||
|
$(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
|
||||||
|
fi; \
|
||||||
|
for p in $$list; do \
|
||||||
|
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||||
|
if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
|
||||||
|
done | \
|
||||||
|
sed -e 'p;s,.*/,,;n' \
|
||||||
|
-e 'h;s|.*|.|' \
|
||||||
|
-e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
|
||||||
|
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
|
||||||
|
{ d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
|
||||||
|
if ($$2 == $$4) { files[d] = files[d] " " $$1; \
|
||||||
|
if (++n[d] == $(am__install_max)) { \
|
||||||
|
print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
|
||||||
|
else { print "f", d "/" $$4, $$1 } } \
|
||||||
|
END { for (d in files) print "f", d, files[d] }' | \
|
||||||
|
while read type dir files; do \
|
||||||
|
if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
|
||||||
|
test -z "$$files" || { \
|
||||||
|
echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \
|
||||||
|
$(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
|
||||||
|
} \
|
||||||
|
; done
|
||||||
|
|
||||||
|
uninstall-binSCRIPTS:
|
||||||
|
@$(NORMAL_UNINSTALL)
|
||||||
|
@list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
|
||||||
|
files=`for p in $$list; do echo "$$p"; done | \
|
||||||
|
sed -e 's,.*/,,;$(transform)'`; \
|
||||||
|
dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir)
|
||||||
|
|
||||||
|
# This directory's subdirectories are mostly independent; you can cd
|
||||||
|
# into them and run `make' without going through this Makefile.
|
||||||
|
# To change the values of `make' variables: instead of editing Makefiles,
|
||||||
|
# (1) if the variable is set in `config.status', edit `config.status'
|
||||||
|
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||||
|
# (2) otherwise, pass the desired values on the `make' command line.
|
||||||
|
$(RECURSIVE_TARGETS):
|
||||||
|
@fail= failcom='exit 1'; \
|
||||||
|
for f in x $$MAKEFLAGS; do \
|
||||||
|
case $$f in \
|
||||||
|
*=* | --[!k]*);; \
|
||||||
|
*k*) failcom='fail=yes';; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
dot_seen=no; \
|
||||||
|
target=`echo $@ | sed s/-recursive//`; \
|
||||||
|
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||||
|
echo "Making $$target in $$subdir"; \
|
||||||
|
if test "$$subdir" = "."; then \
|
||||||
|
dot_seen=yes; \
|
||||||
|
local_target="$$target-am"; \
|
||||||
|
else \
|
||||||
|
local_target="$$target"; \
|
||||||
|
fi; \
|
||||||
|
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||||
|
|| eval $$failcom; \
|
||||||
|
done; \
|
||||||
|
if test "$$dot_seen" = "no"; then \
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||||
|
fi; test -z "$$fail"
|
||||||
|
|
||||||
|
$(RECURSIVE_CLEAN_TARGETS):
|
||||||
|
@fail= failcom='exit 1'; \
|
||||||
|
for f in x $$MAKEFLAGS; do \
|
||||||
|
case $$f in \
|
||||||
|
*=* | --[!k]*);; \
|
||||||
|
*k*) failcom='fail=yes';; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
dot_seen=no; \
|
||||||
|
case "$@" in \
|
||||||
|
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||||
|
*) list='$(SUBDIRS)' ;; \
|
||||||
|
esac; \
|
||||||
|
rev=''; for subdir in $$list; do \
|
||||||
|
if test "$$subdir" = "."; then :; else \
|
||||||
|
rev="$$subdir $$rev"; \
|
||||||
|
fi; \
|
||||||
|
done; \
|
||||||
|
rev="$$rev ."; \
|
||||||
|
target=`echo $@ | sed s/-recursive//`; \
|
||||||
|
for subdir in $$rev; do \
|
||||||
|
echo "Making $$target in $$subdir"; \
|
||||||
|
if test "$$subdir" = "."; then \
|
||||||
|
local_target="$$target-am"; \
|
||||||
|
else \
|
||||||
|
local_target="$$target"; \
|
||||||
|
fi; \
|
||||||
|
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||||
|
|| eval $$failcom; \
|
||||||
|
done && test -z "$$fail"
|
||||||
|
tags-recursive:
|
||||||
|
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||||
|
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||||
|
done
|
||||||
|
ctags-recursive:
|
||||||
|
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||||
|
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||||
|
done
|
||||||
|
|
||||||
|
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||||
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||||
|
unique=`for i in $$list; do \
|
||||||
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
|
done | \
|
||||||
|
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||||
|
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||||
|
mkid -fID $$unique
|
||||||
|
tags: TAGS
|
||||||
|
|
||||||
|
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||||
|
$(TAGS_FILES) $(LISP)
|
||||||
|
set x; \
|
||||||
|
here=`pwd`; \
|
||||||
|
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
||||||
|
include_option=--etags-include; \
|
||||||
|
empty_fix=.; \
|
||||||
|
else \
|
||||||
|
include_option=--include; \
|
||||||
|
empty_fix=; \
|
||||||
|
fi; \
|
||||||
|
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||||
|
if test "$$subdir" = .; then :; else \
|
||||||
|
test ! -f $$subdir/TAGS || \
|
||||||
|
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
|
||||||
|
fi; \
|
||||||
|
done; \
|
||||||
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||||
|
unique=`for i in $$list; do \
|
||||||
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
|
done | \
|
||||||
|
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||||
|
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||||
|
shift; \
|
||||||
|
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||||
|
test -n "$$unique" || unique=$$empty_fix; \
|
||||||
|
if test $$# -gt 0; then \
|
||||||
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||||
|
"$$@" $$unique; \
|
||||||
|
else \
|
||||||
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||||
|
$$unique; \
|
||||||
|
fi; \
|
||||||
|
fi
|
||||||
|
ctags: CTAGS
|
||||||
|
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||||
|
$(TAGS_FILES) $(LISP)
|
||||||
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||||
|
unique=`for i in $$list; do \
|
||||||
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
|
done | \
|
||||||
|
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||||
|
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||||
|
test -z "$(CTAGS_ARGS)$$unique" \
|
||||||
|
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||||
|
$$unique
|
||||||
|
|
||||||
|
GTAGS:
|
||||||
|
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||||
|
&& $(am__cd) $(top_srcdir) \
|
||||||
|
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||||
|
|
||||||
|
distclean-tags:
|
||||||
|
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||||
|
|
||||||
|
distdir: $(DISTFILES)
|
||||||
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
|
list='$(DISTFILES)'; \
|
||||||
|
dist_files=`for file in $$list; do echo $$file; done | \
|
||||||
|
sed -e "s|^$$srcdirstrip/||;t" \
|
||||||
|
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||||
|
case $$dist_files in \
|
||||||
|
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||||
|
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||||
|
sort -u` ;; \
|
||||||
|
esac; \
|
||||||
|
for file in $$dist_files; do \
|
||||||
|
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||||
|
if test -d $$d/$$file; then \
|
||||||
|
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
|
if test -d "$(distdir)/$$file"; then \
|
||||||
|
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||||
|
fi; \
|
||||||
|
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||||
|
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||||
|
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||||
|
fi; \
|
||||||
|
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||||
|
else \
|
||||||
|
test -f "$(distdir)/$$file" \
|
||||||
|
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||||
|
|| exit 1; \
|
||||||
|
fi; \
|
||||||
|
done
|
||||||
|
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||||
|
if test "$$subdir" = .; then :; else \
|
||||||
|
$(am__make_dryrun) \
|
||||||
|
|| test -d "$(distdir)/$$subdir" \
|
||||||
|
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
||||||
|
|| exit 1; \
|
||||||
|
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
|
||||||
|
$(am__relativize); \
|
||||||
|
new_distdir=$$reldir; \
|
||||||
|
dir1=$$subdir; dir2="$(top_distdir)"; \
|
||||||
|
$(am__relativize); \
|
||||||
|
new_top_distdir=$$reldir; \
|
||||||
|
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
|
||||||
|
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
|
||||||
|
($(am__cd) $$subdir && \
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) \
|
||||||
|
top_distdir="$$new_top_distdir" \
|
||||||
|
distdir="$$new_distdir" \
|
||||||
|
am__remove_distdir=: \
|
||||||
|
am__skip_length_check=: \
|
||||||
|
am__skip_mode_fix=: \
|
||||||
|
distdir) \
|
||||||
|
|| exit 1; \
|
||||||
|
fi; \
|
||||||
|
done
|
||||||
|
check-am: all-am
|
||||||
|
check: check-recursive
|
||||||
|
all-am: Makefile $(SCRIPTS) all-local
|
||||||
|
installdirs: installdirs-recursive
|
||||||
|
installdirs-am:
|
||||||
|
for dir in "$(DESTDIR)$(bindir)"; do \
|
||||||
|
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||||
|
done
|
||||||
|
install: install-recursive
|
||||||
|
install-exec: install-exec-recursive
|
||||||
|
install-data: install-data-recursive
|
||||||
|
uninstall: uninstall-recursive
|
||||||
|
|
||||||
|
install-am: all-am
|
||||||
|
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||||
|
|
||||||
|
installcheck: installcheck-recursive
|
||||||
|
install-strip:
|
||||||
|
if test -z '$(STRIP)'; then \
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||||
|
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||||
|
install; \
|
||||||
|
else \
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||||
|
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||||
|
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||||
|
fi
|
||||||
|
mostlyclean-generic:
|
||||||
|
|
||||||
|
clean-generic:
|
||||||
|
|
||||||
|
distclean-generic:
|
||||||
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||||
|
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||||
|
|
||||||
|
maintainer-clean-generic:
|
||||||
|
@echo "This command is intended for maintainers to use"
|
||||||
|
@echo "it deletes files that may require special tools to rebuild."
|
||||||
|
clean: clean-recursive
|
||||||
|
|
||||||
|
clean-am: clean-generic mostlyclean-am
|
||||||
|
|
||||||
|
distclean: distclean-recursive
|
||||||
|
-rm -f Makefile
|
||||||
|
distclean-am: clean-am distclean-generic distclean-tags
|
||||||
|
|
||||||
|
dvi: dvi-recursive
|
||||||
|
|
||||||
|
dvi-am:
|
||||||
|
|
||||||
|
html: html-recursive
|
||||||
|
|
||||||
|
html-am:
|
||||||
|
|
||||||
|
info: info-recursive
|
||||||
|
|
||||||
|
info-am:
|
||||||
|
|
||||||
|
install-data-am:
|
||||||
|
|
||||||
|
install-dvi: install-dvi-recursive
|
||||||
|
|
||||||
|
install-dvi-am:
|
||||||
|
|
||||||
|
install-exec-am: install-binSCRIPTS
|
||||||
|
|
||||||
|
install-html: install-html-recursive
|
||||||
|
|
||||||
|
install-html-am:
|
||||||
|
|
||||||
|
install-info: install-info-recursive
|
||||||
|
|
||||||
|
install-info-am:
|
||||||
|
|
||||||
|
install-man:
|
||||||
|
|
||||||
|
install-pdf: install-pdf-recursive
|
||||||
|
|
||||||
|
install-pdf-am:
|
||||||
|
|
||||||
|
install-ps: install-ps-recursive
|
||||||
|
|
||||||
|
install-ps-am:
|
||||||
|
|
||||||
|
installcheck-am:
|
||||||
|
|
||||||
|
maintainer-clean: maintainer-clean-recursive
|
||||||
|
-rm -f Makefile
|
||||||
|
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||||
|
|
||||||
|
mostlyclean: mostlyclean-recursive
|
||||||
|
|
||||||
|
mostlyclean-am: mostlyclean-generic
|
||||||
|
|
||||||
|
pdf: pdf-recursive
|
||||||
|
|
||||||
|
pdf-am:
|
||||||
|
|
||||||
|
ps: ps-recursive
|
||||||
|
|
||||||
|
ps-am:
|
||||||
|
|
||||||
|
uninstall-am: uninstall-binSCRIPTS
|
||||||
|
|
||||||
|
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
|
||||||
|
install-am install-strip tags-recursive
|
||||||
|
|
||||||
|
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
||||||
|
all all-am all-local check check-am clean clean-generic ctags \
|
||||||
|
ctags-recursive distclean distclean-generic distclean-tags \
|
||||||
|
distdir dvi dvi-am html html-am info info-am install \
|
||||||
|
install-am install-binSCRIPTS install-data install-data-am \
|
||||||
|
install-dvi install-dvi-am install-exec install-exec-am \
|
||||||
|
install-html install-html-am install-info install-info-am \
|
||||||
|
install-man install-pdf install-pdf-am install-ps \
|
||||||
|
install-ps-am install-strip installcheck installcheck-am \
|
||||||
|
installdirs installdirs-am maintainer-clean \
|
||||||
|
maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
|
||||||
|
pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
|
||||||
|
uninstall-binSCRIPTS
|
||||||
|
|
||||||
|
|
||||||
|
# Ack! Nasty hack to get modules Makefile regenerated if wiped with make clean
|
||||||
|
all-local: ZoneMinder/Makefile
|
||||||
|
|
||||||
|
ZoneMinder/Makefile: ZoneMinder/Makefile.PL
|
||||||
|
( cd ZoneMinder; perl Makefile.PL )
|
||||||
|
|
||||||
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
.NOEXPORT:
|
|
@ -0,0 +1,6 @@
|
||||||
|
Revision history for Perl extension ZoneMinder.
|
||||||
|
|
||||||
|
0.01 Thu Dec 15 17:22:29 2005
|
||||||
|
- original version; created by h2xs 1.23 with options
|
||||||
|
-XA -b 5.6.0 -n ZoneMinder
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue