From 9d67e088d1f84abeb4c2f1dca285c19fa8688767 Mon Sep 17 00:00:00 2001 From: Thivarella Date: Mon, 28 Oct 2019 15:22:31 -0300 Subject: [PATCH 1/3] Update service-media.js --- lib/modules/service-media.js | 61 +++++++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/lib/modules/service-media.js b/lib/modules/service-media.js index de1a316..682079e 100644 --- a/lib/modules/service-media.js +++ b/lib/modules/service-media.js @@ -222,6 +222,65 @@ OnvifServiceMedia.prototype.getVideoEncoderConfiguration = function(params, call } }; +/* ------------------------------------------------------------------ +* Method: setVideoEncoderConfiguration(configuration, forcePersistence[callback]) +* - params: +* - configuration | Object | required | all camera configs +* - forcePersistence | Boolean | required +* ---------------------------------------------------------------- */ +OnvifServiceMedia.prototype.setVideoEncoderConfiguration = function(configuration, forcePersistence, callback) { + let promise = new Promise((resolve, reject) => { + let soap_body = ''; + soap_body += ` + + ${configuration.Name} + ${configuration.UseCount} + ${configuration.Encoding} + + ${configuration.Resolution.Width} + ${configuration.Resolution.Height} + + ${configuration.Quality} + + ${configuration.RateControl.FrameRateLimit} + ${configuration.RateControl.EncodingInterval} + ${configuration.RateControl.BitrateLimit} + + + ${configuration.H264.GovLength} + ${configuration.H264.H264Profile} + + + + ${configuration.Multicast.Address.Type} + ${configuration.Multicast.Address.IPv4Address} + + ${configuration.Multicast.AutoStart} + ${configuration.Multicast.Port} + ${configuration.Multicast.TTL} + + ${configuration.SessionTimeout} + + ${forcePersistence} + ` + let soap = this._createRequestSoap(soap_body); + mOnvifSoap.requestCommand(this.oxaddr, 'SetVideoEncoderConfiguration', soap).then((result) => { + resolve(result); + }).catch((error) => { + reject(error); + }); + }); + if(callback) { + promise.then((result) => { + callback(null, result); + }).catch((error) => { + callback(error); + }); + } else { + return promise; + } +}; + /* ------------------------------------------------------------------ * Method: getCompatibleVideoEncoderConfigurations(params[, callback]) * - params: @@ -1649,4 +1708,4 @@ OnvifServiceMedia.prototype.getSnapshotUri = function(params, callback) { } }; -module.exports = OnvifServiceMedia; \ No newline at end of file +module.exports = OnvifServiceMedia; From 8ab57991830116b0f1fb775fc478f24b4e806a18 Mon Sep 17 00:00:00 2001 From: Thivarella Date: Mon, 28 Oct 2019 15:28:29 -0300 Subject: [PATCH 2/3] Update service-media.js --- lib/modules/service-media.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/modules/service-media.js b/lib/modules/service-media.js index 682079e..1a0353d 100644 --- a/lib/modules/service-media.js +++ b/lib/modules/service-media.js @@ -226,7 +226,7 @@ OnvifServiceMedia.prototype.getVideoEncoderConfiguration = function(params, call * Method: setVideoEncoderConfiguration(configuration, forcePersistence[callback]) * - params: * - configuration | Object | required | all camera configs -* - forcePersistence | Boolean | required +* - forcePersistence | Boolean | optional | deprecated - always considered to be true * ---------------------------------------------------------------- */ OnvifServiceMedia.prototype.setVideoEncoderConfiguration = function(configuration, forcePersistence, callback) { let promise = new Promise((resolve, reject) => { @@ -261,7 +261,7 @@ OnvifServiceMedia.prototype.setVideoEncoderConfiguration = function(configuratio ${configuration.SessionTimeout} - ${forcePersistence} + ${forcePersistence ? forcePersistence : true} ` let soap = this._createRequestSoap(soap_body); mOnvifSoap.requestCommand(this.oxaddr, 'SetVideoEncoderConfiguration', soap).then((result) => { From 377477921798cce8959e7a3d7883f24a6439087a Mon Sep 17 00:00:00 2001 From: Thivarella Date: Wed, 29 Jan 2020 17:52:08 -0300 Subject: [PATCH 3/3] Update service-media.js fixing ternary comparison --- lib/modules/service-media.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/modules/service-media.js b/lib/modules/service-media.js index 1a0353d..6fea61e 100644 --- a/lib/modules/service-media.js +++ b/lib/modules/service-media.js @@ -261,7 +261,7 @@ OnvifServiceMedia.prototype.setVideoEncoderConfiguration = function(configuratio ${configuration.SessionTimeout} - ${forcePersistence ? forcePersistence : true} + ${forcePersistence !== undefined ? forcePersistence : true} ` let soap = this._createRequestSoap(soap_body); mOnvifSoap.requestCommand(this.oxaddr, 'SetVideoEncoderConfiguration', soap).then((result) => {