Repository navigation
Conversation
openwrt-ai
reviewed
Oct 17, 2026
openwrt-ai
left a comment
Collaborator
There was a problem hiding this comment.
Commit checks
- 53136c8 "gst1-rtsp-server: add package": the body says the example is packaged "as gst-rtsp-launch", but the Makefile package is
gst1-rtsp-launch, and only the installed binary is namedgst-rtsp-launch. Use the package name, as the body already does forlibgst1rtspserverandgst1-mod-rtspclientsink. The PR description has the same mix-up.
Generated by Claude Code
gst_rtsp_watch_send_messages() and gst_rtsp_watch_write_serialized_messages() allocate their arrays on the stack, with one entry per RTP packet and per memory of the buffer list that an RTSP server sends over TCP. A 4K video frame is several hundred packets, which took 150 KiB and overran the 128 KiB default thread stack of musl, so an RTSP server using the library crashed with a segmentation fault. Move the arrays to the heap and bump PKG_RELEASE. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
gst-rtsp-server is the GStreamer library for serving pipelines over RTSP. Package the library as libgst1rtspserver, the rtspclientsink element as gst1-mod-rtspclientsink, and the test-launch example as gst1-rtsp-launch, which installs it as gst-rtsp-launch and serves a gst-launch style pipeline that ends in a payloader named pay0. gst1-rtsp-launch depends on the RTP, RTP manager and UDP plugins and on the video parsers, which the payloaders and the RTP session of the server need. do_send_data_list() allocates one message per RTP packet of a frame on the stack, which overruns the 128 KiB default thread stack of musl for large 4K frames. A patch moves the array to the heap. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
dangowrt
force-pushed
the
gst1-rtsp-server
branch
from
October 17, 2026 09:08
53136c8 to
18eede0
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📦 Package Details
Maintainer: @dangowrt
(You can find this by checking the history of the package
Makefile.)Description:
Add the RTSP server library as
libgst1rtspserver, thertspclientsinkelement asgst1-mod-rtspclientsink, and thetest-launchexample asgst1-rtsp-launch(installed asgst-rtsp-launch), which serves a gst-launch style pipeline over RTSP (gst-rtsp-launch -p 8554 "( videotestsrc ! ... ! rtph265pay name=pay0 )"). It depends ongst1-mod-rtp,gst1-mod-rtpmanager,gst1-mod-udpandgst1-mod-videoparsersbad, so a camera can be streamed over RTSP with GStreamer alone. It carries the same heap fix fordo_send_data_list()in gst-rtsp-server.Also add bugfix patches for gstreamer so it actually survives (see below)
🧪 Run Testing Details
An all-intra 4K stream at 150 Mbit/s to one TCP client crashed the server every time before the patches and stayed up in three runs of 20 s after. UDP and TCP clients play the normal 16 Mbit/s stream.
✅ Formalities
If your PR contains a patch:
git am(e.g., subject line, commit description, etc.)
We must try to upstream patches to reduce maintenance burden.