srs/trunk/src
winlin 398620d52c Edge: Fix RTMP late-join missing sequence headers. v6.0.186 (#4678)
Backport of the RTMP late-join fix from v8.0.2 / v7.0.150 to the 6.0
release line. The HTTP-FLV inverted-guard bug from that fix does not
apply to v6 (the lazy edge-mount mechanism that introduced it does not
exist on this branch).

RTMP players that join an edge stream after the first player fail to
decode. After v6.0.179 (#4512) stopped creating SrsOriginHub on edge,
the hub_active gate in SrsLiveSource::consumer_dumps() always evaluated
false on edge. That gate guards the dump of cached onMetaData + AVC
sequence header + AAC sequence header + GOP cache to a new consumer.
Result: the first player attaches before the edge-pull starts and gets
headers via the live fan-out, but every subsequent player gets coded
payload with no codec config and ffmpeg aborts with `dimensions not set`
/ `Could not write header`. Fall back to the meta cache state when hub
is NULL, so the dump path runs once the edge-pull has populated the
cache. (trunk/src/app/srs_app_source.cpp)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 11:33:42 -04:00
..
app Edge: Fix RTMP late-join missing sequence headers. v6.0.186 (#4678) 2026-05-19 11:33:42 -04:00
core Edge: Fix RTMP late-join missing sequence headers. v6.0.186 (#4678) 2026-05-19 11:33:42 -04:00
kernel DVR: Fix HEVC mp4 recording error. v6.0.185 (#4605) (#4605) 2025-12-06 18:32:58 -05:00
main update copyright to 2025. v6.0.159 (#4271) 2025-02-24 19:34:34 +08:00
protocol RTMP: Use extended timestamp as delta when chunk fmt=1/2. v6.0.167 (#4356) 2025-05-29 14:24:40 -04:00
utest TCP|UDP Listener: Fix coroutine exit when err happens (#4613) (#4615) 2026-01-24 07:16:49 -05:00