You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
dash: fix crash-safety, catalog initData, late-track, and shutdown races
Resolve the confirmed findings from the PR #15 review of the CTE LL-DASH
ingest publisher:
- Guard the ingest worker thread so a malformed fragment (e.g. a moof
referencing an unknown track) is dropped instead of escaping the thread
and calling std::terminate.
- Embed each track's base64 CMAF init segment in the catalog via a reusable
track_init_data_base64 helper so subscribers can initialize decoders.
- Freeze the announced track set when source() is taken; paths whose init
segments arrive afterwards are ignored rather than enqueued against an
unknown track (which aborted the whole publish session).
- Add a bounded poll plus an is_finished predicate on LiveObjectSource so
the publisher services control messages during media gaps and ends only
on close, instead of blocking indefinitely.
- Give each catalog emission a monotonic group id so a re-published catalog
no longer collides with an already-delivered object id.
- Erase a client fd from the active set before closing it, and defer closing
the listen fd until after the accept thread joins, to close two fd-reuse
races on shutdown.
- Reject trailing garbage in --dash-listen/--dash-queue-depth with clear
messages and require --dash-path/--dash-queue-depth to accompany
--live-source dash.
Add regression tests for crash-safety, catalog initData, late-path
rejection, and the CLI validation.
0 commit comments