From a4d83c33ecd7f55b784c5fafef1c018c3e201396 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikk=20Kiilasp=C3=A4=C3=A4?= Date: Wed, 25 Feb 2015 23:50:00 +0200 Subject: [PATCH] Add an option to specify the amount of encoding threads for FFMPEG --- src/octoprint/server/api/settings.py | 2 ++ src/octoprint/settings.py | 1 + src/octoprint/static/js/app/viewmodels/settings.js | 5 ++++- src/octoprint/templates/dialogs/settings/webcam.jinja2 | 6 ++++++ src/octoprint/timelapse.py | 3 ++- 5 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/octoprint/server/api/settings.py b/src/octoprint/server/api/settings.py index 9cd2d8cb..c92a790a 100644 --- a/src/octoprint/server/api/settings.py +++ b/src/octoprint/server/api/settings.py @@ -48,6 +48,7 @@ def getSettings(): "snapshotUrl": s.get(["webcam", "snapshot"]), "ffmpegPath": s.get(["webcam", "ffmpeg"]), "bitrate": s.get(["webcam", "bitrate"]), + "ffmpegThreads": s.get(["webcam", "ffmpegThreads"]), "watermark": s.getBoolean(["webcam", "watermark"]), "flipH": s.getBoolean(["webcam", "flipH"]), "flipV": s.getBoolean(["webcam", "flipV"]) @@ -143,6 +144,7 @@ def setSettings(): if "snapshotUrl" in data["webcam"].keys(): s.set(["webcam", "snapshot"], data["webcam"]["snapshotUrl"]) if "ffmpegPath" in data["webcam"].keys(): s.set(["webcam", "ffmpeg"], data["webcam"]["ffmpegPath"]) if "bitrate" in data["webcam"].keys(): s.set(["webcam", "bitrate"], data["webcam"]["bitrate"]) + if "ffmpegThreads" in data["webcam"].keys(): s.setInt(["webcam", "ffmpegThreads"], data["webcam"]["ffmpegThreads"]) if "watermark" in data["webcam"].keys(): s.setBoolean(["webcam", "watermark"], data["webcam"]["watermark"]) if "flipH" in data["webcam"].keys(): s.setBoolean(["webcam", "flipH"], data["webcam"]["flipH"]) if "flipV" in data["webcam"].keys(): s.setBoolean(["webcam", "flipV"], data["webcam"]["flipV"]) diff --git a/src/octoprint/settings.py b/src/octoprint/settings.py index c8c46ae7..108e2203 100644 --- a/src/octoprint/settings.py +++ b/src/octoprint/settings.py @@ -61,6 +61,7 @@ default_settings = { "stream": None, "snapshot": None, "ffmpeg": None, + "ffmpegThreads": 1, "bitrate": "5000k", "watermark": True, "flipH": False, diff --git a/src/octoprint/static/js/app/viewmodels/settings.js b/src/octoprint/static/js/app/viewmodels/settings.js index a6dcbf7e..a84fa221 100644 --- a/src/octoprint/static/js/app/viewmodels/settings.js +++ b/src/octoprint/static/js/app/viewmodels/settings.js @@ -55,6 +55,7 @@ $(function() { self.webcam_snapshotUrl = ko.observable(undefined); self.webcam_ffmpegPath = ko.observable(undefined); self.webcam_bitrate = ko.observable(undefined); + self.webcam_ffmpegThreads = ko.observable(undefined); self.webcam_watermark = ko.observable(undefined); self.webcam_flipH = ko.observable(undefined); self.webcam_flipV = ko.observable(undefined); @@ -179,6 +180,7 @@ $(function() { self.webcam_snapshotUrl(response.webcam.snapshotUrl); self.webcam_ffmpegPath(response.webcam.ffmpegPath); self.webcam_bitrate(response.webcam.bitrate); + self.webcam_ffmpegThreads(response.webcam.ffmpegThreads); self.webcam_watermark(response.webcam.watermark); self.webcam_flipH(response.webcam.flipH); self.webcam_flipV(response.webcam.flipV); @@ -239,6 +241,7 @@ $(function() { "snapshotUrl": self.webcam_snapshotUrl(), "ffmpegPath": self.webcam_ffmpegPath(), "bitrate": self.webcam_bitrate(), + "ffmpegThreads": self.webcam_ffmpegThreads(), "watermark": self.webcam_watermark(), "flipH": self.webcam_flipH(), "flipV": self.webcam_flipV() @@ -300,4 +303,4 @@ $(function() { ["loginStateViewModel", "usersViewModel", "printerProfilesViewModel"], ["#settings_dialog", "#navbar_settings"] ]); -}); \ No newline at end of file +}); diff --git a/src/octoprint/templates/dialogs/settings/webcam.jinja2 b/src/octoprint/templates/dialogs/settings/webcam.jinja2 index a2328c65..62cf13da 100644 --- a/src/octoprint/templates/dialogs/settings/webcam.jinja2 +++ b/src/octoprint/templates/dialogs/settings/webcam.jinja2 @@ -23,6 +23,12 @@ +
+ +
+ +
+