diff options
| author | Pliable Pixels <pliablepixels@gmail.com> | 2019-11-03 09:51:31 -0500 |
|---|---|---|
| committer | Pliable Pixels <pliablepixels@gmail.com> | 2019-11-03 09:51:31 -0500 |
| commit | c90e4b23945ce93fd518c1595aa3d9275743f788 (patch) | |
| tree | b3b1291804dc778dbb7dba65683477409e30f7c6 | |
| parent | d483833c392f75454bd56eb7e6d2adf4a79be280 (diff) | |
add option to pause streams for simul, turn it off for default
| -rw-r--r-- | www/js/MontageCtrl.js | 22 | ||||
| -rw-r--r-- | www/js/NVR.js | 8 | ||||
| -rw-r--r-- | www/lang/locale-en.json | 2 | ||||
| -rw-r--r-- | www/templates/devoptions.html | 9 |
4 files changed, 34 insertions, 7 deletions
diff --git a/www/js/MontageCtrl.js b/www/js/MontageCtrl.js index 9abbcd03..d9bfd19b 100644 --- a/www/js/MontageCtrl.js +++ b/www/js/MontageCtrl.js @@ -1276,11 +1276,16 @@ angular.module('zmApp.controllers') if (simulStreaming) { - NVR.debug("Pausing all streams in montage to save memory/nw..."); + var ld = NVR.getLogin(); + if (ld.pauseStreams) { + NVR.debug("Pausing all streams in montage to save memory/nw..."); + for (var i = 0; i < $scope.MontageMonitors.length; i++) { + if ($scope.MontageMonitors[i].Monitor.listDisplay == 'show') NVR.pauseLiveStream($scope.MontageMonitors[i].Monitor.connKey, $scope.MontageMonitors[i].Monitor.controlURL, $scope.MontageMonitors[i].Monitor.Name); + } - for (var i = 0; i < $scope.MontageMonitors.length; i++) { - if ($scope.MontageMonitors[i].Monitor.listDisplay == 'show') NVR.pauseLiveStream($scope.MontageMonitors[i].Monitor.connKey, $scope.MontageMonitors[i].Monitor.controlURL, $scope.MontageMonitors[i].Monitor.Name); + } else { + NVR.debug ("Not pausing streams as pauseStreams is off"); } } @@ -1419,11 +1424,16 @@ angular.module('zmApp.controllers') // once regenerated if (simulStreaming) { - NVR.debug("Resuming all stream connkeys in montage ..."); + if (ld.pauseStreams) { + NVR.debug("Resuming all stream connkeys in montage ..."); - for (var i = 0; i < $scope.MontageMonitors.length; i++) { - if ($scope.MontageMonitors[i].Monitor.listDisplay == 'show') NVR.resumeLiveStream($scope.MontageMonitors[i].Monitor.connKey, $scope.MontageMonitors[i].Monitor.controlURL, $scope.MontageMonitors[i].Monitor.Name); + for (var i = 0; i < $scope.MontageMonitors.length; i++) { + if ($scope.MontageMonitors[i].Monitor.listDisplay == 'show') NVR.resumeLiveStream($scope.MontageMonitors[i].Monitor.connKey, $scope.MontageMonitors[i].Monitor.controlURL, $scope.MontageMonitors[i].Monitor.Name); + } + } else { + NVR.debug ("Not resuming streams as pauseStreams is off"); } + } diff --git a/www/js/NVR.js b/www/js/NVR.js index 0d1a9bd2..fed774f4 100644 --- a/www/js/NVR.js +++ b/www/js/NVR.js @@ -207,7 +207,8 @@ angular.module('zmApp.controllers') 'refreshToken': '', 'isKiosk': false, 'kioskPassword': '', - 'useHTTPCaching': true + 'useHTTPCaching': true, + 'pauseStreams': false, }; @@ -1590,6 +1591,11 @@ angular.module('zmApp.controllers') } + if (typeof loginData.pauseStreams == 'undefined') { + loginData.pauseStreams = false; + + } + loginData.canSwipeMonitors = true; loginData.forceImageModePath = false; loginData.enableBlog = true; diff --git a/www/lang/locale-en.json b/www/lang/locale-en.json index e4774cb3..d4b48150 100644 --- a/www/lang/locale-en.json +++ b/www/lang/locale-en.json @@ -283,6 +283,8 @@ "kPathToCgiExample" :"e.g. server/zm/cgi-bin", "kPause" :"pause", "kPaused" :"paused", + "kPauseStreams" : "pause/resume streams to save bandwidth", + "kPauseStreamsNote" : "only applies if multi-port is used", "kPinProtect" :"PIN Protect", "kPlaceHolderBasicAuthPass" :"basic auth password", "kPlaceHolderBasicAuthUser" :"basic auth user name", diff --git a/www/templates/devoptions.html b/www/templates/devoptions.html index bd8d6e3b..58dec1fc 100644 --- a/www/templates/devoptions.html +++ b/www/templates/devoptions.html @@ -236,6 +236,15 @@ </label> <label> + <ion-toggle ng-model="loginData.pauseStreams" toggle-class="toggle-calm"> + <span class="item-text-wrap">{{'kPauseStreams' | translate}} + <p> {{'kPauseStreamsNote' | translate}}</p> + </span> + + </ion-toggle> + </label> + + <label> <ion-toggle ng-model="loginData.enableLogs" toggle-class="toggle-calm"> <span class="item-text-wrap">{{'kEnableLogs' | translate}}</span> </ion-toggle> |
