Open zmerp opened 1 year ago
Adding some of my own additions:
@shinyquagsire23 Your points are either don't need to be protocol breaks (they can be protocol extensions) or may take too long to be included in v21 assuming you haven't started working on it. For FFR i'm thinking we should leave it out, because we need to have android + windows + linux implementations which will take a long time. The idea is to first switch both windows and linux to wgpu like the client so it will be far easier to do all at once
Yeah I'm mostly just spitballing on things that could be marginally improved if a protocol break is already happening. ie headset info is only sent as a single string and it gets kinda iffy to change that back to usable information on the streamer, IMO it could split out info a bit more to help futureproofing (ie A Quest 3 could split as manufacturer=Meta type=Quest subtype=Quest 3, so if the Quest 4 comes out the streamer could match on Meta and Quest and then the subtype could have aesthetic fallbacks targeted at Quests).
@shinyquagsire23 I understand what you're saying, but we can still have a universal generic fallback. it's not a big deal, to avoid that the user should have both client and server on the same version. So, let's also keep the display name as string, passing it as a Platform variable could fail deserialization. On the server side we should try to match one by one the strings.
Indeed we could make things clearer and rename display_name
to platform
.
To be done not earlier than just before releasing v21.0.0 stable, or after there was a devXX bump.
ClientControlPacket::VideoErrorReport
VideoStreamingCapabilities
packet.[ ] Use mesh foveated renderingdeferred. Needs protocol support to negotiate disabling FFE.Vec<u8>
(don't use json). Values can only be appended and not removed. Alternatively investigate CapnProto or Flatbuffers which support protocol extensions natively.DecoderConfig
packet in the video frame header, to avoid having to request another IDR and resend theDecoderConfig
two times.