Merge branch 'master' of github.com:ZoneMinder/ZoneMinder
This commit is contained in:
commit
392fa04918
|
@ -3,7 +3,7 @@ Section: net
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Maintainer: Dmitry Smirnov <onlyjob@debian.org>
|
Maintainer: Dmitry Smirnov <onlyjob@debian.org>
|
||||||
Uploaders: Vagrant Cascadian <vagrant@debian.org>
|
Uploaders: Vagrant Cascadian <vagrant@debian.org>
|
||||||
Build-Depends: debhelper (>= 9), dh-systemd, python-sphinx | python3-sphinx, apache2-dev, dh-linktree
|
Build-Depends: debhelper (>= 9), dh-systemd, python-sphinx | python3-sphinx, apache2-dev, dh-linktree, dh-systemd, dh-apache2
|
||||||
,cmake
|
,cmake
|
||||||
,libx264-dev, libmp4v2-dev
|
,libx264-dev, libmp4v2-dev
|
||||||
,libavdevice-dev (>= 6:10~)
|
,libavdevice-dev (>= 6:10~)
|
||||||
|
|
|
@ -205,7 +205,8 @@ Warm-up Frames
|
||||||
Pre/Post Event Image Buffer
|
Pre/Post Event Image Buffer
|
||||||
These options determine how many frames from before and after an event should be preserved with it. This allows you to view what happened immediately prior and subsequent to the event. A value of 10 for both of these will get you started but if you get a lot of short events and would prefer them to run together to form fewer longer ones then increase the Post Event buffer size. The pre-event buffer is a true buffer and should not really exceed half the ring buffer size. However the post-event buffer is just a count that is applied to captured frames and so can be managed more flexibly. You should also bear in mind the frame rate of the camera when choosing these values. For instance a network camera capturing at 1FPS will give you 10 seconds before and after each event if you chose 10 here. This may well be too much and pad out events more than necessary. However a fast video card may capture at 25FPS and you will want to ensure that this setting enables you to view a reasonable time frame pre and post event.
|
These options determine how many frames from before and after an event should be preserved with it. This allows you to view what happened immediately prior and subsequent to the event. A value of 10 for both of these will get you started but if you get a lot of short events and would prefer them to run together to form fewer longer ones then increase the Post Event buffer size. The pre-event buffer is a true buffer and should not really exceed half the ring buffer size. However the post-event buffer is just a count that is applied to captured frames and so can be managed more flexibly. You should also bear in mind the frame rate of the camera when choosing these values. For instance a network camera capturing at 1FPS will give you 10 seconds before and after each event if you chose 10 here. This may well be too much and pad out events more than necessary. However a fast video card may capture at 25FPS and you will want to ensure that this setting enables you to view a reasonable time frame pre and post event.
|
||||||
Stream Replay Image Buffer
|
Stream Replay Image Buffer
|
||||||
This option ...
|
The number of frames buffered to allow pausing and rewinding of the stream when live viewing a monitor. A value of 0 disables the feature.
|
||||||
|
Frames are buffered to ZM_PATH_SWAP. If this path points to a physical drive, a lot of IO will be caused during live view / montage. If you experience high system load in those situations, either disable the feature or use a RAM drive for ZM_PATH_SWAP.
|
||||||
Alarm Frame Count
|
Alarm Frame Count
|
||||||
This option allows you to specify how many consecutive alarm frames must occur before an alarm event is generated. The usual, and default, value is 1 which implies that any alarm frame will cause or participate in an event. You can enter any value up to 16 here to eliminate bogus events caused perhaps by screen flickers or other transients. Values over 3 or 4 are unlikely to be useful however. Please note that if you have statistics recording enabled then currently statistics are not recorded for the first ‘Alarm Frame Count’-1 frames of an event. So if you set this value to 5 then the first 4 frames will be missing statistics whereas the more usual value of 1 will ensure that all alarm frames have statistics recorded.
|
This option allows you to specify how many consecutive alarm frames must occur before an alarm event is generated. The usual, and default, value is 1 which implies that any alarm frame will cause or participate in an event. You can enter any value up to 16 here to eliminate bogus events caused perhaps by screen flickers or other transients. Values over 3 or 4 are unlikely to be useful however. Please note that if you have statistics recording enabled then currently statistics are not recorded for the first ‘Alarm Frame Count’-1 frames of an event. So if you set this value to 5 then the first 4 frames will be missing statistics whereas the more usual value of 1 will ensure that all alarm frames have statistics recorded.
|
||||||
|
|
||||||
|
|
|
@ -749,7 +749,7 @@ void Monitor::AddPrivacyBitmask( Zone *p_zones[] ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Monitor::State Monitor::GetState() const {
|
Monitor::State Monitor::GetState() const {
|
||||||
return( (State)shared_data->state );
|
return (State)shared_data->state;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Monitor::GetImage( int index, int scale ) {
|
int Monitor::GetImage( int index, int scale ) {
|
||||||
|
|
13
src/zmu.cpp
13
src/zmu.cpp
|
@ -463,10 +463,10 @@ int main(int argc, char *argv[]) {
|
||||||
} // end if auth
|
} // end if auth
|
||||||
|
|
||||||
if ( mon_id > 0 ) {
|
if ( mon_id > 0 ) {
|
||||||
fprintf(stderr,"Monitor %d\n", mon_id);
|
//fprintf(stderr,"Monitor %d\n", mon_id);
|
||||||
Monitor *monitor = Monitor::Load(mon_id, function&(ZMU_QUERY|ZMU_ZONES), Monitor::QUERY);
|
Monitor *monitor = Monitor::Load(mon_id, function&(ZMU_QUERY|ZMU_ZONES), Monitor::QUERY);
|
||||||
if ( monitor ) {
|
if ( monitor ) {
|
||||||
fprintf(stderr,"Monitor %d(%s)\n", monitor->Id(), monitor->Name());
|
//fprintf(stderr,"Monitor %d(%s)\n", monitor->Id(), monitor->Name());
|
||||||
if ( verbose ) {
|
if ( verbose ) {
|
||||||
printf("Monitor %d(%s)\n", monitor->Id(), monitor->Name());
|
printf("Monitor %d(%s)\n", monitor->Id(), monitor->Name());
|
||||||
}
|
}
|
||||||
|
@ -479,9 +479,9 @@ int main(int argc, char *argv[]) {
|
||||||
bool have_output = false;
|
bool have_output = false;
|
||||||
if ( function & ZMU_STATE ) {
|
if ( function & ZMU_STATE ) {
|
||||||
Monitor::State state = monitor->GetState();
|
Monitor::State state = monitor->GetState();
|
||||||
if ( verbose )
|
if ( verbose ) {
|
||||||
printf("Current state: %s\n", state==Monitor::ALARM?"Alarm":(state==Monitor::ALERT?"Alert":"Idle"));
|
printf("Current state: %s\n", state==Monitor::ALARM?"Alarm":(state==Monitor::ALERT?"Alert":"Idle"));
|
||||||
else {
|
} else {
|
||||||
if ( have_output ) printf("%c", separator);
|
if ( have_output ) printf("%c", separator);
|
||||||
printf("%d", state);
|
printf("%d", state);
|
||||||
have_output = true;
|
have_output = true;
|
||||||
|
@ -560,6 +560,11 @@ int main(int argc, char *argv[]) {
|
||||||
if ( verbose )
|
if ( verbose )
|
||||||
printf( "Forcing alarm on\n" );
|
printf( "Forcing alarm on\n" );
|
||||||
monitor->ForceAlarmOn( config.forced_alarm_score, "Forced Web" );
|
monitor->ForceAlarmOn( config.forced_alarm_score, "Forced Web" );
|
||||||
|
while ( monitor->GetState() != Monitor::ALARM ) {
|
||||||
|
// Wait for monitor to notice.
|
||||||
|
usleep(1000);
|
||||||
|
}
|
||||||
|
printf( "Alarmed event id: %" PRIu64 "\n", monitor->GetLastEventId() );
|
||||||
}
|
}
|
||||||
if ( function & ZMU_NOALARM ) {
|
if ( function & ZMU_NOALARM ) {
|
||||||
if ( verbose )
|
if ( verbose )
|
||||||
|
|
|
@ -53,7 +53,7 @@ function CORSHeaders() {
|
||||||
preg_match('/^(https?:\/\/)?'.preg_quote($Server->Name(),'/').'/i', $_SERVER['HTTP_ORIGIN'])
|
preg_match('/^(https?:\/\/)?'.preg_quote($Server->Name(),'/').'/i', $_SERVER['HTTP_ORIGIN'])
|
||||||
) {
|
) {
|
||||||
$valid = true;
|
$valid = true;
|
||||||
Logger::Debug("Setting Access-Controll-Allow-Origin from " . $_SERVER['HTTP_ORIGIN']);
|
Logger::Debug("Setting Access-Control-Allow-Origin from " . $_SERVER['HTTP_ORIGIN']);
|
||||||
header('Access-Control-Allow-Origin: ' . $_SERVER['HTTP_ORIGIN']);
|
header('Access-Control-Allow-Origin: ' . $_SERVER['HTTP_ORIGIN']);
|
||||||
header('Access-Control-Allow-Headers: x-requested-with,x-request');
|
header('Access-Control-Allow-Headers: x-requested-with,x-request');
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -150,6 +150,7 @@ input,textarea,select,button,.btn-primary {
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 100%;
|
font-size: 100%;
|
||||||
color: #333333;
|
color: #333333;
|
||||||
|
background-color: #f8f8f8;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
border-radius:4px;
|
border-radius:4px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -86,6 +86,7 @@ input,textarea,select,button {
|
||||||
font-family: inherit;
|
font-family: inherit;
|
||||||
font-size: 100%;
|
font-size: 100%;
|
||||||
color: #333333;
|
color: #333333;
|
||||||
|
background-color: #eeeeee;
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type=text], input[type=password], textarea {
|
input[type=text], input[type=password], textarea {
|
||||||
|
|
Loading…
Reference in New Issue