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
As a stepping stone to our ambitious goal of implementing DRAFT-07 FETCH support, we should get a working DRAFT-06 implementation up and running.
To start we can focus on implementing the features that have already been completed in @englishm's moq-rs/pull/draft-06. I've sorted this list by "what'll break first" so we can work our way from getting the setup messages working -> playback. Feel free to correct what I've gotten wrong or fill in additional context or thoughts.
// Implemented in moq-rs
Update supported version to V6 (0xff000006)
Stream Header type ID changes
Object payload length
the v6 relay won't even acknowledge the setup messages without the length entry. There is no validation (yet), so we could just send any number, but we might as well actually calculate the bytes.
Control message length
Track namespace + track as ordered N-tuple of bytes + sequence of bytes
Namespaces have been changed from bytes -> a tuple of bytes, so we'll need to make these updates before we can subscribe to a track.
SubGroups
I think currently the backend is just putting everything that was in the group into a single subgroup, so we'll just need to update the types/data structures and use the subgroup data where we were using the group data
// Less urgent/publisher stuff
SUBSCRIBE_NAMESPACE / UNSUBSCRIBE_NAMESPACE and OKs
ability to subscribe/unsubscribe to all of the tracks under a namespace. don't think this is a "must have" to get playback working, but it is implemented on the backend and would be fun to add
Too many subscribes error message
Remove missing group status
don't think moq-js ever had this
// 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
// TODO: audit DRAFT-06/DRAFT-07 diff to make sure we aren't implementing anything in 06 that was subsequently removed in 07.
The FB player jumped from 05->07 directly, so it has more than we need (for now!), but this will be a great reference for adding message lengths/tuple updates/etc.
The text was updated successfully, but these errors were encountered:
I'll be hacking away at this on my draft-06 branch. So far all I've done is update the Version support and add a placeholder message length. Without this the backend will fail silently 😅 without acknowledging a setup message has been sent.
For our player, does it make sense to implement SUBSCRIBE_NAMESPACE beyond just verifying that they are correctly implemented in moq-rs?
I imagine using a SUBSCRIBE_NAMESPACE for something like a video call, where I can subscribe to the audio and video streams of that call. But in our case, what would be a relevant use case for namespaces?
As a stepping stone to our ambitious goal of implementing DRAFT-07 FETCH support, we should get a working DRAFT-06 implementation up and running.
To start we can focus on implementing the features that have already been completed in @englishm's moq-rs/pull/draft-06. I've sorted this list by "what'll break first" so we can work our way from getting the setup messages working -> playback. Feel free to correct what I've gotten wrong or fill in additional context or thoughts.
// Implemented in moq-rs
0xff000006
)// Less urgent/publisher stuff
// Not yet implemented in moq-rs
// TODO: audit DRAFT-06/DRAFT-07 diff to make sure we aren't implementing anything in 06 that was subsequently removed in 07.
Resources:
https://author-tools.ietf.org/iddiff?url1=draft-ietf-moq-transport-05&url2=draft-ietf-moq-transport-06&difftype=--html
moq-rs
WIP diff for implementing V6 in the relay/publisher:moq-transport draft-06 initial wire format updates moq-rs#8
https://github.com/facebookexperimental/moq-encoder-player/pull/21/files
The text was updated successfully, but these errors were encountered: