<feed xmlns='http://www.w3.org/2005/Atom'>
<title>packages/multimedia, branch master</title>
<subtitle>Mirror of packages feed</subtitle>
<id>https://git.openwrt.org/feed/packages/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/feed/packages/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/'/>
<updated>2026-11-01T11:15:19Z</updated>
<entry>
<title>gst1-rtsp-server: add package</title>
<updated>2026-11-01T11:15:19Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-10-29T21:33:18Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=3e04fee45f35936f22e8457743d1af9e8759da9e'/>
<id>urn:sha1:3e04fee45f35936f22e8457743d1af9e8759da9e</id>
<content type='text'>
Package the RTSP server library and its test-launch example, and add a
procd service that discovers cameras and hardware encoders on video4linux
and media hotplug events, keeps them in UCI, and runs one capture
pipeline per camera with the capture, ISP output selection and
hardware encoding of all its enabled streams. Encoded frames reach one
RTSP server instance per stream over Unix FD sockets. Generated streams
use the sensor-native size, the first hardware codec and a constant
bitrate derived from the output size and frame rate; a camera section
can carry a complete pipeline override. The negotiated stream
parameters are published for an ONVIF server.

The server library allocates the data list messages of a frame on the
heap, as a 4K frame overflows musl's thread stack otherwise.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>gst1-plugins-good: count the dmabuf offset in bytesused</title>
<updated>2026-11-01T11:15:19Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-10-29T12:46:17Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=9a103e4a1af481850957da3b04ea16f960c0dc9b'/>
<id>urn:sha1:9a103e4a1af481850957da3b04ea16f960c0dc9b</id>
<content type='text'>
Importing a dmabuf memory that starts at an offset, the chroma plane of
a single-dmabuf NV12 frame into a two-plane NM12 encoder queue, fails at
QBUF with EINVAL: the allocator rewrites bytesused from the memory size
alone and the kernel sees data_offset above bytesused. Add the memory
offset back at QBUF, as the import already did.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>gst1-plugins-bad: package Unix FD transport</title>
<updated>2026-11-01T11:15:19Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-10-19T11:01:31Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=884d95a11e6215d5ca2230dc026bfaa607d05816'/>
<id>urn:sha1:884d95a11e6215d5ca2230dc026bfaa607d05816</id>
<content type='text'>
Expose unixfdsink and unixfdsrc as an optional plugin package for
sharing encoded streams and DMA buffer descriptors between consumers.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>gst1-plugins-base: heap-allocate the RTSP message arrays</title>
<updated>2026-11-01T11:15:19Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-10-17T02:17:22Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=1f346aaed6729dca34b700881b20ca7dd2207726'/>
<id>urn:sha1:1f346aaed6729dca34b700881b20ca7dd2207726</id>
<content type='text'>
The RTSP connection and watch code allocates the serialised messages,
the output vectors and the map infos of a send on the stack, sized by
the number of RTP packets. A 4K H.265 frame is over a thousand packets
and needs about 250 KB, so on musl's 128 KiB thread stacks the server's
send thread runs past the guard page into the heap and the server
crashes at PLAY. Move the arrays of the four send paths to the heap.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>gst1-plugins-base: package the device monitor</title>
<updated>2026-11-01T11:15:19Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-10-19T11:01:31Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=8fa81b008f9904fc851dd121790610156503b612'/>
<id>urn:sha1:8fa81b008f9904fc851dd121790610156503b612</id>
<content type='text'>
Package gst-device-monitor for camera capability discovery and track
the tool selection in the build configuration.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>gstreamer1: post downloadbuffer buffering messages in order</title>
<updated>2026-10-31T11:36:44Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-10-30T11:09:20Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=87849fccd6596a1e8823396489399b73852baf2d'/>
<id>urn:sha1:87849fccd6596a1e8823396489399b73852baf2d</id>
<content type='text'>
downloadbuffer computes each BUFFERING message under its lock but posts
it after unlocking, from both the upstream and the downstream streaming
thread, so a stale message below 100% can reach the application after
the 100% one. The element posts nothing further after that, and a
playbin3 application such as WPE WebKit keeps waiting for buffering that
has finished and never starts playback. Add a patch that serialises
posting the way queue2 does.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>gst1-plugins-bad: fix v4l2codecs decode error on flush</title>
<updated>2026-10-31T11:36:44Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-10-30T10:59:20Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=184f21621448357d9a7c4c2db81c1b441b16b7c5'/>
<id>urn:sha1:184f21621448357d9a7c4c2db81c1b441b16b7c5</id>
<content type='text'>
A flush that arrives while a stateless V4L2 decoder is mid-frame makes
the h264, h265 and mpeg2 decoders turn GST_FLOW_FLUSHING from the output
buffer pool into a fatal "Failed to decode data". Every flushing seek
risks it, and a looping video on RK3588 stops with a decode error. Add
a patch that returns the flushing flow up through end_picture() and
decode_slice() so the base class handles it.

Fixes: d86f866af1f5 ("gst1-plugins-bad: update to 1.17.1")
Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>gst1-plugins-bad: make v4l2codecs depend on libgudev</title>
<updated>2026-10-31T11:36:44Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-09-08T21:45:47Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=8da0642aa435655e815977d40d38f134ca456099'/>
<id>urn:sha1:8da0642aa435655e815977d40d38f134ca456099</id>
<content type='text'>
The v4l2codecs plugin links against libgudev-1.0, which meson requires
whenever the plugin is enabled, yet gst1-mod-v4l2codecs neither depends
on libgudev nor lists it as a build dependency. The plugin builds only
when libgudev happens to be staged first and loads only on images that
ship libgudev for other reasons.

Fixes: d86f866af1f5 ("gst1-plugins-bad: update to 1.17.1")
Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>gst1-plugins-bad: disable auto-detected meson features</title>
<updated>2026-10-31T11:36:44Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-09-08T21:45:19Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=0997e9fae6b8df4b4fce3977785edf35a1dc22da'/>
<id>urn:sha1:0997e9fae6b8df4b4fce3977785edf35a1dc22da</id>
<content type='text'>
Meson feature options the Makefile does not pin stay at their auto
default and get switched on by whatever happens to sit in the staging
directory: pangocairo enables analyticsoverlay, libva the va plugin,
openssl the aes plugin. None of them is a declared dependency, so the
built set depends on build order, and a library being re-staged while
gst-plugins-bad compiles breaks the build, as pango did with the
analyticsoverlay plugin.

Set auto_features=disabled so only explicitly enabled features are
built, and pin nls to enabled as the other GStreamer packages do.

Fixes: e7f535c3f672 ("gst1-plugins-bad: update to 1.26.2")
Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>gst1-plugins-good: package the adaptivedemux2 plugin</title>
<updated>2026-10-31T11:36:44Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-10-30T10:58:51Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=44979b2a0feda53d33d4670188e3fef665f81496'/>
<id>urn:sha1:44979b2a0feda53d33d4670188e3fef665f81496</id>
<content type='text'>
The adaptive streaming demuxers dashdemux2, hlsdemux2 and mssdemux2 were
built whenever libxml2 happened to be staged, but never packaged, so no
image carried them. Select the plugin explicitly and package it, with
libsoup 3, which it loads at run time, as a dependency. Pin hls-crypto to
nettle, the library the package depends on, so that meson fails when
nettle is missing.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
</feed>
