Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MOQT-v6 Support #26

Merged
merged 5 commits into from
Jan 16, 2025
Merged

MOQT-v6 Support #26

merged 5 commits into from
Jan 16, 2025

Conversation

mcintyrehh
Copy link
Contributor

@mcintyrehh mcintyrehh commented Dec 27, 2024

This PR implements the majority of the MoQT-v6 features listed in Implement DRAFT-06 Support!

With these changes we're able to get publishing and multi-track playback with Mike's englishm/moq-rs#8 relay/publisher running 😎

  • Note There is a bug with playback when publishing with an audio stream. I'm also seeing this on main. Publishing without an audio track works just fine.

We're not actually that far off from 07 functionality. A great deal of the 06/07 diff is explicitly adding the message lengths that are mentioned (vaguely) in 06. The big lift is FETCH. This explains why Jordi went straight from DRAFT-05 -> DRAFT-07 (minus FETCH) in this moq-encoder-player PR.

There is a lot to go through here so I recommend reviewing commit by commit. Lmk if you have any questions and don't hesitate to drop nits/feedback!

// Implemented in moq-rs/me/draft-06

  • Update supported version to V6 (0xff000006)
  • Stream Header type ID changes
  • Object payload length
  • Control message length
  • Track namespace + track as ordered N-tuple of bytes + sequence of bytes
    • This has been implemented but definitely needs another look. namespace serialization is not consistent, backend sends "/foo/bar/baz" and this serializes as "foo/bar/baz" for namespace comparisons/lookups.
  • SubGroups
  • Remove missing group status
    • don't think moq-js ever had this, nothing to do

// Implemented in backend, but not in this PR

  • SUBSCRIBE_NAMESPACE / UNSUBSCRIBE_NAMESPACE and OKs
    • ability to subscribe/unsubscribe to all of the tracks under a namespace
  • Too many subscribes error message

// Not yet implemented in moq-rs

  • MAX_SUBSCRIBE_ID control message
  • Delivery timeout parameter
  • Max Cache Duration parameter
  • Error Code for Announce Cancel
  • Additional Subscribe Errors

@mcintyrehh mcintyrehh marked this pull request as ready for review January 1, 2025 22:39
@mcintyrehh mcintyrehh changed the title WIP MOQT-v6 Support MOQT-v6 Support Jan 2, 2025
@englishm
Copy link
Owner

FYI: I merged englishm/moq-rs#8 leaving some draft-06 items not yet done (tracked in englishm/moq-rs#25)

@englishm englishm merged commit 28ef75a into englishm:main Jan 16, 2025
1 check passed
@mcintyrehh mcintyrehh deleted the draft-06 branch January 20, 2025 16:07
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.

2 participants