Skip to content

Expose track name and used/unused activity signals#1398

Open
Qizot wants to merge 1 commit into
moq-dev:mainfrom
Qizot:moq-ffi-track-activity
Open

Expose track name and used/unused activity signals#1398
Qizot wants to merge 1 commit into
moq-dev:mainfrom
Qizot:moq-ffi-track-activity

Conversation

@Qizot
Copy link
Copy Markdown
Contributor

@Qizot Qizot commented May 11, 2026

Add name(), used(), and unused() to MoqTrackProducer and MoqMediaProducer so FFI consumers can observe subscriber activity. Plumb a single track accessor through moq-mux's import decoder and mirror the new API in the Python moq-lite bindings.

Add `name()`, `used()`, and `unused()` to MoqTrackProducer and
MoqMediaProducer so FFI consumers can observe subscriber activity.
Plumb a single track accessor through moq-mux's import decoder and
mirror the new API in the Python moq-lite bindings.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 11, 2026

Review Change Stack
No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 56279c1c-f401-4904-8aea-71c9166b4889

📥 Commits

Reviewing files that changed from the base of the PR and between 6adf3c3 and b39061e.

📒 Files selected for processing (4)
  • py/moq-lite/moq_lite/publish.py
  • rs/moq-ffi/src/producer.rs
  • rs/moq-ffi/src/test.rs
  • rs/moq-mux/src/import/decoder.rs

Walkthrough

This PR exposes track activity and naming across the MOQ producer stack. The Rust FFI layer introduces an internal MediaProducer wrapper pairing decoders with their underlying track handles, enabling media streams to report names and transitions between used/unused states. Raw tracks gain corresponding name and activity methods. A new wait_for_track_activity helper maps async track state waits into error-safe operations. The decoder layer adds a track() accessor for single-format producers. Python wrappers delegate the new methods to their Rust counterparts. Tests validate that published raw and media tracks correctly transition through their lifecycle states.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Expose track name and used/unused activity signals' accurately summarizes the main change: adding name and activity observation APIs to track producers.
Description check ✅ Passed The description directly relates to the changeset, clearly explaining the addition of new APIs and the plumbing through moq-mux decoder and Python bindings.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
⚔️ Resolve merge conflicts
  • Resolve merge conflict in branch moq-ffi-track-activity
✨ Simplify code
  • Create PR with simplified code

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant