fix(stream): preserve live outputs and disable idle exit by default

Preserve RTP/RTMP session continuity across upstream stream_reset events by
forcing a keyframe on restart, remapping live timestamps, and keeping live
outputs open when the runtime requests reset continuity.

Disable idle auto-exit by default by changing ingest_idle_timeout_ms to 0,
removing validation that rejected 0, and only enforcing idle shutdown when a
positive timeout is configured in pipeline and ingest loops.

Also suppress libavformat FLV trailer header backfill attempts on RTMP sockets
and update the RTP output tester for the newer publisher create signature.

Docs are updated to state that 0 disables the idle timeout.
This commit is contained in:
2026-04-09 12:17:54 +08:00
parent 0a3da46f19
commit 965b03c053
9 changed files with 357 additions and 165 deletions
@@ -18,6 +18,7 @@ struct RawVideoFrame {
ipc::FrameInfo info{};
std::uint64_t source_timestamp_ns{0};
std::size_t row_stride_bytes{0};
bool force_keyframe{false};
std::span<const std::uint8_t> bytes{};
};