aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--recipes-webui/octoprint/octoprint/0001-timelapse-add-setting-for-videocodec.patch191
-rw-r--r--recipes-webui/octoprint/octoprint/0002-timelapse-change-videocodecs-to-predefined-list.patch37
-rw-r--r--recipes-webui/octoprint/octoprint/0003-timelapse-pick-container-and-suffix-based-on-setting.patch64
-rw-r--r--recipes-webui/octoprint/octoprint_git.bb17
4 files changed, 7 insertions, 302 deletions
diff --git a/recipes-webui/octoprint/octoprint/0001-timelapse-add-setting-for-videocodec.patch b/recipes-webui/octoprint/octoprint/0001-timelapse-add-setting-for-videocodec.patch
deleted file mode 100644
index d5102d4..0000000
--- a/recipes-webui/octoprint/octoprint/0001-timelapse-add-setting-for-videocodec.patch
+++ /dev/null
@@ -1,191 +0,0 @@
-From 2fb4b4d9e4f95db8bcdad5c8a52006de8811c1e8 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Sat, 27 Jan 2018 12:09:28 +0100
-Subject: [PATCH 1/3] timelapse: add setting for videocodec
-
----
- docs/api/settings.rst | 2 ++
- docs/configuration/config_yaml.rst | 3 +++
- src/octoprint/server/api/settings.py | 3 +++
- src/octoprint/settings.py | 1 +
- src/octoprint/static/js/app/viewmodels/settings.js | 1 +
- src/octoprint/templates/dialogs/settings/webcam.jinja2 | 1 +
- .../snippets/settings/webcam/ffmpegVideoCodec.jinja2 | 6 ++++++
- src/octoprint/timelapse.py | 15 ++++++++++-----
- 8 files changed, 27 insertions(+), 5 deletions(-)
- create mode 100644 src/octoprint/templates/snippets/settings/webcam/ffmpegVideoCodec.jinja2
-
-diff --git a/docs/api/settings.rst b/docs/api/settings.rst
-index b26b2d2..7be1b1e 100644
---- a/docs/api/settings.rst
-+++ b/docs/api/settings.rst
-@@ -254,6 +254,8 @@ mapped from the same fields in ``config.yaml`` unless otherwise noted:
- -
- * - ``webcam.ffmpegThreads``
- -
-+ * - ``webcam.ffmpegVideoCodec``
-+ -
- * - ``webcam.watermark``
- -
- * - ``webcam.flipH``
-diff --git a/docs/configuration/config_yaml.rst b/docs/configuration/config_yaml.rst
-index 7205ee1..6ccf9b9 100644
---- a/docs/configuration/config_yaml.rst
-+++ b/docs/configuration/config_yaml.rst
-@@ -1181,6 +1181,9 @@ Use the following settings to configure webcam support:
- # Should be left at 1 for RPi1.
- ffmpegThreads: 1
-
-+ # Videocodec to be used for encoding. Defaults to mpeg2video.
-+ ffmpegVideoCodec: mpeg2video
-+
- # The bitrate to use for rendering the timelapse video. This gets directly passed to ffmpeg.
- bitrate: 5000k
-
-diff --git a/src/octoprint/server/api/settings.py b/src/octoprint/server/api/settings.py
-index 9ccb461..13ab076 100644
---- a/src/octoprint/server/api/settings.py
-+++ b/src/octoprint/server/api/settings.py
-@@ -106,6 +106,7 @@ def getSettings():
- "ffmpegPath": s.get(["webcam", "ffmpeg"]),
- "bitrate": s.get(["webcam", "bitrate"]),
- "ffmpegThreads": s.get(["webcam", "ffmpegThreads"]),
-+ "ffmpegVideoCodec": s.get(["webcam", "ffmpegVideoCodec"]),
- "watermark": s.getBoolean(["webcam", "watermark"]),
- "flipH": s.getBoolean(["webcam", "flipH"]),
- "flipV": s.getBoolean(["webcam", "flipV"]),
-@@ -341,6 +342,8 @@ def _saveSettings(data):
- if "ffmpegPath" in data["webcam"]: s.set(["webcam", "ffmpeg"], data["webcam"]["ffmpegPath"])
- if "bitrate" in data["webcam"]: s.set(["webcam", "bitrate"], data["webcam"]["bitrate"])
- if "ffmpegThreads" in data["webcam"]: s.setInt(["webcam", "ffmpegThreads"], data["webcam"]["ffmpegThreads"])
-+ # Add a whitelist for vcodecs like aspect ration has?
-+ if "ffmpegVideoCodec" in data["webcam"]: s.set(["webcam", "ffmpegVideoCodec"], data["webcam"]["ffmpegVideoCodec"])
- if "watermark" in data["webcam"]: s.setBoolean(["webcam", "watermark"], data["webcam"]["watermark"])
- if "flipH" in data["webcam"]: s.setBoolean(["webcam", "flipH"], data["webcam"]["flipH"])
- if "flipV" in data["webcam"]: s.setBoolean(["webcam", "flipV"], data["webcam"]["flipV"])
-diff --git a/src/octoprint/settings.py b/src/octoprint/settings.py
-index e360077..72823ec 100644
---- a/src/octoprint/settings.py
-+++ b/src/octoprint/settings.py
-@@ -205,6 +205,7 @@ default_settings = {
- "snapshotSslValidation": True,
- "ffmpeg": None,
- "ffmpegThreads": 1,
-+ "ffmpegVideoCodec": "mpeg2video",
- "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 c2ee03f..bb95a88 100644
---- a/src/octoprint/static/js/app/viewmodels/settings.js
-+++ b/src/octoprint/static/js/app/viewmodels/settings.js
-@@ -125,6 +125,7 @@ $(function() {
- self.webcam_ffmpegPath = ko.observable(undefined);
- self.webcam_bitrate = ko.observable(undefined);
- self.webcam_ffmpegThreads = ko.observable(undefined);
-+ self.webcam_ffmpegVideoCodec = ko.observable(undefined);
- self.webcam_watermark = ko.observable(undefined);
- self.webcam_flipH = ko.observable(undefined);
- self.webcam_flipV = ko.observable(undefined);
-diff --git a/src/octoprint/templates/dialogs/settings/webcam.jinja2 b/src/octoprint/templates/dialogs/settings/webcam.jinja2
-index 7a1330e..f9b72b0 100644
---- a/src/octoprint/templates/dialogs/settings/webcam.jinja2
-+++ b/src/octoprint/templates/dialogs/settings/webcam.jinja2
-@@ -26,6 +26,7 @@
- {% include "snippets/settings/webcam/ffmpegThreads.jinja2" %}
- {% include "snippets/settings/webcam/webcamSnapshotTimeout.jinja2" %}
- {% include "snippets/settings/webcam/webcamSnapshotSslValidation.jinja2" %}
-+ {% include "snippets/settings/webcam/ffmpegVideoCodec.jinja2" %}
- </div>
- </div>
- </form>
-diff --git a/src/octoprint/templates/snippets/settings/webcam/ffmpegVideoCodec.jinja2 b/src/octoprint/templates/snippets/settings/webcam/ffmpegVideoCodec.jinja2
-new file mode 100644
-index 0000000..920a534
---- /dev/null
-+++ b/src/octoprint/templates/snippets/settings/webcam/ffmpegVideoCodec.jinja2
-@@ -0,0 +1,6 @@
-+<div class="control-group" title="{{ _('Videocodec uses for encoding') }}">
-+ <label class="control-label" for="settings-webcam_ffmpegVideoCodec">{{ _('Videocodec') }}</label>
-+ <div class="controls">
-+ <input class="input-mini" data-bind="value: webcam_ffmpegVIdeoCodec" id="settings-webcamFfmpegVideoCodec" type="text">
-+ </div>
-+</div>
-diff --git a/src/octoprint/timelapse.py b/src/octoprint/timelapse.py
-index d18fb2d..0e01972 100644
---- a/src/octoprint/timelapse.py
-+++ b/src/octoprint/timelapse.py
-@@ -158,6 +158,7 @@ def render_unrendered_timelapse(name, gcode=None, postfix=None, fps=25):
- capture_dir = settings().getBaseFolder("timelapse_tmp")
- output_dir = settings().getBaseFolder("timelapse")
- threads = settings().get(["webcam", "ffmpegThreads"])
-+ videocodec = settings().get(["webcam", "ffmpegVideoCodec"])
-
- job = TimelapseRenderJob(capture_dir, output_dir, name,
- postfix=postfix,
-@@ -165,6 +166,7 @@ def render_unrendered_timelapse(name, gcode=None, postfix=None, fps=25):
- output_format=_output_format,
- fps=fps,
- threads=threads,
-+ videocodec=videocodec,
- on_start=_create_render_start_handler(name, gcode=gcode),
- on_success=_create_render_success_handler(name, gcode=gcode),
- on_fail=_create_render_fail_handler(name, gcode=gcode),
-@@ -740,7 +742,7 @@ class TimelapseRenderJob(object):
-
- def __init__(self, capture_dir, output_dir, prefix, postfix=None, capture_glob="{prefix}-*.jpg",
- capture_format="{prefix}-%d.jpg", output_format="{prefix}{postfix}.mpg", fps=25, threads=1,
-- on_start=None, on_success=None, on_fail=None, on_always=None):
-+ videocodec="mpeg2video", on_start=None, on_success=None, on_fail=None, on_always=None):
- self._capture_dir = capture_dir
- self._output_dir = output_dir
- self._prefix = prefix
-@@ -750,6 +752,7 @@ class TimelapseRenderJob(object):
- self._output_format = output_format
- self._fps = fps
- self._threads = threads
-+ self._videocodec = videocodec
- self._on_start = on_start
- self._on_success = on_success
- self._on_fail = on_fail
-@@ -805,7 +808,8 @@ class TimelapseRenderJob(object):
-
- # prepare ffmpeg command
- command_str = self._create_ffmpeg_command_string(ffmpeg, self._fps, bitrate, self._threads, input, output,
-- hflip=hflip, vflip=vflip, rotate=rotate, watermark=watermark)
-+ self._videocodec, hflip=hflip, vflip=vflip, rotate=rotate,
-+ watermark=watermark)
- self._logger.debug("Executing command: {}".format(command_str))
-
- with self.render_job_lock:
-@@ -827,7 +831,7 @@ class TimelapseRenderJob(object):
- self._notify_callback("always", output)
-
- @classmethod
-- def _create_ffmpeg_command_string(cls, ffmpeg, fps, bitrate, threads, input, output, hflip=False, vflip=False,
-+ def _create_ffmpeg_command_string(cls, ffmpeg, fps, bitrate, threads, input, output, videocodec, hflip=False, vflip=False,
- rotate=False, watermark=None, pixfmt="yuv420p"):
- """
- Create ffmpeg command string based on input parameters.
-@@ -837,7 +841,8 @@ class TimelapseRenderJob(object):
- fps (int): Frames per second for output
- bitrate (str): Bitrate of output
- threads (int): Number of threads to use for rendering
-- input (str): Absolute path to input files including file mask
-+ videocodec (str): Videocodec to be used for encoding
-+ input (str): Absolute path to input files including file mask
- output (str): Absolute path to output file
- hflip (bool): Perform horizontal flip on input material.
- vflip (bool): Perform vertical flip on input material.
-@@ -854,7 +859,7 @@ class TimelapseRenderJob(object):
- logger = logging.getLogger(__name__)
-
- command = [
-- ffmpeg, '-framerate', str(fps), '-loglevel', 'error', '-i', '"{}"'.format(input), '-vcodec', 'mpeg2video',
-+ ffmpeg, '-framerate', str(fps), '-loglevel', 'error', '-i', '"{}"'.format(input), '-vcodec', videocodec,
- '-threads', str(threads), '-r', "25", '-y', '-b', str(bitrate),
- '-f', 'vob']
-
---
-2.0.1
-
diff --git a/recipes-webui/octoprint/octoprint/0002-timelapse-change-videocodecs-to-predefined-list.patch b/recipes-webui/octoprint/octoprint/0002-timelapse-change-videocodecs-to-predefined-list.patch
deleted file mode 100644
index 0261bb3..0000000
--- a/recipes-webui/octoprint/octoprint/0002-timelapse-change-videocodecs-to-predefined-list.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 8f7815287d7fdacbca7d84bfc85531d489dd8473 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Sat, 27 Jan 2018 13:39:18 +0100
-Subject: [PATCH 2/3] timelapse: change videocodecs to predefined list
-
----
- src/octoprint/static/js/app/viewmodels/settings.js | 1 +
- .../templates/snippets/settings/webcam/ffmpegVideoCodec.jinja2 | 2 +-
- 2 files changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/octoprint/static/js/app/viewmodels/settings.js b/src/octoprint/static/js/app/viewmodels/settings.js
-index bb95a88..99627e2 100644
---- a/src/octoprint/static/js/app/viewmodels/settings.js
-+++ b/src/octoprint/static/js/app/viewmodels/settings.js
-@@ -97,6 +97,7 @@ $(function() {
- };
-
- self.webcam_available_ratios = ["16:9", "4:3"];
-+ self.webcam_available_videocodecs = ["mpeg2video", "libx264"];
-
- var auto_locale = {language: "_default", display: gettext("Autodetect from browser"), english: undefined};
- self.locales = ko.observableArray([auto_locale].concat(_.sortBy(_.values(AVAILABLE_LOCALES), function(n) {
-diff --git a/src/octoprint/templates/snippets/settings/webcam/ffmpegVideoCodec.jinja2 b/src/octoprint/templates/snippets/settings/webcam/ffmpegVideoCodec.jinja2
-index 920a534..b01f5d8 100644
---- a/src/octoprint/templates/snippets/settings/webcam/ffmpegVideoCodec.jinja2
-+++ b/src/octoprint/templates/snippets/settings/webcam/ffmpegVideoCodec.jinja2
-@@ -1,6 +1,6 @@
- <div class="control-group" title="{{ _('Videocodec uses for encoding') }}">
- <label class="control-label" for="settings-webcam_ffmpegVideoCodec">{{ _('Videocodec') }}</label>
- <div class="controls">
-- <input class="input-mini" data-bind="value: webcam_ffmpegVIdeoCodec" id="settings-webcamFfmpegVideoCodec" type="text">
-+ <select data-bind="options: webcam_available_videocodecs, value: webcam_ffmpegVideoCodec"></select>
- </div>
- </div>
---
-2.0.1
-
diff --git a/recipes-webui/octoprint/octoprint/0003-timelapse-pick-container-and-suffix-based-on-setting.patch b/recipes-webui/octoprint/octoprint/0003-timelapse-pick-container-and-suffix-based-on-setting.patch
deleted file mode 100644
index 8e65120..0000000
--- a/recipes-webui/octoprint/octoprint/0003-timelapse-pick-container-and-suffix-based-on-setting.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From 67308d8af542816f88f7500ed076fe8ecead2501 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Sat, 27 Jan 2018 14:25:27 +0100
-Subject: [PATCH 3/3] timelapse: pick container and suffix based on setting
-
----
- src/octoprint/timelapse.py | 17 ++++++++++++++---
- 1 file changed, 14 insertions(+), 3 deletions(-)
-
-diff --git a/src/octoprint/timelapse.py b/src/octoprint/timelapse.py
-index 0e01972..a1e59f7 100644
---- a/src/octoprint/timelapse.py
-+++ b/src/octoprint/timelapse.py
-@@ -42,7 +42,7 @@ current_render_job = None
-
- # filename formats
- _capture_format = "{prefix}-%d.jpg"
--_output_format = "{prefix}.mpg"
-+_output_format = "{prefix}"
-
- # old capture format, needed to delete old left-overs from
- # versions <1.2.9
-@@ -741,7 +741,7 @@ class TimelapseRenderJob(object):
- render_job_lock = threading.RLock()
-
- def __init__(self, capture_dir, output_dir, prefix, postfix=None, capture_glob="{prefix}-*.jpg",
-- capture_format="{prefix}-%d.jpg", output_format="{prefix}{postfix}.mpg", fps=25, threads=1,
-+ capture_format="{prefix}-%d.jpg", output_format="{prefix}{postfix}", fps=25, threads=1,
- videocodec="mpeg2video", on_start=None, on_success=None, on_fail=None, on_always=None):
- self._capture_dir = capture_dir
- self._output_dir = output_dir
-@@ -785,6 +785,11 @@ class TimelapseRenderJob(object):
- output = os.path.join(self._output_dir,
- self._output_format.format(prefix=self._prefix,
- postfix=self._postfix if self._postfix is not None else ""))
-+ if self._videocodec == 'mpeg2video':
-+ suffix = ".mpg"
-+ else:
-+ suffix = ".mp4"
-+ output = output + suffix
-
- for i in range(4):
- if os.path.exists(input % i):
-@@ -858,10 +863,16 @@ class TimelapseRenderJob(object):
-
- logger = logging.getLogger(__name__)
-
-+ ### Not all players can handle non-mpeg2 in VOB format
-+ if videocodec == 'mpeg2video':
-+ containerformat = "vob"
-+ else:
-+ containerformat = "mp4"
-+
- command = [
- ffmpeg, '-framerate', str(fps), '-loglevel', 'error', '-i', '"{}"'.format(input), '-vcodec', videocodec,
- '-threads', str(threads), '-r', "25", '-y', '-b', str(bitrate),
-- '-f', 'vob']
-+ '-f', containerformat]
-
- filter_string = cls._create_filter_string(hflip=hflip,
- vflip=vflip,
---
-2.0.1
-
diff --git a/recipes-webui/octoprint/octoprint_git.bb b/recipes-webui/octoprint/octoprint_git.bb
index 3318e48..50ad3cc 100644
--- a/recipes-webui/octoprint/octoprint_git.bb
+++ b/recipes-webui/octoprint/octoprint_git.bb
@@ -6,15 +6,12 @@ SECTION = "devel/python"
LICENSE = "AGPL-3.0"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=73f1eb20517c55bf9493b7dd6e480788"
-SRCREV = "81471df419205980a133b3fb7e5b9ce25c4eaa63"
+SRCREV = "7b773f6fd21d407b325ce5f507bec24b945b9e21"
-PV = "1.3.8+git${SRCPV}"
+PV = "1.4.0rc+git${SRCPV}"
PATCHTOOL = "git"
-SRC_URI = "git://github.com/foosel/OctoPrint.git;protocol=https;branch=maintenance \
- file://0001-timelapse-add-setting-for-videocodec.patch \
- file://0002-timelapse-change-videocodecs-to-predefined-list.patch \
- file://0003-timelapse-pick-container-and-suffix-based-on-setting.patch \
+SRC_URI = "git://github.com/foosel/OctoPrint.git;protocol=https;branch=devel \
file://config.yaml \
file://octoprint.service \
file://octoprint \
@@ -78,7 +75,7 @@ RDEPENDS_${PN} = "python-awesome-slugify \
python-flask \
python-flask-assets \
python-flask-babel \
- python-flask-login2 \
+ python-flask-login \
python-flask-principal \
python-frozendict \
python-html \
@@ -96,7 +93,7 @@ RDEPENDS_${PN} = "python-awesome-slugify \
python-psutil \
python-pylru \
python-pyserial \
- python-pyyaml310 \
+ python-pyyaml \
python-requests \
python-rsa \
python-sarge \
@@ -106,8 +103,8 @@ RDEPENDS_${PN} = "python-awesome-slugify \
python-sphinxcontrib-httpdomain \
python-tornado45 \
python-watchdog \
- python-werkzeug08 \
- python-click62 \
+ python-werkzeug11 \
+ python-click \
python-chainmap \
python-future15 \
python-scandir \