Merge branch 'master' into storageareas
commit
c2af380e29
|
@ -55,7 +55,7 @@ Please visit our [ReadtheDocs site](https://zoneminder.readthedocs.org/en/stable
|
||||||
### Package Maintainers
|
### Package Maintainers
|
||||||
Many of the ZoneMinder configration variable default values are not configurable at build time through autotools or cmake. A new tool called *zmeditconfigdata.sh* has been added to allow package maintainers to manipulate any variable stored in ConfigData.pm without patching the source.
|
Many of the ZoneMinder configration variable default values are not configurable at build time through autotools or cmake. A new tool called *zmeditconfigdata.sh* has been added to allow package maintainers to manipulate any variable stored in ConfigData.pm without patching the source.
|
||||||
|
|
||||||
For example, let's say I have created a new ZoneMinder package that contains the cambolzola javascript file. However, by default cambozola support is turned off. To fix that, add this to the pacakging script:
|
For example, let's say I have created a new ZoneMinder package that contains the cambozola javascript file. However, by default cambozola support is turned off. To fix that, add this to the pacakging script:
|
||||||
```bash
|
```bash
|
||||||
./utils/zmeditconfigdata.sh ZM_OPT_CAMBOZOLA yes
|
./utils/zmeditconfigdata.sh ZM_OPT_CAMBOZOLA yes
|
||||||
```
|
```
|
||||||
|
|
|
@ -809,6 +809,7 @@ INSERT into MonitorPresets VALUES (NULL,'Axis IP, mpeg4, unicast','Remote','rtsp
|
||||||
INSERT into MonitorPresets VALUES (NULL,'Axis IP, mpeg4, multicast','Remote','rtsp',0,255,'rtsp','rtpMulti','<ip-address>',554,'/mpeg4/media.amp','/trackID=',NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
INSERT into MonitorPresets VALUES (NULL,'Axis IP, mpeg4, multicast','Remote','rtsp',0,255,'rtsp','rtpMulti','<ip-address>',554,'/mpeg4/media.amp','/trackID=',NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
INSERT into MonitorPresets VALUES (NULL,'Axis IP, mpeg4, RTP/RTSP','Remote','rtsp',0,255,'rtsp','rtpRtsp','<ip-address>',554,'/mpeg4/media.amp','/trackID=',NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
INSERT into MonitorPresets VALUES (NULL,'Axis IP, mpeg4, RTP/RTSP','Remote','rtsp',0,255,'rtsp','rtpRtsp','<ip-address>',554,'/mpeg4/media.amp','/trackID=',NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
INSERT into MonitorPresets VALUES (NULL,'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 (NULL,'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 (NULL,'D-link DCS-930L, 640x480, mjpeg','Remote','http',0,0,'http','simple','<ip-address>',80,'/mjpeg.cgi',NULL,640,480,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
INSERT INTO MonitorPresets VALUES (NULL,'Panasonic IP, 320x240, mpjpeg','Remote','http',0,0,'http','simple','<ip-address>',80,'/nphMotionJpeg?Resolution=320x240&Quality=Standard',NULL,320,240,3,NULL,0,NULL,NULL,NULL,100,100);
|
INSERT INTO MonitorPresets VALUES (NULL,'Panasonic IP, 320x240, mpjpeg','Remote','http',0,0,'http','simple','<ip-address>',80,'/nphMotionJpeg?Resolution=320x240&Quality=Standard',NULL,320,240,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
INSERT INTO MonitorPresets VALUES (NULL,'Panasonic IP, 320x240, jpeg','Remote','http',0,0,'http','simple','<ip-address>',80,'/SnapshotJPEG?Resolution=320x240&Quality=Standard',NULL,320,240,3,NULL,0,NULL,NULL,NULL,100,100);
|
INSERT INTO MonitorPresets VALUES (NULL,'Panasonic IP, 320x240, jpeg','Remote','http',0,0,'http','simple','<ip-address>',80,'/SnapshotJPEG?Resolution=320x240&Quality=Standard',NULL,320,240,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
INSERT INTO MonitorPresets VALUES (NULL,'Panasonic IP, 320x240, jpeg, max 5 FPS','Remote','http',0,0,'http','simple','<ip-address>',80,'/SnapshotJPEG?Resolution=320x240&Quality=Standard',NULL,320,240,3,5.0,0,NULL,NULL,NULL,100,100);
|
INSERT INTO MonitorPresets VALUES (NULL,'Panasonic IP, 320x240, jpeg, max 5 FPS','Remote','http',0,0,'http','simple','<ip-address>',80,'/SnapshotJPEG?Resolution=320x240&Quality=Standard',NULL,320,240,3,5.0,0,NULL,NULL,NULL,100,100);
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.32.1 database to 1.32.2
|
||||||
|
--
|
||||||
|
-- No changes required
|
||||||
|
--
|
|
@ -0,0 +1,9 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.32.2 database to 1.32.3
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add some additional monitor preset values
|
||||||
|
--
|
||||||
|
|
||||||
|
INSERT INTO MonitorPresets VALUES (NULL,'D-link DCS-930L, 640x480, mjpeg','Remote','http',0,0,'http','simple','<ip-address>',80,'/mjpeg.cgi',NULL,640,480,3,NULL,0,NULL,NULL,NULL,100,100);
|
|
@ -25,7 +25,7 @@
|
||||||
%global _hardened_build 1
|
%global _hardened_build 1
|
||||||
|
|
||||||
Name: zoneminder
|
Name: zoneminder
|
||||||
Version: 1.32.1
|
Version: 1.32.2
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: A camera monitoring and analysis tool
|
Summary: A camera monitoring and analysis tool
|
||||||
Group: System Environment/Daemons
|
Group: System Environment/Daemons
|
||||||
|
@ -320,6 +320,13 @@ EOF
|
||||||
%dir %attr(755,%{zmuid_final},%{zmgid_final}) %{_localstatedir}/run/zoneminder
|
%dir %attr(755,%{zmuid_final},%{zmgid_final}) %{_localstatedir}/run/zoneminder
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sat Oct 13 2018 Andrew Bauer <zonexpertconsulting@outlook.com> - 1.32.2-1
|
||||||
|
- 1.32.2 release
|
||||||
|
- Bug fix release
|
||||||
|
|
||||||
|
* Thu Oct 04 2018 Sérgio Basto <sergio@serjux.com> - 1.32.1-2
|
||||||
|
- Mass rebuild for x264 and/or x265
|
||||||
|
|
||||||
* Tue Oct 2 2018 Andrew Bauer <zonexpertconsulting@outlook.com> - 1.32.1-1
|
* Tue Oct 2 2018 Andrew Bauer <zonexpertconsulting@outlook.com> - 1.32.1-1
|
||||||
- 1.32.1 release
|
- 1.32.1 release
|
||||||
- Bug fix release
|
- Bug fix release
|
||||||
|
|
|
@ -69,6 +69,7 @@ use Time::HiRes qw/gettimeofday/;
|
||||||
use Getopt::Long;
|
use Getopt::Long;
|
||||||
use autouse 'Pod::Usage'=>qw(pod2usage);
|
use autouse 'Pod::Usage'=>qw(pod2usage);
|
||||||
use autouse 'Data::Dumper'=>qw(Dumper);
|
use autouse 'Data::Dumper'=>qw(Dumper);
|
||||||
|
use File::Path qw(make_path);
|
||||||
|
|
||||||
my $daemon = 0;
|
my $daemon = 0;
|
||||||
my $filter_name = '';
|
my $filter_name = '';
|
||||||
|
@ -474,13 +475,22 @@ sub uploadArchFile {
|
||||||
return( 0 );
|
return( 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Try to make the path to the upload folder if it doesn't already exist
|
||||||
|
make_path( $Config{ZM_UPLOAD_LOC_DIR} );
|
||||||
|
|
||||||
|
# Complain if the upload folder is still not writable
|
||||||
|
if ( ! -w $Config{ZM_UPLOAD_LOC_DIR} ) {
|
||||||
|
Error("Upload folder either does not exist or is not writable: $Config{ZM_UPLOAD_LOC_DIR}");
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
my $archFile = $Event->{MonitorName}.'-'.$Event->{Id};
|
my $archFile = $Event->{MonitorName}.'-'.$Event->{Id};
|
||||||
my $archImagePath = $Event->Path()
|
my $archImagePath = $Event->Path()
|
||||||
.'/'
|
.'/'
|
||||||
.(
|
.(
|
||||||
( $Config{ZM_UPLOAD_ARCH_ANALYSE} )
|
( $Config{ZM_UPLOAD_ARCH_ANALYSE} )
|
||||||
? '{*analyse.jpg,*capture.jpg,snapshot.jpg,*.mp4}'
|
? '{*analyse.jpg,*capture.jpg,snapshot.jpg,*.mp4}'
|
||||||
: '*capture.jpg,snapshot.jpg,*.mp4'
|
: '{*capture.jpg,snapshot.jpg,*.mp4}'
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
my @archImageFiles = glob($archImagePath);
|
my @archImageFiles = glob($archImagePath);
|
||||||
|
|
|
@ -3317,11 +3317,11 @@ __attribute__((noinline)) void std_fastblend(const uint8_t* col1, const uint8_t*
|
||||||
}
|
}
|
||||||
|
|
||||||
/* FastBlend Neon for AArch32 */
|
/* FastBlend Neon for AArch32 */
|
||||||
#if (defined(__arm__) && !defined(__armel__) && !defined(ZM_STRIP_NEON))
|
#if (defined(__arm__) && defined(__ARM_PCS_VFP) && !defined(ZM_STRIP_NEON))
|
||||||
__attribute__((noinline,__target__("fpu=neon")))
|
__attribute__((noinline,__target__("fpu=neon")))
|
||||||
#endif
|
#endif
|
||||||
void neon32_armv7_fastblend(const uint8_t* col1, const uint8_t* col2, uint8_t* result, unsigned long count, double blendpercent) {
|
void neon32_armv7_fastblend(const uint8_t* col1, const uint8_t* col2, uint8_t* result, unsigned long count, double blendpercent) {
|
||||||
#if (defined(__arm__) && !defined(__armel__) && !defined(ZM_STRIP_NEON))
|
#if (defined(__arm__) && defined(__ARM_PCS_VFP) && !defined(ZM_STRIP_NEON))
|
||||||
static int8_t divider = 0;
|
static int8_t divider = 0;
|
||||||
static double current_blendpercent = 0.0;
|
static double current_blendpercent = 0.0;
|
||||||
|
|
||||||
|
@ -3708,11 +3708,11 @@ __attribute__((noinline)) void std_delta8_abgr(const uint8_t* col1, const uint8_
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Grayscale Neon for AArch32 */
|
/* Grayscale Neon for AArch32 */
|
||||||
#if (defined(__arm__) && !defined(__armel__) && !defined(ZM_STRIP_NEON))
|
#if (defined(__arm__) && defined(__ARM_PCS_VFP) && !defined(ZM_STRIP_NEON))
|
||||||
__attribute__((noinline,__target__("fpu=neon")))
|
__attribute__((noinline,__target__("fpu=neon")))
|
||||||
#endif
|
#endif
|
||||||
void neon32_armv7_delta8_gray8(const uint8_t* col1, const uint8_t* col2, uint8_t* result, unsigned long count) {
|
void neon32_armv7_delta8_gray8(const uint8_t* col1, const uint8_t* col2, uint8_t* result, unsigned long count) {
|
||||||
#if (defined(__arm__) && !defined(__armel__) && !defined(ZM_STRIP_NEON))
|
#if (defined(__arm__) && defined(__ARM_PCS_VFP) && !defined(ZM_STRIP_NEON))
|
||||||
|
|
||||||
/* Q0(D0,D1) = col1+0 */
|
/* Q0(D0,D1) = col1+0 */
|
||||||
/* Q1(D2,D3) = col1+16 */
|
/* Q1(D2,D3) = col1+16 */
|
||||||
|
@ -3784,11 +3784,11 @@ __attribute__((noinline)) void neon64_armv8_delta8_gray8(const uint8_t* col1, co
|
||||||
}
|
}
|
||||||
|
|
||||||
/* RGB32 Neon for AArch32 */
|
/* RGB32 Neon for AArch32 */
|
||||||
#if (defined(__arm__) && !defined(__armel__) && !defined(ZM_STRIP_NEON))
|
#if (defined(__arm__) && defined(__ARM_PCS_VFP) && !defined(ZM_STRIP_NEON))
|
||||||
__attribute__((noinline,__target__("fpu=neon")))
|
__attribute__((noinline,__target__("fpu=neon")))
|
||||||
#endif
|
#endif
|
||||||
void neon32_armv7_delta8_rgb32(const uint8_t* col1, const uint8_t* col2, uint8_t* result, unsigned long count, uint32_t multiplier) {
|
void neon32_armv7_delta8_rgb32(const uint8_t* col1, const uint8_t* col2, uint8_t* result, unsigned long count, uint32_t multiplier) {
|
||||||
#if (defined(__arm__) && !defined(__armel__) && !defined(ZM_STRIP_NEON))
|
#if (defined(__arm__) && defined(__ARM_PCS_VFP) && !defined(ZM_STRIP_NEON))
|
||||||
|
|
||||||
/* Q0(D0,D1) = col1+0 */
|
/* Q0(D0,D1) = col1+0 */
|
||||||
/* Q1(D2,D3) = col1+16 */
|
/* Q1(D2,D3) = col1+16 */
|
||||||
|
|
|
@ -385,7 +385,7 @@ private $control_fields = array(
|
||||||
} else if ( $this->ServerId() ) {
|
} else if ( $this->ServerId() ) {
|
||||||
$Server = $this->Server();
|
$Server = $this->Server();
|
||||||
|
|
||||||
$url = $Server->Url() . '/zm/api/monitors/'.$this->{'Id'}.'.json';
|
$url = ZM_BASE_PROTOCOL . '://'.$Server->Hostname().'/zm/api/monitors/'.$this->{'Id'}.'.json';
|
||||||
if ( ZM_OPT_USE_AUTH ) {
|
if ( ZM_OPT_USE_AUTH ) {
|
||||||
if ( ZM_AUTH_RELAY == 'hashed' ) {
|
if ( ZM_AUTH_RELAY == 'hashed' ) {
|
||||||
$url .= '?auth='.generateAuthHash( ZM_AUTH_HASH_IPS );
|
$url .= '?auth='.generateAuthHash( ZM_AUTH_HASH_IPS );
|
||||||
|
|
|
@ -7,7 +7,7 @@ function Monitor( monitorData ) {
|
||||||
this.status = null;
|
this.status = null;
|
||||||
this.alarmState = STATE_IDLE;
|
this.alarmState = STATE_IDLE;
|
||||||
this.lastAlarmState = STATE_IDLE;
|
this.lastAlarmState = STATE_IDLE;
|
||||||
this.streamCmdParms = '?view=request&request=stream&connkey='+this.connKey;
|
this.streamCmdParms = 'view=request&request=stream&connkey='+this.connKey;
|
||||||
this.onclick = monitorData.onclick;
|
this.onclick = monitorData.onclick;
|
||||||
if ( auth_hash )
|
if ( auth_hash )
|
||||||
this.streamCmdParms += '&auth='+auth_hash;
|
this.streamCmdParms += '&auth='+auth_hash;
|
||||||
|
@ -38,14 +38,14 @@ function Monitor( monitorData ) {
|
||||||
console.log('onerror: ' + text + ' error:'+error);
|
console.log('onerror: ' + text + ' error:'+error);
|
||||||
// Requeue, but want to wait a while.
|
// Requeue, but want to wait a while.
|
||||||
var streamCmdTimeout = 1000*statusRefreshTimeout;
|
var streamCmdTimeout = 1000*statusRefreshTimeout;
|
||||||
this.streamCmdTimer = this.streamCmdQuery.delay( streamCmdTimeout, this );
|
this.streamCmdTimer = this.streamCmdQuery.delay(streamCmdTimeout, this);
|
||||||
};
|
};
|
||||||
this.onFailure = function( xhr ) {
|
this.onFailure = function( xhr ) {
|
||||||
console.log('onFailure: ' + this.connKey);
|
console.log('onFailure: ' + this.connKey);
|
||||||
console.log(xhr );
|
console.log(xhr);
|
||||||
if ( ! requestQueue.hasNext("cmdReq"+this.id) ) {
|
if ( ! requestQueue.hasNext("cmdReq"+this.id) ) {
|
||||||
console.log("Not requeuing because there is one already");
|
console.log("Not requeuing because there is one already");
|
||||||
requestQueue.addRequest( "cmdReq"+this.id, this.streamCmdReq );
|
requestQueue.addRequest("cmdReq"+this.id, this.streamCmdReq);
|
||||||
}
|
}
|
||||||
if ( 0 ) {
|
if ( 0 ) {
|
||||||
// Requeue, but want to wait a while.
|
// Requeue, but want to wait a while.
|
||||||
|
|
Loading…
Reference in New Issue