diff --git a/web/skins/classic/views/watch.php b/web/skins/classic/views/watch.php
index 340ee8e33..fdcdae06d 100644
--- a/web/skins/classic/views/watch.php
+++ b/web/skins/classic/views/watch.php
@@ -397,6 +397,12 @@ if ( ZM_WEB_SOUND_ON_ALARM ) {
+JanusEnabled() ) {
+?>
+
diff --git a/web/views/image.php b/web/views/image.php
index 8e8cfdd2c..6e2c47714 100644
--- a/web/views/image.php
+++ b/web/views/image.php
@@ -65,7 +65,7 @@ if ( empty($_REQUEST['path']) ) {
if ( empty($_REQUEST['fid']) ) {
header('HTTP/1.0 404 Not Found');
- ZM\Fatal('No Frame ID specified');
+ ZM\Error('No Frame ID specified');
return;
}
@@ -73,47 +73,50 @@ if ( empty($_REQUEST['path']) ) {
$Event = ZM\Event::find_one(array('Id'=>$_REQUEST['eid']));
if ( !$Event ) {
header('HTTP/1.0 404 Not Found');
- ZM\Fatal('Event '.$_REQUEST['eid'].' Not found');
+ ZM\Error('Event '.$_REQUEST['eid'].' Not found');
return;
}
if ( $_REQUEST['fid'] == 'objdetect' ) {
- // if animation file is found, return that, else return image
- // we are only looking for GIF or jpg here, not mp4
- // as most often, browsers asking for this link will be expecting
- // media types that can be rendered as
- $path_anim_gif = $Event->Path().'/objdetect.gif';
- $path_image = $Event->Path().'/objdetect.jpg';
- if (file_exists($path_anim_gif)) {
- // we found the animation gif file
- $media_type = 'image/gif';
- ZM\Debug("Animation file found at $path");
- $path = $path_anim_gif;
- } else if (file_exists($path_image)) {
- // animation not found, but image found
- ZM\Debug("Image file found at $path");
- $path = $path_image;
- } else {
- // neither animation nor image found
- header('HTTP/1.0 404 Not Found');
- ZM\Fatal("Object detection animation and image not found for this event");
- }
- $Frame = new ZM\Frame();
- $Frame->Id('objdetect');
- } else if ( $_REQUEST['fid'] == 'objdetect_mp4' ) {
- $path = $Event->Path().'/objdetect.mp4';
- if ( !file_exists($path) ) {
- header('HTTP/1.0 404 Not Found');
- ZM\Fatal("File $path does not exist. You might not have enabled create_animation in objectconfig.ini. If you have, inspect debug logs for errors during creation");
- }
- $Frame = new ZM\Frame();
- $Frame->Id('objdetect');
- $media_type = 'video/mp4';
- } else if ( $_REQUEST['fid'] == 'objdetect_gif' ) {
- $path = $Event->Path().'/objdetect.gif';
- if ( !file_exists($path) ) {
- header('HTTP/1.0 404 Not Found');
- ZM\Fatal("File $path does not exist. You might not have enabled create_animation in objectconfig.ini. If you have, inspect debug logs for errors during creation");
+ // if animation file is found, return that, else return image
+ // we are only looking for GIF or jpg here, not mp4
+ // as most often, browsers asking for this link will be expecting
+ // media types that can be rendered as
+ $path_anim_gif = $Event->Path().'/objdetect.gif';
+ $path_image = $Event->Path().'/objdetect.jpg';
+ if (file_exists($path_anim_gif)) {
+ // we found the animation gif file
+ $media_type = 'image/gif';
+ ZM\Debug("Animation file found at $path");
+ $path = $path_anim_gif;
+ } else if (file_exists($path_image)) {
+ // animation not found, but image found
+ ZM\Debug("Image file found at $path");
+ $path = $path_image;
+ } else {
+ // neither animation nor image found
+ header('HTTP/1.0 404 Not Found');
+ ZM\Error('Object detection animation and image not found for this event');
+ return;
+ }
+ $Frame = new ZM\Frame();
+ $Frame->Id('objdetect');
+ } else if ( $_REQUEST['fid'] == 'objdetect_mp4' ) {
+ $path = $Event->Path().'/objdetect.mp4';
+ if ( !file_exists($path) ) {
+ header('HTTP/1.0 404 Not Found');
+ ZM\Error("File $path does not exist. You might not have enabled create_animation in objectconfig.ini. If you have, inspect debug logs for errors during creation");
+ return;
+ }
+ $Frame = new ZM\Frame();
+ $Frame->Id('objdetect');
+ $media_type = 'video/mp4';
+ } else if ( $_REQUEST['fid'] == 'objdetect_gif' ) {
+ $path = $Event->Path().'/objdetect.gif';
+ if ( !file_exists($path) ) {
+ header('HTTP/1.0 404 Not Found');
+ ZM\Error("File $path does not exist. You might not have enabled create_animation in objectconfig.ini. If you have, inspect debug logs for errors during creation");
+ return;
}
$Frame = new ZM\Frame();
$Frame->Id('objdetect');
@@ -122,7 +125,8 @@ if ( empty($_REQUEST['path']) ) {
$path = $Event->Path().'/objdetect.jpg';
if ( !file_exists($path) ) {
header('HTTP/1.0 404 Not Found');
- ZM\Fatal("File $path does not exist. Please make sure store_frame_in_zm is enabled in the object detection config");
+ ZM\Error("File $path does not exist. Please make sure store_frame_in_zm is enabled in the object detection config");
+ return;
}
$Frame = new ZM\Frame();
$Frame->Id('objdetect');
@@ -149,7 +153,7 @@ if ( empty($_REQUEST['path']) ) {
$path = $Event->Path().'/'.sprintf('%0'.ZM_EVENT_IMAGE_DIGITS.'d', $Frame->FrameId()).'-'.$show.'.jpg';
} else {
header('HTTP/1.0 404 Not Found');
- ZM\Fatal('No alarm jpg found for event '.$_REQUEST['eid']);
+ ZM\Error('No alarm jpg found for event '.$_REQUEST['eid']);
return;
}
} else {
@@ -189,11 +193,12 @@ if ( empty($_REQUEST['path']) ) {
ZM\Debug("Command: $command, retval: $retval, output: " . implode("\n", $output));
if ( ! file_exists($path) ) {
header('HTTP/1.0 404 Not Found');
- ZM\Fatal('Can\'t create frame images from video for this event '.$Event->DefaultVideo().'
+ ZM\Error('Can\'t create frame images from video for this event '.$Event->DefaultVideo().'
Command was: '.$command.'
Output was: '.implode(PHP_EOL,$output) );
+ return;
}
# Generating an image file will use up more disk space, so update the Event record.
if ( $Event->EndDateTime() ) {
@@ -202,7 +207,7 @@ if ( empty($_REQUEST['path']) ) {
}
} else {
header('HTTP/1.0 404 Not Found');
- ZM\Fatal('No snapshot jpg found for event '.$_REQUEST['eid']);
+ ZM\Error('No snapshot jpg found for event '.$_REQUEST['eid']);
return;
}
} # end if stored jpgs
@@ -231,7 +236,8 @@ if ( empty($_REQUEST['path']) ) {
$Frame->Delta($previousBulkFrame['Delta'] + floor( 100* ( $nextBulkFrame['Delta'] - $previousBulkFrame['Delta'] ) * $percentage )/100);
ZM\Debug('Got virtual frame from Bulk Frames previous delta: ' . $previousBulkFrame['Delta'] . ' + nextdelta:' . $nextBulkFrame['Delta'] . ' - ' . $previousBulkFrame['Delta'] . ' * ' . $percentage );
} else {
- ZM\Fatal('No Frame found for event('.$_REQUEST['eid'].') and frame id('.$_REQUEST['fid'].')');
+ ZM\Error('No Frame found for event('.$_REQUEST['eid'].') and frame id('.$_REQUEST['fid'].')');
+ return;
}
} # end if !Frame
// Frame can be non-existent. We have Bulk frames. So now we should try to load the bulk frame
@@ -244,14 +250,14 @@ if ( empty($_REQUEST['path']) ) {
$Frame = ZM\Frame::find_one(array('Id'=>$_REQUEST['fid']));
if ( !$Frame ) {
header('HTTP/1.0 404 Not Found');
- ZM\Fatal('Frame ' . $_REQUEST['fid'] . ' Not Found');
+ ZM\Error('Frame ' . $_REQUEST['fid'] . ' Not Found');
return;
}
$Event = ZM\Event::find_one(array('Id'=>$Frame->EventId()));
if ( !$Event ) {
header('HTTP/1.0 404 Not Found');
- ZM\Fatal('Event ' . $Frame->EventId() . ' Not Found');
+ ZM\Error('Event ' . $Frame->EventId() . ' Not Found');
return;
}
$path = $Event->Path().'/'.sprintf('%0'.ZM_EVENT_IMAGE_DIGITS.'d',$Frame->FrameId()).'-'.$show.'.jpg';
@@ -263,7 +269,8 @@ if ( empty($_REQUEST['path']) ) {
if ( ($show == 'capture') and $Event->DefaultVideo() ) {
if ( !file_exists($Event->Path().'/'.$Event->DefaultVideo()) ) {
header('HTTP/1.0 404 Not Found');
- ZM\Fatal("Can't create frame images from video because there is no video file for this event at (".$Event->Path().'/'.$Event->DefaultVideo() );
+ ZM\Error("Can't create frame images from video because there is no video file for this event at (".$Event->Path().'/'.$Event->DefaultVideo() );
+ return;
}
$command = ZM_PATH_FFMPEG.' -ss '. $Frame->Delta() .' -i '.$Event->Path().'/'.$Event->DefaultVideo().' -frames:v 1 '.$path . ' 2>&1';
#$command ='ffmpeg -ss '. $Frame->Delta() .' -i '.$Event->Path().'/'.$Event->DefaultVideo().' -vf "select=gte(n\\,'.$Frame->FrameId().'),setpts=PTS-STARTPTS" '.$path;
@@ -275,11 +282,12 @@ if ( empty($_REQUEST['path']) ) {
ZM\Debug("Command: $command, retval: $retval, output: " . implode("\n", $output));
if ( ! file_exists($path) ) {
header('HTTP/1.0 404 Not Found');
- ZM\Fatal('Can\'t create frame images from video for this event '.$Event->DefaultVideo().'
+ ZM\Error('Can\'t create frame images from video for this event '.$Event->DefaultVideo().'
Command was: '.$command.'
Output was: '.implode(PHP_EOL,$output) );
+ return;
}
# Generating an image file will use up more disk space, so update the Event record.
if ( $Event->EndDateTime() ) {
@@ -288,8 +296,9 @@ Output was: '.implode(PHP_EOL,$output) );
}
} else {
header('HTTP/1.0 404 Not Found');
- ZM\Fatal("Can't create frame $show images from video because there is no video file for this event at ".
+ ZM\Error("Can't create frame $show images from video because there is no video file for this event at ".
$Event->Path().'/'.$Event->DefaultVideo() );
+ return;
}
} # end if ! file_exists($path)
@@ -317,7 +326,8 @@ Output was: '.implode(PHP_EOL,$output) );
}
if ( !file_exists($path) ) {
header('HTTP/1.0 404 Not Found');
- ZM\Fatal("Image not found at $path");
+ ZM\Error("Image not found at $path");
+ return;
}
}