diff --git a/CHANGELOG.md b/CHANGELOG.md index f36ee755..9019c9c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## HEAD +### Enhancements + +- You can now set screen JPEG quality with the `SCREEN_JPEG_QUALITY` environment variable at launch time. Can be useful for slow networks. + ### Fixes - Fixed Lenovo A806 and most likely other cheap Lenovo devices as well by updating [adbkit](https://github.com/openstf/adbkit). diff --git a/lib/cli.js b/lib/cli.js index 0af3aff2..a5578b20 100644 --- a/lib/cli.js +++ b/lib/cli.js @@ -64,6 +64,10 @@ program , 'screen WebSocket URL pattern' , String , 'ws://${publicIp}:${publicPort}') + .option('--screen-jpeg-quality ' + , 'screen JPEG quality' + , Number + , process.env.SCREEN_JPEG_QUALITY || 80) .option('--connect-url-pattern ' , 'adb connect URL pattern' , String @@ -113,6 +117,7 @@ program , '--adb-host', options.adbHost , '--adb-port', options.adbPort , '--screen-ws-url-pattern', options.screenWsUrlPattern + , '--screen-jpeg-quality', options.screenJpegQuality , '--connect-url-pattern', options.connectUrlPattern , '--heartbeat-interval', options.heartbeatInterval , '--vnc-initial-size', options.vncInitialSize.join('x') @@ -182,6 +187,10 @@ program , 'screen WebSocket URL pattern' , String , 'ws://${publicIp}:${publicPort}') + .option('--screen-jpeg-quality ' + , 'screen JPEG quality' + , Number + , process.env.SCREEN_JPEG_QUALITY || 80) .option('--heartbeat-interval ' , 'heartbeat interval' , Number @@ -228,6 +237,7 @@ program , adbHost: options.adbHost , adbPort: options.adbPort , screenWsUrlPattern: options.screenWsUrlPattern + , screenJpegQuality: options.screenJpegQuality , screenPort: options.screenPort , connectUrlPattern: options.connectUrlPattern , connectPort: options.connectPort diff --git a/lib/units/device/plugins/screen/stream.js b/lib/units/device/plugins/screen/stream.js index bd757201..2da19b45 100644 --- a/lib/units/device/plugins/screen/stream.js +++ b/lib/units/device/plugins/screen/stream.js @@ -228,7 +228,11 @@ module.exports = syrup.serial() FrameProducer.prototype._startService = function() { log.info('Launching screen service') - return minicap.run(util.format('-S -P %s', this.frameConfig.toString())) + return minicap.run(util.format( + '-S -Q %d -P %s' + , options.screenJpegQuality + , this.frameConfig.toString() + )) .timeout(10000) } diff --git a/package.json b/package.json index 8a76d9f3..c2a23ad0 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "lodash": "^4.14.2", "markdown-serve": "^0.3.2", "mime": "^1.3.4", - "minicap-prebuilt": "^1.2.0", + "minicap-prebuilt": "^1.3.0", "minimatch": "^3.0.3", "my-local-ip": "^1.0.0", "openid": "^2.0.1",