From 89e5be7861093f1f71e65441e4e7da730b41147e Mon Sep 17 00:00:00 2001 From: Pierre Rouanet Date: Mon, 24 Aug 2026 16:12:14 +0200 Subject: [PATCH] Pin gstreamer-rockchip behind the MPP 1.5.0 break MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The first build failed, precisely and usefully. Branch HEAD does not compile against the MPP Radxa ships: 666203a8 ("mppjpegdec: Get the required size from mpp_sys_cfg", 2026-03-06) started using MppSysCfg and mpp_sys_cfg_*, which do not exist in librockchip-mpp 1.5.0-1. gstmppjpegdec.c:219:3: error: unknown type name 'MppSysCfg' Confined to the JPEG decoder — gstmppenc.c, gstmppjpegenc.c and gstmppvideodec.c all compiled — so the encoders we actually need were never the problem. Pinned to 1ceaf42c, its parent. That loses exactly three commits and none of them matter here: a mppvideodec input-packet-leak fix (a decoder, not the encode path), an rkximage aspect-ratio fix (a sink this build disables), and the breaking change. The alternative was building a newer librockchip-mpp as well and shipping it to the robot. Rejected: 1.5.0-1 is the version hardware H.264 was proven on — 720p through mpi_enc_test, a bitstream that decodes clean — and replacing it would trade that proof for a decoder fix we do not use. Assisted-by: Claude:claude-opus-5[1m] --- pins.env | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/pins.env b/pins.env index a07fbcd..a3dc370 100644 --- a/pins.env +++ b/pins.env @@ -14,9 +14,30 @@ # Why build it at all: Debian has no Rockchip encoder in any suite, and Radxa's # `gstreamer1.0-rockchip1_1.14-4` is **decode-only** — measured on a Zero 3W, it provides # `mppvideodec` and `mppjpegdec` and nothing else. 1.14.4 predates the encoders. +# **Not the branch tip, and this is the interesting part of the pin.** +# +# Branch HEAD (dcbcd645, 2026-05-21) does not compile against the MPP Radxa ships. Commit +# 666203a8 — "mppjpegdec: Get the required size from mpp_sys_cfg", 2026-03-06 — started using +# `MppSysCfg` and `mpp_sys_cfg_*`, which do not exist in librockchip-mpp 1.5.0-1: +# +# gstmppjpegdec.c:219:3: error: unknown type name 'MppSysCfg' +# gstmppjpegdec.c:235:7: error: implicit declaration of function 'mpp_sys_cfg_get' +# +# So this is 1ceaf42c, its parent. Everything else in the plugin builds fine against 1.5.0 — +# `gstmppenc.c`, `gstmppjpegenc.c`, `gstmppvideodec.c` all compiled; the failure is confined to +# the JPEG *decoder*, which nothing here needs. +# +# What pinning behind it costs is three commits, and none of them matter to us: a `mppvideodec` +# input-packet-leak fix (a decoder, not the encode path), an `rkximage` aspect-ratio fix (a sink +# this build disables), and the breaking change itself. +# +# The alternative is building a newer librockchip-mpp too — `JeffyCN/mirrors` has `mpp` and +# `mpp-dev` branches — and then shipping that to the robot as well. Rejected for now: 1.5.0-1 is +# the version hardware H.264 was *proven* on (`mpi_enc_test`, 720p, a bitstream that decodes +# clean), and replacing it would invalidate that proof to gain a decoder fix we do not use. GST_ROCKCHIP_REPO=https://github.com/JeffyCN/mirrors.git GST_ROCKCHIP_BRANCH=gstreamer-rockchip -GST_ROCKCHIP_REF=dcbcd6454ef892e385b3a782600369eb6c0719db +GST_ROCKCHIP_REF=1ceaf42ca3189c2c0ca917181cf3cb6db8c4df45 # ── gst-plugins-rs: webrtcsink, webrtcsrc, and the rtp sibling the same stack wants ── #