From 8ceaf52aee0efed760d4d2b18c6c75bde7be7f34 Mon Sep 17 00:00:00 2001 From: hatsch Date: Mon, 27 Jul 2026 19:55:58 +0200 Subject: [PATCH 1/9] chore: bump GStreamer 1.28.4 -> 1.28.5 --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index e1b63b8..175b566 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # ---------- Builder stage ---------- FROM alpine:3.21 AS builder -ARG GSTREAMER_VERSION=1.28.4 +ARG GSTREAMER_VERSION=1.28.5 # Core build deps RUN apk add --no-cache \ @@ -76,7 +76,7 @@ ENV PATH="/root/.cargo/bin:${PATH}" ENV RUSTFLAGS="-C target-feature=-crt-static" RUN cargo install --locked cargo-c -ARG GST_RS_VERSION=gstreamer-1.28.4 +ARG GST_RS_VERSION=gstreamer-1.28.5 RUN git clone --depth 1 -b ${GST_RS_VERSION} \ https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git /opt/gst-plugins-rs From 766b6e6337017419bc9689aaa2e4a2c95ee6c7ae Mon Sep 17 00:00:00 2001 From: hatsch Date: Mon, 27 Jul 2026 19:56:00 +0200 Subject: [PATCH 2/9] ci: add ruff lint gate before publish jobs --- .github/workflows/docker-publish.yml | 9 +++++++++ .github/workflows/pypi-publish.yml | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index aaa2c98..d99a636 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -9,7 +9,16 @@ env: IMAGE_NAME: ${{ github.repository }} jobs: + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: astral-sh/ruff-action@v3 + with: + version: "0.15.11" + build: + needs: lint runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/pypi-publish.yml b/.github/workflows/pypi-publish.yml index 7fd895e..093e916 100644 --- a/.github/workflows/pypi-publish.yml +++ b/.github/workflows/pypi-publish.yml @@ -5,7 +5,16 @@ on: tags: ['v*.*.*'] jobs: + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: astral-sh/ruff-action@v3 + with: + version: "0.15.11" + publish: + needs: lint runs-on: ubuntu-latest permissions: id-token: write From 25bb83cd8ae695062951bcf1ae5cd754a3ed8434 Mon Sep 17 00:00:00 2001 From: hatsch Date: Mon, 27 Jul 2026 19:56:09 +0200 Subject: [PATCH 3/9] docs: drop stale x264 availability note --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6cbdf65..a48c3aa 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ Hardware-accelerated encoding via VAAPI (AMD/Intel) or Vulkan Video. Software fa | Encoder | Type | |---------|------| -| [`x264`](dove/docs/encoders.md#x264) | Software (always available) | +| [`x264`](dove/docs/encoders.md#x264) | Software | | [`openh264`](dove/docs/encoders.md#openh264) | Software alternative | | [`vah264enc`](dove/docs/encoders.md#vah264enc) / [`vaapih264enc`](dove/docs/encoders.md#vaapih264enc) | VAAPI (AMD/Intel) | | [`vulkanh264enc`](dove/docs/encoders.md#vulkanh264enc) | Vulkan (Mesa 26+, GStreamer 1.28+) | From 54111c702a3b08f597f972441d4132219136c2ec Mon Sep 17 00:00:00 2001 From: hatsch Date: Mon, 27 Jul 2026 19:56:12 +0200 Subject: [PATCH 4/9] fix: tune preview audio encoder settings --- dove/pipeline_handler.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dove/pipeline_handler.py b/dove/pipeline_handler.py index 16b0929..a89ebd8 100644 --- a/dove/pipeline_handler.py +++ b/dove/pipeline_handler.py @@ -457,7 +457,7 @@ def ensure_video_encoder(): name="Preview Audio", type="audio", element="opusenc", src=src_uid, is_preview=True, - options="bitrate=64000 frame-size=10", + options="bitrate=64000 frame-size=20", )) if not self._add_pipeline_direct(audio_enc): continue @@ -483,6 +483,7 @@ def ensure_video_encoder(): name="Preview Audio", type="audio", element="fdkaacenc", src=src_uid, is_preview=True, + options="bitrate=64000 afterburner=true", )) if not self._add_pipeline_direct(audio_enc): continue From 40876463991cd21b15475f33c53f69ace8448c81 Mon Sep 17 00:00:00 2001 From: hatsch Date: Mon, 27 Jul 2026 19:56:15 +0200 Subject: [PATCH 5/9] chore: drop unused logger import in ytdlp input --- dove/pipelines/inputs/ytdlp.py | 1 - 1 file changed, 1 deletion(-) diff --git a/dove/pipelines/inputs/ytdlp.py b/dove/pipelines/inputs/ytdlp.py index 2ed70f4..f932210 100644 --- a/dove/pipelines/inputs/ytdlp.py +++ b/dove/pipelines/inputs/ytdlp.py @@ -1,6 +1,5 @@ from dove.api.inputs.ytdlp import YtdlpInputDTO from dove.pipelines.inputs.uridecodebin3 import Uridecodebin3Input -from dove.logger import logger import yt_dlp From 4f5255e35a12d9ffd0335f073eb9eff43a2fed8a Mon Sep 17 00:00:00 2001 From: hatsch Date: Mon, 27 Jul 2026 20:09:39 +0200 Subject: [PATCH 6/9] chore: gitignore logs directory --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 9007ead..597ca22 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ pyvenv.cfg .vscode *.code-workspace tmp/ +logs/ quadlet/ From e11b2fd58edf93a7fbeb8530b222c4800c5b24d8 Mon Sep 17 00:00:00 2001 From: hatsch Date: Thu, 24 Sep 2026 20:34:21 +0200 Subject: [PATCH 7/9] chore: bump GStreamer 1.28.5 -> 1.28.7 --- Dockerfile | 14 +++++--------- Dockerfile.trixie | 2 +- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index 175b566..b29c7fa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # ---------- Builder stage ---------- FROM alpine:3.21 AS builder -ARG GSTREAMER_VERSION=1.28.5 +ARG GSTREAMER_VERSION=1.28.7 # Core build deps RUN apk add --no-cache \ @@ -28,13 +28,9 @@ RUN apk upgrade --no-cache \ --repository=https://dl-cdn.alpinelinux.org/alpine/edge/main \ vulkan-loader-dev vulkan-headers vulkan-loader -# Build librtmp (from rtmpdump) and install with a pkg-config file -RUN git clone https://git.ffmpeg.org/rtmpdump.git /opt/rtmpdump && \ - cd /opt/rtmpdump && \ - make SYS=posix && \ - make install prefix=/usr && \ - mkdir -p /usr/lib/pkgconfig && \ - printf "prefix=/usr\nexec_prefix=\${prefix}\nlibdir=\${exec_prefix}/lib\nincludedir=\${prefix}/include\n\nName: librtmp\nDescription: RTMP library\nVersion: 2.4\nLibs: -L\${libdir} -lrtmp\nCflags: -I\${includedir}/librtmp\n" > /usr/lib/pkgconfig/librtmp.pc +# librtmp for rtmpsink (classic RTMP plugin) — Alpine's package ships headers, +# shared lib, and a working pkg-config file, so no need for the upstream source build +RUN apk add --no-cache rtmpdump-dev # WPE/WebKit + FDO backend for wpesrc RUN apk add --no-cache \ @@ -76,7 +72,7 @@ ENV PATH="/root/.cargo/bin:${PATH}" ENV RUSTFLAGS="-C target-feature=-crt-static" RUN cargo install --locked cargo-c -ARG GST_RS_VERSION=gstreamer-1.28.5 +ARG GST_RS_VERSION=gstreamer-1.28.7 RUN git clone --depth 1 -b ${GST_RS_VERSION} \ https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git /opt/gst-plugins-rs diff --git a/Dockerfile.trixie b/Dockerfile.trixie index 5cbc09b..e731dd5 100644 --- a/Dockerfile.trixie +++ b/Dockerfile.trixie @@ -11,7 +11,7 @@ RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain stable ENV PATH="/root/.cargo/bin:${PATH}" RUN cargo install cargo-c -ARG GST_RS_VERSION=gstreamer-1.28.4 +ARG GST_RS_VERSION=gstreamer-1.28.7 RUN git clone --depth 1 -b ${GST_RS_VERSION} \ https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git /opt/gst-plugins-rs From d59a403f4a609dc1a0abfb3263030a1aec630ea9 Mon Sep 17 00:00:00 2001 From: hatsch Date: Thu, 24 Sep 2026 20:34:29 +0200 Subject: [PATCH 8/9] chore: bump python deps --- pyproject.toml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 552f83b..6df7e17 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,19 +28,19 @@ dove = "dove.main:main" [tool.poetry.dependencies] python = "^3.12" -fastapi = "^0.136.0" -starlette = ">=0.45.0,<1.0.0" -uvicorn = "^0.44.0" -websockets = "^16.0" -orjson = "^3.11.4" +fastapi = "^0.141.1" +starlette = ">=0.46.0,<1.0.0" +uvicorn = "^0.53.0" +websockets = "^17.1" +orjson = "^3.12.0" toml = "^0.10.2" -yt-dlp = "^2026.3.3" +yt-dlp = "^2026.8.19" graphviz = "^0.21" -pydantic = "^2.12.4" +pydantic = "^2.13.5" httpx = "^0.28.1" -charset-normalizer = "^3.4.4" -authlib = "^1.4.1" -joserfc = "^1.6.0" +charset-normalizer = "^3.5.1" +authlib = "^1.8.0" +joserfc = "^1.7.5" itsdangerous = "^2.2.0" [tool.ruff] From 96fbe596d59587f8dcea0ab7aac4fc214aed3096 Mon Sep 17 00:00:00 2001 From: hatsch Date: Thu, 24 Sep 2026 20:34:34 +0200 Subject: [PATCH 9/9] release: v1.0.0-rc6 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 6df7e17..fd3b51e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "dove-video-editor" -version = "1.0.0rc5" +version = "1.0.0rc6" description = "DOVE - Online Video Editor" authors = ["Stefan Hageneder "] license = "AGPL-3.0-or-later"