Skip to content

moq-gst: minor moqsrc follow-ups (push backpressure, CMAF init re-parse, reconcile tests) #1647

Description

@kixelated

Low-priority cleanups deferred from the #1633 review (the two real bugs were fixed in #1646). Tracking them together so they're not lost; none are urgent.

  • Blocking pad.push() on tokio workers. Each pump pushes synchronously from a task on the shared RUNTIME. If several downstreams stall at once (full queues / clock-synced sinks), blocked pushes can occupy all worker threads and starve the session loop. Self-heals on state-change flush, so low risk — but if it ever bites, isolate with tokio::task::block_in_place or a dedicated thread per pad.

  • Redundant CMAF init parsing. reconcile's resolve() calls Container::try_from (which parses the fMP4 init via fmp4::Wire::from_init) for every rendition on every catalog update, then discards the result for renditions that didn't change (the diff compares the hang container descriptor). Could resolve the wire container lazily, only for added/changed renditions.

  • No tests for reconcile. The crate is test = false and the logic is concurrency-heavy, but the reconcile desired-vs-active set math is nearly pure and would unit-test cleanly if extracted — cheap insurance for the trickiest part.

Context: rs/moq-gst/src/source/imp.rs. See the review thread on #1633 for details.

(Written by Claude)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions