Skip to content

Conversation

@mcintyrehh
Copy link
Collaborator

@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 cloudflare/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
Member

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

@englishm englishm merged commit 28ef75a into video-dev: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