-
mpph264enc could not say constrained-baseline, so H.264 was never offered
released this
2026-08-25 09:29:02 +00:00 | 0 commits to main since this releasewebrtcsink's codec discovery builds its encoding chain with no output caps, so
force_profileis
true and it inserts a capsfilter demandingprofile=constrained-baseline— WebRTC's interoperable
floor. h264parse stripsalignment,stream-formatandparsedfrom a caps query but not
profile, so that demand reaches mpph264enc's src pad, whose template listed only
{ baseline, main, high }. Empty intersection, GstVideoEncoder's sink getcaps returns nothing,
and the failure surfaces upstream as videorate reporting it "could not transform NV12 ... in
anything we support". Discovery then drops H.264 with a warning nobody was reading, VP8 wins by
default, and the session dies in rtpvp8pay.The element could always produce constrained-baseline; only its static template denied it.
Measured on an RK3566:mpph264enc profile=baseline ! h264parsenegotiates
profile=(string)constrained-baselineon the parser's src pad, because baseline mode turns CABAC
and 8x8 transform off and MPP emits no FMO, ASO or redundant slices. So this widens the template
by one word rather than claiming something new.Patches now live in a directory per upstream, applied by an
apply_patcheshelper and recorded in
the MANIFEST aspatch <project>/<file>. Two reasons: a patch aimed at the wrong tree failed the
same way a stale one does, and the MANIFEST's flatpatch <file>line landed next to whichever
.so happened to precede it, which read as provenance for the wrong plugin.Assisted-by: Claude:claude-opus-5[1m]
Downloads