From eccfdb8a6a87e0fd487d14a051ec2450be1032ea Mon Sep 17 00:00:00 2001 From: Isaac Connor Date: Thu, 20 Dec 2018 13:50:07 -0500 Subject: [PATCH 1/6] Logging and whitespace changes. No logical changes --- .../lib/ZoneMinder/Memory/Mapped.pm | 101 ++++++++---------- 1 file changed, 45 insertions(+), 56 deletions(-) diff --git a/scripts/ZoneMinder/lib/ZoneMinder/Memory/Mapped.pm b/scripts/ZoneMinder/lib/ZoneMinder/Memory/Mapped.pm index d782c6c9a..b9a8b6a1c 100644 --- a/scripts/ZoneMinder/lib/ZoneMinder/Memory/Mapped.pm +++ b/scripts/ZoneMinder/lib/ZoneMinder/Memory/Mapped.pm @@ -75,55 +75,50 @@ sub zmMemKey { sub zmMemAttach { my ( $monitor, $size ) = @_; - if ( ! $size ) { - Error( "No size passed to zmMemAttach for monitor $$monitor{Id}\n" ); + + if ( !$size ) { + Error("No size passed to zmMemAttach for monitor $$monitor{Id}"); return undef; } - if ( !defined($monitor->{MMapAddr}) ) { - - my $mmap_file = $Config{ZM_PATH_MAP}.'/zm.mmap.'.$monitor->{Id}; - if ( ! -e $mmap_file ) { - Error( sprintf( "Memory map file '%s' does not exist. zmc might not be running." - , $mmap_file - ) - ); - return undef; - } - my $mmap_file_size = -s $mmap_file; - - if ( $mmap_file_size < $size ) { - Error( sprintf( "Memory map file '%s' should have been %d but was instead %d" - , $mmap_file - , $size - , $mmap_file_size - ) - ); - return undef; - } - my $MMAP; - if ( !open( $MMAP, '+<', $mmap_file ) ) { - Error( sprintf( "Can't open memory map file '%s': $!", $mmap_file ) ); - return undef; - } - my $mmap = undef; - my $mmap_addr = mmap( $mmap, $size, PROT_READ|PROT_WRITE, MAP_SHARED, $MMAP ); - if ( !$mmap_addr || !$mmap ) { - Error( sprintf( "Can't mmap to file '%s': $!\n", $mmap_file ) ); - close( $MMAP ); - return undef; - } - $monitor->{MMapHandle} = $MMAP; - $monitor->{MMapAddr} = $mmap_addr; - $monitor->{MMap} = \$mmap; + if ( defined($monitor->{MMapAddr}) ) { + Debug("zmMemAttach already attached at $monitor->{MMapAddr}"); + return !undef; } + + my $mmap_file = $Config{ZM_PATH_MAP}.'/zm.mmap.'.$monitor->{Id}; + if ( ! -e $mmap_file ) { + Error("Memory map file '$mmap_file' does not exist. zmc might not be running."); + return undef; + } + my $mmap_file_size = -s $mmap_file; + + if ( $mmap_file_size < $size ) { + Error("Memory map file '$mmap_file' should have been $size but was instead $mmap_file_size"); + return undef; + } + my $MMAP; + if ( !open($MMAP, '+<', $mmap_file) ) { + Error("Can't open memory map file '$mmap_file': $!"); + return undef; + } + my $mmap = undef; + my $mmap_addr = mmap($mmap, $size, PROT_READ|PROT_WRITE, MAP_SHARED, $MMAP); + if ( !$mmap_addr || !$mmap ) { + Error("Can't mmap to file '$mmap_file': $!"); + close($MMAP); + return undef; + } + $monitor->{MMapHandle} = $MMAP; + $monitor->{MMapAddr} = $mmap_addr; + $monitor->{MMap} = \$mmap; return !undef; -} +} # end sub zmMemAttach sub zmMemDetach { my $monitor = shift; if ( $monitor->{MMap} ) { - if ( ! munmap( ${$monitor->{MMap}} ) ) { + if ( ! munmap(${$monitor->{MMap}}) ) { Warn( "Unable to munmap for monitor $$monitor{Id}\n"); } delete $monitor->{MMap}; @@ -132,7 +127,7 @@ sub zmMemDetach { delete $monitor->{MMapAddr}; } if ( $monitor->{MMapHandle} ) { - close( $monitor->{MMapHandle} ); + close($monitor->{MMapHandle}); delete $monitor->{MMapHandle}; } } @@ -144,13 +139,10 @@ sub zmMemGet { my $mmap = $monitor->{MMap}; if ( !$mmap || !$$mmap ) { - Error( sprintf( "Can't read from mapped memory for monitor '%d', gone away?" - , $monitor->{Id} - ) - ); + Error("Can't read from mapped memory for monitor '$$monitor{Id}', gone away?"); return undef; } - my $data = substr( $$mmap, $offset, $size ); + my $data = substr($$mmap, $offset, $size); return $data; } @@ -162,23 +154,20 @@ sub zmMemPut { my $mmap = $monitor->{MMap}; if ( !$mmap || !$$mmap ) { - Error( sprintf( "Can't write mapped memory for monitor '%d', gone away?" - , $monitor->{Id} - ) - ); - return( undef ); + Error("Can't write mapped memory for monitor '$$monitor{Id}', gone away?"); + return undef; } - substr( $$mmap, $offset, $size ) = $data; - return( !undef ); + substr($$mmap, $offset, $size) = $data; + return !undef; } sub zmMemClean { - Debug( "Removing memory map files\n" ); + Debug("Removing memory map files"); my $mapPath = $Config{ZM_PATH_MAP}.'/zm.mmap.*'; foreach my $mapFile( glob( $mapPath ) ) { ( $mapFile ) = $mapFile =~ /^(.+)$/; - Debug( "Removing memory map file '$mapFile'\n" ); - unlink( $mapFile ); + Debug("Removing memory map file '$mapFile'"); + unlink($mapFile); } } From 64bdf40e8631ad5d8bd932d0d64bfbb0cfbf9960 Mon Sep 17 00:00:00 2001 From: Isaac Connor Date: Thu, 20 Dec 2018 13:50:55 -0500 Subject: [PATCH 2/6] Logging and whitespace changes. No logical changes --- .../ZoneMinder/lib/ZoneMinder/Memory.pm.in | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/scripts/ZoneMinder/lib/ZoneMinder/Memory.pm.in b/scripts/ZoneMinder/lib/ZoneMinder/Memory.pm.in index 205494791..c04a66c42 100644 --- a/scripts/ZoneMinder/lib/ZoneMinder/Memory.pm.in +++ b/scripts/ZoneMinder/lib/ZoneMinder/Memory.pm.in @@ -246,11 +246,12 @@ sub zmMemInit { sub zmMemVerify { my $monitor = shift; - if ( !zmMemAttach( $monitor, $mem_size ) ) { - return( undef ); + + if ( !zmMemAttach($monitor, $mem_size) ) { + return undef; } - my $sd_size = zmMemRead( $monitor, 'shared_data:size', 1 ); + my $sd_size = zmMemRead($monitor, 'shared_data:size', 1); if ( $sd_size != $mem_data->{shared_data}->{size} ) { if ( $sd_size ) { Error( "Shared data size conflict in shared_data for monitor " @@ -268,9 +269,9 @@ sub zmMemVerify { .", got ".$sd_size ); } - return( undef ); + return undef; } - my $td_size = zmMemRead( $monitor, 'trigger_data:size', 1 ); + my $td_size = zmMemRead($monitor, 'trigger_data:size', 1); if ( $td_size != $mem_data->{trigger_data}->{size} ) { if ( $td_size ) { Error( "Shared data size conflict in trigger_data for monitor " @@ -289,14 +290,17 @@ sub zmMemVerify { .$td_size ); } - return( undef ); + return undef; } - if ( !zmMemRead($monitor, 'shared_data:valid',1) ) { - Error( "Shared data not valid for monitor $$monitor{Id}" ); - return( undef ); + my $valid = zmMemRead($monitor, 'shared_data:valid',1); + if ( !$valid ) { + Error("Shared data not valid for monitor $$monitor{Id}"); + return undef; + } else { + Debug("Shared data appears vaild for monitor $$monitor{Id}: $valid"); } - return( !undef ); + return !undef; } sub zmMemRead { From 6af8f0d419a2ab1933d914582d1046e247254b08 Mon Sep 17 00:00:00 2001 From: Isaac Connor Date: Thu, 20 Dec 2018 13:55:18 -0500 Subject: [PATCH 3/6] Logging and whitespace --- scripts/zmdc.pl.in | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/scripts/zmdc.pl.in b/scripts/zmdc.pl.in index 4b32b3a65..67bbc294b 100644 --- a/scripts/zmdc.pl.in +++ b/scripts/zmdc.pl.in @@ -257,6 +257,8 @@ sub run { } my $fd = 0; + + # This also closes dbh and CLIENT and SERVER while( $fd < POSIX::sysconf(&POSIX::_SC_OPEN_MAX) ) { POSIX::close($fd++); } @@ -300,16 +302,17 @@ sub run { if ( $Config{ZM_SERVER_ID} ) { if ( ! ( $secs_count % 60 ) ) { - Debug("Connecting"); while ( (!$zm_terminate) and !($dbh and $dbh->ping()) ) { Warning("Not connected to db ($dbh)".($dbh?' ping('.$dbh->ping().')':''). ($DBI::errstr?" errstr($DBI::errstr)":'').' Reconnecting'); $dbh = zmDbConnect(); } + last if $zm_terminate; + my @cpuload = CpuLoad(); Debug("Updating Server record @cpuload"); if ( ! defined $dbh->do(q{UPDATE Servers SET Status=?,CpuLoad=?,TotalMem=?,FreeMem=?,TotalSwap=?,FreeSwap=? WHERE Id=?}, undef, 'Running', $cpuload[0], &totalmem, &freemem, &totalswap, &freeswap, $Config{ZM_SERVER_ID} ) ) { - Error("Failed Updating status of Server record for Id=$Config{ZM_SERVER_ID}".$dbh->errstr()); + Error("Failed Updating status of Server record for Id=$Config{ZM_SERVER_ID} :".$dbh->errstr()); } } $secs_count += 1; @@ -375,7 +378,7 @@ sub run { } # end while dPrint(ZoneMinder::Logger::INFO, 'Server exiting at ' - .strftime( '%y/%m/%d %H:%M:%S', localtime() ) + .strftime('%y/%m/%d %H:%M:%S', localtime()) ."\n" ); if ( $Config{ZM_SERVER_ID} ) { @@ -709,7 +712,7 @@ sub reaper { $process->{delay} = $Config{ZM_MAX_RESTART_DELAY}; } } - Debug("Delay for $$process{command} is now $$process{delay}"); + #Debug("Delay for $$process{command} is now $$process{delay}"); } else { delete $cmd_hash{$$process{command}}; } From 88e148068e96f97ce7e33fa475958aa15ef00bdc Mon Sep 17 00:00:00 2001 From: Isaac Connor Date: Thu, 20 Dec 2018 13:56:57 -0500 Subject: [PATCH 4/6] Logging and whitespace --- scripts/zmtrigger.pl.in | 67 +++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 33 deletions(-) diff --git a/scripts/zmtrigger.pl.in b/scripts/zmtrigger.pl.in index b16e1cdd4..8e1257db9 100644 --- a/scripts/zmtrigger.pl.in +++ b/scripts/zmtrigger.pl.in @@ -311,7 +311,7 @@ while( 1 ) { # zmDbConnect will ping and reconnect if neccessary $dbh = zmDbConnect(); } # end while ( 1 ) -Info( "Trigger daemon exiting" ); +Info('Trigger daemon exiting'); exit; sub loadMonitor { @@ -327,7 +327,7 @@ sub loadMonitor { } sub loadMonitors { - Debug( "Loading monitors" ); + Debug('Loading monitors'); $monitor_reload_time = time(); my %new_monitors = (); @@ -362,25 +362,25 @@ sub handleMessage { my $monitor = $monitors{$id}; if ( !$monitor ) { - Warning( "Can't find monitor '$id' for message '$message'" ); + Warning("Can't find monitor '$id' for message '$message'"); return; } - Debug( "Found monitor for id '$id'" ); + Debug("Found monitor for id '$id'"); - next if ( !zmMemVerify( $monitor ) ); + next if ( !zmMemVerify($monitor) ); - Debug( "Handling action '$action'" ); + Debug("Handling action '$action'"); if ( $action =~ /^(enable|disable)(?:\+(\d+))?$/ ) { my $state = $1; my $delay = $2; if ( $state eq 'enable' ) { - zmMonitorEnable( $monitor ); + zmMonitorEnable($monitor); } else { - zmMonitorDisable( $monitor ); + zmMonitorDisable($monitor); } # Force a reload $monitor_reload_time = 0; - Info( "Set monitor to $state" ); + Info("Set monitor to $state"); if ( $delay ) { my $action_text = $id.'|'.( ($state eq 'enable') ? 'disable' @@ -395,9 +395,9 @@ sub handleMessage { my $delay = $2; my $trigger_data; if ( $trigger eq 'on' ) { - zmTriggerEventOn( $monitor, $score, $cause, $text ); - zmTriggerShowtext( $monitor, $showtext ) if defined($showtext); - Info( "Trigger '$trigger' '$cause'" ); + zmTriggerEventOn($monitor, $score, $cause, $text); + zmTriggerShowtext($monitor, $showtext) if defined($showtext); + Info("Trigger '$trigger' '$cause'"); if ( $delay ) { my $action_text = $id.'|cancel'; handleDelay($delay, $connection, $action_text); @@ -407,29 +407,29 @@ sub handleMessage { my $action_text = $id.'|off|0|'.$cause.'|'.$text; handleDelay($delay, $connection, $action_text); } else { - my $last_event = zmGetLastEvent( $monitor ); - zmTriggerEventOff( $monitor ); - zmTriggerShowtext( $monitor, $showtext ) if defined($showtext); - Info( "Trigger '$trigger'" ); + my $last_event = zmGetLastEvent($monitor); + zmTriggerEventOff($monitor); + zmTriggerShowtext($monitor, $showtext) if defined($showtext); + Info("Trigger '$trigger'"); # Wait til it's finished - while( zmInAlarm( $monitor ) - && ($last_event == zmGetLastEvent( $monitor )) + while( zmInAlarm($monitor) + && ($last_event == zmGetLastEvent($monitor)) ) { # Tenth of a second - usleep( 100000 ); + usleep(100000); } - zmTriggerEventCancel( $monitor ); + zmTriggerEventCancel($monitor); } } # end if trigger is on or off } elsif( $action eq 'cancel' ) { - zmTriggerEventCancel( $monitor ); - zmTriggerShowtext( $monitor, $showtext ) if defined($showtext); - Info( "Cancelled event" ); + zmTriggerEventCancel($monitor); + zmTriggerShowtext($monitor, $showtext) if defined($showtext); + Info('Cancelled event'); } elsif( $action eq 'show' ) { zmTriggerShowtext( $monitor, $showtext ); - Info( "Updated show text to '$showtext'" ); + Info("Updated show text to '$showtext'"); } else { - Error( "Unrecognised action '$action' in message '$message'" ); + Error("Unrecognised action '$action' in message '$message'"); } } # end sub handleMessage @@ -444,8 +444,9 @@ sub handleDelay { $action_array = $actions{$action_time} = []; } push( @$action_array, { connection=>$connection, message=>$action_text } ); - Debug( "Added timed event '$action_text', expires at $action_time (+$delay secs)" ); + Debug("Added timed event '$action_text', expires at $action_time (+$delay secs)"); } + 1; __END__ @@ -520,13 +521,13 @@ B|B|B|B|B|B =back -Note that multiple messages can be sent at once and should be LF or CRLF -delimited. This script is not necessarily intended to be a solution in -itself, but is intended to be used as 'glue' to help ZoneMinder interface -with other systems. It will almost certainly require some customisation -before you can make any use of it. If all you want to do is generate alarms -from external sources then using the ZoneMinder::SharedMem perl module is -likely to be easier. + Note that multiple messages can be sent at once and should be LF or CRLF + delimited. This script is not necessarily intended to be a solution in + itself, but is intended to be used as 'glue' to help ZoneMinder interface + with other systems. It will almost certainly require some customisation + before you can make any use of it. If all you want to do is generate alarms + from external sources then using the ZoneMinder::SharedMem perl module is + likely to be easier. =head1 EXAMPLES From a277f697e9212982a48d3f95dba79a3bb74fcbb8 Mon Sep 17 00:00:00 2001 From: Isaac Connor Date: Thu, 20 Dec 2018 14:58:38 -0500 Subject: [PATCH 5/6] whitespace --- web/includes/lang.php | 75 +++++++++++++++++++++---------------------- 1 file changed, 36 insertions(+), 39 deletions(-) diff --git a/web/includes/lang.php b/web/includes/lang.php index 0c40e7f60..38f1179d8 100644 --- a/web/includes/lang.php +++ b/web/includes/lang.php @@ -1,6 +1,6 @@ $value) { - if ( ! array_key_exists( $key, $SLANG ) ) - $SLANG[$key] = $DLANG[$key]; - } + require_once($langFile); + require_once('lang/default.php'); + foreach ($DLANG as $key => $value) { + if ( ! array_key_exists($key, $SLANG) ) + $SLANG[$key] = $DLANG[$key]; + } } - // // Date and time formats fallback, if not set up by the language file already // -defined("DATE_FMT_CONSOLE_LONG") or define("DATE_FMT_CONSOLE_LONG", "D jS M, g:ia"); // This is the main console date/time, date() or strftime() format -defined("DATE_FMT_CONSOLE_SHORT") or define( "DATE_FMT_CONSOLE_SHORT", "%H:%M" ); // This is the xHTML console date/time, date() or strftime() format +defined('DATE_FMT_CONSOLE_LONG') or define('DATE_FMT_CONSOLE_LONG', 'D jS M, g:ia'); // This is the main console date/time, date() or strftime() format +defined('DATE_FMT_CONSOLE_SHORT') or define('DATE_FMT_CONSOLE_SHORT', '%H:%M'); // This is the xHTML console date/time, date() or strftime() format -defined("STRF_FMT_DATETIME") or define( "STRF_FMT_DATETIME", "%c" ); // Strftime locale aware format for dates with times -defined("STRF_FMT_DATE") or define( "STRF_FMT_DATE", "%x" ); // Strftime locale aware format for dates without times -defined("STRF_FMT_TIME") or define( "STRF_FMT_TIME", "%X" ); // Strftime locale aware format for times without dates +defined('STRF_FMT_DATETIME') or define('STRF_FMT_DATETIME', '%c'); // Strftime locale aware format for dates with times +defined('STRF_FMT_DATE') or define('STRF_FMT_DATE', '%x'); // Strftime locale aware format for dates without times +defined('STRF_FMT_TIME') or define('STRF_FMT_TIME', '%X'); // Strftime locale aware format for times without dates -defined("STRF_FMT_DATETIME_SHORT") or define( "STRF_FMT_DATETIME_SHORT", "%y/%m/%d %H:%M:%S" ); // Strftime shorter format for dates with time, not locale aware -defined("STRF_FMT_DATETIME_SHORTER") or define( "STRF_FMT_DATETIME_SHORTER", "%m/%d %H:%M:%S" );// Strftime shorter format for dates with time, not locale aware, used where space is tight +defined('STRF_FMT_DATETIME_SHORT') or define('STRF_FMT_DATETIME_SHORT', '%y/%m/%d %H:%M:%S'); // Strftime shorter format for dates with time, not locale aware +defined('STRF_FMT_DATETIME_SHORTER') or define('STRF_FMT_DATETIME_SHORTER','%m/%d %H:%M:%S');// Strftime shorter format for dates with time, not locale aware, used where space is tight ?> From 48865f124b17b1758ed81e843332a384236ed489 Mon Sep 17 00:00:00 2001 From: Isaac Connor Date: Thu, 20 Dec 2018 15:10:04 -0500 Subject: [PATCH 6/6] cap AAC bitrate at 96000 to prevent the aac encoder from complaining --- src/zm_videostore.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/zm_videostore.cpp b/src/zm_videostore.cpp index 746036efe..ee4ff268b 100644 --- a/src/zm_videostore.cpp +++ b/src/zm_videostore.cpp @@ -533,7 +533,7 @@ bool VideoStore::setup_resampler() { #endif /* put sample parameters */ - audio_out_ctx->bit_rate = audio_in_ctx->bit_rate; + audio_out_ctx->bit_rate = audio_in_ctx->bit_rate <= 96000 ? audio_in_ctx->bit_rate : 96000; audio_out_ctx->sample_rate = audio_in_ctx->sample_rate; audio_out_ctx->channels = audio_in_ctx->channels; audio_out_ctx->channel_layout = audio_in_ctx->channel_layout;